feat: GeoScene frontend POC + Docker deploy for remote host
Migrate maps to @geoscene/core, polish monitoring/alerts UX, fix timeline basemap flicker and district alert regions, and ship compose/nginx Docker deploy assets with CBPOA_ROOT data mounts. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
21
backend/utils/district_lookup.py
Normal file
21
backend/utils/district_lookup.py
Normal file
@@ -0,0 +1,21 @@
|
||||
"""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)
|
||||
Reference in New Issue
Block a user