Nå kan du fly over hele Norge – i nettleseren

Kategorier: Datavisualisering & Moro

Isfjorden, fra fly og i simulator. Foto: Kristoffer Dyrkorn. Data fra Kartverket.
Isfjorden i Romsdal. Til venstre fotografert fra fly og til høyre skjermbilde fra simulator. Foto: Kristoffer Dyrkorn. Data: Kartverket

Jeg har alltid likt å fly, og laget derfor min egen flysimulator for hele Fastlands-Norge.

Som liten hendte det at jeg ble sittende i stuevinduet hjemme i Molde og se ned på sjøen og de bratte fjellene på den andre siden.

Av og til kom det fly forbi også. Noen fløy inn, lavt og sakte, for å lande på flyplassen på den andre siden av byen. Andre hadde nettopp lettet, og svingte rett over huset vårt på vei til et helt annet sted.

Det var på slutten av 80-tallet jeg først prøvde flysimulatoren «Microsoft Flight Simulator» på PC. Selv om landskapet ikke så særlig realistisk ut, var det gøy å kunne leke pilot.

Flere har nok minner fra denne simulatoren, men slik så det altså ut:

Ti år senere studerte jeg datagrafikk på NTNU, og siden det har jeg av og til lekt meg med ulike måter å vise fram terrengdata på.

Resultatet denne gangen har blitt en flysimulator for hele Fastlands-Norge. Simulatoren kan kjøres direkte i nettleseren, og den bruker åpne data fra Kartverket.

Slik ser den ut:

Med Kartverkets data blir landskapet mer realistisk enn i mange andre flysimulatorer som finnes nå. En av de beste kommersielle simulatorene, X-Plane, har veldig god visning av byene i Norge, men landskapet ellers kan se litt kunstig ut.

For å lære mer om hvordan simulatoren min ble til kan du fortsette å lese, men om du heller bare vil prøve den ut kan du trykke her. Leser du videre får du et innblikk i hvordan den ble til.

Hva trenger man?

En flysimulator består som regel av:

  • Data som beskriver formen på landskapet
  • Bilder som viser hvordan landskapet ser ut sett rett ovenfra
  • En modell av hvordan flyet man styrer skal oppføre seg i luften

I simulatoren har jeg brukt Kartverket sine høydedata av Norge for å vise fram formen på landskapet. Disse dataene er åpne og kan brukes fritt så lenge man oppfyller lisensbetingelsene, som er CC BY 4.0.

Slik kan en høydemodell se ut:

Først som et rutenett, deretter som en overflate. Data: Kartverket

Resultatet er ikke er visuelt spennende på noen måte. Det må mer data til.

Landskapet nede på bakken har jo farger: Skog er som regel grønt, fjell er grått og snøen på de høyeste toppene er hvit. I tillegg kan vi se detaljer som åkrer, veier, hus og fotballbaner.

Det finnes veldig mange måter å vise fram landskap på. Det går an å bruke flyfotografier, satellittbilder eller matematiske modeller som regner ut kunstige farger ut fra høydedataene for landskapet.

Slik ser landskapet ut med bilder:

Overflatemodellen får bilder på seg. Data: Kartverket

Den amerikanske romfartsorganisasjonen NASA har lagt ut satellittbilder fra hele verden som åpne data. Bildene deres er slik at 500 meter i terrenget er gjengitt som én fargeverdi (piksel). Den oppløsningen er ikke god nok til mitt bruk, men bildene finnes her.

Heldigvis kom jeg over satelittfoto fra Sentinel-2. Dette er en europeisk miljøsatelitt som overvåker vann, skog, landbruk og annen vegetasjon over hele verden. Bildene leveres med høyere oppløsning: Ti meter i terrenget er gjengitt som én piksel. Fargene på bildene er ikke helt perfekte, men det blir ganske bra likevel. Og bildene er åpne data, de har samme lisens som høydedataene.

Kartverket har enda bedre bilder enn de jeg har brukt her, men de er dessverre ikke tilgjengeliggjort som åpne data.

Følelsen av å fly

Det som stod igjen nå var å finne ut hvordan man skulle fly rundt inne i modellen. Etter litt leting fant jeg en oppskrift jeg kunne bruke for å regne ut hvordan en F-16 beveger seg gjennom luften.

Jeg aner ikke om flyet i simulatoren flyr slik som en ekte F-16 gjør, og får neppe testet det heller (selv om akkurat det hadde vært veldig kult). Formlene i oppskriften jeg har brukt håndterer nok ikke alle mulige situasjoner, så om flyet begynner å fly rart er det nok best å starte simulatoren på nytt ved å oppfriske siden i nettleseren.

I simulatoren har jeg ellers lagt inn støtte for styring med spillkontroller, og da blir flyfølelsen enda litt bedre.

