जवाबों:
यहाँ एक उदाहरण है।
library(raster)
# example data
x <- raster(system.file("external/test.grd", package="raster"))
आयताकार सीमा प्राप्त करने के लिए
e <- extent(x)
# coerce to a SpatialPolygons object
p <- as(e, 'SpatialPolygons')
बहुभुज प्राप्त करने के लिए कोशिकाओं को घेरते हैं जो NA नहीं हैं
# make all values the same. Either do
r <- x > -Inf
# or alternatively
# r <- reclassify(x, cbind(-Inf, Inf, 1))
# convert to polygons (you need to have package 'rgeos' installed for this to work)
pp <- rasterToPolygons(r, dissolve=TRUE)
# look at the results
plot(x)
plot(p, lwd=5, border='red', add=TRUE)
plot(pp, lwd=3, border='blue', add=TRUE)
r > -Inf
बुनियादी है R
। क्या c(1,NA,3,NA) > -Inf
देखने के लिए कि यह कैसे काम करता है। मैंने एक विकल्प ( reclassify
) जोड़ा है । आपका वैकल्पिक काम करता है लेकिन यह बड़ी वस्तुओं के लिए अच्छा नहीं है।
rasterToPolygons()
भाग की प्रक्रिया का इंतजार कर रहा हूं , और उसके बाद मैं आपके उत्तर का मूल्यांकन करूंगा। -Inf
बिट के लिए धन्यवाद इसके बहुत उपयोगी होने जा रहा है!
aggregate
क्योंकि आप वैसे भी अंतर नहीं देखेंगे।
aggregate()
आर पर चलने के बाद केवल 100 कोशिकाओं के साथ भी , यह संसाधित नहीं हुआ है (16 जीबी रैम से लैस कंप्यूटर)। समस्या यह है कि मुझे सीमा को देशी के रूप में रखने की आवश्यकता है, क्योंकि परिणामी बहुभुज से एक डीईएम को निकालने की आवश्यकता है। अगर मैं अपने रैस्टर को डाउन-सैंपल करता हूं तो मैं उस सीमा को ढीला कर दूंगा। चारों ओर कोई काम?
r <- r > -Inf
भाग पर दस्तावेज़ीकरण नहीं ढूँढ सकता । यह वास्तव में क्या कर रहा है? और यह कितना अलग हैvalues(r)[!is.na(values(r))] <- 1
(जो सभी स्थानों को सेट करता है जो NA से 1 तक नहीं हैं)।