{ "info": { "author": "Thinking Machines Data Science", "author_email": "hello@thinkingmachin.es", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Intended Audience :: Developers", "Intended Audience :: Education", "Intended Audience :: Science/Research", "License :: OSI Approved :: MIT License", "Natural Language :: English", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Topic :: Scientific/Engineering", "Topic :: Scientific/Engineering :: Artificial Intelligence", "Topic :: Scientific/Engineering :: GIS", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "![Geomancer Logo](https://storage.googleapis.com/tm-geomancer/assets/header.png)\n---\n\n[![PyPI](https://img.shields.io/pypi/v/geomancer.svg?color=brightgreen&style=flat-square)](https://pypi.org/project/geomancer/)\n[![Build Status](https://img.shields.io/badge/dynamic/json.svg?color=brightgreen&label=build&query=status&url=https%3A%2F%2Fcloud.drone.io%2Fapi%2Frepos%2Fthinkingmachines%2Fgeomancer%2Fbuilds%2Flatest%3Fref%3Drefs%2Fheads%2Fmaster&style=flat-square)](https://cloud.drone.io/thinkingmachines/geomancer)\n[![Read the Docs](https://img.shields.io/readthedocs/geomancer.svg?style=flat-square)](https://geomancer.readthedocs.io/en/latest/)\n[![Coveralls github](https://img.shields.io/coveralls/github/thinkingmachines/geomancer.svg?style=flat-square)](https://coveralls.io/github/thinkingmachines/geomancer)\n[![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg?style=flat-square)](https://opensource.org/licenses/MIT)\n\nGeomancer is a geospatial feature engineering library. It leverages geospatial\ndata such as [OpenStreetMap (OSM)](https://www.openstreetmap.org/) alongside a\ndata warehouse like BigQuery. You can use this to create, share, and iterate\ngeospatial features for your downstream tasks (analysis, modelling,\nvisualization, etc.). \n\n## Features\n\nGeomancer can perform geospatial feature engineering for all types of vector data\n(i.e. points, lines, polygons).\n\n- Feature primitives for geospatial feature engineering\n- Ability to switch out data warehouses (BigQuery, SQLite, PostgreSQL (*In Progress*))\n- Compile and share your features using our SpellBook \n\n## Setup and Installation\n\n### Installing the library\n\nGeomancer can be installed using `pip`.\n\n```\n$ pip install geomancer\n```\n\nThis will install **all** dependencies for every data-warehouse we support. If\nyou wish to do this only for a specific warehouse, then you can add an\nidentifier:\n\n```\n$ pip install geomancer[bq] # For BigQuery\n$ pip install geomancer[sqlite] # For SQLite\n$ pip install geomancer[psql] # For PostgreSQL\n```\n\nAlternatively, you can also clone the repository then run `install`.\n\n```\n$ git clone https://github.com/thinkingmachines/geomancer.git\n$ cd geomancer\n$ python setup.py install\n```\n\n### Setting up your data warehouse\n\nGeomancer is powered by a geospatial data warehouse: we highly-recommend using\n[BigQuery](https://cloud.google.com/bigquery/) as your data warehouse and\n[Geofabrik's OSM catalog](https://www.geofabrik.de/data/download.html) as your\nsource of Points and Lines of interest. \n\n[![Geomancer architecture](https://storage.googleapis.com/tm-geomancer/assets/architecture.png\n)](https://github.com/thinkingmachines/geomancer)\n\nYou can see the set-up instructions in [this link](https://geomancer.readthedocs.io/en/latest/setup.html#setting-up-your-data-warehouse)\n\n## Basic Usage\n\nAll of the feature engineering functions in Geomancer are called \"spells\". For\nexample, you want to get the distance to the nearest supermarket for each\npoint.\n\n```python\nfrom geomancer.spells import DistanceToNearest\n\n# Load your dataset in a pandas dataframe\n# df = load_dataset()\n\ndist_spell = DistanceToNearest(\n \"supermarket\",\n source_table=\"ph_osm.gis_osm_pois_free_1\",\n feature_name=\"dist_supermarket\",\n dburl=\"bigquery://project-name\",\n).cast(df)\n```\n\nYou can specify the type of filter using the format `{column}:{filter}`. By\ndefault, the `column` value is `fclass`. For example, if you wish to look for\nroads on a bridge, then pass `bridge:T`:\n\n```python\nfrom geomancer.spells import DistanceToNearest\n\n# Load the dataset in a pandas dataframe\n# df = load_dataset()\n\ndist_spell = DistanceToNearest(\n \"bridge:T\",\n source_table=\"ph_osm.gis_osm_roads_free_1\",\n feature_name=\"dist_road_bridges\",\n dburl=\"bigquery://project-name\",\n).cast(df)\n```\n\nCompose multiple spells into a \"spell book\" which you can export as a JSON file.\n\n```python\nfrom geomancer.spells import DistanceToNearest\nfrom geomancer.spellbook import SpellBook\n\nspellbook = SpellBook([\n DistanceToNearest(\n \"supermarket\",\n source_table=\"ph_osm.gis_osm_pois_free_1\",\n feature_name=\"dist_supermarket\",\n dburl=\"bigquery://project-name\",\n ),\n DistanceToNearest(\n \"embassy\",\n source_table=\"ph_osm.gis_osm_pois_free_1\",\n feature_name=\"dist_embassy\",\n dburl=\"bigquery://project-name\",\n ),\n])\nspellbook.to_json(\"dist_supermarket_and_embassy.json\")\n```\n\nYou can share the generated file so other people can re-use your feature extractions\nwith their own datasets.\n\n```python\nfrom geomancer.spellbook import SpellBook\n\n# Load the dataset in a pandas dataframe\n# df = load_dataset()\n\nspellbook = SpellBook.read_json(\"dist_supermarket_and_embassy.json\")\ndist_supermarket_and_embassy = spellbook.cast(df)\n```\n\n## Contributing\n\nThis project is open for contributors! Contibutions can come in the form of\nfeature requests, bug fixes, documentation, tutorials and the like! We highly\nrecommend to file an Issue first before submitting a [Pull\nRequest](https://help.github.com/en/articles/creating-a-pull-request).\n\nSimply fork this repository and make a Pull Request! We'd definitely appreciate:\n\n- Implementation of new features\n- Bug Reports\n- Documentation\n- Testing\n\nAlso, we have a\n[CONTRIBUTING](https://github.com/thinkingmachines/geomancer/blob/master/CONTRIBUTING.rst)\nand a [CODE_OF_CONDUCT](https://github.com/thinkingmachines/geomancer/blob/master/CODE_OF_CONDUCT.rst),\nso please check that one out!\n\n## License\n\nMIT License \u00a9 2019, Thinking Machines Data Science", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/thinkingmachines/geomancer", "keywords": "osm,python client,geospatial,bigquery,machine learning,feature engineering", "license": "MIT license", "maintainer": "", "maintainer_email": "", "name": "geomancer", "package_url": "https://pypi.org/project/geomancer/", "platform": "", "project_url": "https://pypi.org/project/geomancer/", "project_urls": { "Homepage": "https://github.com/thinkingmachines/geomancer" }, "release_url": "https://pypi.org/project/geomancer/1.1.0/", "requires_dist": null, "requires_python": "", "summary": "Automated Geospatial Feature Engineering Library", "version": "1.1.0" }, "last_serial": 5261668, "releases": { "1.0.0": [ { "comment_text": "", "digests": { "md5": "6193ddb2e0f979f1b05c6dfedc923eec", "sha256": "d2ac4a1829e5f83a1b376580f07a573bc7fed58e9b9e201909fa654bb4b79a34" }, "downloads": -1, "filename": "geomancer-1.0.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "6193ddb2e0f979f1b05c6dfedc923eec", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 21956, "upload_time": "2019-03-28T16:08:56", "url": "https://files.pythonhosted.org/packages/e1/d5/2517a76601604f65f27ed50310ac7145ed6cca55039cb8b59a5adc66d112/geomancer-1.0.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "bf07bae7a77747235c63a3b5585ed766", "sha256": "0e0a96dc91e0c86a5f516d49cf6003cb285e2cb21373b88ae41f823d24e0dc91" }, "downloads": -1, "filename": "geomancer-1.0.0.tar.gz", "has_sig": false, "md5_digest": "bf07bae7a77747235c63a3b5585ed766", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 86744, "upload_time": "2019-03-28T16:08:58", "url": "https://files.pythonhosted.org/packages/f7/0b/6c9a60c1b9dec18d1d2b07863284567d54d4608b25699bef9056036d66c8/geomancer-1.0.0.tar.gz" } ], "1.0.0a0": [ { "comment_text": "", "digests": { "md5": "1b871134fc1d1ab6d3135322a39ffa45", "sha256": "a0bdaaa94c1f58e6f1c4f2bb88e50b47d53c6874f58f9165ac908b54965e0f33" }, "downloads": -1, "filename": "geomancer-1.0.0a0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "1b871134fc1d1ab6d3135322a39ffa45", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 4229, "upload_time": "2019-02-28T03:56:59", "url": "https://files.pythonhosted.org/packages/ac/89/512e6604c71aa76671ad87bc5d4fe1b4106f7c10c7707310f7d0eff46100/geomancer-1.0.0a0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f83eb979acca66c22f02d7db3515ea57", "sha256": "c89c2da14eb495820ae9619a866d76e80de919e9c301706f3438c944be32a6c3" }, "downloads": -1, "filename": "geomancer-1.0.0a0.tar.gz", "has_sig": false, "md5_digest": "f83eb979acca66c22f02d7db3515ea57", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3255, "upload_time": "2019-02-28T03:57:01", "url": "https://files.pythonhosted.org/packages/06/3f/9c58525f08cd7de77798a80a437c0fd1002aea514a55d35002e695df4ea1/geomancer-1.0.0a0.tar.gz" } ], "1.0.1": [ { "comment_text": "", "digests": { "md5": "7d2f96763dca4321718f329e1009fa66", "sha256": "ea3debb950e2dcf3430510ef2bafbe1f5a84ee0466d402750b31b32c8221d7ee" }, "downloads": -1, "filename": "geomancer-1.0.1.tar.gz", "has_sig": false, "md5_digest": "7d2f96763dca4321718f329e1009fa66", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 29709, "upload_time": "2019-04-09T09:13:25", "url": "https://files.pythonhosted.org/packages/0f/76/56b882493eda6e2c53f867df90a849cde93c4edf1d10adafd19254b212c0/geomancer-1.0.1.tar.gz" } ], "1.1.0": [ { "comment_text": "", "digests": { "md5": "555cdd0cfc09d7d849705858f7c5fb21", "sha256": "6567f33e35afa5ff16163eb77378a7e8937cbd4af8f8a9e40626736a8edaa033" }, "downloads": -1, "filename": "geomancer-1.1.0.tar.gz", "has_sig": false, "md5_digest": "555cdd0cfc09d7d849705858f7c5fb21", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 29406, "upload_time": "2019-05-06T01:58:35", "url": "https://files.pythonhosted.org/packages/9e/00/a73db75c0cf44991db7d2f6b0223c52f719a9e79b5901bb64d7d2fc31ced/geomancer-1.1.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "555cdd0cfc09d7d849705858f7c5fb21", "sha256": "6567f33e35afa5ff16163eb77378a7e8937cbd4af8f8a9e40626736a8edaa033" }, "downloads": -1, "filename": "geomancer-1.1.0.tar.gz", "has_sig": false, "md5_digest": "555cdd0cfc09d7d849705858f7c5fb21", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 29406, "upload_time": "2019-05-06T01:58:35", "url": "https://files.pythonhosted.org/packages/9e/00/a73db75c0cf44991db7d2f6b0223c52f719a9e79b5901bb64d7d2fc31ced/geomancer-1.1.0.tar.gz" } ] }