Spaces:
Sleeping
Sleeping
| """Spatial (H3) indexing helpers, version-robust across h3 v3 and v4.""" | |
| import h3 | |
| from src import config | |
| def latlng_to_cell(lat, lng, res=config.H3_RES): | |
| if hasattr(h3, "latlng_to_cell"): # h3 v4 | |
| return h3.latlng_to_cell(lat, lng, res) | |
| return h3.geo_to_h3(lat, lng, res) # h3 v3 | |
| def cell_to_latlng(cell): | |
| if hasattr(h3, "cell_to_latlng"): # h3 v4 | |
| return tuple(h3.cell_to_latlng(cell)) | |
| return tuple(h3.h3_to_geo(cell)) # h3 v3 | |
| def add_h3(df): | |
| """Attach an H3 cell id to every record (the unit we aggregate hotspots over).""" | |
| df = df.copy() | |
| df["h3"] = [latlng_to_cell(la, lo) for la, lo in zip(df["latitude"], df["longitude"])] | |
| return df | |