该网站,geoJSON和python的新功能。
我的目标是读取带有geoJSON数据的文件,并使用它生成形状以供使用python脚本的应用程序使用。 Python能够读取它并进行一些操作。我找到了一些示例,但是它们没有正确地遍历geoJSON层次结构。
我正在寻找有关如何从geoJSON数据文件中提取几何数据的库或说明。换句话说,我想说“获取要素列表...”-然后,对于每个要素,我想获取几何图形,读取类型并获取其坐标该特定几何项目。对功能列表中的每个项目重复上述步骤。
有什么建议吗?
#1 楼
使用json
库加载GeoJSON文件时,会得到一个dict
,其中包含一个条目features
,其中包含要素列表。每个功能又由一个dict
组成,其中除其他外,还包含一个条目geometry
。 geometry
是包含条目dict
和type
的coordinates
。因此您可以像这样遍历您的GeoJSON文件:import json
with open('test.json') as f:
data = json.load(f)
for feature in data['features']:
print feature['geometry']['type']
print feature['geometry']['coordinates']
#2 楼
我的lib PyGeoj特别是作为geojson文件的读写器,它具有一个简单的API,可将文件内容转换为具有属性的对象,因此您不必直接处理字典。它还具有一些方便的方法,例如为整个功能集合或仅为每个功能计算并添加bbox。因此,例如,以下代码将完成发布者要求的操作:
import pygeoj
testfile = pygeoj.load("test.geojson")
for feature in testfile:
print feature.geometry.type
print feature.geometry.coordinates
该库还可以从/导入和导出对象通过
_geo_interface_
协议连接到其他库,以及项目Github页面上的文档中可以看到的其他内容。 评论
您的图书馆很棒,我今天才开始使用它
– Ziggy
16年4月27日在18:58
如果我想开始使用python解析geojson进行网络映射,那么使用的最佳软件是什么?
– Ziggy
16年4月27日在18:59
对于使用GeoJson的Web应用程序,请使用Leaflet javascript库。这是一个很好的示例线程:gis.stackexchange.com/questions/68489/…
–评论
17 Mar 28 '17在15:30
#3 楼
有许多地理空间Python模块可将GeoJSON转换为shapefile(以及相反):Fiona
PySAL
Pyshp 1.7及更高版本
GDAL / OGR
带有新API的PyQGIS
python-geojson
请参阅Python Geo_interface应用程序
评论
很好的建议。这比我尝试做的要容易得多。我确实需要将负载更改为负载,并且numpy不是当前安装的python中的库。感谢您的快速回复。我现在可以继续前进。
– Mike Weber
13年10月8日在20:17
在技术上不需要Numpy。 feature ['geometry'] ['coordinates'](上面)只是一个Python列表。
–傻瓜
13年10月8日在21:13
@sgillies:好点,肖恩。为了避免混淆,我删除了numpy的用法。
–杰克
13-10-8在21:18