Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 11 additions & 11 deletions geocoding.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,18 +24,19 @@ class FastGeocoder:
_wab_path: str
_gaul_path: str

# wab
_geom_from_country_name_cache: dict[str, AdminGeometry] = {}
_geom_from_iso3_cache: dict[str, AdminGeometry] = {}
_geom_from_adm_names_cache: dict[str, AdminGeometry] = {}

# gaul
_adm2_to_adm1_mapping: dict[int, int] = {}
_adm1_to_geometry_mapping: dict[int, BaseGeometry] = {}

def __init__(self, wab_path: str, gaul_path: str) -> None:
self._wab_path = wab_path
self._gaul_path = gaul_path

# wab
self._geom_from_country_name_cache: dict[str, AdminGeometry] = {}
self._geom_from_iso3_cache: dict[str, AdminGeometry] = {}
self._geom_from_adm_names_cache: dict[str, AdminGeometry] = {}

# gaul
self._adm2_to_adm1_mapping: dict[int, int] = {}
self._adm1_to_geometry_mapping: dict[int, BaseGeometry] = {}

self._init_adm_mapping()

def _init_adm_mapping(self):
Expand Down Expand Up @@ -115,7 +116,6 @@ def get_geometry_from_iso3(self, iso3: str) -> AdminGeometry | None:
from_cache = self._geom_from_iso3_cache.get(iso3)
if from_cache:
return from_cache

with fiona.open(self._wab_path, layer=WAB_LAYER) as src:
for feature in src:
properties: dict[str, typing.Any] = feature["properties"]
Expand All @@ -129,6 +129,6 @@ def get_geometry_from_iso3(self, iso3: str) -> AdminGeometry | None:
geometry=mapping(geom),
bbox=geom.bounds,
)
self._geom_from_iso3_cache[iso3_from_feature] = val
self._geom_from_iso3_cache[iso3] = val
return val
return None
Loading