# Hent en terrænkote

`GET /v1/dhm/kote` · DHM

Terrænkoten i DVR90 til en situationsplan — samme svar som /v1/dhm/punkt under det navn, tegningen bruger.

Endpointet deler implementering med `/v1/dhm/punkt`, så de to kan ikke give forskellige tal. Det findes, fordi en situationsplan spørger efter en terrænkote, og den, der udfylder feltet, skal ikke lede efter den under et endpoint, der hedder "punkt".

En kote uden højdesystem kan kommunen ikke kontrollere, så `system: "DVR90"` og `system_epsg: 5799` er altid med, sammen med opløsning, metode og nøjagtighed. Et punkt uden data er `null`, aldrig 0; en utilgængelig model er en 502.

**Godkendelse:** `Authorization: Bearer gf_live_…` (eller `gf_test_…`)

**Afregning:** Ét kald.

## Parametre

| Navn | Placering | Type | Påkrævet | Beskrivelse |
| --- | --- | --- | --- | --- |
| `lon` | query | number | nej | Længdegrad i WGS84 (decimalgrader). Påkrævet, medmindre `x` og `y` er sendt. |
| `lat` | query | number | nej | Breddegrad i WGS84 (decimalgrader). Påkrævet, medmindre `x` og `y` er sendt. |
| `x` | query | number | nej | DAWA-kompatibel østkoordinat eller længdegrad, sammen med `y` og `srid`. |
| `y` | query | number | nej | DAWA-kompatibel nordkoordinat eller breddegrad, sammen med `x` og `srid`. |
| `srid` | query | string | nej | Koordinatsystem for `x`/`y`: `4326` (WGS84) eller `25832` (ETRS89/UTM32N i meter). |

## Eksempel

```bash
curl "https://api.grundfast.dk/v1/dhm/kote?lon=9.9147&lat=56.031834" \
  -H "Authorization: Bearer $GRUNDFAST_API_KEY"
```

## Svar (200)

```json
{
  "punkt": {
    "lon": 9.9147,
    "lat": 56.031834
  },
  "epsg25832": [
    557000.03,
    6209999.99
  ],
  "terraen_m": 23.9,
  "overflade_m": 35.93,
  "system": "DVR90",
  "system_epsg": 5799,
  "oploesning_m": 0.4,
  "metode": "naermeste_celle",
  "usikkerhed_m": 0.05,
  "meta": {
    "kilde": "Dataforsyningen DHM via Grundfast",
    "grundfast_version": "0.1.0"
  }
}
```

## Vigtige felter

| Felt | Type | Betydning |
| --- | --- | --- |
| `terraen_m` | number \| null | Terrænkote (DTM) i meter DVR90. `null` betyder, at modellen ikke har data i punktet — typisk fordi punktet ligger uden for dens dækning: i udlandet (fx Flensborg eller Lund) eller på åbent hav. Aldrig 0, som er en realistisk kote ved kysten. |
| `overflade_m` | number \| null | Overfladekote (DSM) i meter DVR90, inklusive bygninger og beplantning. `null` af samme grunde som `terraen_m`. Brug `terraen_m` til alt, der måles fra jorden. |
| `system` | "DVR90" | Højdesystemet for alle meterværdier i svaret; `system_epsg` er 5799. |
| `oploesning_m` | number | Størrelsen på den rastercelle, værdien er læst fra. `0.4` er modellens egen opløsning. |
| `metode` | "naermeste_celle" | Værdien er cellen, koordinaten falder i — ikke interpoleret. |
| `usikkerhed_m` | number \| null | Modellens specificerede lodrette nøjagtighed (0,05 m) for produktet som helhed, ikke en fejlmargin for netop dette punkt. Under træer og over vand er usikkerheden større. `null`, når der ingen kote er. |

## Fejl

| Status | Betydning |
| --- | --- |
| 400 | Koordinaten mangler, er ikke et tal, ligger uden for Danmark, eller `srid` er andet end 4326 og 25832. |
| 401 | Nøglen mangler eller er ugyldig. |
| 429 | Burst-grænsen eller månedskvoten er nået. Se `Retry-After`. |
| 502 | Højdemodellen kunne ikke nås. Rapporteres aldrig som en kote på 0 eller `null`. |
| 503 | DHM-kilden er ikke konfigureret i dette miljø. |
