05 isea4t
ISEA4TPandas key features¶
You can try out vgridpandas by using the cloud-computing platforms below without having to install anything on your computer:
Full VgridPandas DGGS documentation is available at vgridpandas document.
To work with Vgrid in Python or CLI, use vgrid package. Full Vgrid DGGS documentation is available at vgrid document.
To work with Vgrid DGGS in QGIS, install the Vgrid Plugin.
To visualize DGGS in Maplibre GL JS, try the vgrid-maplibre library.
For an interactive demo, visit the Vgrid Homepage.
Install vgridpandas¶
Uncomment the following line to install vgridpandas.
In [1]:
Copied!
# %pip install vgridpandas
# %pip install vgridpandas
Latlon to OpenEAGGR ISEA4T¶
In [2]:
Copied!
import pandas as pd
from vgridpandas import isea4tpandas
df = pd.read_csv('https://github.com/uber-web/kepler.gl-data/raw/master/nyctrips/data.csv')
df = df.head(100)
df = df.rename({'pickup_longitude': 'lon', 'pickup_latitude': 'lat'}, axis=1)[['lon', 'lat', 'passenger_count']]
resolution = 16
df = df.isea4t.latlon2isea4t(resolution)
df.head()
import pandas as pd
from vgridpandas import isea4tpandas
df = pd.read_csv('https://github.com/uber-web/kepler.gl-data/raw/master/nyctrips/data.csv')
df = df.head(100)
df = df.rename({'pickup_longitude': 'lon', 'pickup_latitude': 'lat'}, axis=1)[['lon', 'lat', 'passenger_count']]
resolution = 16
df = df.isea4t.latlon2isea4t(resolution)
df.head()
Out[2]:
| lon | lat | passenger_count | isea4t | isea4t_res | |
|---|---|---|---|---|---|
| 0 | -73.993896 | 40.750111 | 1 | 010102302222012122 | 16 |
| 1 | -73.976425 | 40.739811 | 1 | 010102302222031012 | 16 |
| 2 | -73.968704 | 40.754246 | 5 | 010102302222301201 | 16 |
| 3 | -73.863060 | 40.769581 | 5 | 010102312201111201 | 16 |
| 4 | -73.945541 | 40.779423 | 1 | 010102312220100100 | 16 |
OpenEAGGR ISEA4T to geo boundary¶
In [3]:
Copied!
df = df.isea4t.isea4t2geo()
df.head()
df = df.isea4t.isea4t2geo()
df.head()
Out[3]:
| lon | lat | passenger_count | isea4t | isea4t_res | geometry | |
|---|---|---|---|---|---|---|
| 0 | -73.993896 | 40.750111 | 1 | 010102302222012122 | 16 | POLYGON ((-73.99399 40.75029, -73.99462 40.749... |
| 1 | -73.976425 | 40.739811 | 1 | 010102302222031012 | 16 | POLYGON ((-73.97647 40.73898, -73.97716 40.739... |
| 2 | -73.968704 | 40.754246 | 5 | 010102302222301201 | 16 | POLYGON ((-73.96834 40.75345, -73.96903 40.754... |
| 3 | -73.863060 | 40.769581 | 5 | 010102312201111201 | 16 | POLYGON ((-73.86317 40.7699, -73.8638 40.76893... |
| 4 | -73.945541 | 40.779423 | 1 | 010102312220100100 | 16 | POLYGON ((-73.94534 40.77862, -73.94603 40.779... |
(Multi)Linestring/ (Multi)Polygon to ISEA4T¶
In [4]:
Copied!
from vgridpandas import isea4tpandas
import geopandas as gpd
gdf = gpd.read_file('https://raw.githubusercontent.com/opengeoshub/vopendata/refs/heads/main/shape/polygon.geojson')
resolution = 17
gdf_polyfill = gdf.isea4t.polyfill(resolution, compact = True, predicate = "intersects", explode = False)
gdf_polyfill = gdf_polyfill.isea4t.isea4t2geo(isea4t_column = "isea4t")
gdf_polyfill.plot(edgecolor = "white")
from vgridpandas import isea4tpandas
import geopandas as gpd
gdf = gpd.read_file('https://raw.githubusercontent.com/opengeoshub/vopendata/refs/heads/main/shape/polygon.geojson')
resolution = 17
gdf_polyfill = gdf.isea4t.polyfill(resolution, compact = True, predicate = "intersects", explode = False)
gdf_polyfill = gdf_polyfill.isea4t.isea4t2geo(isea4t_column = "isea4t")
gdf_polyfill.plot(edgecolor = "white")
Out[4]:
<Axes: >
ISEA4T point binning¶
In [5]:
Copied!
import pandas as pd
import geopandas as gpd
from vgridpandas import isea4tpandas
resolution = 15
df = pd.read_csv("https://raw.githubusercontent.com/opengeoshub/vopendata/refs/heads/main/csv/dist1_pois.csv")
# df = gpd.read_file("https://raw.githubusercontent.com/opengeoshub/vopendata/refs/heads/main/shape/dist1_pois.geojson")
stats = "count"
df_bin = df.isea4t.isea4tbin(resolution=resolution, stats = stats,
# numeric_column="confidence",
# category_column="category",
return_geometry=True)
df_bin.plot(
column=stats, # numeric column to base the colors on
cmap='Spectral_r', # color scheme (matplotlib colormap)
legend=True,
linewidth=0.2 # boundary width (optional)
)
import pandas as pd
import geopandas as gpd
from vgridpandas import isea4tpandas
resolution = 15
df = pd.read_csv("https://raw.githubusercontent.com/opengeoshub/vopendata/refs/heads/main/csv/dist1_pois.csv")
# df = gpd.read_file("https://raw.githubusercontent.com/opengeoshub/vopendata/refs/heads/main/shape/dist1_pois.geojson")
stats = "count"
df_bin = df.isea4t.isea4tbin(resolution=resolution, stats = stats,
# numeric_column="confidence",
# category_column="category",
return_geometry=True)
df_bin.plot(
column=stats, # numeric column to base the colors on
cmap='Spectral_r', # color scheme (matplotlib colormap)
legend=True,
linewidth=0.2 # boundary width (optional)
)
Out[5]:
<Axes: >