我试图从不规则间隔的点数据库制作光栅图像。数据看起来像-
> 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=我绘制时共享
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
此外,我试图使用“栅格包”的“栅格化”功能(对于不规则网格),但无法解决:(。的创意,我想避免插值,是否有可能在没有idw或kriging方法的情况下制作不规则间隔数据点的栅格?
不规则间隔网格的问题在于,如果点太靠近/太靠近,则算法将失败。(非最佳)解决方法:为什么不使单元格之间的距离最小,并创建一个矩形矢量网格。然后将这些点的平均值加入该网格并对其进行栅格化。
—
Curlew
我有同样的问题-解决方案是使用
—
Tomas
SpatialPixelsDataFrame
建议的tolerance
参数(在您的情况下为0.916421)。