Greek historical catalog¶
The historical (non-scenario) half of the Greek data catalog: what each dataset is,
where it comes from, and — for the curated exposure set — precisely what it does and
does not represent, so a reference-surface build (issue #376,
core.surface_writer.build_reference_surface) can consume it with its eyes open.
Companion to EIOPA scenario mapping, which covers the
climate-scenario-conditioned side of the catalog (issue #386). Values that could not
be verified against a live source are marked [ASSUMPTION] inline.
Companion artifacts:
scripts/historical_catalog_manifest.json— machine-readable manifest (verified URLs, license, citation, method, limitations per source)scripts/ingest_historical_catalog.py— repeatable ingest from the original public sources through the standard ingest/exposure-upload pipelines
River flood (ingested — full Greece, replacing the bbox-limited demo extent)¶
Chosen source: JRC river flood hazard maps for Europe and the Mediterranean Basin
region (v3.1.1) — produced by the
Copernicus Emergency Management Service / European Commission Joint Research Centre,
using the LISFLOOD / LISFLOOD-FP models driven by EFAS v5.0 hydrological reanalysis.
Nine return periods (10/20/30/40/50/75/100/200/500y), 3 arc-second (~90 m) native
resolution, EPSG:4326, riverine inundation depth in metres. License: CC BY 4.0 (per
the dataset's own copyright.txt, citing Commission Decision 2011/833/EU). Citation:
Baugh, Calum; Colonese, Juan; D'Angelo, Claudia; Dottori, Francesco; Neal, Jeffrey;
Prudhomme, Christel; Salamon, Peter. (2024): An updated dataset of global and
European flood hazard maps. Manuscript under preparation.
DOI: 10.2905/1D128B6C-A4EE-4858-9E34-6210707F3C81.
What changed vs. the previous demo extent. scripts/demo.py's INGEST_PAYLOAD
already referenced this same source at a full-Greece bbox, but required an operator to
manually download and stage six of the nine return-period files (each ~260–330 MB)
under a gitignored /data path before running the demo — no repeatable script pulled
them from the original source with attribution, unlike the pattern #386 established.
scripts/ingest_historical_catalog.py ingest-hazards closes that gap: it performs a
rasterio windowed HTTP-range read of just the Greece bbox from each of the nine
return-period GeoTIFFs (the provider's server confirms Accept-Ranges: bytes, verified
2026-07-27), so the ~300 MB per-file originals are never downloaded whole — only the
small Greek-extent clip is written locally before being handed to the existing
ingest_hazard Celery chord (mode 2: one file per return period), exactly as #386's
ingest_scenario_hazards.py does for the Aqueduct scenario pack.
Resolution vs. storage. The clip keeps the source's native ~90 m resolution — no downsampling — because the windowed-read approach means resolution costs bandwidth for the Greece extent only, not storage for the full European domain; a full-resolution Greece clip at nine return periods is on the order of a few MB per return period (comparable to the Aqueduct clips #386 already ingests), not the ~300 MB per-file originals.
Greece bbox. Reuses the bounding box [19.0, 34.5, 28.5, 42.0] established in
scripts/scenario_hazards_manifest.json (#386) rather than introducing a second,
slightly different "Greece bbox" magic number; see that manifest's notes for the
pragmatic-clip caveat (mainland, Crete, and most of the Aegean — the extreme eastern
Dodecanese may fall outside it).
Wildfire (gap — documented, not ingested)¶
No publicly downloadable, anonymous, return-period-style wildfire hazard footprint was found for Greece at national scale. The closest verified sources are:
- Fire danger (Canadian Fire Weather Index system) in EFFIS (v2-3-1) — a daily 1–10 day forecast, ~16 km resolution, live since 2012. A meteorological time series, not a static hazard climatology.
- Fire danger indices historical data from the Copernicus Emergency Management Service — a multi-decade FWI reconstruction that would be the natural input to a genuine extreme-value derivation of return-period fire danger, but sits behind an authenticated CDS/EWDS account; no anonymous repeatable pull is possible.
Deriving return-period hazard bands from either source requires a new extreme-value statistical methodology — out of scope for a data-ingest issue, per the same standard
386 applied to wildfire's scenario gap (eiopa-scenario-mapping.md). Wildfire¶
therefore stays a documented gap for the historical catalog too.
Windstorm (gap — documented, not ingested)¶
No publicly, anonymously downloadable European windstorm hazard (return-period gust) footprint covering Greece was found:
- The three Copernicus CDS windstorm datasets (winter windstorm indicators, synthetic events, reanalysis tracks/footprints) — already evaluated for the scenario case in #386 — remain gated behind an authenticated CDS account.
- The UNEP/GRID-Geneva PREVIEW / GAR global wind-hazard platform returned HTTP 403 on its current download portal (checked 2026-07-27); its GAR Risk Data Platform predecessor is stated by UNDRR to be decommissioned since 2020 ("research/reference only, will not be updated").
Windstorm stays a documented gap until a publicly, anonymously redistributable return-period footprint source is verified. Follow-up: tracked as a separate, non-blocking issue rather than attempted here, since forcing a derivation from either peril's raw meteorological data would mean inventing a methodology this ingest-only issue has no mandate to validate.
Curated Greek exposure (ingested — building-stock density proxy beyond LitPop)¶
Chosen source: GHS-BUILT-V R2023A
— the Global Human Settlement Layer's built-up-volume grid (European Commission Joint
Research Centre), epoch 2020, 30 arc-second (~1 km) resolution, EPSG:4326. Values are
"the predicted amount of built-up cubic metres" per cell (unsigned integer), covering
total built stock (residential + non-residential). License: CC BY 4.0 (per the
dataset's own copyright.txt, same terms as the river-flood source). Citation:
Pesaresi, Martino; Politis, Panagiotis: GHS-BUILT-V R2023A - GHS built-up volume grids
derived from joint assessment of Sentinel2, Landsat, and global DEM data, multitemporal
(1975-2030). European Commission, Joint Research Centre [Dataset]
doi: 10.2905/JRC.7FMPAY8.
Why this dataset. LitPop (the platform's only exposure source before this issue) is nightlight-times-population — a wealth-weighted population proxy, not a building-stock proxy. GHS-BUILT-V measures actual modelled built volume from satellite/DEM observation, giving the platform a genuinely different, complementary national exposure signal — which is what phase §8.9 asked for ("LitPop refinement and/or OSM-derived density").
Method. scripts/ingest_historical_catalog.py ingest-exposure:
- Downloads the global GHS-BUILT-V zip once (~193 MB, CC BY 4.0) and caches it — GHSL distributes this product as a zip archive rather than a bare GeoTIFF, so it cannot be windowed-read over HTTP the way the JRC flood rasters are.
- Extracts its single GeoTIFF member and hands the local file to the registered
raster→exposure ingest adapter (
core/ingest/raster_exposure.py, ADR-055), which windowed-reads the Greece bbox in memory-bounded strips rather than loading the whole window at once. - Aggregates the native ~1 km cells into 8×8 blocks (~7 km effective resolution, block-summed built-up volume) to bound the exposure dataset to a tractable point count.
- Emits one exposure point per non-zero block, at the block's cell-center coordinate,
value= summed built-up volume in cubic metres. - Streams those points into the catalog through
core.exposure_service.ingest_exposure_from_source— one bulk insert per batch, plus theexposure_datasetsidentity row (issue #584) carrying the declaredexposure_type/value_unitand the resolution and bbox the adapter measured.
Steps 2–5 lived inline in the script until issue #594 extracted them into the
adapter; the ingest is otherwise unchanged, and the points it produces are pinned
bit-for-bit against the old implementation by tests/test_ingest/test_raster_exposure.py.
Both steps were run end-to-end against the live source while building this issue (download → extract → windowed-read → grid): the Greece bbox produced 7,621 non-zero exposure points, built-up volume per point ranging 2 m³ to 2.3×10⁸ m³ (the densest ~7 km block, plausibly central Athens), well within a tractable size for the exposure-upload pipeline. The river-flood windowed clip was verified the same way: a Greece-bbox read of the RP10 file (272 MB on the server) pulled an 11400×9000 px, ~7.4 MB clip via HTTP range requests in under 5 seconds — the full file was never downloaded.
The resulting dataset is named GHSL built-up volume Greece (national exposure
proxy) and is the exposure this issue designates for the national reference-surface
build (issue #376's build_reference_surface) to consume — a future reference build
should look it up by that exact name (or the dataset_id the ingest script logs).
Limitations — read before using this for anything financial.
- Not a monetary value. The platform's exposure schema stores every uploaded
value with
value_unit="USD"for schema compatibility (core/exposure_service.py::_build_recordssets it unconditionally, independent of what the caller's numbers actually mean); this dataset'svalueis built-up volume in cubic metres, not USD. Impact computed against this exposure is "cubic metres of built stock affected", not a currency loss, until a documented m³-to-currency conversion is applied.[ASSUMPTION]: no such conversion factor is supplied here — none could be sourced and verified for Greek building-stock replacement cost at the time of writing, and fabricating one would violate the project's sourcing-integrity rule. Treat any EAD figure computed against this exposure as a physical-proxy quantity, not a monetary one, until that gap is closed. - Coarse resolution. The native ~1 km GHSL cell is aggregated 8×8 further (~7 km effective) to bound the exposure point count; this is a national density proxy, not a cadastral or per-building dataset. Individual buildings, or even individual towns in some cases, are not resolved.
- Volume, not count or replacement cost. GHS-BUILT-V models total built cubic metres from Sentinel-2/Landsat/DEM data (Pesaresi et al. methodology); building type, age, seismic class, and construction quality are not represented.
- Single epoch (2020), not auto-updated. A newer GHSL release would need a manifest update to pick up a later epoch.
Verification record¶
- Every river-flood source URL responded HTTP 200 (
image/tiff, ~260–334 MB,Accept-Ranges: bytes) to a HEAD request, and the GHSL archive URL responded HTTP 200 (application/zip, ~193 MB) — both on 2026-07-27; re-check any time withpython scripts/ingest_historical_catalog.py verify. - License terms for both sources were read directly from their
copyright.txtfiles on the same host (jeodpp.jrc.ec.europa.eu), not inferred from a landing page. - Citations were read directly from each dataset's live JRC Data Catalogue "How to
cite" section (
data.jrc.ec.europa.eu) on 2026-07-27. - The CDS/EWDS windstorm and fire-danger sources, and the PREVIEW/GAR wind-hazard
platform, were checked live on 2026-07-27 (auth-gated / HTTP 403 respectively) —
see the manifest's
perils.wildfire/storm_europe.evaluated_sourcesfor the exact URLs checked.