# Oversvømmelsesrisiko: stormflodsindikatoren for en adresse

> Forstå klima-endpointet: hvordan terrænhøjde og fremskrevet stormflod giver en margin, hvad niveauerne betyder, og hvad indikatoren ikke dækker.
>
> https://danadresse.dk/guides/oversvoemmelsesrisiko · verified 2026-11-02
Ejendomsportaler, forsikringsfolk og købere spørger: ligger huset lavt i forhold til havet? `GET /api/v1/enrich/adresser/{id}/climate` giver et enkelt tal til det spørgsmål. Det er en indikator for stormflod fra havet, bygget på to åbne datakilder. Den er et udgangspunkt for en samtale eller en nærmere undersøgelse. Den er ikke en risikovurdering, og den kan ikke stå alene i en forsikrings- eller købsbeslutning.

Læs hele guiden, før du viser tallet til slutbrugere. Afsnittet om, hvad indikatoren ikke dækker, er det vigtigste.

## Kaldet

Endpointet tager et adgangsadresse-id eller et adresse-id med etage og dør. Begge giver samme svar, fordi højden måles ved indgangen:

```bash id=climate-curl run=syntax
curl -s "https://api.danadresse.dk/api/v1/enrich/adresser/0a3f507c-0624-32b8-e044-0003ba298018/climate" \
  -H "X-Api-Key: $DANADRESSE_API_KEY"
```

```json id=climate-svar run=no
{
  "adresseid": "0a3f507c-0624-32b8-e044-0003ba298018",
  "coordinates": { "lat": 55.7326, "lon": 12.5757 },
  "flood_risk": {
    "level": "moderate",
    "margin_m": 1.51,
    "terrain_m": 3.35,
    "surge_100yr_future_m": 1.84,
    "rationale": "terrain 3.35 m DVR90 vs projected 100-yr storm surge 1.84 m → margin 1.51 m"
  },
  "storm_surge": {
    "coast": "Øresunds_kyst",
    "distance_km": 9.0,
    "sea_level_rise_cm": 27.7,
    "storm_surge_future_cm": { "20yr": 165.5, "50yr": 177.5, "100yr": 184.5 },
    "scenario": { "scenarie": "SSP5-8.5", "periode": "2041-2070", "percentil": "median (50%)" }
  },
  "terrain": { "terraen_kote_m": 3.35, "datum": "DVR90", "model": "DHM/Terræn" },
  "data_source": "DMI Klimaatlas (open) · Datafordeler DHM/Terræn · CC BY 4.0"
}
```

## Sådan regnes marginen ud

Indikatoren sammenligner to tal:

1. **Terrænets højde** i adressens punkt, fra Danmarks Højdemodel (`terrain.terraen_kote_m`). Højden er i meter over DVR90, som svarer omtrent til middelvandstanden i dag.
2. **Den fremskrevne 100-års stormflod** ved den nærmeste kyststrækning med data i DMI's Klimaatlas (`storm_surge.storm_surge_future_cm["100yr"]`, omregnet til meter i `surge_100yr_future_m`). Scenariet er fast: SSP5-8.5, medianen, perioden 2041-2070. Det er et højt udledningsscenarie, valgt fordi det bruges til planlægning med forsigtighed.

`margin_m` er terrænhøjden minus stormflodshøjden. En positiv margin betyder, at terrænet ligger over den fremskrevne vandstand ved en 100-års hændelse. En negativ margin betyder, at det ligger under.

| `level` | Betingelse |
|---|---|
| `high` | margin 0 m eller derunder |
| `elevated` | margin under 1 m |
| `moderate` | margin fra 1 m til under 2,5 m |
| `low` | margin 2,5 m eller mere |
| `minimal` | ingen kyststrækning med data inden for 30 km |
| `null` | data mangler. `rationale` forklarer hvorfor, og `margin_m` er `null` |

