रिमोट सेंसिंग डेटा (दृश्य चित्र और LiDAR) से पेड़ के मुकुट क्षेत्र निकालना


13

मैं एक रिमोट सेंसिंग इमेज को प्रोसेस करने और इमेज से अलग-अलग पेड़ों के क्राउन एरिया निकालने का तरीका खोज रहा हूं।

मेरे पास दृश्य तरंग दैर्ध्य क्षेत्र इमेजरी और क्षेत्र से लिडार डेटा दोनों हैं। विचाराधीन स्थान एक रेगिस्तानी क्षेत्र है, इसलिए पेड़ का आवरण वन क्षेत्र जितना घना नहीं है। हवाई कल्पना का संकल्प 0.5 फीट 0.5 फीट है। लिडार का रिज़ॉल्यूशन लगभग 1 x 1 फीट है। विज़ुअल डेटा और लिडार दोनों एक Pima काउंटी, एरिज़ोना डेटासेट से आते हैं। इस पोस्ट के अंत में हवाई कल्पना के प्रकार का एक नमूना मेरे पास है।

यह सवाल आर्कप में सिंगल ट्री डिटेक्शन का है? एक ही मुद्दा लगता है, लेकिन वहाँ एक अच्छा जवाब नहीं लगता है।

मैं आर्कम्प में इस्सो क्लस्टर वर्गीकरण का उपयोग करके क्षेत्र में वनस्पति प्रकार (और समग्र प्रतिशत कवर के बारे में जानकारी) का एक उचित वर्गीकरण प्राप्त कर सकता हूं, लेकिन यह व्यक्तिगत पेड़ों पर बहुत कम जानकारी प्रदान करता है। मेरे पास जो कुछ भी मैं चाहता हूं वह आर्कमैप में रैस्टर से बहुभुज सुविधा के माध्यम से आइसोक्लस्टर वर्गीकरण के आउटपुट को पारित करने के परिणाम है। समस्या यह है कि यह विधि पेड़ों के पास एकल बहुभुज में विलीन हो जाती है।

संपादित करें: मुझे संभवतः मेरे बारे में कुछ और विवरण शामिल करना चाहिए था। मेरे पास कच्चे डेटासेट हैं:

  • पूर्ण लास डेटा, और इससे उत्पन्न एक झगड़ा रेखापुंज।
  • दृश्य इमेजरी (जैसे नमूना चित्र दिखाया गया है, लेकिन बहुत व्यापक क्षेत्र को कवर करते हुए)
  • क्षेत्र में पेड़ों के एक सबसेट का मैनुअल प्रत्यक्ष माप।

इनसे मैंने उत्पन्न किया है:

  1. जमीन / वनस्पति वर्गीकरण।
  2. डीईएम / डीएसएम आपदाओं।

नमूना हवाई कल्पना


आपको लिंक से अधिक डेटा मिला है। क्या आपके पास वर्गीकृत लास फाइलें या सिर्फ डीईएम / डीएसएम रेखापुंज (कौन सा?) है? यह वास्तव में सटीकता के किसी भी डिग्री के साथ सिर्फ दृश्य तरंग दैर्ध्य के साथ ऐसा करना आसान नहीं है।
माइकल स्टिम्सन

मुझे शायद मेरे बारे में कुछ और विवरण शामिल करना चाहिए था। मेरे पास कच्चे डेटासेट हैं: 1. पूर्ण लेस डेटा, और इससे उत्पन्न एक टिफ़र रेखापुंज 2. दृश्य इमेजरी (जैसे नमूना चित्र दिखाया गया है, लेकिन बहुत व्यापक क्षेत्र को कवर करते हुए) 3. पेड़ों के एक सबसेट का मैन्युअल प्रत्यक्ष माप क्षेत्र। इनमें से मैंने उत्पन्न किया है: 1. जमीन / वनस्पति वर्गीकरण 2. डेम / डीएसएम आपदाएं
थियोडोर जोन्स

क्या आपके पास अनुभूति तक पहुंच है? यदि नहीं, तो इमेज प्रोसेसिंग सॉफ्टवेयर या प्रोग्रामिंग लैंग्वेज की आपको क्या जानकारी है या क्या आप जानते हैं?
आरोन

