आर का उपयोग करके एक आकृति द्वारा परिभाषित क्षेत्र के औसत रेखापुंज मान को कैसे खोजें?


19

मेरे पास रेखापुंज चित्रों का एक सेट है जो वर्षों में एक विशिष्ट महीने का प्रतिनिधित्व करता है, और मैं एक आकृति के उपयोग से एक क्षेत्र के औसत मूल्यों का समयरेखा बनाना चाहता हूं।

मैं कैसे चूहों से मूल्यों को निकालता हूं और उन्हें आर में इस तरह से आयात करता हूं कि मैं उनका उपयोग कर सकता हूं?

जवाबों:


23

यहाँ उदाहरण कोड है। इस कोड को अपने सभी आपदाओं के प्रसंस्करण के लिए लूप में काम करने के लिए अनुकूलित करना काफी सीधा है। यदि आपके रैस्टर एक सामान्य सीमा और रिज़ॉल्यूशन साझा करते हैं, तो आप स्टैक में बैंड के माध्यम से एक रैस्टर स्टैक और लूप बना सकते हैं। किसी डाइरेक्टरी में सभी रैस्टर्स युक्त वेक्टर बनाने के लिए, एक विशिष्ट प्रारूप में, आप "list.files" का उपयोग कर सकते हैं और फिर स्टैक के लिए इस वेक्टर को पास कर सकते हैं।

उदाहरण:

rlist=list.files(getwd(), pattern="img$", full.names=TRUE) 

r <- stack(rlist)   


    # Add required libraries
    require(raster)
    require(sp)
    require(rgdal)

    # Set working directory, raster, in and out shapefiles
    setwd("C:/test")
    inshp="MyPolys"
    outshp="PolyMeans"
    rdata <- "Year2012.img"

    # Read polygon feature class shapefile
    sdata <- readOGR(dsn=getwd(), layer=inshp)

    # Read raster
    r <- raster(rdata)

    # Extract raster values to list object
    r.vals <- extract(r, sdata)

    # Use list apply to calculate mean for each polygon
    r.mean <- lapply(r.vals, FUN=mean)

    # Join mean values to polygon data
    sdata@data <- data.frame(sdata@data, m2012=r.mean)

    # Write results
    writeOGR(sdata, getwd(), outshp, driver="ESRI Shapefile", check_exists=TRUE, 
         overwrite_layer=TRUE)

1
+1 - उत्कृष्ट समाधान, अच्छी तरह से निर्धारित और पूरा जवाब।
Simbamangu

अगर मेरे पास एक मल्टीप्लगोनफाइल है: तो data.frame(sdata@data, m2012=r.mean)पता कैसे चलता है कि बहुभुज किस मूल्य को असाइन करता है?
स्टॉफ़फेस

r.mean को सही ढंग से जोड़ने के लिए sdata में मुझे पहले r.mean को जोड़ना था: r.mean <- unlist (lapply (r.vals, FUN = mean))
cmbarbu

6

एक आकार में पढ़ें SpatialPolygonsDataFrame( readOGRपैकेज से फ़ंक्शन rgdal)

एक Rasterवस्तु में रेखापुंज पढ़ें ( rasterपैकेज से कार्य raster)

extract(raster, spdf)प्रत्येक बहुभुज के नीचे ग्रिड कोशिकाओं को प्राप्त करने के लिए उपयोग करें । फिर meanउन पर दौड़ें ।

रेखापुंज छवियों के अपने सेट पर दोहराएं ...


कैसे आकार लिखने के लिए बाहर (रास्टर छवि से निकाले गए मूल्यों के साथ)?
स्टॉफ़फेस
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.