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


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.