mirror of
https://git.ianrenton.com/ian/spothole.git
synced 2026-08-06 02:21:42 +00:00
Refactor of caching & data storage part 8 #118
This commit is contained in:
@@ -0,0 +1,30 @@
|
||||
import json
|
||||
import logging
|
||||
|
||||
import geopandas
|
||||
from shapely import prepare
|
||||
|
||||
from core.data_store import DATA_STORE
|
||||
from staticdataproviders.local_file_static_data_provider import LocalFileStaticDataProvider
|
||||
|
||||
|
||||
class CQZoneData(LocalFileStaticDataProvider):
|
||||
"""Static data provider for CQ zone geodata."""
|
||||
|
||||
PATH = "datafiles/cqzones.geojson"
|
||||
|
||||
def __init__(self, provider_config):
|
||||
super().__init__("CQ Zone Data", provider_config, self.PATH)
|
||||
|
||||
def _load_data(self, path):
|
||||
try:
|
||||
with open(path) as f:
|
||||
cq_zone_data = geopandas.GeoDataFrame.from_features(json.load(f)["features"])
|
||||
for idx in cq_zone_data.index:
|
||||
prepare(cq_zone_data.at[idx, 'geometry'])
|
||||
DATA_STORE.cq_zone_data = cq_zone_data
|
||||
return True
|
||||
|
||||
except Exception as e:
|
||||
logging.error("Exception when loading CQ zone data.", e, exc_info=True)
|
||||
return False
|
||||
@@ -0,0 +1,30 @@
|
||||
import json
|
||||
import logging
|
||||
|
||||
import geopandas
|
||||
from shapely import prepare
|
||||
|
||||
from core.data_store import DATA_STORE
|
||||
from staticdataproviders.local_file_static_data_provider import LocalFileStaticDataProvider
|
||||
|
||||
|
||||
class ITUZoneData(LocalFileStaticDataProvider):
|
||||
"""Static data provider for ITU zone geodata."""
|
||||
|
||||
PATH = "datafiles/ituzones.geojson"
|
||||
|
||||
def __init__(self, provider_config):
|
||||
super().__init__("ITU Zone Data", provider_config, self.PATH)
|
||||
|
||||
def _load_data(self, path):
|
||||
try:
|
||||
with open(path) as f:
|
||||
itu_zone_data = geopandas.GeoDataFrame.from_features(json.load(f)["features"])
|
||||
for idx in itu_zone_data.index:
|
||||
prepare(itu_zone_data.at[idx, 'geometry'])
|
||||
DATA_STORE.itu_zone_data = itu_zone_data
|
||||
return True
|
||||
|
||||
except Exception as e:
|
||||
logging.error("Exception when loading ITU zone data.", e, exc_info=True)
|
||||
return False
|
||||
@@ -20,9 +20,10 @@ class LocalFileStaticDataProvider(StaticDataProvider):
|
||||
if ok:
|
||||
self.status = "OK"
|
||||
self.last_update_time = datetime.now(pytz.UTC)
|
||||
logging.info("Updated static reference data for " + self.name)
|
||||
else:
|
||||
self.status = "Error"
|
||||
logging.info("Failed to load data for " + self.name)
|
||||
logging.error("Failed to load data for " + self.name)
|
||||
except Exception as e:
|
||||
self.status = "Error"
|
||||
logging.error("Exception in local file Static Data Provider (" + self.name + ")", e, exc_info=True)
|
||||
|
||||
Reference in New Issue
Block a user