# GIS

## Hvad det er

GIS står for geografisk informationssystem: den samling af data, software og
arbejdsvaner, der gør det muligt at gemme, analysere og tegne ting, som har en
placering på jorden. QGIS-projektets egen introduktion til emnet understreger,
at begrebet dækker mere end et program. Den regner de digitale data og
computerne med ved siden af softwaren og ser GIS som alt, hvad der hører til at
forvalte og bruge geografiske data. Faget tog form i 1970'erne på udstyr, som
kun universiteter og store virksomheder havde råd til. I dag kører et
desktop-GIS på en bærbar, og en telefon viser et webkort bygget på de samme
idéer.

Ethvert GIS arbejder med to slags data.

- **Vektordata** gemmer et objekt som geometri: et punkt for en brønd, en linje
  for en vej, en polygon for et sogn. Hvert objekt har en række attributter, så
  vejen kender sit navn, sin belægning og sin hastighedsgrænse, og kortet kan
  farves efter hvilken som helst af dem.
- **Rasterdata** gemmer et gitter af celler med én værdi i hver: farven på en
  pixel i et luftfoto, terrænets højde i en højdemodel, nedbøren over en måned.
  Zoomer man langt nok ind, ses cellerne som klodser.

Objekter af samme slags samles i lag, og lagene lægges oven på hinanden. Det er
dér, det meste af værdien opstår. Vandløb oven på matrikler oven på en
oversvømmelsesmodel besvarer et spørgsmål, som ingen af de tre kan besvare
alene.

Det, der får lagene til at passe sammen, er koordinatsystemet, på engelsk
coordinate reference system eller CRS. Hvert lag har ét, og det fortæller
softwaren, hvordan tallene hænger sammen med virkelige steder, hvad enten det er
grader af bredde og længde eller meter mod øst og nord fra et nationalt
nulpunkt. Et desktop-GIS kan omprojicere lag i farten, så data indsamlet i
forskellige systemer tegnes i ét, men kun for lag, hvis system er angivet
korrekt.

Omkring de idéer ligger fire slags arbejde: at indsamle data ved opmåling, GPS,
digitalisering eller laserskanning; at gemme dem i filer eller i en rumlig
database; at analysere dem med operationer som buffere, overlejring og
interpolation; og at præsentere dem som et trykt kort, et webkort eller en
rapport.

## Hvorfor det betyder noget

Den første nyttige beslutning er, om et spørgsmål overhovedet er rumligt. Masser
af data har en kolonne med en placering uden at kræve et GIS: at tælle ordrer
pr. by er en gruppering på et tekstfelt. Et spørgsmål bliver rumligt, når svaret
afhænger af, hvor tingene ligger i forhold til hinanden, så svaret ville ændre
sig, hvis en af dem flyttede. Hvilke husstande ligger inden for
oversvømmelsesgrænsen, hvilke kunder har mere end en halv times kørsel til
nærmeste lager, hvilke strækninger af elnettet forsyner flest nye tilslutninger:
Den slags kræver geometri, et koordinatsystem og operationer, der forstår begge
dele.

Er spørgsmålet rumligt, er næste beslutning, hvor meget GIS der skal bygges, og
der er groft sagt tre niveauer. Et webkort, der viser nåle og omrids fra en fil,
kræver et kortbibliotek og ikke meget mere. Et produkt, der besvarer rumlige
spørgsmål for sine brugere, kræver en rumlig database nedenunder, så
spørgsmålene kører dér, hvor dataene bor. En organisation, der selv indsamler og
vedligeholder sine geodata, retter dem, versionerer dem og udgiver dem til
andre, har brug for analytikere, desktopværktøjer og nedskrevne regler for
datakvalitet, for så er dataene blevet et aktiv i sig selv. Hvert niveau koster
mere end det forrige, og hvert er spild, hvis spørgsmålet aldrig krævede det.

Et kort afslører også fejl i data, som tabeller skjuler. En kundeadresse, der er
geokodet midt ud i Nordsøen, slipper igennem enhver kontrol i et regneark og
springer i øjnene, i det øjeblik den bliver tegnet. Alene det gør et hurtigt
blik på dataene på et kort værd at tage, før nogen stoler på en rumlig analyse.

## Sådan ser det ud i praksis

Fagets bredde ses i
[mere end tredive skræddersyede GIS-projekter](/da/portfolio/led-the-development-deployment-and-support-of-over-35/),
der blev bygget, udrullet og derefter supporteret i produktion. Stakken svarer
til de dele af et GIS, der er beskrevet ovenfor. PostgreSQL med PostGIS gemte
geodataene. GDAL/OGR flyttede dem mellem formater, blandt andet shapefiles,
GeoJSON, GeoTIFF, KML og vector tiles. QGIS og JOSM tog sig af selve
dataarbejdet, og webkort bygget på Mapbox GL og Leaflet viste resultatet.
Arbejdet spændte fra 2D- og 3D-kortlægning over LiDAR-behandling,
georektifikation og vektorisering til indendørs kortlægning og navigation.

