Raskeste vei – til sjøs!

Et typisk problemstilling for en sørlending på sjøen er: Hvor langt er det fra A til B?

Andre har jo samme problemstilling – og da spesielt i bil, på sykkel eller tilsvarende. På land er alt dette løst siden man følger veier, stier og sykkeltraseer. Alle er kartlagt til minste centimeter og resten dreier seg bare om smarte algoritmer. På havet er ting så meget annerledes. Ferdsel på havet begrenses jo ikke av en fast rute. Det finnes kartlagte farleder, men det hjelper lite i skjærgården når man skal farte mellom holmer og skjær utenfor farleden.

En litt regntung morgen tenkte jeg at det må da kunne gå an å lage seg en slags “vei” i vannet. Men hvordan lager man seg en “vei” basert på havoverflaten? Vel. Det er det andre som har funnet ut av før og det heter “thinning”. Metoden brukes for eksempel til å lage “skjeletter” fra bilder over mennesker. Og det er jo akkurat det jeg var ute etter: En metode som finner minste mulige representasjon av en flate uten at “topologien” eller formen blir forstyrret.

QGIS kommer som kjent med GRASS-integrasjon – og GRASS har selvfølgelig ferdige algoritmer for tynning, deriblant “r.thin”. Datagrunnlaget er jo egentlig kun havoverflaten, så den tok jeg ned fra N50-datasettet til Kartverkets åpne data. Jeg hentet ut havoverflate fra “Arealdekke” og lagret det midlertidig som en shapefil.

1

Men, r.thin krever et raster som input. Dette fikser verktøyet “Rasterize” i QGIS, som er en overbygging av GDAL sin rasterizer. Her kan du sette parametere etter ønske. Til eksperimentet valgte jeg 50 meter oppløsning for at det skulle gå litt raskt. Resultatet er et rasterkart over havflaten.

2

raster_kart

Da er alt klart for tynning med r.thin!

tynning

Resultatet er et rasterkart med “skjelettet” til havflaten. Vi vil ha det som vektorgeometri siden vi skal bruke rutealgoritmer på det. Det er enkelt med “r.to.vect”, som gjør nettopp dette.

rastertynnet

 

Siden havflaten strekker seg ut til landet grenser så blir det noen rare lange linjer ut i havet. De fjernet jeg ved å redigere direkte på vektordatasettet.

vektor_edit

Raskeste vei er fantastisk enkelt i QGIS med “road graph / shortest path” som man setter opp via “vector->road graph”.

roadgraph

Deretter er det bare å velge start og stoppested og kjøre algoritmene som finner raskeste vei til havs!

ruteberegn

Nyttig? Tja. Det er vel ikke akkurat så voldsomt nyttig for sjøfart. Men morsomt? Ja definitivt!

Leave a Reply

Your email address will not be published. Required fields are marked *