# Europe map-layer collection

Collected **5 October 2026** on `codex/maps`. Three parallel workstreams collected electricity connections, gas storage/LNG, and generation/hydro. This is a reproducible research package and local coverage browser. It does not activate new layers in the application or claim a complete current European asset register.

Open **http://127.0.0.1:5186/research/** while `bun run dev:maps` is running. Choose a dataset and click a country tile to see source coverage, observed API availability and unresolved connections. Colour represents record count, not energy or infrastructure completeness. This research page is served in development; the existing maps build entry remains the geographic prototype.

## What was collected

| Dataset | Collected | Readiness and limitation |
| --- | ---: | --- |
| Electricity relationships | 105; **95 eligible schematic edges** | 64 additions beyond the prototype's 31. Ten future/unresolved relationships held separately. No measured flows or physical routes inferred. |
| Electricity identities | 55 curated nodes, 128 zone candidates, 539 CIO tie-line candidates | Candidates require review; active EIC registration does not imply current geographic market membership. |
| Named GB interconnectors | 11 assets | Published endpoint names and source-date status; coordinates still unverified. |
| Gas storage | **270 location records** | SciGRID 2021; approximate points, duplicate/group and current-status review needed. Four records have unknown country. |
| LNG | **146 project phases / 113 terminal IDs** | GEM October 2023; preserve operating/planned/retired status as of that vintage. Not 146 operating terminals. |
| Gas border locations | 109 | SciGRID 2021; separate from virtual/commercial reporting points. |
| Generation | **10,946 plant records**, 41 scope countries | WRI historical baseline, unmaintained since 2022; includes hydro and must not be summed with other inventories. |
| Hydro | **4,264 records**, 30 countries | JRC project inventory, source repository January 2026; 984 have static stored-energy capacity. Individual observation dates unspecified. |
| Norway hydro | **2,010 register entries** | Current NVE collection; 1,840 unique point matches, 23 ambiguous and 147 unmatched. 1,964 explicit zone assignments. Includes non-operating entries. |
| Current GIE inventories | 232 storage rows, 77 LNG rows | August 2026, cached locally only pending reuse review. No coordinates/EICs; not yet matched to location seeds. |
| ENTSOG identities/topology | 789 points, 1,186 relations | Cached locally under source-specific terms. Map X/Y are schematic and cannot be treated as longitude/latitude. |

The 44-country/territory research scope is explicit in [scope.json](scope.json). Coverage gaps remain, especially wider-European systems, islands, microstates, current plant changes and small installations. Whole-country inventories retain overseas and transcontinental locations. The source inventories are not clipped to the prototype viewport. Missing records never mean zero assets.

See the detailed source manifests and attribution in [electricity](electricity/README.md), [storage/LNG](storage-lng/README.md), and [generation/hydro](generation-hydro/README.md). Static sources retain native identifiers, provenance, vintage, rights and coordinate accuracy. Raw downloaded snapshots remain in `.cache/maps-research/`; these cached snapshots are not included in Git.

## How it links

```mermaid
flowchart LR
  Countries[Country polygons and regional membership] --> Selection[Shared entity selection]
  Zones[Bidding-zone geometry and effective EIC identities] --> Selection
  Assets[Physical assets: native ID, coordinates, technology, source] --> Selection
  Assets --> Crosswalk[Reviewed entity crosswalk with validity dates]
  Reporting[Provider reporting entities: EIC and grouping] --> Crosswalk
  Crosswalk --> Readings[Dated provider observations]
  Zones --> Borders[Aggregate zone-pair connections]
  Assets --> Cables[Named physical interconnectors]
  Cables --> Borders
  Readings --> Views[Map fills and symbols / tile charts / full charts]
  Selection --> Views
```

A physical site, reporting entity, country and bidding zone are different identities. A reporting group may contain multiple sites; a market may cross a national border. Denmark's two physical storage sites share one reporting aggregate. GB's electricity area excludes Northern Ireland, while SEM covers Ireland and Northern Ireland. Åland is Finnish territory in Swedish bidding zone SE3. Geometry integration for these memberships remains outstanding.

Prices join effective bidding-zone EICs and their market day. Generation, demand and hydro observations join the grain exposed by their read API. Existing generation stacks and reservoir routes expose country/region aggregates, so zone-level generation needs an adapter over the underlying zonal store. A country value cannot be allocated to individual plants or copied to each zone.

## Observed access and dates

Read-only checks reached the public API on 5 October:

