用于python的terraserver模块
pyTerra的Python项目详细描述
pyterra是一个python模块,它允许您向微软的 TerraServer(http://msrmaps.com/)。有了它,你可以下载 (旧)美国几乎任何地理范围的地图图像。
TerraServer几乎覆盖了美国的两个 重要制图产品、地形图和数字正射 照片(有时称为DOQ或DOQQ)。你可以在这里找到更多关于DOQ的信息 (http://mapping.usgs.gov/www/ndop/)以及更多关于什么是地形图的信息 这里(http://mac.usgs.gov/mac/isb/pubs/booklets/symbols/)。TerraServer 已经很多年没有更新了,现在还有很多其他的图像 有消息来源,但是TerraServer是第一个全国性的 新闻报道。
所有方法都反映了terraservice api。请参阅wsdl文件 http://msrmaps.com/TerraService2.asmx?WSDL有关如何 打电话。
terraserver将图像存储为一个由瓷砖组成的金字塔。每块瓷砖总是200 像素为正方形,与实际地面分辨率无关。航拍照片是 提供1、2、4、8、16、32和64米分辨率。地形图是 除1米外,以上所有分辨率均可用。
获取一个区段的图像需要三个步骤:1。定义边界框 你想下载的区域。边界框是由上部定义的框 盒子的左点和左下点。重点可能在地理上 坐标(42.9332 deg N x-93.2112 deg W)或投影UTM坐标 (东距437679.183,北距4658340.891)2.向 TerraServer,返回位于边界框3内的所有分幅。 向TerraServer请求每个磁贴中的图像数据并将其粘贴 变成一个新的皮尔形象。
历史记录
这个版本0.9更新了pyterra的一些terraserver 过去几年发生的变化 跟上去。为了避免与 TerraServer USA商业产品,现在是基于四叉树的图像 缓存非常流行,terraserver的soap api看起来很奇怪。它 确实提供了一些独特的东西,比如元数据和一个可能 使其在其他上下文中有用。我用了pyterra作为avterra的基础, 这是用于获取TerraServer图像的ArcView 3.x扩展。我 怀疑pyterra缺乏维护意味着avterra处于混乱状态, 但有了这个更新,就有可能让它复活。
以前的版本是psf授权的,但是看起来 愚蠢的。0.9+现在是mit,许可文本包含在源版本中 应该是这样。
否则,将这个代码库引入现代性的努力主要是 虚荣,虽然我还有一两件东西可以用。看 在代码中,很难相信它已经快九岁了……
更改日志
0.9给pyterra带来了很多变化。首先,SOAPpy已在中删除 兑换suds。对于简单的任务来说,suds比soappy好得多,而且 像champ一样处理microsoft wsdl。泡沫运动简化了 内部相当多,应该更容易理解。
我还更新了setup.py,并基于distribute,使用 声明的PIL和suds的依赖项。另外,单元测试 必须手动运行现在可以通过一个简单的python setup.py test 召唤。
最后,外部api以多种方式进行了更新。其中包括 返回datetime实例(如果合适),支持PNG, 等。我已经有好几年没听说过有人用过pyterra了,我怀疑 我所做的api更改将产生很大的影响。
用法
pyterra现在包含两个模块–api和image。这些是以前的 terraimage.terraimage和pyterra.pyterra名称的混乱模块结构。
幕布RT示例
from pyTerra import image class Object: pass lg_ul = Object() lg_ul.X = 433714.25 lg_ul.Y = 4661043.80 lg_ul.Zone = 15 lg_lr = Object() lg_lr.X = 438603.35 lg_lr.Y = 4656591.96 lg_lr.Zone = 15 scale = 'Scale2m' theme = 'Ortho' img = image.TerraImage(ul, lr, scale, theme, lr.Zone, "/tmp") t = img.download() # <-- PIL.Image instance you can do what you need with
请参阅pyTerra.image以获取获取获取平铺后如何获取图像的更多示例 信息。tests/目录还包含对 各种api方法和每个方法的预期输出。