Ich habe versucht, ein Rasterbild aus einer Datenbank mit unregelmäßigen Abständen zu erstellen. Die Daten sehen aus wie-
> head(s100_ras)
x y z
1 267573.9 2633781 213.29545
2 262224.4 2633781 69.78261
3 263742.7 2633781 51.21951
4 259328.4 2633781 301.98413
5 264109.8 2633781 141.72414
6 255094.8 2633781 88.90244
Ich möchte diese 'z'-Werte in einem von mir erstellten Netz haben
# Create a fine mesh grid
my_mesh=expand.grid(seq(min(s100_ras$Y),max(s100_ras$Y),l=100),
seq(min(s100_ras$X),max(s100_ras$X),l=100))
Ich möchte auch, dass die Z-Werte für die Netzpunkte, die sich außerhalb der Datenpunkte befinden, als "NA" zugewiesen werden. Die Punkte über dem Netz sehen folgendermaßen aus: https://drive.google.com/file/d/0B6GUNg-8d30vYzlwTkhvaHBFTnc/edit?usp=sharing, wenn ich plotte
plot(my_mesh)
points(s100_ras$Y, s100_ras$X, pch="*", col='blue')
Das Problem ist, dass ich nicht sicher bin, wie ich darauf aufbauen soll. Die folgenden Schritte funktionieren nicht, weil mein Gitter und meine Datenpunkte nicht den gleichen Maßstab haben.
library(rgdal)
library(raster)
xyz<-cbind(my_mesh, s100_ras)
r <- rasterFromXYZ(xyz)
image(r)
Wenn ich versuche, ein Raster nur mithilfe der Datenpunkte (ohne Gitter) zu erstellen, gibt R einen Fehler aus, da meine Daten einen unregelmäßigen Abstand aufweisen!
library(sp)
s100_ras <- data.frame(expand.grid(x = s100_ras$Y, y = s100_ras$X),
z = as.vector(s100_ras$mean))
coordinates(s100_ras) <- ~x+y
proj4string(s100_ras) <- CRS("+proj=utm +zone=46 +datum=WGS84")
gridded(s100_ras) = TRUE
suggested tolerance minimum: 0.916421
Error in points2grid(points, tolerance, round) :
dimension 1 : coordinate intervals are not constant
Außerdem habe ich versucht, mit der 'Rasterize'-Funktion (für unregelmäßige Raster) des' Raster Package 'zu spielen, konnte mich aber nicht damit abfinden :(. Ich weiß, wie man interpoliert und ein reguläres Raster erstellt, aber aus Gründen Originalität möchte ich vermeiden, Interpolation. Ist es möglich, ein Raster von unregelmäßig beabstandeten Datenpunkten ohne IDW- oder Kriging-Methoden zu erstellen?
SpatialPixelsDataFrame
mit dem vorgeschlagenen tolerance
Argument (0,916421 in Ihrem Fall) zu verwenden.