मेरे पास पहचान की एक प्रति नहीं है, लेकिन मैं जांच करूंगा कि अगर मेरी लैब / यूनिवर्सिटी में किसी को पता है तो उसके पास है क्योंकि यह इस प्रकार की चीज के लिए लोकप्रिय है। मैं अजगर, सी और जावा का जानकार हूं। मेरे पास माटलैब की एक प्रति है लेकिन मैं इस पर बहुत अधिक शोर कर रहा हूं। मैं इस सूची में सॉफ़्टवेयर के किसी भी के लिए उपयोग किया softwarelicense.arizona.edu/students पाठ्यक्रम ArcGIS की, के साथ साथ,।
थियोडोर जोन्स

मेरे पास व्यावसायिक अनुप्रयोगों में थोड़ा और विस्तार। सॉफ्टवेयर से जुड़ी सूची में से कुछ मैं मैटलैब, मैथेमेटिका, जेएमपी और अन्य आँकड़े टूल और विज़ुअल स्टूडियो जैसे सॉफ़्टवेयर डेवलपमेंट टूल हैं।
थियोडोर जोन्स 8

जवाबों:


10

वर्णक्रमीय और लिडार डेटा में व्यक्तिगत मुकुट का पता लगाने पर साहित्य का काफी हिस्सा है। बुद्धिमान तरीके, शायद के साथ शुरू:

फल्कोव्स्की, एमजे, एएमएस स्मिथ, पीई गेसलर, एटी हुडक, ला वीर्लिंग और जेएस इवांस। (2008)। लिफ़र डेटा का उपयोग करके दो अलग-अलग पेड़ माप एल्गोरिदम की सटीकता पर कोनिफर वन चंदवा कवर का प्रभाव। कनाडाई जर्नल ऑफ़ रिमोट सेंसिंग 34 (2): 338-350।

स्मिथ एएमएस, ईके स्ट्रैंड, सीएम स्टील, डीबी हैन, एसआर गैरिटी, एमजे फाल्कोस्की, जेएस इवांस (2008) बहु-अस्थायी हवाई तस्वीरों में जुनिपर अतिक्रमण के प्रति-वस्तु विश्लेषण द्वारा वनस्पति स्थानिक-संरचना के नक्शे का उत्पादन। कनाडाई जर्नल रिमोट सेंसिंग 34 (2): 268-285

यदि आप वेवलेट विधि (स्मिथ एट अल।, 2008) में रुचि रखते हैं, तो मैंने इसे पायथन में कोडित किया है लेकिन, यह बहुत धीमा है। यदि आपके पास माटलैब का अनुभव है, तो यह वह जगह है जहां इसे उत्पादन मोड में लागू किया गया है। हमारे पास दो कागजात हैं जहां हमने पहचाना ~ 6 मिलियन एकड़ का जुनिपर अतिक्रमण पूर्वी ओरेगन में एनएआईपी आरजीबी-एनआईआर इमेजरी के साथ तरंगिका पद्धति का उपयोग करके किया गया है, इसलिए यह अच्छी तरह से सिद्ध है।

बरूच-मोर्डो, एस।, जेएस इवांस, जे। सेवरसन, जेडी नौगले, जे। केसेकर, जे। मेस्टास, और एमजे फाल्कोव्स्की (2013) पेड़ों से ऋषि-घूस की बचत: एक उम्मीदवार के लिए एक महत्वपूर्ण खतरे को कम करने के लिए एक सक्रिय समाधान। प्रजाति जैविक संरक्षण 167: 233-241

पॉज़्नानोविक, ए जे, एमजे फल्कोव्स्की, एएल मैकलीन, और जेएस इवांस (2014) जुनिपर वुडलैंड्स में ट्री डिटेक्शन एल्गोरिदम का एक सटीकता मूल्यांकन। फोटोग्रामेट्रिक इंजीनियरिंग और रिमोट सेंसिंग 80 (5): 627–637

