I\'m having difficulty loading the following JSON containing GIS data (https://data.cityofnewyork.us/resource/5rqd-h5ci.json) into a GeoDataFrame.
The following code fai
Setting the geometry fails because the geopandas.GeoDataFrame
constructor doesn't appear to be built to handle JSON objects as python data structures. It therefore complains about the argument not being a valid geometry object. You have to parse it into something that geopandas.GeoDataFrame
can understand, like a shapely.geometry.shape
. Here's what ran without error on my side, Python 3.5.4:
#!/usr/bin/env python3
import requests
import geopandas as gpd
from shapely.geometry import shape
r = requests.get("https://data.cityofnewyork.us/resource/5rqd-h5ci.json")
r.raise_for_status()
data = r.json()
for d in data:
d['the_geom'] = shape(d['the_geom'])
gdf = gpd.GeoDataFrame(data).set_geometry('the_geom')
gdf.head()
A disclaimer: I know absolutely nothing about Geo anything. I didn't even know these libraries and this kind of data existed until I installed geopandas
to tackle this bounty and read a little bit of online documentation.