03 a5
A5Pandas 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 A5¶
In [2]:
Copied!
import pandas as pd
from vgridpandas import a5pandas
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.a5.latlon2a5(resolution, set_index=False)
df.head()
import pandas as pd
from vgridpandas import a5pandas
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.a5.latlon2a5(resolution, set_index=False)
df.head()
Out[2]:
| lon | lat | passenger_count | a5 | a5_res | |
|---|---|---|---|---|---|
| 0 | -73.993896 | 40.750111 | 1 | 2610738938000000 | 16 |
| 1 | -73.976425 | 40.739811 | 1 | 2610762d18000000 | 16 |
| 2 | -73.968704 | 40.754246 | 5 | 26107685e8000000 | 16 |
| 3 | -73.863060 | 40.769581 | 5 | 26107bde88000000 | 16 |
| 4 | -73.945541 | 40.779423 | 1 | 2610730008000000 | 16 |
A5 to geo boundary¶
In [3]:
Copied!
df = df.a5.a52geo()
df.head()
df = df.a5.a52geo()
df.head()
Out[3]:
| lon | lat | passenger_count | a5 | a5_res | geometry | |
|---|---|---|---|---|---|---|
| 0 | -73.993896 | 40.750111 | 1 | 2610738938000000 | 16 | POLYGON ((-73.9936 40.74975, -73.99276 40.7499... |
| 1 | -73.976425 | 40.739811 | 1 | 2610762d18000000 | 16 | POLYGON ((-73.97742 40.73934, -73.97652 40.739... |
| 2 | -73.968704 | 40.754246 | 5 | 26107685e8000000 | 16 | POLYGON ((-73.96812 40.75402, -73.96727 40.754... |
| 3 | -73.863060 | 40.769581 | 5 | 26107bde88000000 | 16 | POLYGON ((-73.86343 40.76952, -73.86252 40.769... |
| 4 | -73.945541 | 40.779423 | 1 | 2610730008000000 | 16 | POLYGON ((-73.9443 40.77974, -73.94521 40.7797... |
(Multi)Linestring/ (Multi)Polygon to A5¶
In [4]:
Copied!
import geopandas as gpd
from vgridpandas import a5pandas
gdf = gpd.read_file('https://raw.githubusercontent.com/opengeoshub/vopendata/refs/heads/main/shape/polygon.geojson')
resolution = 16
gdf_polyfill = gdf.a5.polyfill(resolution, compact = False, predicate = "within", explode = True)
gdf_polyfill.head()
gdf_polyfill = gdf_polyfill.a5.a52geo("a5")
gdf_polyfill.plot(edgecolor = "white")
import geopandas as gpd
from vgridpandas import a5pandas
gdf = gpd.read_file('https://raw.githubusercontent.com/opengeoshub/vopendata/refs/heads/main/shape/polygon.geojson')
resolution = 16
gdf_polyfill = gdf.a5.polyfill(resolution, compact = False, predicate = "within", explode = True)
gdf_polyfill.head()
gdf_polyfill = gdf_polyfill.a5.a52geo("a5")
gdf_polyfill.plot(edgecolor = "white")
Out[4]:
<Axes: >
A5 point binning¶
In [5]:
Copied!
import pandas as pd
import geopandas as gpd
from vgridpandas import a5pandas
resolution = 15
df = pd.read_csv("https://raw.githubusercontent.com/opengeoshub/vopendata/refs/heads/main/csv/dist1_pois.csv")
stats = "count"
df_bin = df.a5.a5bin(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 a5pandas
resolution = 15
df = pd.read_csv("https://raw.githubusercontent.com/opengeoshub/vopendata/refs/heads/main/csv/dist1_pois.csv")
stats = "count"
df_bin = df.a5.a5bin(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: >