Messdaten auf Rasterfile interpolieren

Wie rufe ich R-Funktionen auf, wie selektiere ich Daten, ich weiß nicht genau ....

Moderatoren: EDi, jogo

Antworten
jessi
Beiträge: 90
Registriert: Mo Jul 10, 2017 9:23 am

Messdaten auf Rasterfile interpolieren

Beitrag von jessi » Fr Sep 06, 2019 9:58 am

Hallo liebe Forum-Mitglieder,

ich bin gerade beim Ausprobieren mehrere Sachen, aber noch nicht ganz sicher, ob und wie in R das möglich ist. Vielleicht kann mir hier jemand weiteren Input geben.
Ich schildere einmal das "Problem". Ich habe Messwerte von mehreren Stationen, diese sind mit Längen- und Breitengraden sowie des Messwertes versehen, allerdings unregelmäßig verteilt. Zudem habe ich Modellwerte, vorliegend als Rasterfile, ebenfalls mit Längen- und Breitengraden und eines Modellwertes. Ich möchte jetzt die Modellwerte mit den Messwerten "verknüpften" und diese vergleichen um nachfolgend den Modellwert mit den tatsächlichen Messwert gewichten. Das Problem hier ist natürlich, dass die Anzahl der Messpunkte um sehr viel geringer ist, als das berechnete Feld.

Mein erster Ansatz: Ich erstelle aus den Messdaten ein Rasterfeld.

Code: Alles auswählen

library(sp)
library(rgdal)
library(raster)

# gekürzter Datensatz der Messwerte 
messdaten <- read.csv("test_r_for.csv", dec = ",", sep = ";")

# lesen daten von einem Tag aus und "breite" die Daten entsprechend vor 
messdaten_tag <- subset(messdaten, messdaten$Tag == 15 & messdaten$Monat == 3)
messdaten_tag$Breite <- as.numeric(messdaten_tag$Breite)
messdaten_tag$Laenge <- as.numeric(messdaten_tag$Laenge)
messung <- data.frame(messdaten_tag$Laenge, messdaten_tag$Breite, messdaten_tag$Tagesmittel)
colnames(messung) = c("Laenge", "Breite","Mittel")

# erstelle aus Messdaten Raster
messung_m <- data.matrix(messung[1:3])
messung_e <- extent(messung_m[,1:2])
messung_r <- raster(messung_e, ncol=10, nrow=30) ## Dimension von Vergleichsraster: 1800,3600
stationen_raster <- rasterize(messung_m[,1:2], messung_r, messung_m[,3], fun = mean)
crs(stationen_raster) <- ("+proj=longlat +datum=WGS84 +no_defs +ellps=WGS84 +towgs84=0,0,0") #Projektion von Vergleichsraster
plot(stationen_raster)

stationen_raster
## class       : RasterLayer 
## dimensions  : 30, 10, 300  (nrow, ncol, ncell)
## resolution  : 0.5763, 0.05564667  (x, y)
## extent      : 10.5933, 16.3563, 46.6306, 48.3  (xmin, xmax, ymin, ymax)
## coord. ref. : +proj=longlat +datum=WGS84 +no_defs +ellps=WGS84 +towgs84=0,0,0 
## data source : in memory
## names       : layer 
## values      : 13.46154, 92.92857  (min, max)

Ich bekomme zwar ein Rasterfile, allerdings nur an den Punkten, die bereits vorliegen. Hier möchte ich allerdings auf Basis der Messdaten interpolieren, dass ich ein vollständiges Messdaten-Rasterfile habe, mit dem ich dann den Vergleich durchführen kann. Gibt es hier eine Möglichkeit, in einem definierten Längen-Breitengrad-Rahmen die fehlenden Werte durch Interpolation aufzufüllen?
Das ganz müsste ich dann für alle verfügbaren Tage machen, das sind ca. 80 Tage die ich abgleichen sollte.

Ich muss auch ganz ehrlich sagen, dass ich auch noch nicht weiß, wie ich am besten dann weiter machen. Die Messdaten auf ein Rasterfile zu interpolieren war nur ein erster Gedanke/Versuch.
Wie ihr seht, bin ich für jeden Gedanken dankbar und hoffentlich habe ich das Problem/Vorhaben einigermaßen verständlich erklärt.

Danke, Jess
Dateianhänge
test_r_for.csv
(36.35 KiB) 2-mal heruntergeladen

Benutzeravatar
EDi
Beiträge: 887
Registriert: Sa Okt 08, 2016 3:39 pm

Re: Messdaten auf Rasterfile interpolieren

Beitrag von EDi » Sa Sep 07, 2019 10:59 am

Ich möchte jetzt die Modellwerte mit den Messwerten "verknüpften" und diese vergleichen um nachfolgend den Modellwert mit den tatsächlichen Messwert gewichten. Das Problem hier ist natürlich, dass die Anzahl der Messpunkte um sehr viel geringer ist, als das berechnete Feld.

Mein erster Ansatz: Ich erstelle aus den Messdaten ein Rasterfeld.
Wieso nicht die Messdaten so lassen wie sie sind und die dazugehörigen Modelwert aus dem Raster auslesen?

Weil die Messdaten interpolierne wäre ja wieder ein Modell und dann würdest du Model mit Model vergleichen anstatt Messwert mit Model...
Bitte immer ein reproduzierbares Minimalbeispiel angeben. Meinungen gehören mir und geben nicht die meines Brötchengebers wieder.

Dieser Beitrag ist lizensiert unter einer CC BY 4.0 Lizenz
Bild.

jessi
Beiträge: 90
Registriert: Mo Jul 10, 2017 9:23 am

Re: Messdaten auf Rasterfile interpolieren

Beitrag von jessi » Sa Sep 07, 2019 1:30 pm

Hallo EDI.

Danke für deine Antwort. Diesen Ansatz verfolge ich gerade. Bin allerdings noch nicht soweit, diesen in R umzusetzen. Werd mich noch etwas informieren und probieren und ggf. melde ich mich nochmals mit meinen Ansätzen :roll:

Grüße
Jessi

Antworten