Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Create a GeoDataFrame from a GeoJSON object

I have a Feature Collection of polygons and I have to first write it in a temporary file to then load it with geopandas.GeoDataFrame.from_file(tmp_json_file), is there any way to not write the temporary file and to just create the GeoDataFrame from the GeoJSON object ?

like image 814
kwn Avatar asked Jun 09 '16 14:06

kwn


1 Answers

You can use the GeoDataFrame.from_features() function for this. A small example (supposing you have a 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)
like image 197
joris Avatar answered Oct 02 '22 13:10

joris