Methodology · MERGED · RESEARCH / PROVISIONAL
GHSL population alignment
Defines population weighting, grid alignment and exclusions.
H05-03 · v1
This page reproduces the canonical methodology source bundled with the deployed site. A merged document is not, by itself, a validated scientific result.
Canonical source: methodology/h05_ghsl_population_alignment_v1.md
# H05 / GHSL population alignment contract v1
**Queue action:** D10
**Lane:** D — data/product foundations
**Evidence status:** RESEARCH / PROVISIONAL
**Machine contract:** `sources/h05_ghsl_alignment_contract_v1.json`
## Decision
A10 may proceed as a bounded **RESEARCH / PROVISIONAL** Grenoble dry-run after its exact GHSL input files are pinned. This contract does not authorize a production indicator, ranking, composite score, evidence promotion or publication.
For the 2024 concentration surface, use the nearest GHSL population epoch, 2025, as the primary descriptive weight. The 2025 grid is a **projection**, not an estimate. Its use is governed by `ASM-H05-POP-001` and must be paired with a 2020 estimate sensitivity. No temporal interpolation is authorized.
R2023A was not available in 2005 or 2015. It must never support an as-of or hindcast claim for those dates. A strict historical as-of analysis requires a population-product vintage demonstrably available at the origin date.
## Spatial allocation
Both the A8 FUA and concentration artifacts use EPSG:3035; GHSL Mollweide uses ESRI:54009. Transform GHSL source-cell footprints into EPSG:3035 and allocate people-per-cell counts by exact overlap area:
[
P_{s
ightarrow j}=P_s imes rac{A(s cap j)}{A(s)}
]
where (s) is a transformed GHSL source cell and (j) is an intersecting analysis fragment inside the authoritative FUA.
This treats population as provisionally uniform within each GHSL cell (`ASM-H05-POP-002`). It is reversible and testable. Centre-in-polygon inclusion and generic nearest, bilinear, cubic or mode resampling are forbidden for population counts.
For every source cell, allocated population plus explicitly outside/uncovered population must equal the source count within relative tolerance (10^{-6}). Any failure stops arithmetic.
## Boundary and concentration rules
- Clip using fractional intersection with the authoritative A8 FUA geometry; do not include or exclude a whole cell by its centre.
- Join allocated population only to valid concentration-cell intersections.
- Do not interpolate concentration across invalid or excluded cells.
- A valid zero-population cell remains a valid zero weight.
- Population nodata is distinct from zero and is excluded and counted separately.
- Concentration nodata and negative values are excluded from arithmetic and their affected population is reported. Negative-value exclusion remains governed by the applicable H05 provisional assumption and assigns no provider-side meaning.
- Do not zero-fill any missing value.
- Fail closed if eligible or valid weighted population is zero, inputs are negative/non-finite where prohibited, coverage falls outside ([0,1]), or population conservation fails.
The weighted mean is:
[
H05 = rac{sum_j C_j P_j}{sum_j P_j}
]
using only valid concentration/population intersections.
## Mandatory coverage output
A10 must report, not hide:
- FUA area coverage fraction;
- eligible population;
- valid-concentration population;
- population excluded because GHSL is nodata;
- population affected by concentration nodata or excluded negative concentration;
- population coverage fraction;
- cell/fragment counts by exclusion reason.
No numerical coverage pass threshold is invented in D10. Before any A10 result is computed or inspected, its immutable run configuration must declare the sensitivity materiality rule and its rationale. If no defensible numerical materiality threshold is predeclared, every observed sensitivity must be reported and the reviewer may not issue a PASS on result stability. Undefined arithmetic always fails closed.
## Sensitivity design
A10 must run:
1. **Temporal:** 2025 projected 100 m primary versus 2020 estimated 100 m; report absolute and relative change in H05 and population coverage.
2. **Spatial:** 2025 100 m primary versus 2025 1 km; report H05 change, population totals, boundary allocation and coverage change.
3. **Missingness:** report affected population from concentration exclusions, including `-99.0`, without reinterpreting that value.
Each input archive must be pinned with official URL, byte size and SHA-256 before calculation. The same immutable pre-run configuration must pin the materiality rule before result access; post-hoc threshold selection is forbidden. Outputs must list all Assumption IDs and be reproducibly recalculable.
## Remaining limitations
- GHSL population is modelled/disaggregated and does not remove census uncertainty.
- Uniform within-cell allocation is an approximation; its materiality may vary near FUA boundaries.
- The 2025 projection can shift weights relative to observed 2024 population.
- The 1 km comparison is a sensitivity, not an equally preferred estimate.
- Exact H05 raster unit and `-99.0` provider semantics remain unresolved under `HOLD-H05-SEMANTICS`.
- A successful dry-run remains RESEARCH and cannot close validation or publication gates.
## A10 entry gate
A10 may start only when the exact 2025 100 m, 2020 100 m and 2025 1 km GHSL artifacts needed for Grenoble are pinned. It must apply this contract, the H05 provisional assumptions, deterministic conservation/coverage tests and the predeclared independent Lane S review protocol.
Run the deterministic contract tests with:
```bash
python -m unittest tests/test_h05_ghsl_alignment.py
```