Stavo cercando di creare un'immagine raster da un database di punti con spaziatura irregolare. I dati sembrano-
> 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
Voglio questi valori 'z' all'interno di una mesh da cui ho creato
# 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))
Voglio anche assegnare i valori z come 'NA' per quei punti mesh che sono al di fuori dei punti dati. I punti sopra la mesh si presentano così: https://drive.google.com/file/d/0B6GUNg-8d30vYzlwTkhvaHBFTnc/edit?usp=sharing quando trama
plot(my_mesh)
points(s100_ras$Y, s100_ras$X, pch="*", col='blue')
Il problema è che non sono sicuro di come costruire su questo, i seguenti passaggi non funzionano perché la mia griglia mesh e i punti dati non sono della stessa scala !!
library(rgdal)
library(raster)
xyz<-cbind(my_mesh, s100_ras)
r <- rasterFromXYZ(xyz)
image(r)
Se provo a creare un raster semplicemente usando i punti dati (senza alcuna mesh), R genera un errore poiché i miei dati sono spaziati in modo irregolare!
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
Inoltre, stavo provando a giocare con la funzione "rasterizza" (per griglie irregolari) di "pacchetto raster", ma non riuscivo a trovare un modo per farlo :(. So come interpolare e creare una griglia regolare, ma per il bene di originalità, voglio EVITARE l'interpolazione. È possibile creare un raster di punti dati distribuiti in modo irregolare senza metodi idw o kriging?
SpatialPixelsDataFrame
l' tolerance
argomento suggerito (0.916421 nel tuo caso).