Geopandas Intro
Getting Started with GeoPandas
References:
Installation¶
conda create -n geo python=3.8
conda activate geo
conda install geopandas
conda install geodemo matplotlib descartes -c conda-forge
Import libraries¶
In [1]:
Copied!
import geodemo
import geopandas as gpd
import geodemo
import geopandas as gpd
--------------------------------------------------------------------------- ModuleNotFoundError Traceback (most recent call last) Cell In[1], line 1 ----> 1 import geodemo 2 import geopandas as gpd ModuleNotFoundError: No module named 'geodemo'
Reading files¶
In [2]:
Copied!
url = "https://raw.githubusercontent.com/giswqs/geodemo/master/examples/data/nyc_neighborhoods.geojson"
url = "https://raw.githubusercontent.com/giswqs/geodemo/master/examples/data/nyc_neighborhoods.geojson"
In [3]:
Copied!
gdf = gpd.read_file(url)
gdf = gpd.read_file(url)
--------------------------------------------------------------------------- NameError Traceback (most recent call last) Cell In[3], line 1 ----> 1 gdf = gpd.read_file(url) NameError: name 'gpd' is not defined
In [4]:
Copied!
gdf
gdf
--------------------------------------------------------------------------- NameError Traceback (most recent call last) Cell In[4], line 1 ----> 1 gdf NameError: name 'gdf' is not defined
In [5]:
Copied!
gdf.crs
gdf.crs
--------------------------------------------------------------------------- NameError Traceback (most recent call last) Cell In[5], line 1 ----> 1 gdf.crs NameError: name 'gdf' is not defined
Writing files¶
In [6]:
Copied!
gdf.to_file("data/nyc_streets.geojson", driver="GeoJSON")
gdf.to_file("data/nyc_streets.geojson", driver="GeoJSON")
--------------------------------------------------------------------------- NameError Traceback (most recent call last) Cell In[6], line 1 ----> 1 gdf.to_file("data/nyc_streets.geojson", driver="GeoJSON") NameError: name 'gdf' is not defined
Measuring area¶
In [7]:
Copied!
gdf = gdf.set_index("NAME")
gdf = gdf.set_index("NAME")
--------------------------------------------------------------------------- NameError Traceback (most recent call last) Cell In[7], line 1 ----> 1 gdf = gdf.set_index("NAME") NameError: name 'gdf' is not defined
In [8]:
Copied!
gdf["area"] = gdf.area
gdf["area"]
gdf["area"] = gdf.area
gdf["area"]
--------------------------------------------------------------------------- NameError Traceback (most recent call last) Cell In[8], line 1 ----> 1 gdf["area"] = gdf.area 2 gdf["area"] NameError: name 'gdf' is not defined
Getting polygon boundary¶
In [9]:
Copied!
gdf['boundary'] = gdf.boundary
gdf['boundary']
gdf['boundary'] = gdf.boundary
gdf['boundary']
--------------------------------------------------------------------------- NameError Traceback (most recent call last) Cell In[9], line 1 ----> 1 gdf['boundary'] = gdf.boundary 2 gdf['boundary'] NameError: name 'gdf' is not defined
Getting polygon centroid¶
In [10]:
Copied!
gdf['centroid'] = gdf.centroid
gdf['centroid']
gdf['centroid'] = gdf.centroid
gdf['centroid']
--------------------------------------------------------------------------- NameError Traceback (most recent call last) Cell In[10], line 1 ----> 1 gdf['centroid'] = gdf.centroid 2 gdf['centroid'] NameError: name 'gdf' is not defined
Making maps¶
In [11]:
Copied!
gdf.plot()
gdf.plot()
--------------------------------------------------------------------------- NameError Traceback (most recent call last) Cell In[11], line 1 ----> 1 gdf.plot() NameError: name 'gdf' is not defined
In [12]:
Copied!
gdf.plot("area", legend=True, figsize=(10, 8))
gdf.plot("area", legend=True, figsize=(10, 8))
--------------------------------------------------------------------------- NameError Traceback (most recent call last) Cell In[12], line 1 ----> 1 gdf.plot("area", legend=True, figsize=(10, 8)) NameError: name 'gdf' is not defined
In [13]:
Copied!
gdf = gdf.set_geometry("centroid")
gdf.plot("area", legend=True,figsize=(10, 8))
gdf = gdf.set_geometry("centroid")
gdf.plot("area", legend=True,figsize=(10, 8))
--------------------------------------------------------------------------- NameError Traceback (most recent call last) Cell In[13], line 1 ----> 1 gdf = gdf.set_geometry("centroid") 2 gdf.plot("area", legend=True,figsize=(10, 8)) NameError: name 'gdf' is not defined
In [14]:
Copied!
ax = gdf["geometry"].plot(figsize=(10, 8))
gdf["centroid"].plot(ax=ax, color="black")
ax = gdf["geometry"].plot(figsize=(10, 8))
gdf["centroid"].plot(ax=ax, color="black")
--------------------------------------------------------------------------- NameError Traceback (most recent call last) Cell In[14], line 1 ----> 1 ax = gdf["geometry"].plot(figsize=(10, 8)) 2 gdf["centroid"].plot(ax=ax, color="black") NameError: name 'gdf' is not defined
In [15]:
Copied!
gdf = gdf.set_geometry("geometry")
gdf = gdf.set_geometry("geometry")
--------------------------------------------------------------------------- NameError Traceback (most recent call last) Cell In[15], line 1 ----> 1 gdf = gdf.set_geometry("geometry") NameError: name 'gdf' is not defined
Reprojecting data¶
In [16]:
Copied!
url = "https://raw.githubusercontent.com/giswqs/geodemo/master/examples/data/nyc_neighborhoods.geojson"
url = "https://raw.githubusercontent.com/giswqs/geodemo/master/examples/data/nyc_neighborhoods.geojson"
In [17]:
Copied!
gdf = gpd.read_file(url)
gdf = gpd.read_file(url)
--------------------------------------------------------------------------- NameError Traceback (most recent call last) Cell In[17], line 1 ----> 1 gdf = gpd.read_file(url) NameError: name 'gpd' is not defined
In [18]:
Copied!
gdf_crs = gdf.to_crs(epsg="4326")
gdf_crs = gdf.to_crs(epsg="4326")
--------------------------------------------------------------------------- NameError Traceback (most recent call last) Cell In[18], line 1 ----> 1 gdf_crs = gdf.to_crs(epsg="4326") NameError: name 'gdf' is not defined
In [19]:
Copied!
gdf_crs
gdf_crs
--------------------------------------------------------------------------- NameError Traceback (most recent call last) Cell In[19], line 1 ----> 1 gdf_crs NameError: name 'gdf_crs' is not defined
In [20]:
Copied!
geojson = gdf_crs.__geo_interface__
geojson = gdf_crs.__geo_interface__
--------------------------------------------------------------------------- NameError Traceback (most recent call last) Cell In[20], line 1 ----> 1 geojson = gdf_crs.__geo_interface__ NameError: name 'gdf_crs' is not defined
Displaying data on an interactive map¶
In [21]:
Copied!
m = geodemo.Map(center=[40.7341, -73.9113], zoom=10)
m
m = geodemo.Map(center=[40.7341, -73.9113], zoom=10)
m
--------------------------------------------------------------------------- NameError Traceback (most recent call last) Cell In[21], line 1 ----> 1 m = geodemo.Map(center=[40.7341, -73.9113], zoom=10) 2 m NameError: name 'geodemo' is not defined
In [22]:
Copied!
style = {
"stroke": True,
"color": "#000000",
"weight": 2,
"opacity": 1,
"fill": True,
"fillColor": "#0000ff",
"fillOpacity": 0.4,
}
style = {
"stroke": True,
"color": "#000000",
"weight": 2,
"opacity": 1,
"fill": True,
"fillColor": "#0000ff",
"fillOpacity": 0.4,
}
In [23]:
Copied!
m.add_geojson(geojson, style=style, layer_name="nyc neighborhoods")
m.add_geojson(geojson, style=style, layer_name="nyc neighborhoods")
--------------------------------------------------------------------------- NameError Traceback (most recent call last) Cell In[23], line 1 ----> 1 m.add_geojson(geojson, style=style, layer_name="nyc neighborhoods") NameError: name 'm' is not defined
In [24]:
Copied!
url2 = "https://github.com/giswqs/geodemo/raw/master/examples/data/nyc_subway_stations.zip"
url2 = "https://github.com/giswqs/geodemo/raw/master/examples/data/nyc_subway_stations.zip"
In [25]:
Copied!
gdf_subway = gpd.read_file(url2)
gdf_subway = gpd.read_file(url2)
--------------------------------------------------------------------------- NameError Traceback (most recent call last) Cell In[25], line 1 ----> 1 gdf_subway = gpd.read_file(url2) NameError: name 'gpd' is not defined
In [26]:
Copied!
gdf_subway_crs = gdf_subway.to_crs(epsg="4326")
gdf_subway_crs = gdf_subway.to_crs(epsg="4326")
--------------------------------------------------------------------------- NameError Traceback (most recent call last) Cell In[26], line 1 ----> 1 gdf_subway_crs = gdf_subway.to_crs(epsg="4326") NameError: name 'gdf_subway' is not defined
In [27]:
Copied!
subway_geojson = gdf_subway_crs.__geo_interface__
subway_geojson = gdf_subway_crs.__geo_interface__
--------------------------------------------------------------------------- NameError Traceback (most recent call last) Cell In[27], line 1 ----> 1 subway_geojson = gdf_subway_crs.__geo_interface__ NameError: name 'gdf_subway_crs' is not defined
In [28]:
Copied!
m.add_geojson(subway_geojson, layer_name="nyc subway stations")
m.add_geojson(subway_geojson, layer_name="nyc subway stations")
--------------------------------------------------------------------------- NameError Traceback (most recent call last) Cell In[28], line 1 ----> 1 m.add_geojson(subway_geojson, layer_name="nyc subway stations") NameError: name 'm' is not defined