这个模块从modis卫星上提取一组平铺合成图像,给出了边缘的纬度和经度以及开始和结束日期。
TileScraper的Python项目详细描述
平铺机
作者:Tavis Barr,tavisbarr@gmail.com,版权所有2016 根据较小的GNU公共许可证V.2.0授权 有关其他许可安排,请与我联系
这个程序从nasa modis卫星上获取图像。看卫星 主页位于http://modis.gsfc.nasa.gov/,以获取有关其 功能和能力。
这个程序的目的是简化下载图像的过程。 网站提供的界面允许提取匹配的图像 一种预先存在的一组瓦片,其边界有点不透明(但可以是 做了一点侦查工作)。这个程序为您保存 做侦探工作的麻烦,让你可以提取给定的数据 只是图像边的经纬度。图片被拉到 尽可能高的分辨率,然后根据命令调整大小 争论。
下一节介绍使用的方法;您可以跳到以下 如果你只是想使用程序。
方法论
modis数据以平铺形式提供。有几个可用的api 要拉这些平铺,这个包使用rest api。查看modis网站 有关其他api的详细信息。
modis数据是分层给出的,如校正后的反射率、气溶胶等。 深度等。通过使用 getLayers()命令。不同的图层有不同的分辨率。
可以使用不同的平铺矩阵访问层。每个平铺矩阵 表示不同的图像分辨率。前两个平铺矩阵除 世界分为两块瓷砖(东/西)和八块瓷砖(北/南两块,四块 东/西)。
平铺矩阵3是对应于指定分辨率的最低矩阵。 基本假设是世界的形象 桔皮在平坦的表面上)可以用40940x20480公里来表示 以赤道和格林威治子午线为中心的矩形。 瓷砖矩阵3是一个10宽5高的矩阵。这相当于 每个像素的分辨率为8km,每个512x512块表示 (512*8)x(512*8)=4096x4096公里区域。
随着tile矩阵数的增加,tile数加倍,并且 分辨率减半。因此,平铺矩阵4表示4km分辨率, 平铺矩阵5表示2km分辨率等。
当然,由于地球并不平坦,这些分辨率并不精确。我 假设它们在赤道是正确的?
根据这些信息,很容易计算出 给定边界的经纬度。然后程序粘贴 将相关的瓦片放在一起,并将瓦片的任何部分 请求的区域。
方法
此程序提供以下例程:
- getLayers()查询modis网站,以确定哪些层是
可下载。层的名称是 相对直观,但可以访问网站 更多信息。
程序使用全局变量,因此网站 每次执行时只查询第一个调用。
dt> GETReloDebug()返回一个最大可用分辨率字典< /dt >- 对于每个可用层。
- getformat()返回每个层可用的图像格式。
- 可以以不同的格式提供不同的层 (JPEG、PNG等)。
- gettilematrix()返回对应于a的适当平铺矩阵
- 给定分辨率。
PullMosaic(层,上,左,下,右,拉年,拉月, 拉日、图像宽度、图像高度)
pulls a single day’s tiles. Here, top/bottom/left/right are the latitude and longitude of the edges of the requested image. The year, month, and day are 4 digit year/numerical month (1 to 12). imagewidth and imageheight specify the resolution of the requested image, which is rescaled accordingly.
- 马赛克流(
框, 开始日期, 结束日期, 层,前缀=“/tmp/image-”, 扩展名=“.jpg”, 输出大小=(512512)):
拉一系列图像o同一个地方 一组日期,并将它们放入指定的目录中。 box是包含边纬度和 按顺序排列的经度(左、上、右、下)。 开始和结束日期以SQL格式给出,例如, “2012-01-31”,前缀应包括两个目录 图像将存储在何处以及 文件名,扩展名通常决定图像 格式和输出大小(图像大小)是双倍的 (宽度、高度)。
- 加载流到Indexedarray(
start_date, end_date,prefix=”/tmp/image-“, extension=”.jpg”)
采用pullmosaicstream()创建的文件集并创建 按日期排列的词典。这里,开始日期是 第一张图片,采用SQL格式(如“2012-01-31”);结束日期为 上次映像的日期;前缀是目录和文件 图像的前缀,扩展名是任何文件扩展名 日期之后,包括图像类型。