# Hent højden i et punkt

`GET /v1/dhm/punkt` · DHM

Terræn- og overfladekote i ét WGS84-punkt fra Danmarks Højdemodel, i meter DVR90.

Svaret har to koter: `terraen_m` fra terrænmodellen (jorden) og `overflade_m` fra overflademodellen (med bygninger og beplantning). Forskellen mellem dem er fx højden af det, der står i punktet.

Hver kote følges af sin kvalitet: højdesystem (DVR90), rastercelle, udtagningsmetode og modellens nøjagtighed. Det står i selve svaret, så tallet kan skrives direkte på en tegning uden at skulle forklares bagefter. Koordinaten ekkoes i `punkt` og reprojiceret i `epsg25832`.

**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/punkt?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ø. |
