Skip to content

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:

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:

  1. 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.
  2. 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.
  3. 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.
  4. Emits one exposure point per non-zero block, at the block's cell-center coordinate, value = summed built-up volume in cubic metres.
  5. Streams those points into the catalog through core.exposure_service.ingest_exposure_from_source — one bulk insert per batch, plus the exposure_datasets identity row (issue #584) carrying the declared exposure_type/value_unit and 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.

  1. 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_records sets it unconditionally, independent of what the caller's numbers actually mean); this dataset's value is 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.
  2. 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.
  3. 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.
  4. 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 with python scripts/ingest_historical_catalog.py verify.
  • License terms for both sources were read directly from their copyright.txt files 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_sources for the exact URLs checked.