以json格式检索GeoPandas数据框中的几何图形[编辑:使用.to_json()]

时间:2018-06-19 20:28:08

标签: geopandas

已经将geojson文件加载到GeoPandas中,我得到了预期的名为“ geometry”的列/要素,其中包含多边形和多面体。

如何再次将此对象作为json或Python字典导出?

在当前形式下,它是一个geopandas.geoseries.GeoSeries对象。

例如,我需要类似的东西:

geometry": { "type": "MultiPolygon", "coordinates": [ [ [ [ -73.76336816099996, 40.726165522000031 ], [ -73.762895342999968, 40.726101379000056 ], [ -73.761940118999973, 40.725972874000036 ], [ -73.76074889399996, 40.725792699000067 ] ] ] ] }

在文档中看不到任何内容:

http://geopandas.org/data_structures.html#overview-of-attributes-and-methods

1 个答案:

答案 0 :(得分:2)

如果您有一个GeoSeries对象(或一个GeoDataFrame,下面的方法是一样的),例如

obj

然后您可以使用>>> import geopandas >>> from shapely.geometry import Point >>> s = geopandas.GeoSeries([Point(1, 1), Point(2, 2)]) >>> s 0 POINT (1 1) 1 POINT (2 2) dtype: object 将其转换为类似GeoJSON的字典:

__geo_interface__

或使用to_json方法转换为实际的GeoJSON(上述字典的json版本):

>>> s.__geo_interface__
{'bbox': (1.0, 1.0, 2.0, 2.0),
 'features': [{'bbox': (1.0, 1.0, 1.0, 1.0),
   'geometry': {'coordinates': (1.0, 1.0), 'type': 'Point'},
   'id': '0',
   'properties': {},
   'type': 'Feature'},
  {'bbox': (2.0, 2.0, 2.0, 2.0),
   'geometry': {'coordinates': (2.0, 2.0), 'type': 'Point'},
   'id': '1',
   'properties': {},
   'type': 'Feature'}],
 'type': 'FeatureCollection'}

在此示例中,它返回一个字符串,但是如果您传递文件路径,它将把它写入文件。