ich versuche Messdaten auf ein Gitter zu interpolieren und bin dabei wie folgt vorgegangen:
Code: Alles auswählen
library(ggplot2)
library(akima)
library(viridis)
library(ggthemes)
#Ausgangsvektor
str(nied)
'data.frame': 550 obs. of 6 variables:
$ Codename: Factor w/ 738 levels "BER","KOE",..: 1 2 3 5 6 7 8 10 11 12 ...
$ Mittel : num 14.68 4.38 1.8 12.3 55.29 ...
$ Laenge : num 1.5 13.78 10.94 9.58 14.3 ...
$ Breite : num 42.5 47.6 47.4 47.2 46.5 ...
$ int : num 3 1 1 3 4 2 1 3 3 4 ...
# int enthält die jeweilige Kategorie, entsprechend des Mittels. Für die Kategorien möchte ich nun meine Interpolation ausführen.
s <- length(nied$Mittel)
di <- interp(nied$Laenge, nied$Breite, nied$int,
xo = seq(min(nied$Laenge), max(nied$Laenge), length = s),
yo = seq(min(nied$Breite), max(nied$Breite), length = s), duplicate = "median", linear=TRUE, extrap=FALSE)
str(di)
List of 3
$ x: num [1:550] -16.2 -16.1 -16 -15.8 -15.7 ...
$ y: num [1:550] 28.5 28.5 28.6 28.7 28.8 ...
$ z: num [1:550, 1:550] 1 NA NA NA NA NA NA NA NA NA ...
dat_interp <- data.frame(expand.grid(x=di$x, y=di$y), z=c(di$z))
str(dat_interp)
'data.frame': 302500 obs. of 3 variables:
$ x: num -16.2 -16.1 -16 -15.8 -15.7 ...
$ y: num 28.5 28.5 28.5 28.5 28.5 ...
$ z: num 1 NA NA NA NA NA NA NA NA NA ...
### erstelle aus Interpolation tiff.Raster ##
#library(raster)
coordinates(dat_interp) <- ~ x + y
gridded(dat_interp) <- TRUE
r_interp <- raster(dat_interp)
crs(r_interp) <- "+proj=longlat +datum=WGS84 +no_defs +ellps=WGS84 +towgs84=0,0,0" ##
Danke für eure Hilfe
Jessi