2016-06-09 2 views
4

У меня есть коллекция функций из многоугольников, и я должен сначала написать ее во временном файле, а затем загрузить ее с помощью geopandas.GeoDataFrame.from_file(tmp_json_file), есть ли способ не писать временный файл и просто создать GeoDataFrame от объекта GeoJSON?Создайте GeoDataFrame из объекта GeoJSON

ответ

9

Для этого вы можете использовать функцию GeoDataFrame.from_features(). Небольшой пример (предположим, что у вас есть GeoJSON FeatureCollection):

In [1]: from geojson import Feature, Point, FeatureCollection 

In [2]: my_feature = Feature(geometry=Point((1.6432, -19.123)), properties={"country": "Spain"}) 

In [3]: my_other_feature = Feature(geometry=Point((-80.234, -22.532)), properties={'country': 'Brazil'}) 

In [4]: collection = FeatureCollection([my_feature, my_other_feature]) 

In [6]: import geopandas 

In [7]: geopandas.GeoDataFrame.from_features(collection['features']) 
Out[7]: 
    country     geometry 
0 Spain POINT (1.6432 -19.123) 
1 Brazil POINT (-80.234 -22.532) 
+0

Он работает как шарм для простых многоугольников, но я другой 'FeatureColletion' состоит из' 'Polygons' и MultiPolygons', и я не знаю, как для обработки геометрии его – kwn

+0

Что вы имеете в виду под «как справиться с геометрией этого»? Не удается ли создать геоданные GeoDataFrame? (поскольку они могут содержать столбец геометрии с разными типами геометрии, поэтому это не должно быть проблемой) – joris

+0

Можете ли вы открыть для себя отдельный вопрос? (поскольку это что-то еще, о том, как создать FeatureCollection) – joris