कुछ दिलचस्प दृष्टिकोण हैं, सामान्य वस्तु अपघटन में, लागू गणित राज्य अंतरिक्ष साहित्य से लेकर बहुउद्देशीय गॉसियन प्रक्रियाओं का उपयोग करके पैमाने पर ऑब्जेक्ट विशेषताओं को विघटित करना है। मैं पारिस्थितिक मॉडल में बहु-स्तरीय प्रक्रिया का वर्णन करने के लिए इस प्रकार के मॉडल का उपयोग करता हूं लेकिन इसे छवि ऑब्जेक्ट विशेषताओं को विघटित करने के लिए अनुकूलित किया जा सकता है। मज़ा, लेकिन थोड़ा गूढ़।

ग्रामेसी, आरबी, और एचकेएच ली (2008) बायेसियन ने कंप्यूटर मॉडलिंग के लिए एक आवेदन के साथ गॉसियन प्रक्रिया मॉडल का निर्माण किया। जर्नल ऑफ़ द अमेरिकन स्टेटिस्टिकल एसोसिएशन, 103 (483): 1119–1130

किम, एचएम, बीके मल्लिक, और सीसी होम्स (2005) टुकड़ावार गाऊसी प्रक्रियाओं का उपयोग करके गैर-केंद्रिक स्थानिक डेटा का विश्लेषण। जर्नल ऑफ़ द अमेरिकन स्टेटिस्टिकल एसोसिएशन, 100 (470): 653-668


+1 विशेष रूप से विकल्प 4 के लिए; चूंकि ओपी में लिडार डेटा होता है, यह चंदवा सतह मॉडल पर वेवलेट विधि को चलाने के लायक होगा। यद्यपि, जैसा कि आप जानते हैं, तरंगिका विधि वास्तव में अभी तक मुख्यधारा नहीं है (या शायद कभी भी)।
आरोन

एक-आकार-फिट-सभी आदर्शों के कारण, मैं बिग-बॉक्स सॉफ़्टवेयर के रूप में वाणिज्यिक सॉफ़्टवेयर (जैसे, ESRI, ERDAS) का जिक्र शुरू करने जा रहा हूं। अक्सर सर्वश्रेष्ठ समाधान, या किसी भी "बिग-बॉक्स सॉफ़्टवेयर" में उपलब्ध नहीं है। अक्सर किसी को जटिल स्थानिक विश्लेषणात्मक समस्याओं के जवाब के लिए विकास या शैक्षणिक समुदायों की ओर देखना पड़ता है। यह आपको बड़ी जल्दी में मुख्यधारा से बाहर ले जाता है। सौभाग्य से, ये समुदाय साझा करना पसंद करते हैं। यही कारण है कि एक विश्लेषक के लिए पुश-बटन समाधानों पर भरोसा नहीं करना महत्वपूर्ण है।
जेफरी इवांस

2
मैं जटिल स्थानिक समस्याओं के लिए BBS के बारे में सहमत हूं। हालांकि, शुष्क वातावरण में एक ही प्रकार की वनस्पति को निकालना - विशेष रूप से यदि आपके पास लिडार डेटा तक पहुंच है - बहुत मुख्यधारा है। इस मामले में, सरल पेड़ की पहचान के लिए एक नया दृष्टिकोण विकसित करके पहिया को फिर से आविष्कार करने की आवश्यकता नहीं है। मेरे विचार यह है कि पूर्व-स्थापित, पुश-बटन दृष्टिकोण का उपयोग क्यों नहीं किया जाता है, विशेष रूप से ई-कॉग्निशन जैसे पैकेज में, जो स्वचालन के लिए अत्यधिक अनुकूल है?
आरोन

1
मुझे यह जोड़ना चाहिए कि पहचान के लिए व्यक्तिगत ताज आईडी की क्षमता है। एक उदाहरण के रूप में, आप ईकोग समुदाय पर एक नमूना नियम खोज सकते हैं जो बीज उगाने के दृष्टिकोण का उपयोग करता है - "ऑयल पाम ट्री डेलिनेशन नमूना नियम सेट"। ई-कॉग के नए टेम्प्लेट मैचिंग एल्गोरिदम को एकीकृत करना और बीज उगाने का तरीका संभवतः एक बहुत शक्तिशाली तरीका हो सकता है।
हारून

