{ "info": { "author": "Howard Butler", "author_email": "hobu.inc@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "Intended Audience :: Science/Research", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python", "Topic :: Scientific/Engineering :: GIS" ], "description": "pyTerra: Python Support for the Microsoft TerraServer\n------------------------------------------------------------------------------\n\npyTerra is a Python module that allows you to make requests to Microsoft's\nTerraServer (http://msrmaps.com/). With it, you can download\n(older) cartographic images for any almost any geographic extent in the US.\n\nThe TerraServer has almost complete coverage of the United States for two very\nimportant cartographic products, topographic maps and digital orthographic\nphotos (sometimes called DOQs or DOQQs). You can find out more about DOQs here\n(http://mapping.usgs.gov/www/ndop/) and more about what topographic maps are\nhere (http://mac.usgs.gov/mac/isb/pubs/booklets/symbols/). The TerraServer \nhasn't been updated in a number of years, and there are now many other imagery \nsources available, but the TerraServer was on of the first with nation-wide \ncoverage. \n\nAll methods reflect the TerraService API. See the WSDL file at\nhttp://msrmaps.com/TerraService2.asmx?WSDL for more information about how\nto make the calls.\n\nThe TerraServer stores images as a pyramid of tiles. Each tile is always 200\npixels square, independent of its actual ground resolution. Aerial photos are\navailable in 1, 2, 4, 8, 16, 32, and 64 m resolutions. Topographic maps are\navailable in all of the above resolutions except 1-meter.\n\nGetting an image for an extent involves three steps: 1. Define a bounding box\nfor the area you want to download. A bounding box is a box defined by the upper\nleft point and lower left point of the box. The point can be in geographic\ncoordinates (42.9332 deg N x -93.2112 deg W) or projected UTM coordinates\n(437679.183 Easting and 4658340.891 Northing) 2. Make a request to the\nTerraServer that returns all of the tiles that fall within the bounding box 3.\nMake a request to the TerraServer for the image data in each tile and paste it\ninto a new PIL image.\n\nHistory\n..............................................................................\n\nThis version, 0.9, brings pyTerra up-to-date with a number of TerraServer \nchanges that have happened in the past couple of years that I have not kept \nup with. The API has moved around a little bit to avoid confusion with the \nTerraServer USA commercial offering, and now that quad tree-based image \ncaches are all the rage, TerraServer's SOAP API seems quite quaint. It \ndoes offer some unique things like metadata and a gazetteer which might \nmake it useful in other contexts. I had used pyTerra as the basis for avTerra, \nwhich was an ArcView 3.x extension for fetching TerraServer imagery. I \nsuspect that pyTerra's lack of maintenance has meant avTerra is in disarray, \nbut with this update, there's a possibility of it being brought back to life. \n\nThe previous versions of this code were PSF-licensed, but that seems kind of \nsilly. 0.9+ is now MIT, with the licensing text included in the source release \nas it should be. \n\nOtherwise, the effort to bring this codebase to modernity was mostly one \nof vanity, though I still have one or two things that still could use it. Looking \nat the code, it's hard to believe that it is nearly nine years old...\n\nChangelog\n..............................................................................\n\n0.9 brings a number of changes to pyTerra. First, `SOAPpy`_ has been removed in \nexchange for `suds`_. Suds is much nicer than SOAPpy for simple tasks, and it \nhandles the Microsoft WSDL like a champ. The movement to Suds simplified the \ninternals quite a bit, and it should be much more straightforward to follow.\n\nI have also modernized the ``setup.py`` and based it on `distribute`_, with \ndependencies of `PIL`_ and `suds`_ declared. Additionally, the unit tests, which \nhad to be run manually are now available via a simple ``python setup.py test``\ninvocation.\n\nFinally, the external API has been updated in a number of ways. These include\nthings like returning `datetime` instances where appropriate, PNG support,\netc. Having not heard of anyone using pyTerra in a number of years, I doubt\nthe API changes I have made will have much impact.\n\nUsage\n..............................................................................\n\npyTerra now contains two modules -- ``api`` and ``image``. These were formerly \na messy module structure of TerraImage.TerraImage and pyTerra.pyTerra names. \n\nA short example\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n::\n \n from pyTerra import image\n \n class Object:\n pass\n\n lg_ul = Object()\n lg_ul.X = 433714.25\n lg_ul.Y = 4661043.80\n lg_ul.Zone = 15\n\n lg_lr = Object()\n lg_lr.X = 438603.35\n lg_lr.Y = 4656591.96\n lg_lr.Zone = 15\n\n scale = 'Scale2m'\n theme = 'Ortho' \n\n img = image.TerraImage(ul, lr, scale, theme, lr.Zone, \"/tmp\")\n t = img.download() # <-- PIL.Image instance you can do what you need with\n \n\nSee ``pyTerra.image`` for more examples how to fetch imagery after fetching tile \ninformation. The tests/ directory also contains good example invocations of the \nvarious API methods and expected output of each.\n\n.. _`SOAPpy`: http://pypi.python.org/pypi/SOAPpy\n.. _`suds`: http://pypi.python.org/pypi/suds\n.. _`distribute` : http://pypi.python.org/pypi/distribute\n.. _`PIL`: http://pypi.python.org/pypi/PIL", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://github.com/hobu/pyterra/", "keywords": null, "license": "UNKNOWN", "maintainer": null, "maintainer_email": null, "name": "pyTerra", "package_url": "https://pypi.org/project/pyTerra/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/pyTerra/", "project_urls": { "Download": "UNKNOWN", "Homepage": "http://github.com/hobu/pyterra/" }, "release_url": "https://pypi.org/project/pyTerra/0.9/", "requires_dist": null, "requires_python": null, "summary": "Terraserver Module for Python", "version": "0.9" }, "last_serial": 796930, "releases": { "0.6": [], "0.7": [ { "comment_text": "", "digests": { "md5": "80c172bb9bd8bfe499866ac72151ecee", "sha256": "a8aa79b9b1cb0a6278159dcf1020d01fe39566bb7885852004874fd22c709b60" }, "downloads": -1, "filename": "pyTerra-0.7.tar.gz", "has_sig": false, "md5_digest": "80c172bb9bd8bfe499866ac72151ecee", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 59736, "upload_time": "2009-06-01T21:21:11", "url": "https://files.pythonhosted.org/packages/1c/b3/01fa7a68e4d81eac66c7b35d440742c2114c7ae8e2999c1dcc6445d91409/pyTerra-0.7.tar.gz" } ], "0.8": [ { "comment_text": "", "digests": { "md5": "9a9bc61c65e81da7277c3d1c72f558cf", "sha256": "bf19354837cb1bd0f44305bc1ac4b1b0378bc043ae16aed2dfff6832c432f39f" }, "downloads": -1, "filename": "pyTerra-0.8-py2.5.egg", "has_sig": false, "md5_digest": "9a9bc61c65e81da7277c3d1c72f558cf", "packagetype": "bdist_egg", "python_version": "2.5", "requires_python": null, "size": 258607, "upload_time": "2009-09-08T21:26:44", "url": "https://files.pythonhosted.org/packages/81/03/9fff6d36717f59e09a4c74f46d16189438071ddc191da427332e92f9b891/pyTerra-0.8-py2.5.egg" }, { "comment_text": "", "digests": { "md5": "6a67e8cd45caf29b7f73fab775fc2981", "sha256": "7b7d00718fda9ad5fbecc56fc02e404316b02f5d4d54b32ae6e6bdd9cc429f25" }, "downloads": -1, "filename": "pyTerra-0.8.tar.gz", "has_sig": false, "md5_digest": "6a67e8cd45caf29b7f73fab775fc2981", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 93803, "upload_time": "2009-09-08T21:26:38", "url": "https://files.pythonhosted.org/packages/b3/90/d3352f46e7a5bf2de793bdc28c07d684842ed12208e11e3ca1577a42d56b/pyTerra-0.8.tar.gz" } ], "0.9": [ { "comment_text": "", "digests": { "md5": "7b3fdae132376b96932baa5e257522c2", "sha256": "62ac4986ea848c62dbe88587be868f4c10eb034918dcc5783f54a4a0f4f0c6ca" }, "downloads": -1, "filename": "pyTerra-0.9-py2.6.egg", "has_sig": false, "md5_digest": "7b3fdae132376b96932baa5e257522c2", "packagetype": "bdist_egg", "python_version": "2.6", "requires_python": null, "size": 15852, "upload_time": "2012-03-11T04:33:15", "url": "https://files.pythonhosted.org/packages/1f/67/9fa0c962d848b91ff9e7740984faed1fb3630e0fd7a7f03c7018c3c91c8c/pyTerra-0.9-py2.6.egg" }, { "comment_text": "", "digests": { "md5": "232b34eb2fbfd14104657b395e8d35d3", "sha256": "2d8ec9e2bf44a92e6f19074bda232b81d64b8a728d5d71da724a4db8d449c828" }, "downloads": -1, "filename": "pyTerra-0.9.tar.gz", "has_sig": false, "md5_digest": "232b34eb2fbfd14104657b395e8d35d3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17938, "upload_time": "2012-03-11T04:33:08", "url": "https://files.pythonhosted.org/packages/4c/9b/2c0e4489194fc67e6f139e0b6f4f7fbb6d343dcf360257b3d9f72bec127c/pyTerra-0.9.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "7b3fdae132376b96932baa5e257522c2", "sha256": "62ac4986ea848c62dbe88587be868f4c10eb034918dcc5783f54a4a0f4f0c6ca" }, "downloads": -1, "filename": "pyTerra-0.9-py2.6.egg", "has_sig": false, "md5_digest": "7b3fdae132376b96932baa5e257522c2", "packagetype": "bdist_egg", "python_version": "2.6", "requires_python": null, "size": 15852, "upload_time": "2012-03-11T04:33:15", "url": "https://files.pythonhosted.org/packages/1f/67/9fa0c962d848b91ff9e7740984faed1fb3630e0fd7a7f03c7018c3c91c8c/pyTerra-0.9-py2.6.egg" }, { "comment_text": "", "digests": { "md5": "232b34eb2fbfd14104657b395e8d35d3", "sha256": "2d8ec9e2bf44a92e6f19074bda232b81d64b8a728d5d71da724a4db8d449c828" }, "downloads": -1, "filename": "pyTerra-0.9.tar.gz", "has_sig": false, "md5_digest": "232b34eb2fbfd14104657b395e8d35d3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17938, "upload_time": "2012-03-11T04:33:08", "url": "https://files.pythonhosted.org/packages/4c/9b/2c0e4489194fc67e6f139e0b6f4f7fbb6d343dcf360257b3d9f72bec127c/pyTerra-0.9.tar.gz" } ] }