GIS kan også være selve produktet frem for værktøjet bag det. En SaaS-platform
til at spore vedvarende energiaktiver som solpaneler og vindmøller manglede de
geospatiale funktioner, kunderne skulle bruge for at se, hvor aktiverne stod.
[En GIS-kortapplikation blev bygget ind i platformen](/da/portfolio/led-the-software-development-of-a-gis-map-24/)
på en modulær arkitektur med open source-GIS-biblioteker, valgt for at holde
systemet let nok til et lille team. Applikationen blev en hjørnesten i
platformen og fik omsætningen til at vokse 10 gange gennem mersalg,
datalicensering og nye kunder.

## Hvor det går galt

**Lag, der burde ligge oven på hinanden, ligger ved siden af.** Veje fra én
leverandør løber ved siden af matriklerne fra en anden i stedet for langs deres
kanter, eller et helt lag dukker op i den forkerte del af verden. Årsagen er
næsten altid et koordinatsystem, der mangler eller er forkert: en shapefil
leveret uden sin `.prj`-fil, et regneark med koordinater og intet om, hvad de
betyder, eller data på ét datum mærket som et andet. Omprojicering i farten kan
kun flytte et lag, hvis system den kender. Ret det ved import: Notér systemet
for hvert indkommende lag eksplicit, omprojicér alt til ét arbejdssystem før
analysen, og kontrollér resultatet mod et punkt, hvis placering i terrænet er
kendt.

**Målte arealer passer ikke med matrikelregistret.** En mark eller en byggegrund
målt på kortet bliver større end det officielle tal, og forskellen vokser med
afstanden fra ækvator. Målingen er taget i den projektion, kortet vises i.
Webkort bruger almindeligvis en variant af Mercator, som holder vinkler og
former rigtige lokalt og betaler for det med forvrængede arealer. Mål i en
arealtro projektion eller i det nationale koordinatsystem, der er lavet til
området, eller lad en rumlig database regne arealet ud på ellipsoiden.

**Nabopolygoner efterlader huller og overlap.** Kommunegrænser, leveringszoner
eller marker, der er digitaliseret én ad gangen, mødes ikke helt: Tynde splinter
åbner sig mellem dem, eller to zoner gør krav på samme strimmel. Linjer, der
skulle mødes, stopper for tidligt eller løber forbi hinanden, det QGIS kalder
undershoots og overshoots, og en rutesøgning opfatter så vejnettet som afbrudt
netop dér. Objekterne blev indsamlet hver for sig uden topologiregler.
Digitalisér med snapping til eksisterende knudepunkter, kør et topologitjek, der
markerer huller og overlap, og gem hver fælles grænse som én fælles linje.

**Attributnavne bliver klippet af.** Et lag eksporteret som shapefil kommer
tilbage med `befolkningstaethed` omdøbt til `befolkning` og `befolkningstal`
omdøbt til `befolkni_1`. Formatet gemmer attributterne i en dBASE-fil, som
begrænser et feltnavn til 10 tegn og kun kender heltal, decimaltal, tekst og
datoer, så klokkeslæt og lister også går tabt. Udveksl data som GeoPackage, en
OGC-standard, der gemmer lag og attributter i én SQLite-fil, og behold
shapefiler til de værktøjer, der ikke tager andet.

## Læs mere

- [A Gentle Introduction to GIS](https://docs.qgis.org/latest/en/docs/gentle_gis_introduction/)
  — QGIS-projektets gratis kursus, fra vektor- og rasterdata til kortproduktion
  og rumlig analyse.
- [Coordinate Reference Systems](https://docs.qgis.org/latest/en/docs/gentle_gis_introduction/coordinate_reference_systems.html)
  — kapitlet om projektionsfamilier, hvad hver af dem bevarer, og omprojicering
  i farten.
- [Topology](https://docs.qgis.org/latest/en/docs/gentle_gis_introduction/topology.html)
  — huller, overlap, undershoots, overshoots og den snapafstand, der forebygger
  dem.
- [Shapefile driver](https://gdal.org/en/stable/drivers/vector/shapefile.html) —
  GDAL's noter om formatets grænser for feltnavne, typer og filstørrelse.
- [GeoPackage](https://www.geopackage.org/) — OGC-formatet, der samler
  vektorlag, tiles og attributter i én SQLite-fil.

<https://engineer.company/da/glossary/gis/>