Grænserne 1 m og 2,5 m er vores egne valg for at gruppere tallet. De er ikke en officiel klassifikation. Vis gerne selve marginen i meter ved siden af niveauet.

## Hvad indikatoren ikke dækker

- **Skybrud og regnvand.** Oversvømmelse fra kraftig regn, overfyldte kloakker og lavninger, hvor vandet samler sig, er ikke med.
- **Vandløb, søer og grundvand.** Kun havet er med.
- **Om vandet kan nå frem.** Sammenligningen er ren højde mod højde. Diger, sluser, klitter og højere terræn mellem kysten og adressen indgår ikke. En lavtliggende adresse bag et dige kan få `high`, selv om den er beskyttet.
- **Afstanden til kysten.** Stormflodshøjden hentes ved det nærmeste datapunkt i Klimaatlas, som kan ligge flere kilometer væk (`storm_surge.distance_km`). Indikatoren siger ikke, hvor tæt adressen ligger på vandet.
- **Selve bygningen.** Terrænhøjden er målt i adressens punkt. Gulvhøjde, kælder og sokkel er ikke med.
- **Bølger og vindopstuvning lokalt** ud over det, der ligger i Klimaatlas' tal.

Har bygningen tidligere haft en skade, som Stormrådet har registreret, er det markeret i BBR. Se `stormflodRegistreret` i [BBR-guiden](/guides/bbr-bygningsdata). Det er et historisk faktum og et nyttigt supplement til den fremskrevne indikator.

## Brug i kode

```python id=climate-python run=syntax
import os
import requests

def stormflod(adgangsadresse_id):
    r = requests.get(
        f"https://api.danadresse.dk/api/v1/enrich/adresser/{adgangsadresse_id}/climate",
        headers={"X-Api-Key": os.environ["DANADRESSE_API_KEY"]},
        timeout=20,
    )
    if r.status_code == 503:
        return {"tekst": "Data er midlertidigt utilgængelige", "retry_after": r.headers.get("Retry-After")}
    r.raise_for_status()
    f = r.json()["flood_risk"]
    if f["level"] is None:
        return {"tekst": "Ikke nok data til en vurdering", "detalje": f["rationale"]}
    if f["level"] == "minimal":
        return {"tekst": "Langt fra kysten (over 30 km)", "niveau": "minimal"}
    return {
        "tekst": f'Terræn {f["terrain_m"]} m, 100-års stormflod ca. {f["surge_100yr_future_m"]} m '
                 f'(margin {f["margin_m"]:+.2f} m)',
        "niveau": f["level"],
    }

print(stormflod("0a3f507c-0624-32b8-e044-0003ba298018"))
```

## Når du viser det til brugere

- Skriv, hvad tallet er: "Terrænet ligger 1,5 m over en fremskrevet 100-års stormflod (2041-2070)". Undgå ord som "sikker" eller "farlig".
- Vis kilden og licensen. Data er fra DMI's Klimaatlas og Danmarks Højdemodel under CC BY 4.0: "Indeholder data fra Klimadatastyrelsen (CC BY 4.0)" og DMI.
- Henvis til de officielle kilder for en egentlig vurdering, f.eks. kommunens klimatilpasningsplan.

## Teknisk

- Svaret gemmes i 24 timer pr. adresse. Det første kald kan tage et par sekunder.
- Testnøgler får `403` med `sandbox_scope`, browsernøgler `403` med `browser_key_scope`. Kald fra din server.
- Svarer en af de bagvedliggende kilder ikke, kan `terrain` eller `storm_surge` indeholde et `_status`-felt, og `flood_risk.level` er så `null`. Under Datafordelerens servicevinduer kan kaldet svare `503` med `upstream_unavailable` og `Retry-After`.
- Et ukendt id giver `404` med koden `not_found`.

## Næste skridt

- [Hent BBR-data om bygning og bolig](/guides/bbr-bygningsdata)
- [Matrikel, jordstykke og BFE-nummer](/guides/matrikel-og-jordstykke)