Vi kan styre med en spillkontroller!

For å gjøre det enkelt å kjenne seg igjen har jeg satt opp simulatoren slik at du kan starte på ulike steder i Norge ved å gå inn på en av lenkene nedenfor.

Simulatoren kjører best på PC eller Mac. Du styrer flyet med piltastene, og du kan trykke «q» for høyere turtall på motoren, og «a» for lavere.

Ikke glem at du flyr et jagerfly: Styringen er såpass følsom at du lett kan miste kontroll om du holder de ulike piltastene inne for lenge.

Her er noen byer i Norge:

Her er noen andre kjente steder:

Mye står igjen, og bidra gjerne

For min del har jeg kommet omtrent så langt som jeg hadde håpet på. Kanskje lager jeg noen nye funksjoner en dag, som for eksempel at flere kan fly sammen eller at flyet faktisk stopper om man krasjer i bakken.

Om du har lyst til å se mer på de tekniske detaljene, eller bidra med nye funksjoner, så er kildekoden lagt ut på GitHub.

Hvilke spørsmål har dere? Ser fram til å høre hva dere synes om simulatoren. Kom gjerne med tips om flere prosjekter som bruker åpne kartdata!

16 kommentarer

    • Kristoffer Dyrkorn (NRK) (svar til Steinar Kjærnsrød)

      Hei! Takk for hyggelig tilbakemelding! Simulatoren har tidligere kjørt fint i Edge på Windows 10, jeg skal ta en ny sjekk og se hva som kan være årsaken.

    • Kristoffer Dyrkorn (NRK) (svar til Kristoffer Dyrkorn)

      Nå har jeg oppdatert koden slik at simulatoren kjører i Edge også. Dessverre er ytelsen i Edge ikke så god, så en annen nettleser (for eksempel Chrome) vil gi jevnere bevegelser.

    • Kristoffer Dyrkorn (NRK) (svar til Bjørnar)

      Hei! Parametrene n og e er koordinater (North, East) i referansesystemet UTM 33 N. Parametret a er høyde (altitude). Enheten er meter. Har så langt ikke laget støtte for å starte i en gitt retning. For finne koordinatene for et gitt sted, gå til nettstedet Norge i bilder, naviger eller søk deg fram til der du ønsker å starte, og les ut tallene som står øverst til høyre i kartbildet.

  1. Livar Bergheim

    Stilig! Dette er eit veldig godt døme på bruk av opne data. Tenker det er verdt å legge inn ei oppføring under «Apper/tjenester» på data.norge.no. Vil du registrere det der? Det er gjort på eit par minutt ved å velje «Registrer applikasjon» på https://data.norge.no/ Eventuelt så kan eg registrere for deg om det er greit for deg.

    Svar på denne kommentaren

  2. Simen Eid Nielsen

    Dette var mulig allerede ved utgivelsens av Google Earth tilbake i 2007, da var norge ganske flatt, men Sveits hadde en ganske god terrengmodell over landet sitt, og det var gøy å fly inne imellom de høye toppene i alpene!

    Svar på denne kommentaren

    • Kristoffer Dyrkorn (NRK) (svar til Simen Eid Nielsen)

      Flysimulatorer har lenge hatt modeller av Norge, men uten detaljerte data blir ikke gjengivelsen god. Høydemodeller med høy oppløsning ble først frigitt av Kartverket i 2013, og satelittfotoene som er brukt her ble så vidt jeg vet første gang publisert i sommer.

  3. Er det mulig å bruke DTM 10 data i stedet for DTM 50, det hadde vært rått med 25 ganger bedre oppløsning ! Ser ut som DTM 10 er tilgjengelig for hele landet, eventuelt også som punktsky, kan punktsy brukes ? ref;

    På hoydedata.no finnes også ferdigproduserte eksporterer av landsdekkende terrengmodeller med 10 meters oppløsning. Disse er generert ut fra detaljerte laserdata der slike finnes. Dette suppleres med høydedata fra 2013-utgaven av DTM10 dersom det er nødvendig for å få full dekning

    https://kartkatalog.geonorge.no/metadata/kartverket/dtm-10-terrengmodell-utm32/fd851873-f363-46f9-9fc6-bb1b403575df

    Svar på denne kommentaren

    • Thorolf (svar til Thorolf)

      Tester create_topography.sh for DTM10 med:

      # one tile is NxN data points
      tile_size=640

      # distance between data points, in meters
      resolution=10

      Får da feilmelding fra gdal_translate ;

      Warning: Computed -srcwin -555 -66810 1280 1280 falls completely outside raster extent. Going on however.

      Kanskje tile_size=640 er feil for DTM10 ?

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *. Les vår personvernserklæring for informasjon om hvilke data vi lagrer om deg som kommenterer.