1
मुझे स्मिथ (2008) वेवलेट पद्धति के लिए आपके द्वारा बताए गए अजगर कोड में दिलचस्पी है। यह कहीं भी उपलब्ध है?
अल्पेश

3

डीईएम को डीईएम से घटाकर एक डीएचएम बनाने के लिए, यह एस्री रास्टर कैलकुलेटर या जीडीएएल_एवाईसीएल में किया जा सकता है । यह आपकी सभी ऊँचाई को 'स्तर के खेल के मैदान' पर रखेगा।

सिंटैक्स (डेम, डीएसएम और डीएचएम के लिए पूर्ण पथ):

GDAL_CALC.py -A DSM -B DEM --outfile=DHM --CALC "A-B"

डीएचएम ज्यादातर 0 (या पर्याप्त के पास) होगा, जिसे आप अपना नोडा मूल्य बनाते हैं। रेखापुंज कैलकुलेटर या GDAL_CALC के साथ आप DHM में देखे जाने वाले शोर की मात्रा के आधार पर एक मनमानी मूल्य से अधिक मूल्य निकाल सकते हैं। इस का उद्देश्य शोर को कम करना और सिर्फ वनस्पतियों के मुकुट को उजागर करना है - उदाहरण के लिए जहां दो 'पेड़' सटे हुए हैं, इसे दो अलग-अलग टुकड़ों में विभाजित किया जाना चाहिए।

सिंटैक्स (बाइनरी और डीएचएम के लिए पूर्ण पथ और मूल्य के लिए मनाया मूल्य):

GDAL_CALC.py -A DHM --outfile=Binary --calc "A*(A>Value)"

अब या तो GDAL_CALC या Esri IsNull के साथ एक द्विआधारी रेखापुंज बनाते हैं, जिसे GDAL_Polygonize या Esri Raster से Polygon के साथ Polygonized किया जा सकता है ।

बहुभुज को परिष्कृत करने के लिए छोटे बहुभुजों को हटा दें और फिर हस्ताक्षर के लिए आरजीबी बैंड से उनकी तुलना करें, एसरी में जोनल स्टैटिस्टिक्स टूल मदद करेगा। फिर आप बहुभुज को त्याग सकते हैं जिसमें स्पष्ट रूप से सही आँकड़े नहीं हैं (प्रयोग और आपके डेटा के आधार पर, मैं आपको मान नहीं दे सकता)।

यह आपको व्यक्तिगत मुकुटों की साजिश रचने में लगभग 80% सटीकता के लिए मिलना चाहिए।


धन्यवाद। मैं देखूंगा कि क्या मुझे इस पद्धति से अच्छे परिणाम मिलते हैं।
थियोडोर जोन्स 7

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

3

eCognition उस के लिए सबसे अच्छा सॉफ्टवेयर है, मैंने ऐसा किया है कि अन्य सॉफ्टवेयर का उपयोग कर रहा हूं लेकिन अनुभूति इसके बेहतर है। यहाँ इस विषय पर साहित्य का संदर्भ दिया गया है:

कार्लसन, एम।, रीज़, एच।, और ओस्टवाल्ड, एम। (2014)। वर्ल्ड व्यू -2 इमेजरी और ज्योग्राफिक ऑब्जेक्ट आधारित छवि विश्लेषण का उपयोग करके सेमी-एरीड वेस्ट अफ्रीका के प्रबंधित वुडलैंड्स (पार्कलैंड्स) में ट्री क्राउन मैपिंग। सेंसर, 14 (12), 22643-22669।

जैसे http://www.mdpi.com/1424-8220/14/12/22643

इसके अतिरिक्त:

ज़गालिकिस, जी।, कैमरन, ई।, और मिलर, डीआर (2005)। पेड़ और स्टैंड विशेषताओं को प्राप्त करने के लिए डिजिटल फोटोग्राममेट्री और छवि विश्लेषण तकनीकों का अनुप्रयोग। वन अनुसंधान के कनाडाई जर्नल, 35 (5), 1224-1237।

उदा । http://www.nrcresearchpress.com/doi/abs/10.1139/x05-030#.VJmMb14gAA


