这个模块从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”);结束日期为 上次映像的日期;前缀是目录和文件 图像的前缀,扩展名是任何文件扩展名 日期之后,包括图像类型。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java返回入for循环或外循环   Android是由java引起的。安全cert.CertPathValidatorException:找不到证书路径的信任锚点   PHP和Java之间有什么区别?   java我想将gridview更改为recyclerview   java获取分页的行数   试图在Java类中计算CKJM时发生类错误   java如何在BIRT报告中集成谷歌地图   java我可以在enum上使用Spring的@Component吗?   在Android Java的硬件键盘上设置CAPS_LOCK和NUM_LOCK   XSD 1.1断言中基于java XSD attributevalue的regexvalidation   java从命令行设置spring属性文件位置   Ogg格式的java语音录制?   java我能找到Groovy代码块中可能抛出的所有(已检查的)异常吗?   java为什么这会导致ClassCastException?   java在安卓 studio中的活动之间传递数据   java Intellij:如何从现有进程更新运行配置环境?   java我们如何创建Dagger 2的依赖关系图?   java如何从JSP页面到servlet获取数据   Java https连接证书不受信任+javax。网ssl。SSLException:PKIX路径生成失败