रेखापुंज कक्षाओं का क्षेत्रफल मापना?


9

वहाँ ArcMap में किसी भी उपकरण या तरीके हैं जो कर्नेल घनत्व आउटपुट के प्रत्येक स्तर के क्षेत्र को माप सकते हैं?

ध्यान दें कि यह केवल कर्नेल घनत्व प्लॉट है (आकार फ़ाइल या बहुभुज नहीं)। कर्नेल घनत्व विश्लेषण (गहरा हरा (10%) से लाल (90%) (1)

मैंने कुछ चीजें आजमाई हैं लेकिन मुझे सटीक होने की जरूरत है।

केरेनेल घनत्व विश्लेषण (गहरा हरा (10%) से लाल (90%)

जवाबों:


7

मैं कक्षाओं के भीतर क्षेत्र की गणना करने के लिए निम्नलिखित वर्कफ़्लो का उपयोग करूंगा:

  1. जो भी आप उपयोग कर रहे हैं वर्गों के लिए कर्नेल घनत्व आउटपुट को पुनरावर्तित करें (स्थानिक विश्लेषक) । डिफ़ॉल्ट रूप से आर्कजीआईएस कर्नेल घनत्व आउटपुट के लिए एक निरंतर रेखापुंज सतह बनाता है, लेकिन किंवदंती (जो अस्थायी है) को पुनर्परिभाषित करता है। पुनरावर्तन उपकरण का उपयोग करने से यह स्थायी हो जाएगा।
  2. पुनर्वर्गीकृत कर्नेल घनत्व विशेषता तालिका खोलें और "COUNT" फ़ील्ड ( चित्र 1 ) देखें। यह प्रत्येक कक्षा में सभी पिक्सेल की गिनती है। उदाहरण के लिए, कक्षा 1 (मान = 1) की गणना 620,063 पिक्सेल है। चूंकि मेरी समन्वय प्रणाली UTM है, यूनिट मीटर में हैं और पिक्सल 1 m स्थानिक रिज़ॉल्यूशन पर हैं। इसलिए, कक्षा 1 620,063 मीटर ^ 2 है।
  3. गणना को अन्य इकाइयों जैसे कि हेक्टेयर में बदलने के लिए, विशेषता तालिका में एक नया क्षेत्र जोड़ें।
  4. फ़ील्ड की गणना करें ( चित्र 2 )
  5. एक वर्ग को हाइलाइट करके परिणाम की जाँच करें ( चित्र 3 )

आकृति 1

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

चित्र 2

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

चित्र तीन

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


2

यदि आप एक चापलूसी समाधान चाहते हैं:

import numpy as np  #not sure how arcpy imports numpy

r = arcpy.RasterToNumPyArray('your raster name')

for val in np.unique(r):
    area = np.sum(r == val)  #multiply this by your pixel area
    print 'value ', val, ' : ', area

वैकल्पिक रूप से आप मानों को एक csv / पाठ फ़ाइल में लिख सकते हैं।


1

यह मानते हुए कि आपका कर्नेल घनत्व प्लॉट कर्नेल घनत्व उपकरण या इसी तरह का उपयोग करके बनाया गया एक रेखापुंज है , यह केवल रेखापुंज को बहुभुज टूल का उपयोग करने का मामला है ।

सुनिश्चित करें कि आप उस क्षेत्र को निर्दिष्ट करते हैं जो रेखापुंज के वर्गीकरण को परिभाषित करता है और यह इसे बहुभुज में बदल देगा। फिर आप क्षेत्र की गणना करने के लिए गणना ज्यामिति उपकरण का उपयोग कर सकते हैं।


मैंने वह कोशिश की है। जब मैं इसमें रेखापुंज फ़ाइल को खींचता हूँ तो यह कहता है कि "एक या अधिक गिराई गई वस्तुएँ अमान्य थीं"। त्रुटि से पता चलता है कि फ़ाइल में पाठ है "हस्तक्षेप कर रहा है" क्या आपके पास कोई विचार है कि ऐसा क्यों हो सकता है?
श्री एंगस

1
@MrAngus समस्या यह है कि कर्नेल घनत्व हमेशा एक अस्थायी बिंदु रेखापुंज उत्पादन पैदा करता है, जबकि Raster to Polygon को एक पूर्णांक रेखापुंज इनपुट की आवश्यकता होती है (लिंक की गई मदद फ़ाइलें देखें)। आपको पहले केडी रेखापुंज को फिर से लिखना होगा।
क्रिस डब्ल्यू

ध्यान दें कि ज्यामिति की गणना प्रति सुविधा है और यह दिए गए वर्ग को साझा करने वाले सभी बहुभुजों का कुल क्षेत्रफल नहीं देगा।
मैट विल्की

0

इसका एक त्वरित समाधान एक मैनुअल हल है:

  1. रैस्टर के गुणों को खोलें और सिम्बोलॉजी टैब पर जाएं।
  2. संभवतः सहजीवन पहले से ही क्लासीफाइड पर सेट है और वर्गों की संख्या वही है जो आप चाहते हैं। वर्गीकृत बटन पर क्लिक करें।
  3. संवाद के दाईं ओर एक ब्रेक वैल्यू बॉक्स है। प्रत्येक ब्रेक मान पर क्लिक करें और संवाद के निचले भाग में आपको कक्षा में # तत्व दिखाई देंगे। यह उस वर्ग के पिक्सेल की गिनती है। प्रत्येक कक्षा के लिए नंबर नीचे लिखें या इसे एक स्प्रेडशीट में दर्ज करें।
  4. रैस्टर गुणों पर वापस जाएं और स्रोत टैब पर स्विच करें। सेल का आकार वहां x, y में दिया गया है। इन दोनों को एक साथ गुणा करें और आपके पास एक पिक्सेल का क्षेत्र है।
  5. अब उस क्षेत्र को प्रत्येक कक्षा में पिक्सेल की संख्या से ले लें। इससे आपको उस वर्ग का कुल क्षेत्रफल मिल जाएगा।

सटीक एक सापेक्ष शब्द है। जहां तक ​​आपके रेखापुंज क्षेत्र हैं, यह बिल्कुल सटीक होगा। यदि आप फ़ेज़र की विधि का उपयोग करते हैं, तो यह क्षेत्र इस बात पर निर्भर करता है कि आप पिक्सेल आधारित क्षेत्रों को पॉलीगॉन में परिवर्तित करते समय चिकना का उपयोग करते हैं या नहीं।

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