{ "info": { "author": "Cayetano Benavent", "author_email": "cayetano.benavent@geographica.gs", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "License :: OSI Approved :: GNU General Public License v2 (GPLv2)", "Operating System :: OS Independent", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Topic :: Scientific/Engineering :: GIS" ], "description": "Geodesic Lines to GIS\n=====================\n\n.. image:: https://travis-ci.org/GeographicaGS/GeodesicLinesToGIS.svg?branch=master\n :target: https://travis-ci.org/GeographicaGS/GeodesicLinesToGIS\n\nComputes geodesic lines from start point to end point and stores them in\na GIS file (Shapefile and GeoJSON). A geodesic is the shortest path\nbetween two points on a curved surface, like an ellipsoid of revolution\n(`Read more on\nWikipedia `__).\n\nThis code is builded on top of three libraries: Pyproj, Fiona and\nShapely.\n\nThere are several libraries to compute geodesic distances solving the geodesic\ninverse problem (to find the shortest path between two given points).\nI chose Pyproj because it works fine for this purpose and is an interface to a\nwidely used library in the geospatial industry (Proj4 C library). Actually Proj4 C\nlibrary (>= v.4.9.0) routines used to compute geodesic distance are a simple transcription\nfrom excellent Geographiclib C++ Library developed by Charles Karney. Proj4 C library < v.4.9.0\nuses Paul D. Thomas algorithms. You can see more about this here:\n`GeodeticMusings: a little benchmark of three Python libraries to\ncompute geodesic\ndistances `__.\n\nAll computations are performed with WGS84 ellipsoid and the CRS\n(Coordinate Reference System) of GIS file outputs are EPSG:4326.\n\nIn the examples section you can see the problem of calculating lines\ncrossing antimeridian is solved.\n\nNumpy array is supported as inputa data.\n\nGeodesic lines examples\n-----------------------\n\nBelow are shown different geodesic lines computed with this library on\nseveral map projections. Also you can see the relation with rhumb lines\n(loxodromic) and straight lines between the same points:\n\nhttps://github.com/GeographicaGS/GeodesicLinesToGIS\n\n\nRequirements\n------------\n\n- Pyproj, https://github.com/jswhit/pyproj\n- Fiona, https://github.com/Toblerity/Fiona\n- Shapely, https://github.com/Toblerity/Shapely\n\nUsage\n-----\n\nUsage is very simple. There are two modes:\n- Single input (one\nstart/end).\n- Multiple input (more than one start/end).\n\nSingle input\n~~~~~~~~~~~~\n\nSingle input usage.\n\n.. code:: python\n\n from geodesiclinestogis import GeodesicLine2Gisfile\n\nlons\\_lats: input coordinates. (start longitude, start latitude, end\nlongitude, end latitude)\n\n.. code:: python\n\n lons_lats = (-3.6,40.5,-118.4,33.9)\n\nFolder path to store output file and filename:\n\n.. code:: python\n\n folderpath = '/tmp'\n\n layername = \"geodesicline\"\n\nCreate object. You can pass two parameters:\n- antimeridian: [True, False] to solve antimeridian problem (default is True).\n- prints: [True, False] print output messages (default is True).\n\n.. code:: python\n\n gtg = GeodesicLine2Gisfile()\n\nLaunch computations. You can pass two parameter:\n- lons\\_lats: input coords returned by gcComp.\n- km\\_pts: compute one point each n km (default is 20 km)\n\n.. code:: python\n\n cd = gtg.gdlComp(lons_lats, km_pts=30)\n\nDump geodetic line coords to Linestring Feature and store in a GIS file.\n\nOutput formats: \"ESRI Shapefile\" (default), \"GeoJSON\"\n\n.. code:: python\n\n # shapefile output\n gtg.gdlToGisFile(cd, folderpath, layername)\n\n # geojson output\n gtg.gdlToGisFile(cd, folderpath, layername, fmt=\"GeoJSON\")\n\nMultiple input\n~~~~~~~~~~~~~~\n\nMultiple input usage.\n\n.. code:: python\n\n from geodesiclinestogis import GeodesicLine2Gisfile\n\n data = [\n (-6.,37.,-145.,11.),\n (-150.,37.,140.,11.),\n (-6.,37.,120.,50.),\n (-3.6,40.5,-118.4,33.9),\n (-118.4,33.9,139.8,35.5),\n (-118.4,33.9,104.,1.35),\n (-118.4,33.9,151.,-33.9),\n (-20.4,33.9,178.,-33.9)\n ]\n\n folderpath = \"/tmp/geod_line\"\n\n layername = \"geodesicline\"\n\n gtg = GeodesicLine2Gisfile()\n\n gtg.gdlToGisFileMulti(data, folderpath, layername)\n\nNumpy array (multiple) input\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nNumpy array input usage.\n\n.. code:: python\n\n import numpy as np\n from geodesiclinestogis import GeodesicLine2Gisfile\n\n data_ = [\n (-6.,37.,-145.,11.),\n (-150.,37.,140.,11.),\n (-6.,37.,120.,50.),\n (-3.6,40.5,-118.4,33.9),\n (-118.4,33.9,139.8,35.5),\n (-118.4,33.9,104.,1.35),\n (-118.4,33.9,151.,-33.9),\n (-20.4,33.9,178.,-33.9)\n ]\n\n data = np.array(data_)\n\n folderpath = \"/tmp/geod_line_np\"\n\n layername = \"geodesicline\"\n\n gtg = GeodesicLine2Gisfile()\n\n gtg.gdlToGisFileMulti(data, folderpath, layername)\n\nAbout author\n------------\n\nDeveloped by Cayetano Benavent. GIS Analyst at Geographica.\n\nhttp://www.geographica.gs\n\nLicense\n-------\n\nThis program is free software; you can redistribute it and/or modify it\nunder the terms of the GNU General Public License as published by the\nFree Software Foundation; either version 2 of the License, or (at your\noption) any later version.\n\nThird-Party licenses\n--------------------\n\nYou can read Pyproj, Fiona and Shapely licenses in the next links:\nhttps://raw.githubusercontent.com/jswhit/pyproj/master/LICENSE\nhttps://raw.githubusercontent.com/Toblerity/Shapely/master/LICENSE.txt\nhttps://raw.githubusercontent.com/Toblerity/Fiona/master/LICENSE.txt", "description_content_type": null, "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://github.com/GeographicaGS/GeodesicLinesToGIS", "keywords": "geodesic GIS antimeridian", "license": "GPLv2", "maintainer": "", "maintainer_email": "", "name": "GeodesicLinesToGIS", "package_url": "https://pypi.org/project/GeodesicLinesToGIS/", "platform": "", "project_url": "https://pypi.org/project/GeodesicLinesToGIS/", "project_urls": { "Homepage": "http://github.com/GeographicaGS/GeodesicLinesToGIS" }, "release_url": "https://pypi.org/project/GeodesicLinesToGIS/0.5.0/", "requires_dist": null, "requires_python": "", "summary": "Computes geodesic lines from start point to end point and stores them in a GIS file (Shapefile and GeoJSON). The problem of geodesic lines crossing antimeridian is solved.", "version": "0.5.0" }, "last_serial": 2701384, "releases": { "0.3": [ { "comment_text": "", "digests": { "md5": "9ad05835cc88871724c891ae7f311964", "sha256": "2d64991a44712e03f5b0a5edacd5a9b7e528914b2e076a90ac6277b58c924298" }, "downloads": -1, "filename": "GeodesicLinesToGIS-0.3.tar.gz", "has_sig": false, "md5_digest": "9ad05835cc88871724c891ae7f311964", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3933, "upload_time": "2015-05-02T10:35:41", "url": "https://files.pythonhosted.org/packages/93/21/be3cdcae3b514347adc0132b0be1ff47fa5b95d82dbd8955f67900d74fb8/GeodesicLinesToGIS-0.3.tar.gz" } ], "0.3.1": [ { "comment_text": "", "digests": { "md5": "70fbe4e667146d292d6fae27d8e50975", "sha256": "69d2bbe0dcf47b461219a0eaaf1cdb23084f1e1a6edc7b01203c719cce19754b" }, "downloads": -1, "filename": "GeodesicLinesToGIS-0.3.1.tar.gz", "has_sig": false, "md5_digest": "70fbe4e667146d292d6fae27d8e50975", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6681, "upload_time": "2015-05-02T10:45:05", "url": "https://files.pythonhosted.org/packages/07/ab/4fd9e153771bffbdf7b784e563fb89b70aed99f116272ee28a70b9914be0/GeodesicLinesToGIS-0.3.1.tar.gz" } ], "0.3.2": [ { "comment_text": "", "digests": { "md5": "2c8d9920e371b5e01fe8d6a0b7908807", "sha256": "eb1b05891356274556de37975d7911fcefc87be2840c8f8d4b2a14d6e0a7267c" }, "downloads": -1, "filename": "GeodesicLinesToGIS-0.3.2.tar.gz", "has_sig": false, "md5_digest": "2c8d9920e371b5e01fe8d6a0b7908807", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6922, "upload_time": "2015-05-07T21:20:57", "url": "https://files.pythonhosted.org/packages/c8/18/482372d570e86d0989678c90a44ff452f48b3cda6babf7b5232ac7d58b89/GeodesicLinesToGIS-0.3.2.tar.gz" } ], "0.4.2": [ { "comment_text": "", "digests": { "md5": "998f42c818b5d7f3448982b69effb357", "sha256": "9958327335a26c9004247a603c603ac9334093a52bb910908ff9fe213a4c226b" }, "downloads": -1, "filename": "GeodesicLinesToGIS-0.4.2-py3.5.egg", "has_sig": false, "md5_digest": "998f42c818b5d7f3448982b69effb357", "packagetype": "bdist_egg", "python_version": "3.5", "requires_python": null, "size": 17122, "upload_time": "2017-03-09T23:51:17", "url": "https://files.pythonhosted.org/packages/b1/9d/2cc509c582fbc6de27c1e04dc54adbf6866e5b61b7868179724efa575c40/GeodesicLinesToGIS-0.4.2-py3.5.egg" }, { "comment_text": "", "digests": { "md5": "beb918d16e55bee2cfa9ae53fb1136c5", "sha256": "89fc72705850a623b9f8155a14b870c0e0da9fff70be63a428d04ed8bc5e33ad" }, "downloads": -1, "filename": "GeodesicLinesToGIS-0.4.2-py3.6.egg", "has_sig": false, "md5_digest": "beb918d16e55bee2cfa9ae53fb1136c5", "packagetype": "bdist_egg", "python_version": "3.6", "requires_python": null, "size": 16977, "upload_time": "2017-03-09T23:51:18", "url": "https://files.pythonhosted.org/packages/54/ae/71181248c488574017d7c4b4d8751e2b8c559ed9c82133af2db804c527cd/GeodesicLinesToGIS-0.4.2-py3.6.egg" }, { "comment_text": "", "digests": { "md5": "0e2a1dba111ab2bdcce1d11292f0dbaf", "sha256": "9078a15db702df7096be607450147a634c52524a2cc8d4f830e45b3cf6b1bae0" }, "downloads": -1, "filename": "GeodesicLinesToGIS-0.4.2.tar.gz", "has_sig": false, "md5_digest": "0e2a1dba111ab2bdcce1d11292f0dbaf", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7984, "upload_time": "2015-11-09T01:22:59", "url": "https://files.pythonhosted.org/packages/02/f1/33d9cf64d7a1cd40bb91f5c08cac51dd4c664c6af1e68df1b6756451d19d/GeodesicLinesToGIS-0.4.2.tar.gz" } ], "0.4.3": [ { "comment_text": "", "digests": { "md5": "132d16c9c76376dd3a401fb9400aa48a", "sha256": "0d0f80fd8bf08a850aea30c5aac98e6ba76bacd8d4a015c2bd244189784cd5ff" }, "downloads": -1, "filename": "GeodesicLinesToGIS-0.4.3.tar.gz", "has_sig": false, "md5_digest": "132d16c9c76376dd3a401fb9400aa48a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7124, "upload_time": "2017-03-09T23:51:20", "url": "https://files.pythonhosted.org/packages/89/12/82a649e007ad18b0a949c41df38bd98f971a225951561806ee68693b3487/GeodesicLinesToGIS-0.4.3.tar.gz" } ], "0.5.0": [ { "comment_text": "", "digests": { "md5": "26abe825fc66047dbf9486a84497a2d3", "sha256": "d5af55b7610f80590a698009516f008294c5dafcbeca5c9dfc01d2343a073db5" }, "downloads": -1, "filename": "GeodesicLinesToGIS-0.5.0.tar.gz", "has_sig": false, "md5_digest": "26abe825fc66047dbf9486a84497a2d3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7372, "upload_time": "2017-03-13T01:10:31", "url": "https://files.pythonhosted.org/packages/d5/76/5953b9d899e8ebb100b1ee1e9db79063417be695e55c5edfdfaee6225751/GeodesicLinesToGIS-0.5.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "26abe825fc66047dbf9486a84497a2d3", "sha256": "d5af55b7610f80590a698009516f008294c5dafcbeca5c9dfc01d2343a073db5" }, "downloads": -1, "filename": "GeodesicLinesToGIS-0.5.0.tar.gz", "has_sig": false, "md5_digest": "26abe825fc66047dbf9486a84497a2d3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7372, "upload_time": "2017-03-13T01:10:31", "url": "https://files.pythonhosted.org/packages/d5/76/5953b9d899e8ebb100b1ee1e9db79063417be695e55c5edfdfaee6225751/GeodesicLinesToGIS-0.5.0.tar.gz" } ] }