Files
CA/backend/utils/district_lookup.py

22 lines
688 B
Python
Raw Normal View History

"""Map 100m grid_id (r{row}_c{col}) → Wuhan district name."""
from functools import lru_cache
import pandas as pd
from config import PROJECT_ROOT
@lru_cache(maxsize=1)
def grid_district_lookup() -> dict[str, str]:
"""Loaded once from processed/grid_district_mapping.parquet."""
path = PROJECT_ROOT / "processed" / "grid_district_mapping.parquet"
if not path.exists():
return {}
df = pd.read_parquet(path)
df = df.dropna(subset=["district_name"])
return dict(zip(df["grid_id"].astype(str), df["district_name"].astype(str)))
def district_for_grid(grid_id: str, default: str = "其他") -> str:
return grid_district_lookup().get(grid_id, default)