Terrengkategori og terrengform
Terrengruhetskategori etter NS-EN 1991-1-4:2005/NA:2009 for et punkt, fastsatt retningsvis i 72 sektorer ut til 10 km fra Kartverkets høydemodeller, FKB-bygninger og NIBIO AR5, med overgangssoner, kontrollpunkter, terrengformfaktor c_o etter NA.4.3.3 og RIB-overstyring. JSON, PDF eller HTML. Beta.
- POST /api/terrain/category
- POST /api/terrain/jobs
- GET /api/terrain/jobs/{id}
- GET /api/terrain/jobs/{id}/fil
Hva du får
Vindlastberegningen etter NS-EN 1991-1-4 trenger terrengruhetskategori (0 til IV) per vindretning. Endepunktet leser terrenget rundt punktet: høydemodeller (DOM/DTM 1 m i nærfeltet, 10 m ut til 10 km), arealbruk fra AR5 og bygningsomriss fra FKB, og fastsetter kategori i 72 rullerende 30°-sektorer etter reglene i NA, med overgangssoner (NA.4.3.2(2)), kontrollpunkter der grunnlaget ikke avgjør, og terrengform (NA.4.3.3) med co og kI per sektor. Ansvarlig prosjekterende (RIB) kan bekrefte og overstyre per sektor, og rapporten merker det med navn og dato. Skjønnsvalgene i metoden står på terrengkategori-siden.
Betaversjon, gratis i pilot, uten nøkkel, begrenset til 1 per sekund og 30 per time per IP-adresse. Rapporten er et beslutningsgrunnlag som RIB kontrollerer og godkjenner.
POST /api/terrain/category
Synkront, inntil 60 s. Bruk jobbendepunktet i alt som ikke er interaktivt.
curl -X POST https://api.solkart.no/api/terrain/category \
-H "Content-Type: application/json" \
-d '{"lat": 59.2185, "lon": 10.9298, "sted": "Jegerveien 8, Fredrikstad", "akse_grader": 35}'
| Felt | Type | Standard | Beskrivelse |
|---|---|---|---|
lat, lon |
tall | påkrevd | 57 til 72° N, 4 til 32° Ø |
radius_km |
2 til 10 | 10 | Analyseradius |
z_ref_m |
0 til 200 | Referansehøyde (byggets høyde) for overgangssoner | |
z_ref_note |
streng ≤ 60 | Merknad om hvor høyden kommer fra | |
akse_grader |
0 til 179,99 | Byggets lengderetning; gir kategori per akse i tillegg | |
sted |
streng ≤ 160 | Adresse eller navn til rapporten | |
rapport_id |
streng ≤ 40 | Din referanse, trykkes i rapporten | |
kart |
boolean | false |
Legg kartlagene ved som SVG i JSON-svaret |
format |
json | pdf | html |
json |
Også som ?format= |
overstyring |
objekt | RIB-valg, se under |
overstyring
| Felt | Beskrivelse |
|---|---|
rib |
Navn og firma, 2 til 120 tegn. Påkrevd når overstyring er med. |
kommentar, dato |
Fri tekst ≤ 1000 og dato ≤ 20 tegn |
sektorer[] (≤ 13) |
{senter_grader 0–359, kategori 0–4, kommentar}: overstyr kategori i sektoren |
bekreftelser[] (≤ 14) |
{sektor_grader, kode, kommentar}: bekreft et kontrollpunkt (kode er kontrollpunktets kode fra svaret) |
terrengform[] (≤ 13) |
{senter_grader, type, c_o, k_I, kommentar} med type ∈ flatt, aas, skraaning, aas_i_le, le_slak, le_bratt, manuell; c_o og k_I 0,5 til 3 (brukes ved manuell) |
Svar 200 med format=json
Ekte svar for punktet over (forkortet: 72 sektorer, 7 kontrollpunkter og 24 regeltreff er kuttet til ett hver):
{
"sted": { "lat": 59.24, "lon": 10.9526, "utm33": [271950, 6573900] },
"norm": "NS-EN1991-1-4:2005+NA:2009",
"resultat": {
"terrengkategori": "II",
"kategori_id": 2,
"styrende_sektor_grader": 0.0,
"per_akse": { "35": 2, "125": 2, "215": 2, "305": 2 },
"konfidens": 0.8,
"krever_kontroll": true,
"kontrollgrunner": [ "…" ],
"fastsatt_av_rib": false,
"c_o_maks": 1.31,
"c_o_styrende_sektor_grader": 100.0,
"k_I_maks": 1.0,
"k_I_sektorer_grader": []
},
"kontrollpunkter": [
{ "kode": "terrengform_aas", "sektor_grader": 60.0, "sektor_label": "sektor 060°",
"kort": "terrengform skråning, c_o = 1,21",
"tekst": "Skråning med H = 77 m, L_H = 360 m, B = 2190 m og x = 550 m gir c_o = 1,21 etter NA.4(901.5). …",
"risiko": "Kan gi høyere vindlast: c_o kan være høyere om en annen topp eller form velges",
"lavere": true, "kategori_valgt": null, "kategori_mulig": null, "bekreftet": null }
],
"overstyring": null,
"sektorer": [
{ "senter_grader": 0.0, "kategori": 2, "overstyrt": null,
"terrengform": { "type": "skraaning", "beskrivelse": "Skråning eller platåkant, stedet i øvre halvdel (NA.4.3.3(901.2), ΔS = 1,8·H/L_H)",
"c_o": 1.007, "k_I": 1.0, "H_m": 45.2, "L_H_m": 570, "B_m": 1410, "x_m": 2140, "phi": 0.079,
"z_sted_moh": 66.6, "z_topp_moh": 79.7, "z_bunn_moh": 34.5, "z_ref_m": 10.0,
"bratt": null, "le_slak_mulig": false, "tvinger_kategori_II": false, "merknader": [], "profil": [[-3000, 34.5], "…"] },
"z0_m": 0.05,
"overgangssone": { "present": true, "x_B_km": 2, "n": 2, "tc_upwind": "IV", "vm_ratio": 0.86, "direction": "avtakende", "flere": [ "…" ] },
"baand": [
{ "km": "0–0,3", "kategori": 2, "z0_m": 0.05, "z0_morfometrisk_m": 1.0, "lambda_p": 0.0, "h_av_m": 0.0,
"arealklasse": "forest_conif", "arealandeler": { "forest_conif": 0.989, "forest_mixed": 0.011 },
"vannandel": 0.0, "stroklengde_vann_km": 0.0, "stroklengde_hav_km": 0.0, "haveksponering": 0.01,
"bygningskilde": "fkb", "hoydedekning": 1.0 }
] }
],
"regeltreff": [
{ "kode": "ung_skog_ii", "punkt": "NA.4.1 (kat. II)", "tekst": "Skog med middelhøyde under 4 m regnes som spredte objekter.",
"grunnlag": { "h_av_m": 0.0, "band_km": "0–0,3", "ndom_dekning": 1.0 }, "sektorer": [ "…" ], "sektor_tekst": "sektorene 145–060° og 100–105°" }
],
"grunnlag": {
"hoydemodell": "Kartverket DOM1/DTM1 i 2,5 m for 0-1 km og DOM10/DTM10 i 30 m for 1-10 km (nDOM = DOM - DTM)",
"arealdekke": "NIBIO AR5 (WMS)", "bygningskilde": "Kartverket FKB Bygning", "bygninger_antall": 1261,
"ar5_datafangst": "28.04.1994", "ar5_alder_aar": 32, "sektorbredde_grader": 30, "sektorsteg_grader": 5,
"referansehoyde_m": 10.0, "referansehoyde_oppgitt": false, "akse_grader": 35.0, "beregnet_sekunder": 3.5, "responstid_ms": 34031
}
}
| Felt | Beskrivelse |
|---|---|
resultat.terrengkategori, kategori_id |
Styrende kategori for punktet som romertall (0, I til IV) og tall (0 til 4): laveste over sektorene etter NA.4.3.2(4) |
resultat.per_akse |
Kategori for byggets to akser og deres motsatte retninger (nøkkel = grader), når akse_grader er gitt |
resultat.konfidens |
0 til 1, hvor godt grunnlaget avgjør |
resultat.krever_kontroll, kontrollgrunner[], kontrollpunkter[] |
Punkter der usikkerheten kan gi annen kategori eller c_o og dataene ikke avgjør; hvert kontrollpunkt har kode, sektor_grader, tekst, risiko og bekreftet. RIB bekrefter via overstyring.bekreftelser med samme kode. |
resultat.c_o_maks, c_o_styrende_sektor_grader, k_I_maks |
Høyeste terrengformfaktor og turbulensfaktor over sektorene, og hvilken sektor |
sektorer[] |
72 sektorer (hvert 5°, 30° brede) med kategori (0 til 4), ruhetslengde z0_m, terrengform (type, c_o, k_I, H_m, L_H_m, B_m, x_m, høyder og profil), overgangssone (x_B_km, tc_upwind, vm_ratio, direction) og baand[] per avstandsbånd med arealklasse, bebygd andel lambda_p, middelhøyde h_av_m, vannandel og strøklengder |
regeltreff[] |
Hvilke regler i NA som slo til, med punkt, grunnlag og sektorintervaller |
grunnlag |
Datakilder, oppløsning, AR5-alder, referansehøyde og beregningstid |
format=pdf gir rapporten som application/pdf (Content-Disposition med filnavn), html som HTML; begge med hodene X-Terrengkategori og X-Konfidens (JSON-svaret har verdiene i resultat). Alle svar er Cache-Control: private, no-store.
I kø: POST /api/terrain/jobs
Samme kropp. Svar 202 med jobb_id, status, posisjon, estimert_sekunder; status på GET /api/terrain/jobs/{id}; fil på GET /api/terrain/jobs/{id}/fil når status er done og formatet er pdf eller html. Resultatene lever i 15 minutter. Se asynkrone jobber for hele flyten med kode.
Eksempel: RIB bekrefter og overstyrer
curl -X POST https://api.solkart.no/api/terrain/jobs \
-H "Content-Type: application/json" \
-d '{
"lat": 59.2185, "lon": 10.9298, "sted": "Jegerveien 8, Fredrikstad", "z_ref_m": 9, "format": "pdf",
"overstyring": {
"rib": "Kari Nordmann, Nordmann Bygg AS", "dato": "2026-09-15",
"kommentar": "Befaring 12.09: ny bebyggelse sør for tomta er ikke i FKB ennå.",
"sektorer": [ { "senter_grader": 180, "kategori": 3, "kommentar": "Rekkehus ferdigstilt 2026" } ],
"bekreftelser": [ { "sektor_grader": 240, "kode": "vann_strok_240", "kommentar": "Kontrollert mot kart" } ],
"terrengform": [ { "senter_grader": 120, "type": "aas" } ]
}
}'
Rapporten viser overstyringene med RIB-navn, dato og kommentar, og markerer sektorene som fastsatt av RIB.
Feil
| Status | code |
error |
|---|---|---|
400 |
INVALID_INPUT |
lat må være et tall mellom 57 og 72., radius_km må være mellom 2 og 10., z_ref_m må være mellom 0 og 200., akse_grader må være mellom 0 og 179., overstyring.rib må oppgis (navn og firma)., overstyring.sektorer: senter_grader 0–359 og kategori 0–4., format må være én av: json, pdf, html. |
422 |
NO_COVERAGE |
Ingen datadekning for dette punktet (høydemodell mangler). |
429 |
RATE_LIMITED |
Over 1/s eller 30/time; Retry-After |
503 |
BACKEND_BUSY |
Terrengkategori-tjenesten er opptatt. Prøv igjen. (Retry-After = anslått ventetid i sekunder, 30 når anslag mangler) |
504 |
BACKEND_TIMEOUT |
Analysen brukte mer enn 60000 ms. Bruk jobbendepunktet. |
502 |
BACKEND_ERROR |
Beregningstjeneren svarte feil |
Datagrunnlag
Kartverket DOM og DTM 1 m (nærfelt 0 til 1 km) og DTM 10 m (ut til 10 km), Kartverket FKB-bygninger (omriss og høyde), NIBIO AR5 arealressurskart, og ortofoto til rapportens kart. Metoden og skjønnsvalgene, inkludert strøklengde over vann, kategori IV-kriteriene og terrengform etter NA.4(901.5), er beskrevet på solkart.no/terrengkategori.