बाउंडिंग बॉक्स (स्थानिक सीमा) में रेखापुंज मान की गणना करें


11

एक बाउंडिंग बॉक्स को देखते हुए, मैं कैसे value == 11 में एक रैस्टर में) में विशिष्ट मानों की संख्या (कह सकता हूं, मेरी संख्या में दिलचस्पी है ) या आर में रैस्टर पैकेज को कैसे गिन सकता हूं ?

जवाबों:


10

में R, का उपयोग cropमूल्यों और (निकालने के लिए जैसे ) tableउनकी गणना।


एक उदाहरण के रूप में, आइए ग्लोब को कवर करते हुए 1 डिग्री ग्रिड बनाएं:

library(raster)
x.raster <- raster(outer(179:0, 0:359, `+`), xmn=-180, xmx=180, ymn=-90, ymx=90)

बाउंडिंग बॉक्स का extentउपयोग करने के लिए एक वस्तु में परिवर्तित किया जाता है crop:

y.extent <- extent(cbind(c(-125,20), c(-60,50)))
y.raster <- crop(x.raster, y.extent)

ऐसा करने के बाद, सारणीकरण सीधा है:

table(getValues(y.raster))

इस आउटपुट में पहली पंक्ति मानों को सूचीबद्ध करती है और दूसरी उनकी संबंधित गणना को सूचीबद्ध करती है:

165 166 167 ... 257 258
  1   2   3 ...   2   1

एक जाँच के रूप में हम रेखापुंज और सीमा की साजिश कर सकते हैं:

plot(x.raster)
plot(y.extent, add=T)

नक्शा


3

एक मामूली जोड़: आप "मेमोरी-सुरक्षित" फ़ंक्शन "फ्रीक" का भी उपयोग कर सकते हैं:

उत्तर के बाद व्हीबर:

library(raster)
x.raster <- raster(outer(179:0, 0:359, '+'), xmn=-180, xmx=180, ymn=-90, ymx=90)
y.extent <- extent(cbind(c(-125,20), c(-60,50)))
y.raster <- crop(x.raster, y.extent)

लेकिन अब करते हैं:

freq(y.raster)

यह केवल बहुत बड़ी वस्तुओं (फ़ाइल पर रेखापुंज) के लिए मायने रखता है। 'freq' एक दो-स्तंभ मैट्रिक्स (मान / गणना) देता है, जबकि 'तालिका' एक तालिका देता है।


वहाँ वैसे भी सिर्फ छवि फसल के बजाय स्थानिक क्वेरी प्रदर्शन है? प्रसंस्करण के लिए फसल बहुत धीमी हो सकती है।
सीन

1
फसल बहुत तेज होनी चाहिए। एक परीक्षण के रूप में, मैंने cropपृथ्वी को कवर करने वाले एक मिनट के ग्रिड के लिए ऑपरेशन का समय तय किया : इसमें 10800 पंक्तियाँ और 21600 कॉलम (233,280,000 सेल) हैं। फसल को कुल बीते समय में 1.36 सेकंड में अंजाम दिया गया था।
whuber

मुझे यह भी लगता है कि यह तेज़ होना चाहिए, लेकिन आप इस स्थानिक प्रश्न के साथ उपर्युक्त तुलना कर सकते हैं: v <- extract(x.raster, y.extent) इसके बाद table(v)
रॉबर्ट हिजमन

1
रॉबर्ट, क्या पुस्तकालय extractसे है? यह rasterऔर Rसहायता प्रणाली का हिस्सा नहीं है ( ??) इस नाम के साथ कोई भी फ़ंक्शन नहीं ढूंढता है।
whuber

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