मैं एक अनियमित स्थान बिंदु डेटाबेस से एक रेखापुंज छवि बनाने की कोशिश कर रहा था। डेटा ऐसा दिखता है-
> 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))
मैं उन मान बिंदुओं के लिए 'एनए' के रूप में असाइन किए जाने वाले जेड-मान भी चाहता हूं जो डेटा बिंदुओं के बाहर हैं। मेष पर बिंदु इस तरह दिखते हैं: 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)
अगर मैं डेटा बिंदुओं (बिना किसी जाल के) का उपयोग करके केवल एक रेखापुंज बनाने की कोशिश करता हूं, तो आर एक त्रुटि फेंकता है क्योंकि मेरा डेटा अनियमित रूप से फैला हुआ है!
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' फंक्शन (अनियमित ग्रिड के लिए) के साथ खेलने की कोशिश कर रहा था, लेकिन इसके साथ कोई रास्ता नहीं निकाल सका :( मुझे पता है कि एक नियमित ग्रिड कैसे बनाना और बनाना है, लेकिन इसके लिए मैं जानता हूं। मौलिकता के साथ, मैं AVOID प्रक्षेप करना चाहता हूं। क्या बिना idw या kriging विधियों के अनियमित रूप से अंतरित डेटा बिंदुओं का रेखापुंज बनाना संभव है?
SpatialPixelsDataFrame
सुझाए गए tolerance
तर्क (आपके मामले में 0.916421) के साथ उपयोग करना था ।