QGIS
det frie GIS-programmet for skrivebordet
Hva det er
QGIS er et skrivebordsprogram for å se på, redigere og analysere kartdata. Prosjektet startet i mai 2002 under navnet Quantum GIS, og det første målet var beskjedent: et program for å vise romlige data. Siden har det vokst til et fullt GIS som åpner lag fra filer, romlige databaser og karttjenester på nettet, tegner dem sammen på ett kart, redigerer geometrien og attributtene deres, kjører analyser på dem og setter resultatet opp som et trykt kart, et atlas eller en rapport.
Det er et offisielt prosjekt under Open Source Geospatial Foundation, utgitt under GNU General Public License, skrevet i C++ på verktøysettet Qt, og det kjører på de fleste Unix-plattformer, Windows og macOS. En ny utgivelse kommer omtrent hver fjerde måned. Hver tredje av dem, et mønster som begynte med 2.8, er en langtidsutgivelse som vedlikeholdes til neste langtidsutgivelse tar over, mens den nyeste utgivelsen får en feilrettingsutgivelse hver måned. Når dette skrives, er det 3.44.15 og 4.2.3.
QGIS leser mye gjennom andre prosjekter. Vektorfiler kommer inn gjennom driverne i GDAL, og det er derfor listen over formater programmet åpner, er så lang. Rasterdata kommer inn på samme måte. Tabeller i PostGIS, SpatiaLite, SQL Server og Oracle leses der de ligger, og prosjektets egen liste over funksjoner understreker at dataene vises i sitt eget format og sin egen projeksjon, uten konvertering til et internt format.
Fire deler til betyr noe når et team deler QGIS.
Prosjektet er arbeidsenheten. En .qgs-fil er XML som lister opp datakilden til
hvert lag, med stil, etiketter, attributtskjemaer og utskriftsoppsettene. En
.qgz-fil er et zip-arkiv som holder den XML-en sammen med en .qgd-fil med
hjelpedata. Et prosjekt kan også lagres inne i en GeoPackage eller en
PostgreSQL-database, ved siden av lagene det beskriver.
Processing er rammeverket for analyse: en verktøykasse med algoritmer fra QGIS'
egen leverandør og fra GDAL, med GRASS tilgjengelig som en ekstra leverandør, en
modelldesigner som kjeder algoritmer sammen til en graf, et grensesnitt for
batchkjøring og en historikk over hver kjøring. De samme algoritmene kjører uten
skrivebordet gjennom et kommandolinjeverktøy, qgis_process:
qgis_process run native:reprojectlayer -- \
INPUT=roads.shp TARGET_CRS=EPSG:25832 OUTPUT=roads.gpkg
PyQGIS er Python-grensesnittet bak tillegg, den innebygde konsollen og frittstående skript. Og QGIS Server publiserer en prosjektfil på nettet som standardiserte OGC-tjenester, WMS, WFS, WCS og OGC API Features, og kjører bak en webserver som et FastCGI- eller CGI-program.
Hvorfor det er viktig
Noe romlig arbeid forblir manuelt, uansett hvor god pipelinen er: å avgjøre om det er grensen for en eiendom som er feil, eller flyfotoet under den, å tegne omrisset av en bygning fra en LiDAR-overflate, eller å se over en leveranse fra en kunde før den lastes inn. Beslutningen QGIS påvirker, er hvilket verktøy den vurderingen gjøres i, og hva som blir liggende igjen etter at den er gjort.
Lisens og plattform avgjør den første halvdelen. Det finnes ingen plass å kjøpe, og den samme utgivelsen installeres på Linux, macOS og Windows, så en underleverandør, kundens egne ansatte og en byggeserver kan alle kjøre den versjonen prosjektet ble laget i. Esris kommersielle skrivebordsprogram, ArcGIS Pro, kjører bare på Windows.
Den andre halvdelen handler om hva som overlever økten. QGIS leser PostGIS
direkte, så en redigering havner i tabellen applikasjonen serverer fra, og det
finnes ingen eksport å avstemme senere. Processing-historikken registrerer hver
algoritme med parameterne sine, og hver oppføring kan kopieres ut som en
Python-kommando eller som en qgis_process-kommando. En rettelse som ble funnet
ut for hånd i en dialogboks, kan bli en linje i et skript som kjører på hver
leveranse etterpå. En prosjektfil kan gå enda lenger og serveres slik den er av
QGIS Server, så stilen en person satte opp på skrivebordet, er den stilen en
webklient får over WMS.
Kostnadene handler mest om disiplin. Et prosjekt peker på data det ikke inneholder, så det er bare så flyttbart som stiene det lagrer. Valget mellom langtidsutgivelsen og den nyeste utgivelsen er et reelt valg: den ene endrer seg sakte, den andre kommer med nye funksjoner hver fjerde måned. For dere som deler prosjekter, lønner det seg å velge én av dem i fellesskap.
Slik ser det ut i praksis
På dette nettstedet dukker QGIS opp som stedet der romlige data ble sett på og reparert for hånd, ved siden av verktøyene som tok hovedmengden av arbeidet.
Fra 2015 til 2022 hadde rollen som teamleder for utvikling av GIS-programvare ansvaret for leveransen av mer enn tretti GIS-prosjekter, fra utvikling gjennom produksjonssetting til driftsstøtte etter lansering. QGIS og JOSM var verktøyene for selve dataarbeidet. Rundt dem sto resten av stakken: PostGIS på PostgreSQL for de romlige dataene, GDAL/OGR for å flytte dem mellom shapefiler, GeoJSON, GeoTIFF, KML og vektorfliser, og webkart på Mapbox GL og Leaflet foran. Prosjektene favnet digital kartlegging i 2D og 3D, LiDAR-behandling, georektifisering og vektorisering, og de nådde helt til kartlegging og navigasjon innendørs.
I et storskala prosjekt for geospatial analyse fra 2022 til 2024 var dataingeniørens jobb å finne og rette over 1 000 problemer i geografiske data og tidsseriedata. QGIS var ett av tre verktøy for de romlige feilene, brukt i kombinasjon med GDAL og ArcGIS, mens Bash-skript tok seg av den datavasken som stadig kom tilbake. PostGIS tok seg av de romlige spørringene og indekseringen, og arbeidet bidro til 35 % kortere kjøretid for romlige spørringer.
Hvor det går galt
Skrivebordet får romlige data til å se riktige ut på skjermen, og det er der det meste av trøbbelet gjemmer seg.
Et lag havner på feil sted. QGIS projiserer hvert lag om i farten til
prosjektets koordinatreferansesystem (CRS), så lag i forskjellige systemer
legger seg pent oppå hverandre, forutsatt at hvert lag oppgir sitt eget system
riktig. En shapefil som kommer uten .prj-filen sin, oppgir ingen, og avhengig
av en innstilling under Options lar QGIS den stå som ukjent, ber om et system,
eller bruker i stillhet prosjektets system eller et standardsystem. Reparasjonen
avhenger av hvilken feil som ble gjort. Når koordinatene er riktige og bare
merkelappen er feil, endrer Assign projection eller Define projection
merkelappen og lar hvert punkt ligge der det er. Når koordinatene virkelig er i
et annet system, konverterer Reproject layer dem. Find projection, i samme
gruppe i verktøykassen, lister opp systemene der utstrekningen til et lag ville
falle over et valgt område, og gjør en gjetning om til en kort liste.
Arealer kommer ut i kvadratgrader. Uttrykksspråket har to arealfunksjoner
som ser like ut. $area følger prosjektets innstillinger for ellipsoide og
enhet, så med en ellipsoide valgt returnerer den et ellipsoidisk areal i den
valgte enheten. area($geometry) er alltid plant i lagets eget system og
returnerer det systemets enheter, så på et lag som er lagret i lengde- og
breddegrad, returnerer den kvadratgrader, et lite desimaltall som ser troverdig
ut i en tabell. Bruk $area for hvert tall en person skal lese, eller projiser
laget om til et projisert system som passer for området, før du måler.
Et prosjekt åpnes med halvparten av lagene borte. Et prosjekt lagrer hvor dataene til hvert lag ligger, ikke selve dataene. Flytt mappen, gi en fil nytt navn eller åpne prosjektet på maskinen til en kollega, og de lagrede stiene slutter å peke noe sted. QGIS viser da dialogboksen Handle Unavailable Layers. Velger du å beholde dem, åpnes prosjektet med lagene oppført, men uten at de tegner noe før hver kilde er reparert. Å lagre stiene relativt til prosjektfilen, en egenskap ved prosjektet, lar en mappe med prosjekt og data flyttes som én enhet. Til delt arbeid holder det de to sammen å lagre prosjektet i den samme PostgreSQL-databasen eller GeoPackage-filen som lagene.
Den samme rettelsen klikkes gjennom på nytt neste måned. En rettelse gjort i
en dialogboks etterlater riktige data og metoden i hukommelsen til én person.
Neste leveranse med den samme feilen rettes for hånd igjen, litt annerledes.
Kopier kjøringen ut av Processing-historikken som en qgis_process-kommando
første gang den virker, og legg den inn i skriptet som laster inn leveransen.
Les mer
- Foreword — prosjektets egen fortelling om hva QGIS er, hvor det startet, og lisensen det er utgitt under.
- Road Map — utgivelsessyklusen, hvordan langtidsutgivelser velges, og den gjeldende planen.
- Working with Projections — omprojisering i farten, og hva QGIS gjør med et lag som mangler koordinatsystem.
- Working with Project Files
— formatene
.qgsog.qgz, prosjekter lagret i databaser, og reparasjon av brutte stier. - Using processing from the command line
—
qgis_process, kommandoene og hvordan parametere sendes inn. - Introduction — oversikten i håndboken for QGIS Server over tjenestene den publiserer fra et prosjekt.