Hvor langt kan du se? Siktanalyse med QGIS

Kan jeg se sjøen fra verandaen? Skygger den lille toppen for meg? Hvor mange kirkesogn kan jeg se fra fjelltoppen?

Dette er tilbakevendende spørsmål som dukker opp hos mange. Og med gratis kartdata, gratis programvare og littegrann geomatikk-kunnskap – så kan vi finne ut av dette raskt og greit!

Jeg lurte på sikten til en hytte på Sørlandet. Der er naturligvis det mest aktuelle spørsmålet: Kan jeg se sjøen?

2015-08-02 11.40.29For å finne ut av dette lastet jeg ned passende flik av terrengmodellen til Kartverket (http://data.kartverket.no/download/content/digital-terrengmodell-10-m-utm-33). Lastet inn terrengmodellen i QGIS og var klar.

QGIS kommer med kobling til en gammel programvare som heter GRASS-GIS. GRASS inneholder veldig mange, veldig gode algoritmer for analyser. Men grensesnittet er litt vrient. Da er det perfekt at QGIS forenkler bruken av GRASS sine algoritmer i sin “toolbox” hvor du kan hente opp algoritmene direkte, bruke de fra python eller lage modeller som kan kjøres. Dermed kan vi åpne direkte algoritmen: “r.los” (Raster.LineOfSight) og sette parametere.

r.los-paramJeg brukte verktøyet: “vector->coordinate capture” for å plukke riktige koordinater. Husk å bruk koordinater i den projeksjonen du har terrengmodellen. I mitt tilfelle UTM33N (32633).coordcapt

Algoritmen kjører saktere jo lenger ut vi ønsker å beregne. Jeg brukte 5000 meter som gikk rimelig raskt. Utover det så kan du sette maskering, sikthøyde, om det skal tas hensyn til jordens krumning og et par andre parametere. r.los

Resultatet viser hvor det er sikt og inneholder også siktvinkelen fra siktepunktet. For litt stiligere visualisering kan du lett gjøre om til vektor og symbolisere som du ønsker. Ganske stilig! Og ganske nyttig! 
vectres

 

Lek med Landsat8 og Landsat-util

Landsat er NASA og USGS sitt program for å observere jorden fra rommet via satellitter. Det har vært mange satellitter i årenes løp, og sist ut er nr 8. Den er stappfull av høyteknologiske sensorer som blant annet inkluderer 3 lyssensorer – som tilfeldigvis utgjør de tre båndene: rødt, grønt og blått, som jo utgjør “vanlige” bilder. Det som er aller kulest med Landsat-programmet, og NASA + USGS som sådan, er at all data er fritt tilgjengelig for nedlasting og bruk! Men, utfordringen er at det er enorme mengder med data, og det er ikke helt strømlinjeformet å få tak i de riktige filene – spesielt med riktig hastighet. Her har Amazon, Google og DevelopmentSeed tatt tak i tingene og gjort Landsat8-data veldig lett tilgjengelig via enkle og raske grensesnitt.

landsat_b4

Neste problem er at “bildene” fra Landsat kommer som mange enkeltfiler – en fil per bånd. Åpner man en av disse filene så er det kun et gråtonebilde per bånd. For å få et mer brukbart visuelt bilde må vi slå sammen de aktuelle båndene. De fleste sensorene på Landsat8 tilsvarer omtrentlig 30m oppløsning, men det er også et ekstra bånd som har høyere oppløsning på rundt 15 meter. Teknikken, Pansharpening, utnytter dette ekstra båndet og gjør den totale oppløsningen bedre.

landsat_close_nosnow

Alt dette er rimelig komplisert. Derfor har DevelopmentSeed gjort det enkelt for oss! De har laget et OpenSource-verktøy som heter Landsat-util, som fikser biffen. Med dette kan du søke opp riktige datafiler fra Amazon/Google sine lager, laste de ned og prosessere de. Du kan til og med velge hvilke bånd du skal bruke.

landsat_veryclose

Så, dette måtte jeg jo prøve meg frem på. Etter å ha satt opp en vagrant-box på Mac’en (script finner du i linken under), lastet ned et datasett og satt igang prosesseringen – så slo det meg at dette tok tid! Til slutt knakk hele Mac’en sammen. Her var det for lite minne. Løsningen ble å sparke igang en kraftpakke hos DigitalOcean med 16 gb minne. Da gikk alt raskere. Oppsettet var knirkefritt og etter et par minutter hadde jeg et par flunkende ferske satellittbilder, både sommer og vinterbilde over samme område! Rimelig stilig! Og det er bare ved å bruk 3 av sensorene! Tenk så mye stilige anvendelser det er med alle de andre båndene!

landsat_veryclose_nosnow

Prøv det ut selv med scriptene og kom gjerne med forbedringstips!

(ps. totalregningen for kraftpakken hos DigitalOcean kom på under $1 for mye morro)