自动化地理空间特征工程库
geomancer的Python项目详细描述
geomancer是一个地理空间特征工程库。它利用地理空间 数据,例如OpenStreetMap (OSM)旁边的 像bigquery这样的数据仓库。您可以使用它来创建、共享和迭代 下游任务的地理空间要素(分析、建模, 可视化等)。
功能
geomancer可以对所有类型的矢量数据执行地理空间特征工程。 (即点、线、多边形)。
- 用于地理空间要素工程的要素基本体
- 能够切换数据仓库(bigquery、sqlite、postgresql(正在进行)
- 使用我们的拼写手册编译和共享您的功能
设置和安装
安装库
可以使用pip
安装Geomancer。
$ pip install geomancer
这将为我们支持的每个数据仓库安装all依赖项。如果 您希望仅对特定仓库执行此操作,然后可以添加 标识符:
$ pip install geomancer[bq] # For BigQuery
$ pip install geomancer[sqlite] # For SQLite
$ pip install geomancer[psql] # For PostgreSQL
或者,也可以克隆存储库,然后运行install
。
$ git clone https://github.com/thinkingmachines/geomancer.git
$ cd geomancer
$ python setup.py install
设置数据仓库
Geomancer由地理空间数据仓库提供支持:我们强烈建议使用 BigQuery作为您的数据仓库和 Geofabrik's OSM catalog作为您的 兴趣点和兴趣线的来源。
您可以在this link中看到设置说明
基本用法
所有的功能工程功能在风水测量被称为“咒语”。为了 例如,您希望得到每个 要点。
fromgeomancer.spellsimportDistanceToNearest# Load your dataset in a pandas dataframe# df = load_dataset()dist_spell=DistanceToNearest("supermarket",source_table="ph_osm.gis_osm_pois_free_1",feature_name="dist_supermarket",dburl="bigquery://project-name",).cast(df)
您可以使用格式{column}:{filter}
指定筛选器的类型。由
默认情况下,column
值为fclass
。例如,如果你想寻找
桥上的路,然后经过bridge:T
:
fromgeomancer.spellsimportDistanceToNearest# Load the dataset in a pandas dataframe# df = load_dataset()dist_spell=DistanceToNearest("bridge:T",source_table="ph_osm.gis_osm_roads_free_1",feature_name="dist_road_bridges",dburl="bigquery://project-name",).cast(df)
将多个拼写组合成一个“拼写手册”,可以将其导出为json文件。
fromgeomancer.spellsimportDistanceToNearestfromgeomancer.spellbookimportSpellBookspellbook=SpellBook([DistanceToNearest("supermarket",source_table="ph_osm.gis_osm_pois_free_1",feature_name="dist_supermarket",dburl="bigquery://project-name",),DistanceToNearest("embassy",source_table="ph_osm.gis_osm_pois_free_1",feature_name="dist_embassy",dburl="bigquery://project-name",),])spellbook.to_json("dist_supermarket_and_embassy.json")
您可以共享生成的文件,以便其他人可以重新使用您的功能提取 他们自己的数据集。
fromgeomancer.spellbookimportSpellBook# Load the dataset in a pandas dataframe# df = load_dataset()spellbook=SpellBook.read_json("dist_supermarket_and_embassy.json")dist_supermarket_and_embassy=spellbook.cast(df)
贡献
此项目对贡献者开放!贡献的形式可以是 功能请求、错误修复、文档、教程等等!我们高度重视 建议在提交Pull Request之前先提交问题。
只需分叉此存储库并发出拉取请求!我们非常感谢:
- 新功能的实现
- 错误报告
- 文档
- 测试
而且,我们有一个 CONTRIBUTING 还有一个CODE_OF_CONDUCT, 所以请看看那个!
许可证
麻省理工学院许可证©2019,思维机器数据科学