क्या आप इस बात पर विस्तार कर सकते हैं कि मान्यता बेहतर क्यों है? जब लिंक हट जाता है तो लिंक केवल उत्तर विचलित हो जाते हैं।
हारून

1
eCognition ऑब्जेक्ट-बेस्ड इमेज एनालिसिस सॉफ्टवेयर है, क्योंकि मैं अब नहीं हूं। मैंने इसी तरह के दृष्टिकोण का इस्तेमाल किया। डिजिटल फोटोग्राममेट्री और इमेज एनालिसिस तकनीकों का उपयोग पेड़ को खड़ा करने और विशेषताओं को बढ़ाने के लिए किया जाता है। /abs/10.1139/x05-030#.VJmMb14gAA
जियोर्गास ज़गालिकिस

1
संदर्भ के लिए धन्यवाद जियोर्जोस। मुझे लगता है कि ये टिप्पणियां आपके उत्तर को संपादित करने के रूप में अच्छी तरह से काम करेंगी।
हारून

3

मैं कुछ साल पहले एक ही मुद्दा था। मेरे पास एक समाधान है जिसमें फ़िल्टर किए गए एलएएस डेटा या अन्य सहायक डेटा की आवश्यकता नहीं है। यदि आपके पास LiDAR डेटा तक पहुँच है, और इसके बाद DEM / DSM / DHM (DEM उत्पन्न कर सकते हैं, मैं अलग-अलग रिटर्न से सतह मॉडल नामकरण के शब्दार्थ पर बहस नहीं कर रहा हूँ), निम्न स्क्रिप्ट उपयोगी हो सकती है।

चापलूसी स्क्रिप्ट 3 डीईएम का अंतर्ग्रहण करती है और एक वन बहुभुज और वृक्ष बिंदु आकृति आकृति को बाहर निकालती है। 3 डीईएम में समान स्थानिक संकल्प (यानी 1 मीटर) और विस्तार होना चाहिए, और पहले रिटर्न, अंतिम रिटर्न और नंगे धरती का प्रतिनिधित्व करना चाहिए। Veg निष्कर्षण के लिए मेरे पास बहुत विशिष्ट पैरामीटर थे, लेकिन अन्य आवश्यकताओं के अनुरूप मापदंडों को बदला जा सकता है। मुझे यकीन है कि प्रक्रिया में सुधार किया जा सकता है, क्योंकि यह अजगर स्क्रिप्टिंग पर मेरा पहला गंभीर प्रयास था।

# Name:         Veg_Extractor.py
# Date:         2013-07-16
# Usage:        ArcMap 10.0; Spatial Analyst
# Input:        1 meter DEMs for first returns (DEM1), last returns (DEM2), and bare earth (BE)
# Output:       forest polygon (veg with height > 4m) shapefile with holes > 500m removed;
#               tree point (veg with height > 4m, crown radius of 9 cells) shapefile
# Notes:        Raises error if input raster cell sizes differ

import arcpy, os
from arcpy import env
from arcpy.sa import *

# Check out any necessary licenses
arcpy.CheckOutExtension("spatial")

# Script arguments
dem1 = arcpy.GetParameterAsText(0) #input Raster Layer, First Return DEM
dem2 = arcpy.GetParameterAsText(1) #input Raster Layer, Last Return DEM
bare_earth = arcpy.GetParameterAsText(2) #input Raster Layer, Bare Earth DEM
outForest = arcpy.GetParameterAsText(3) #shapefile
outTree = arcpy.GetParameterAsText(4) #shapefile

# Make sure cell size of input rasters are same
arcpy.AddMessage("Checking cell sizes...")
dem1Xresult = arcpy.GetRasterProperties_management(dem1, "CELLSIZEX")
dem1Yresult = arcpy.GetRasterProperties_management(dem1, "CELLSIZEY")
dem2Xresult = arcpy.GetRasterProperties_management(dem2, "CELLSIZEX")
dem2Yresult = arcpy.GetRasterProperties_management(dem2, "CELLSIZEY")
beXresult = arcpy.GetRasterProperties_management(bare_earth, "CELLSIZEX")
beYresult = arcpy.GetRasterProperties_management(bare_earth, "CELLSIZEY")
dem1X = round(float(dem1Xresult.getOutput(0)),4)
dem1Y = round(float(dem1Yresult.getOutput(0)),4)
dem2X = round(float(dem2Xresult.getOutput(0)),4)
dem2Y = round(float(dem2Yresult.getOutput(0)),4)
beX = round(float(beXresult.getOutput(0)),4)
beY = round(float(beYresult.getOutput(0)),4)
if (dem1X == dem1Y == dem2X == dem2Y == beX == beY) == True:
    arcpy.AddMessage("Cell sizes match.")
