ฉันพยายามสร้างภาพแรสเตอร์จากฐานข้อมูลจุดที่เว้นระยะไม่สม่ำเสมอ ข้อมูลดูเหมือนว่า -
> 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
ฉันต้องการค่า 'z' เหล่านี้ภายในตาข่ายที่ฉันสร้างขึ้น
# 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))
ฉันต้องการให้ค่า z ถูกกำหนดเป็น 'NA' สำหรับจุดตาข่ายที่อยู่นอกจุดข้อมูล คะแนนเหนือตาข่ายมีลักษณะดังนี้: https://drive.google.com/file/d/0B6GUNg-8d30vYzlwTkhvaHBFTnc/edit?usp=sharingเมื่อฉันลงจุด
plot(my_mesh)
points(s100_ras$Y, s100_ras$X, pch="*", col='blue')
ปัญหาคือฉันไม่แน่ใจว่าจะสร้างสิ่งนี้ได้อย่างไรขั้นตอนต่อไปนี้ใช้ไม่ได้เพราะตะแกรงตาข่ายและจุดข้อมูลของฉันไม่ได้อยู่ในระดับเดียวกัน !!
library(rgdal)
library(raster)
xyz<-cbind(my_mesh, s100_ras)
r <- rasterFromXYZ(xyz)
image(r)
ถ้าฉันพยายามสร้างแรสเตอร์โดยใช้จุดข้อมูล (ไม่มีตาข่าย) R จะเกิดข้อผิดพลาดเนื่องจากข้อมูลของฉันมีระยะห่างไม่สม่ำเสมอ!
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
ยิ่งกว่านั้นฉันพยายามเล่นด้วยฟังก์ชั่น 'rasterize' (สำหรับกริดที่ผิดปกติ) ของ 'raster package' แต่ไม่สามารถหามันได้ :( ฉันรู้วิธีการสอดแทรกและสร้างกริดปกติ แต่เพื่อประโยชน์ ของความคิดริเริ่มฉันต้องการหลีกเลี่ยงการแก้ไขมันเป็นไปได้ที่จะทำให้ raster ของจุดข้อมูลที่มีระยะห่างไม่สม่ำเสมอโดยไม่ต้องใช้วิธีการ idw หรือ kriging?
SpatialPixelsDataFrame
กับtolerance
อาร์กิวเมนต์ที่แนะนำ(0.916421 ในกรณีของคุณ)