Rasterdata i Shiny

Shiny i R kan kan være et nyttig verktøy for å gjøre forskningsdata enkelt tilgjengelige og brukbare for konkrete formål.  I denne blogposten presenterer jeg et eksempel på hvordan kartdata i rasterformat kan gjøres tilgjengelig i en interaktiv web-app for visualisering og enkelt uttrekk av punktvise verdier. Dette gjør jeg ved å kombinere Shiny med leaflet og rhandsontable.

Dataene som skal presenteres består av estimert årlig gjennomsnittstemperatur for perioden 1991-2020 i Norge, produsert at Meteorologisk institutt (https://github.com/metno/seNorge_docs/wiki). Disse foreligger som et geografisk rutenett (raster) i UTM-projeksjon (UTM33), der hver rute på 1km x 1km har en verdi for temperatur. Slike data kan håndteres i R med pakken raster. Med pakken leaflet kan raster-dataene enkelt legges til som et kartlag med funksjonen addRasterImage. Det kan legges oppå andre kartlag, for eksempel standardkartet til OpenStreetMap. Leaflet-pakken vil automatisk projisere om rasterkartet fra UTM33 til web-mercator, som er standard for leaflet. Dette krever noe maskinressurser og det kan være lurt å heller projisere om rasterlaget på forhånd med funksjonen projectRaster, så dette ikke må gjøres hver gang Shiny-applikasjon starter. Fargeskalaen i kartet kan lages ved å definere en egen fargefunksjon.

 

I Shiny vil museklikk i kartet kunne leses i R som koordinater som man kan bruke til å plotte et punkt på kartet og hente ut verdier fra rasterlaget for punktet.

I eksempel-appen har jeg valgt å transformere koordinatene til punktet til UTM33 og trekke ut temperaturen fra det opprinnelige rasterlaget, siden laget som vises i appen har en annen projeksjon og temperaturene i dette laget er interpolert fra de opprinnelige verdiene.

 

For å gjøre det enkelt å hente ut temperaturer fra mange punkter samtidig har jeg lagt til en regnearklignende tabell med pakken rhandsontable. Den minner om et Excel-ark og man kan enkelt kopiere koordinater fra Excel og inn i denne tabellen.

 

I eksempel-appen plottes punktene automatisk og temperaturene legges automatisk inn i egen kolonne i tabellen. Deretter kan de kopieres tilbake til det opprinnelige regnearket.

Voilà!

 

Av Thomas M. Solvin
Publisert 30. apr. 2024 14:08 - Sist endret 30. apr. 2024 14:08
sju mennesker

En blogg for deg som er interessert i IT-verktøy og datahåndtering, samt informasjon om, og erfaringer fra, forskningsprosjekter hvor bruk av IT inngår som en sentral del, enten det dreier seg om kvalitative eller kvantitative metoder/forskningsspørsmål.