- Prices: **39/41 zones** had values for 5 October; load values in 38/41. Runtime provenance is direct ENTSO-E terms, superseding this branch's older euenergy.live attribution.
- Gas storage: 22 country rows for gas day **3 October**; 20 C/E rows and two N rows. LNG: 13 rows for that day; 12 C/E rows and one N row. Preserve provider status and individual available fields.
- Norway hydro: 309 populated weekly observations, latest **13 September**. Accessible does not mean current-week.
- The 4 October electricity country table had 25 load and 23 gas-generation values across 27 rows, with two rows marked partial.

These are dated observations, not a continuously refreshed availability monitor. See [gas API evidence](gas-api-availability.json) and [electricity/hydro API evidence](generation-hydro/api-observation.json).

Two existing calculations need precise map labels: hydro “fill” compares energy to a historical observed peak, not physical capacity; table gas/renewables shares divide generation by demand, not total generation. Both can exceed 100%. LNG liquid volume, gas energy, hydro stored energy and power capacity have different units and must remain distinct.

## Proposed presentation

[The layer catalogue](layer-catalogue.json) defines 16 reference, asset and measurement layers, including a future flow layer. [The figure plan](figure-plan.json) maps all 31 figures in the current working application checkout into geographic summaries, retained charts or both. That checkout has uncommitted changes; its figure registry differs from this isolated branch's 34 entries. No application changes were copied here.

- **Geographic view:** one area colour measure (prices, storage, demand or generation), independent connections and facility overlays, source/date legends, shared selection and sidebar.
- **Tile view:** the attached example's equal-sized country layout is suitable for sparklines, mixes and comparable trends. Use the same calculations, selected date and entity as the geographic view. Comparable charts need common windows and scales, or an explicit independent-scale label.
- **Sidebar:** show the selected country's/zone's context or facility's own verified attributes, with existing time series and stacked charts where those are the clearest representation. Facility context must be labelled as regional context.

The coverage browser demonstrates tile selection and source inspection. It intentionally displays actual collected counts; energy sparklines and live measurements are not wired into these tiles yet.

## Integration sequence and remaining work

1. Add the 64 researched schematic connections and reconcile their zone geometry, especially SEM/GB, Åland, Italy and new nodes. Keep future/held edges separate.
2. Add source-selectable generation, hydro and LNG point layers with clustering and source/status filters. Start with WRI non-hydro plus JRC hydro; offer NVE as a separate Norway source until a reviewed replacement is possible.
3. Reconcile current GIE inventories against old coordinates and complete reporting EIC crosswalks before colouring individual gas/LNG sites with live values. Recheck FSRU locations and project phases.
4. Add selected-date choropleths from existing providers, showing coverage and actual served date independently for each product. Preserve missing, stale, sample and partial states.
5. Share selection/data adapters with tile small multiples and sidebar charts. Add measured/scheduled electricity flows only after ingesting the appropriate directed ENTSO-E product; no existing flow endpoint was established by this audit.

Open gaps include physical interconnector coordinates/routes, current Turkish borders, Ukrainian reporting/availability, island memberships, full current generation coverage, batteries, reservoir outlines, and source-specific commercial reuse review. The advertised newer GEM release could not be acquired because its download link looped; the collected LNG vintage remains October 2023.

No matching GasData/euroenergydata work was found in the connected Linear workspace. This package records the work without creating an unrelated AnalystOne issue.

## Reproduce and validate

```sh
python3 scripts/maps-research-electricity.py
python3 scripts/maps-research-storage-lng.py
python3 scripts/maps-research-generation.py
python3 scripts/maps-research-coverage.py
bun run lint
```

Collectors verify pinned raw-source hashes, identifiers, coordinate validity and referential integrity. Retain the local cache for exact reproduction of mutable feeds: if today's source no longer matches its pinned hash, a fresh download deliberately fails instead of silently changing the collection. Python workbook dependencies and Poppler requirements are documented in each collection. Large generation inventories retain deterministic compact formatting and are narrowly excluded from Biome; collector validation and artifact hashes cover those files. Coverage output is derived, not manually maintained.

Validation on 5 October: all three cached collectors rebuilt successfully (storage/LNG used the bundled Python with `openpyxl`); combined coverage regenerated for 44 countries and eight measures; repository Biome and maps TypeScript checks passed. Browser checks verified all 44 tiles, dataset switching, NO3–NO4 display, shared DE–LU price membership, mobile overflow and absence of browser errors. Desktop screenshot was visually inspected. No live measurements were changed.
