आर में कई स्टैक्ड रेखापुंज छवियों को आयात करना?


9

मैं अपने आर में संकेतित फ़ोल्डर से सभी कई मोज़ेक रस्टर्स (प्रत्येक मोज़ेक 7 परतों से बना है) को आयात करना चाहूंगा । फिर उन्हें सिंगल मल्टीलेयर्स रस्टर्स के रूप में एक्सेस करें।

यहां छवि विवरण दर्ज करें

तो मैंने किया:

# read all mosaics named "mos....img" in R    
raster_data<-list.files(path=getwd(), pattern="mos.*.img$") 
# read files as rasters
s <- stack(raster_data)
# check my imported rasters p.ex. raster n°8 from "s" raster stack
s[[8]]         

और मेरे रेखापुंज [[contain]] में केवल १ परत होती है, इसलिए पूरे मोज़ेक का आयात नहीं किया गया था!

nlayers(s[[8]])
[[1]]

यदि मैं प्रत्येक मोज़ेक को अलग से पढ़ता हूं, तो यह काम करता है:

# read 1 mosaic (composed by 7 bands)
mosaic1<-brick("mosaic1.img")
# extract one band
band4<-subset(mosaic1, 4)

"स्टैक" टूल संपूर्ण मोज़ाइक आयात क्यों नहीं करता है, लेकिन मोज़ेक का केवल एक बैंड और इसे व्यवस्थित करना कैसे संभव है?

जवाबों:


11

एक नजर है nlayers(s)। परतों की वापसी संख्या 28 के बराबर होगी - कम से कम 4 बहु-परत वस्तुओं के साथ उपरोक्त उदाहरण के लिए 7 परतें शामिल हैं। एक stackसे अधिक मल्टी-लेयर फ़ाइलों को लागू करने से एक विशाल 'रैस्टरस्टैक' ऑब्जेक्ट प्राप्त होता है, अर्थात सभी एकल मल्टी-लेयर ऑब्जेक्ट एक दूसरे से जुड़े होते हैं।

यदि आप प्रत्येक फ़ाइल के लिए अलग स्टैक्स रखना चाहते हैं, तो मैं उपयोग करने की सलाह दूंगा

s <- lapply(raster_data, stack)

जिसके परिणामस्वरूप 'रैस्टरस्टैक' वस्तुओं की एक सूची बनती है, प्रत्येक में एक विशाल ढेर के बजाय 7 परतें शामिल हैं। तब आप विशेष परतों तक पहुँच सकते हैं, उदाहरण के लिए 3rd 'RasterStack' ऑब्जेक्ट की दूसरी परत

s[[3]][[2]]
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.