dtoolkit.geoaccessor.geoseries.to_h3#
- dtoolkit.geoaccessor.geoseries.to_h3(s: GeoSeries, /, resolution: int, int_dtype: bool = True) GeoSeries [source]#
Convert Point or Polygon to H3 cell index.
- Parameters:
- resolutionint
H3 resolution.
- int_dtypebool, default True
If True, use
h3.api.numpy_int
else useh3.api.basic_str
.
- Returns:
- GeoSeries
With H3 cell as the its index.
- Raises:
- ModuleNotFoundError
If don’t have module named ‘h3’.
- TypeError
If the geometry type is not Point or Polygon.
- ValueError
If the CRS is not WGS84 or EPSG:4326.
See also
h3.latlon_to_h3
h3.polygon_to_cells
dtoolkit.geoaccessor.series.H3
dtoolkit.geoaccessor.dataframe.H3
dtoolkit.geoaccessor.geoseries.to_h3
dtoolkit.geoaccessor.geodataframe.to_h3
Examples
>>> import dtoolkit.geoaccessor >>> import pandas as pd
Points to h3 indexes.
>>> df = pd.DataFrame({"x": [122, 100], "y": [55, 1]}).from_xy('x', 'y', crs=4326) >>> df x y geometry 0 122 55 POINT (122.00000 55.00000) 1 100 1 POINT (100.00000 1.00000) >>> df.to_h3(8) x y geometry 612845052823076863 122 55 POINT (122.00000 55.00000) 614269156845420543 100 1 POINT (100.00000 1.00000)
Polygons to h3 indexes.
>>> df = pd.DataFrame( ... { ... "label": ["a", "b"], ... "wkt": [ ... "POLYGON ((1 0, 1 1, 0 1, 0 0, 1 0))", ... "POLYGON ((2 1, 2 2, 1 2, 1 1, 2 1))", ... ], ... }, ... ).from_wkt("wkt", crs=4326).drop(columns="wkt") >>> df label geometry 0 a POLYGON ((1.00000 0.00000, 1.00000 1.00000, 0.... 1 b POLYGON ((2.00000 1.00000, 2.00000 2.00000, 1.... >>> df.to_h3(4) label geometry 596538839648960511 a POLYGON ((1.00000 0.00000, 1.00000 1.00000, 0.... 596538693620072447 a POLYGON ((1.00000 0.00000, 1.00000 1.00000, 0.... 596538685030137855 a POLYGON ((1.00000 0.00000, 1.00000 1.00000, 0.... 596538848238895103 a POLYGON ((1.00000 0.00000, 1.00000 1.00000, 0.... 596537920525959167 a POLYGON ((1.00000 0.00000, 1.00000 1.00000, 0.... 596538813879156735 a POLYGON ((1.00000 0.00000, 1.00000 1.00000, 0.... 596538856828829695 a POLYGON ((1.00000 0.00000, 1.00000 1.00000, 0.... 596538805289222143 a POLYGON ((1.00000 0.00000, 1.00000 1.00000, 0.... 596538229763604479 b POLYGON ((2.00000 1.00000, 2.00000 2.00000, 1.... 596537946295762943 b POLYGON ((2.00000 1.00000, 2.00000 2.00000, 1.... 596540780974178303 b POLYGON ((2.00000 1.00000, 2.00000 2.00000, 1.... 596540729434570751 b POLYGON ((2.00000 1.00000, 2.00000 2.00000, 1.... 596540772384243711 b POLYGON ((2.00000 1.00000, 2.00000 2.00000, 1.... 596538212583735295 b POLYGON ((2.00000 1.00000, 2.00000 2.00000, 1.... 596540763794309119 b POLYGON ((2.00000 1.00000, 2.00000 2.00000, 1.... 596537954885697535 b POLYGON ((2.00000 1.00000, 2.00000 2.00000, 1.... 596540746614439935 b POLYGON ((2.00000 1.00000, 2.00000 2.00000, 1.... 596538195403866111 b POLYGON ((2.00000 1.00000, 2.00000 2.00000, 1.... 596541030082281471 b POLYGON ((2.00000 1.00000, 2.00000 2.00000, 1....
Also support str (hexadecimal) format.
>>> df = pd.DataFrame({"x": [122, 100], "y": [55, 1]}).from_xy('x', 'y', crs=4326) >>> df x y geometry 0 122 55 POINT (122.00000 55.00000) 1 100 1 POINT (100.00000 1.00000) >>> df.to_h3(8, int_dtype=False) x y geometry 88143541bdfffff 122 55 POINT (122.00000 55.00000) 886528b2a3fffff 100 1 POINT (100.00000 1.00000)