else:
    arcpy.AddMessage("Input Raster Cell Sizes:")
    arcpy.AddMessage("DEM1: (" + str(dem1X) + "," + str(dem1Y) + ")")
    arcpy.AddMessage("DEM2: (" + str(dem2X) + "," + str(dem2Y) + ")")
    arcpy.AddMessage("  BE: (" + str(beX) + "," + str(beY) + ")")
    raise Exception("Cell sizes do not match.")

# Check map units
dem1_spatial_ref = arcpy.Describe(dem1).spatialReference
dem1_units = dem1_spatial_ref.linearUnitName
dem2_spatial_ref = arcpy.Describe(dem2).spatialReference
dem2_units = dem2_spatial_ref.linearUnitName
bare_earth_spatial_ref = arcpy.Describe(bare_earth).spatialReference
bare_earth_units = bare_earth_spatial_ref.linearUnitName
if (dem1_units == dem2_units == bare_earth_units) == True:
    if dem1_units == "Meter":
        area = "500 SquareMeters" #Area variable for meter
        unit = 1 #meter
    elif (dem1_units == "Foot_US") or (dem1_units == "Foot"):
        area = "5382 SquareFeet" #Area variable for feet
        unit = 3.28084 #feet in meter
    else:
        raise Exception("Units are not 'Meter', 'Foot_US', or 'Foot'.")
else:
    raise Exception("Linear units do not match.  Check spatial reference.")

# Local variables:
(workspace, filename) = os.path.split(outForest)
arcpy.env.workspace = workspace
arcpy.env.overwriteOutput = True
dem1 = Raster(dem1)
dem2 = Raster(dem2)
bare_earth = Raster(bare_earth)
nbr1 = NbrRectangle(3, 3, "CELL")
nbr2 = NbrRectangle(5, 5, "CELL")
nbr3 = NbrCircle(5, "CELL")

# Give units and multiplier
arcpy.AddMessage("Linear units are " + dem1_units + ". Using multiplier of " + str(unit) + "...")

arcpy.AddMessage("Processing DEMs...")
# Process: Raster Calculator (DEM1 - BE)
ndsm_dem1 = dem1 - bare_earth

# Process: Raster Calculator (DEM1 - DEM2)
d1_d2 = dem1 - dem2

# Process: Raster Calculator
threshold_d1d2 = (d1_d2 > (0.1 * unit))  &  (ndsm_dem1 >= (4.0 * unit))

# Process: Focal Statistics (max 3x3)
focal_max1 = FocalStatistics(threshold_d1d2, nbr1, "MAXIMUM", "DATA")

# Process: Focal Statistics (majority 5x5)
focal_majority = FocalStatistics(focal_max1, nbr2, "MAJORITY", "DATA")

# Process: Con
con_ndsm_dem1 = Con(ndsm_dem1 >= (4.0 * unit), focal_majority, focal_max1)
focal_majority = None
focal_max1 = None

# Process: Focal Statistics (min 3x3)
focal_min1 = FocalStatistics(con_ndsm_dem1, nbr1, "MINIMUM", "DATA")
con_ndsm_dem1 = None

# Process: Focal Statistics (min 3x3)
veg_mask = FocalStatistics(focal_min1, nbr1, "MINIMUM", "DATA")

# Process: Focal Statistics (max R5)
focal_max2 = FocalStatistics(ndsm_dem1, nbr3, "MAXIMUM", "DATA")

