# Datagrunnlag og videre arealregnskap ## Levert datagrunnlag Den nasjonale oversikten viser eksisterende arealbruk for 357 kommuner. Kilde er [SSB tabell 09594](https://www.ssb.no/statbank/table/09594/), årgangene 2024, 2025 og 2026. Se feltet `retrievedAt` for faktisk hentetidspunkt. Enhet er km²; én km² er 1 000 dekar. [SSBs metodebeskrivelse](https://www.ssb.no/natur-og-miljo/areal/statistikk/arealbruk-og-arealressurser) skiller mellom bebygde arealer klassifisert etter bruk og ubebygde arealressurser klassifisert etter markslag. Publiserte årganger må ikke uten videre differensieres til målt nedbygging: grunnlagskart, metode og kommunegrenser kan være endret. Kommuneutvalget kommer fra [SSB Klass 131](https://data.ssb.no/api/klass/v1/classifications/131), med referansedato 2026-01-01. Kode 9999 (uoppgitt) tas ikke med. Kommunenavn og punkt i området kommer fra [Kartverket Kommuneinfo](https://api.kartverket.no/kommuneinfo/v1/). ### Kategorier og summering Bebygd areal summerer følgende gjensidig avgrensede SSB-hovedklasser: `01, 02, 03, 04, 05, 06, 07, 08-09, 10-11, 12-13, 14`. Underkategorier inkluderes ikke på nytt. Ubebygde kategorier: `15-16, 17, 18, 19, 20, 21, 22, 24`. Totalen inkluderer ferskvann, men ikke sjø. Skog og øvrig naturmark er en visningssum av `17–21`, ikke et naturkvalitetsmål. Ukjente verdier beholdes som `null`; de fylles aldri med null areal. SSBs avrunding kan medføre avvik fra andre totalarealkilder. Et bulkuttrekk fra PxWeb leses og kontrolleres for dimensjoner, unike observasjoner, kommunedekning og numeriske verdier. Nytt datasett publiseres med atomisk filbytte først etter at hele innhentingen lykkes. `--offline` er eksplisitt gjenbruk av rådatacache; det er ikke en stille reserve ved API-feil. ### Kart Norgeskartet bruker en forenklet kystlinje fra Natural Earth, 1:50m, geografisk transformert til illustrasjonen. Interaktive punkter kommer fra Kartverket; dette er ikke kommunegrenser. Kilde til kystlinjen: https://github.com/nvkelso/natural-earth-vector/blob/master/geojson/ne_50m_admin_0_countries.geojson (Natural Earth er public domain). Kommunekartet bruker MapLibre GL og Kartverkets WMTS-lag `topograatone` i Web Mercator, `https://cache.kartverket.no/v1/wmts/1.0.0/topograatone/default/webmercator/{z}/{y}/{x}.png`. Dette er gråtonevarianten av Kartverket-bakgrunnen i Byggeklart. Kartet har synlig kildeangivelse og et valgbart NIBIO AR50 WMS-lag, `https://wms.nibio.no/cgi-bin/ar50_2`, lag `Arealtyper`. AR50 er generalisert og skal ikke brukes som detaljert plangrunnlag eller for å rekonstruere SSBs statistikk. Eksterne karttjenester er eneste avhengighet under vanlig bruk utover statiske filer. ## Publiserte reserver for alle kommuner Se [RESERVE.md](RESERVE.md) for kilder, summering, nullhåndtering, dekning og gjenstående arbeid for en egen oppdatert GIS-beregning. SSB-tabellene 14677/14681/14650 er koblet inn som datert referansegrunnlag. Dette er separat fra SSB 09594 og fra den lokale GIS-metoden nedenfor. ## Et fullstendig planbasert arealregnskap [Kommunal- og distriktsdepartementets veileder](https://www.regjeringen.no/no/dokumenter/arealregnskap-i-kommuneplan/id3017913/) beskriver to sentrale deler: arealreserven i gjeldende plan og arealbruksendringer i nytt planforslag. Denne versjonens GIS-script dekker **første del**, for et forhåndskontrollert planutvalg. Planforslag, planvedtak, juridisk prioritet og geometri må avklares utenfor scriptet. Nødvendige kilder ved nasjonal utvidelse: 1. Kommuneplanens arealdel og relevante reguleringsplaner gjennom Geonorge/kommunale planregistre. Bevar plan-ID, plantype, status, vedtaksdato, arealformål og kildeversjon. 2. Grunnkart for arealregnskap og/eller tilrettelagt SSB arealbruk, NIBIO AR5 og supplerende N50 der AR5 mangler. Bruk én dokumentert, heldekkende og eksklusiv klassifikasjon. 3. Gjeldende kommunegrenser med riktig referansedato. 4. Separate temalag ved naturanalyse: naturtyper, verneområder, myr og andre relevante data. Overlappende temalag er ikke additive arealkategorier. Planlagte arealer kan overlappe og ha ulik juridisk prioritet. Det kreves kommunevis kontroll av hvilke planer som gjelder. Kartdata må være tilgjengelige med vilkår som tillater bruk, lagring og eventuell publisering. Sjekk kildevilkår før offentlig drift. ### GIS-scriptets inputkontrakt Alle input er polygonlag med oppgitt CRS, eksempelvis GeoPackage, GeoJSON eller et format støttet av GeoPandas. GeoJSON følger RFC 7946 med lengde-/breddegrad i WGS84; bruk GeoPackage for projiserte data. Feltnavnene er et bevisst normalisert mellomformat, ikke en påstand om at rå SOSI allerede har disse feltene. `boundary`: kommunegrense. Bruk korrekt kommune; scriptet kan ikke verifisere at etiketten på en vilkårlig geometri er riktig. `plans`: kun det gjeldende, ferdig prioriterte planutvalget, med: - `development`: faktisk boolsk verdi. `true` når arealformålet inngår i valgt utbyggingsavgrensning. - `adopted`: faktisk boolsk verdi. Alle rader må være `true`; planforslag avvises. `land-cover`: faktisk arealbruk med: - `land_cover`: ikke-tomt kategorinavn. - `built`: faktisk boolsk verdi som angir om flaten er eksisterende bebygd areal. Disse flatene må dekke hele utbyggingsutvalget og ikke overlappe. Grense utenfor planutvalget trenger ikke heldekning for denne beregningen. ### Kjøring ```sh .venv/bin/python scripts/analyze-reserve.py \ --boundary /path/to/kommune.gpkg \ --plans /path/to/gjeldende-plan.gpkg \ --land-cover /path/to/grunnkart.gpkg \ --municipality 3301 \ --plan-name 'Gjeldende kommuneplan – kontroller faktisk versjon' \ --plan-date YYYY-MM-DD \ --source 'Planregister og grunnkart, oppgi faktiske versjoner' \ --crs EPSG:25832 \ --output /path/to/arealreserve-3301.json ``` Velg en egnet lokal UTM-sone for kommunen. Scriptets standard er EPSG:25833; dette er et praktisk standardvalg, men ikke arealriktig over hele Norge. Eksemplet velger sone 32 for Drammen. Arealer beregnes i projiserte meter, konvertert til dekar. Analysen: 1. Avvis tom, ugyldig eller ikke-polygonal geometri og ukjent CRS. 2. Transformer til valgt projisert CRS med meter som enhet. 3. Slå sammen utbyggingspolygonene og klipp til kommunegrensen; overlapp teller dermed bare én gang. Dette erstatter ikke vurdering av juridisk prioritet. 4. Kontroller at arealdekke dekker hele planutvalget og at flater ikke overlapper. Geometrisk toleranse er 0,1 m². 5. Trekk fra eksisterende bebygde flater og fordel restarealet etter arealkategori. 6. Avstem delsummer mot total og skriv JSON atomisk. Rapporten importeres under «Arealreserve» på kommunesiden. Kommunenummer, enheter, tall og avstemming valideres også i nettleseren. Rapporten lastes ikke opp, lagres ikke permanent og endrer ikke nasjonale SSB-data. Importerte rapporter merkes som lokalt grunnlag som ikke er kvalitetssikret av tjenesten. ### Hva analysen ikke beregner - Fortetting, transformasjon eller netto byggeklart areal. - Rettsvirkning og rang mellom planer. - Naturtilstand, biodiversitetsgevinst eller erstatningskrav. - Klimagassutslipp og karbonopptak. - Endring mellom to planversjoner. Neste naturlige utvidelse er versjonerte planuttrekk per kommune og en plan-til-plan-overlagsanalyse med overgangsmatrise. Bevar både rågrunnlag og analyseresultat, kildehash, CRS, metodeversjon og kontrollstatus. Nettstedet kan fortsatt bygges statisk; tyngre GIS-jobber kjøres utenfor nettsiden og publiserer validerte JSON/GeoJSON-filer. Et nasjonalt naturregnskap må bygges som et eget faglig lag. # Arealreserve – leveranse, metode og datagap Kontrollert 13. oktober 2026. Målet om en egen, oppdatert GIS-reserve for alle kommuner er **ikke oppnådd**. Det som er implementert er en etterprøvbar nasjonal referanse fra SSB. Ingen Norkart- eller Naturkampen-tall er brukt i appens reservedatasett. ## Publisert referansegrunnlag | Formål | Tabell | Utvalg | År | Kommuner med minst én oppgitt arealklasse i siste årgang | |---|---|---|---|---| | Boligbebyggelse | [14677](https://www.ssb.no/statbank/table/14677/) | G02 | 2025, 2026 | 357 | | Næringsbebyggelse | [14681](https://www.ssb.no/statbank/table/14681/) | G08 | 2025, 2026 | 357 | | Fritidsbebyggelse | [14650](https://www.ssb.no/statbank/table/14650/) | G04 | 2025 | 344 | Statistikkens referansedato er 1. januar. Publiseringsdato og faktisk hentetidspunkt finnes per kilde i `public/data/reserves.json`. Alle 357 gjeldende kommunenummer i appens register behandles. Kommuner med manglende tall er med i resultatet med `null`, ikke fjernet. For fritidsbebyggelse 2025 mangler alle seks arealklasser i: Oslo (0301), Time (1121), Randaberg (1127), Røst (1856), Lillestrøm (3205), Ullensaker (3209), Lørenskog (3222), Rælingen (3224), Gjerdrum (3230), Øvre Eiker (3314), Ibestad (5514), Lavangen (5518) og Loppa (5614). Se maskinlesbar `coverage.missing` for det autoritative utvalget. Det er forskjell på publiserte observasjoner og fullstendig plandekning. At en kommune har tall bekrefter ikke at alle gjeldende planer er innrapportert, eller at alle områder er byggbare. ## Beregning i uttrekket SSB har utført den romlige beregningen; appen har ikke rekonstruert reservepolygonene. [SSBs statistikkbeskrivelse](https://www.ssb.no/natur-og-miljo/areal/statistikk/kommunenes-arealplaner) beskriver kombinasjon av reguleringsplan og kommuneplan samt fratrekk for eksisterende og uforenlig bruk. [Boligartikkelen fra august 2026](https://www.ssb.no/natur-og-miljo/areal/statistikk/kommunenes-arealplaner/artikler/store-arealreserver-til-boligbygging-i-kommunale-planer) forklarer at transformasjon kan inngå, men ikke vanlig fortetting i eksisterende boligområder. - Bare G02, G08 og G04 brukes. Hver er en arealformålsgruppe, ikke en sum av alle utbyggingsformål. - Gruppene legges ikke sammen med sine underformål. G01, G03 og G10 legges ikke til boligreserven. Dette unngår dobbeltelling og uklar avgrensning mot kombinerte formål. - De seks arealklassene bevares i kildeenheten dekar. 1 km² = 1 000 daa. - `values` bevarer SSBs `null`. `statuses` bevarer årsaken, blant annet `.` («ikke mulig å oppgi tall» i kilden). Null er ikke det samme som numerisk 0. - `publishedSum` er summen av tilgjengelige numeriske celler, eller `null` hvis ingen er oppgitt. Dette kalles **sum publiserte tall**, med stjerne når klasser mangler. - `total` er bare utfylt hvis samtlige seks klasser er numeriske. Ellers `null`. Appen kaller ikke delsummer bekreftede totaltall. - Ingen sum på tvers av formål med ulike år. Valget «Siste per formål» viser den faktiske årgangen over hver kolonne. Valg av 2026 viser fritidsbebyggelse som manglende årgang; 2025-tall fylles ikke inn automatisk. - Kommunevise summer avstemmes mot SSBs egne nasjonale celler med toleranse for uavhengig avrunding til hele daa. ## Reproduser og oppdater ```sh npm run data:reserves npm test npm run build ``` `curl` og Node er tilstrekkelig. Ingen nøkkel, database eller backend kreves. Metadata og respons fra PxWeb caches i `data/raw/reserves/`, sammen med nøyaktige POST-spørringer, hentetidspunkt og SHA-256. Feil i tilgang, dimensjoner, kommunedekning, enhet, verdier eller avstemming stopper publisering. Eksisterende publiserte data beholdes til alle kilder er validert. ```sh node scripts/generate-reserves.mjs --offline ``` Offline krever råcache med samme hash som hentemanifestet og beholder opprinnelige hentetidspunkter. JSON-utdata er deterministisk for samme råcache. Uttrekket oppdaterer bare SSB-referansen; det overvåker ikke kommunale planvedtak. Nye data må bygges og publiseres separat. ## Hvorfor ikke Norkart 2025 som dagens reserve? [Norkarts rapport](https://www.norkart.no/tjenester/prosjekt/analyse-av-planlagt-utbyggingsareal-i-norge) er en nyttig tidligere nasjonal analyse, men har en annen metode, datovintage og formålsavgrensning. Naturkampens åpne kommuneuttrekk inneholder naturareal satt av til bolig/næring/fritid, ikke hele reservearealet med jordbruk og øvrig dekke. Fem kommuner mangler denne analysen. Det brukes derfor ikke som erstatning eller skjult utfylling i SSB-serien. ## Reelle hindringer for en egen oppdatert beregning Brukerens avgrensning er **bare åpne kilder, ingen Norge digitalt-tilgang**. 1. [DiBKs dokumenterte formidling](https://www.dibk.no/saksbehandling-tilsyn-og-kontroll/digitalisering-av-byggesak/far-ansvar-for-deling-av-plandata) er rettet mot Norge digitalt-parter. `https://nap.ft.dibk.no/services/rest/kommuneplaner/collections?f=json` svarte HTTP 401 uten innlogging. Nedlastings-URL-en i Geonorges metadata svarte 404 ved kontrollen. Dette er en nasjonal tjenestekontroll, ikke 357 individuelle avslag. 2. Alstahaugs KP-formålsflater lot seg hente som KML gjennom offentlig WMS, se `ALSTAHAUG-PLANDATA.md`. At en fil kan hentes er ikke i seg selv verifikasjon av fullstendig uttrekk, fri gjenbruk eller riktig gjeldende planmosaikk. Det finnes ikke et kontrollert nasjonalt planuttrekk i prosjektet. 3. [Nasjonalt grunnkart for arealanalyse](https://data.norge.no/nb/datasets/ad38290e-2c12-3b77-96a8-fa07e02eefa7/nasjonalt-grunnkart-for-arealanalyse) er merket begrenset tilgang/Norge digitalt-lisens, med grunnlagsdato 01.01.2025. [SSB-arealbruk 2026 polygoner](https://data.norge.no/nb/datasets/26f0b443-7798-3db5-a834-58a53d7314d4/ssb-arealbruk-2026) har tilsvarende lisens. Dette gjelder kartdata, ikke de åpne statistiske tabellene brukt i appen. 4. [NIBIO](https://www.nibio.no/tjenester/nedlasting-av-kartdata) oppgir at FKB-AR5 krever rettigheter gjennom Geovekst/Norge digitalt. Åpne AR50 er generalisert og er ikke brukt til å gi et tilsynelatende presist reserveestimat på tomtenivå. Vi har ikke konkludert med at ingen kommune har åpne alternativer. For hver kommune som skal få en **egen** beregning trengs dokumenterte, lovlig gjenbrukbare vektoruttrekk av gjeldende planformål og faktisk arealbruk. Alternativt må datatilgang etableres på annet grunnlag; det er utenfor den valgte avgrensningen her. ## Når et komplett åpent grunnlag foreligger Den eksisterende `scripts/analyze-reserve.py` kan kjøres per kommune etter kontroll av planstatus, vertikalnivå og prioritet. Den krever normaliserte polygonlag, eksplisitte utbyggingsformål, kommunegrense og et heldekkende, ikke-overlappende arealdekke. Den validerer geometri, dekning og arealsummer før JSON kan publiseres. Før nasjonal automatisering gjenstår kildekoblinger, versjonert innhenting, planmosaikk, kontroll av eksportgrenser/paginering, landdekkenormalisering og kommunevis kvalitetsrapport. Ikke publiser denne generiske analysefunksjonen som om disse oppgavene allerede er løst. Fire datoer skal følge et fremtidig resultat: planenes kildeversjon/vedtaksdato, faktisk arealbruks ajourhold, hentetidspunkt og beregningstidspunkt. En ny beregningsdato gjør ikke gamle inngangsdata nye.