arcpy.AddMessage("Calculating tree points...")
# Process: Raster Calculator
tree_points = (veg_mask == 1) & (ndsm_dem1 == focal_max2) & (ndsm_dem1 >= (4.0 * unit))
ndsm_dem1 = None
focal_max2 = None

# Process: Raster Calculator
tree_pick = Pick(tree_points == 1, 1)
tree_points = None

# Process: Raster to Polygon
arcpy.RasterToPolygon_conversion(tree_pick, workspace + "\\tree_poly.shp", "SIMPLIFY", "Value")
tree_pick = None

# Process: Feature To Point
arcpy.AddMessage("Writing tree points...")
arcpy.env.workspace = workspace #reset workspace
arcpy.env.overwriteOutput = True #reset overwrite permission
arcpy.FeatureToPoint_management(workspace + "\\tree_poly.shp", outTree, "CENTROID")

arcpy.AddMessage("Calculating forest polygons...")
# Process: Focal Statistics (max 3x3)
forests = FocalStatistics(veg_mask, nbr1, "MAXIMUM", "DATA")
veg_mask = None

# Process: Raster Calculator
forest_pick = Pick(forests == 1, 1)

# Process: Raster to Polygon
arcpy.RasterToPolygon_conversion(forest_pick, workspace + "\\forest_poly.shp", "SIMPLIFY", "Value")

# Process: Eliminate Holes > 500 sq m (5382 sq ft)
arcpy.AddMessage("Writing forest polygons...")
arcpy.EliminatePolygonPart_management(workspace + "\\forest_poly.shp", outForest, "AREA", area, "0", "CONTAINED_ONLY")

# Clean up
arcpy.AddMessage("Cleaing up...")
arcpy.Delete_management(workspace + "\\tree_poly.shp")
arcpy.Delete_management(workspace + "\\forest_poly.shp")

2

मैं इसे टिप्पणी में लंबाई की सीमा के कारण उत्तर के रूप में पोस्ट कर रहा हूं, क्रेडिट की कोई उम्मीद नहीं है :)। बहुत व्यापक ब्रश, बशर्ते आपको डेम मिल गया हो।

  1. डेमो के लिए व्यक्तिगत बहुभुज के लिए डीईएम निकालें।
  2. डिम की ऊँचाई चरम सीमा को परिभाषित करें
  3. ZCur + = - zStep सेट करें। पहले से पुनरावृत्तियों द्वारा पाया जाने वाला कदम, उदाहरण के लिए 'ट्री टॉप सेल' के उत्थान और पड़ोसियों के बीच उचित गिरावट
  4. नीचे = कोन (डिम => zCur, int (1))
  5. नीचे के समूह क्षेत्र। बहुत बड़ी गिनती, कि 'पेड़' हैं। दृश्य निरीक्षण, प्रारंभिक अनुसंधान द्वारा यहां आवश्यक परिभाषा?
  6. गोटो स्टेप 3 अगर zCur> zMin, स्टेप 1 अन्यथा।

प्रक्रिया में समूहों की अधिकतम संख्या = व्यक्तिगत बहुभुज के अंदर पेड़ की गिनती। अतिरिक्त मानदंड, जैसे पॉलीगॉन के अंदर 'पेड़ों' के बीच की दूरी मदद कर सकती है ... कर्नेल का उपयोग करके डीईएम को चौरसाई करना भी एक विकल्प है।


मेरा मानना ​​है कि आप एक डीएसएम का उल्लेख कर रहे हैं और डीईएम का नहीं ... आमतौर पर पेड़, संरचनाएं और अन्य कबाड़ इसे डीईएम में नहीं बनाते हैं लेकिन डीएसएम (माइनस नॉइज क्लासेस) में इसकी सुविधा होती है। डीएसएम - डीईएम = डीएचएम (ऊंचाई मॉडल)। ये सभी LiDAR डेटा से यथोचित रूप से निकाले जा सकते हैं, भले ही यह केवल वर्गीकृत ग्राउंड / नॉनग्राउंड हो, लेकिन यदि आपके पास DEM है और LAS नहीं है तो आप बिना पैडल के क्रीक को ऊपर कर रहे हैं क्योंकि आप इसके बाद नहीं हैं वहाँ !
माइकल स्टिम्सन

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