आर्कगिस डेस्कटॉप में बहुभुज के रूप में रेखापुंज छवि की सीमा प्राप्त करना?


28

मेरे पास ArcGIS डेस्कटॉप में एक आयताकार रेखापुंज छवि है।

मैं एक बहुभुज का उत्पादन कैसे कर सकता हूं जो सिर्फ रास्टर छवि की सीमा है?

यही है, मैं एक एकल चतुर्भुज के साथ बहुभुज परत रखना चाहता हूं जो छवि का किनारा है।

मैंने बस एक रेखापुंज करने की कोशिश की है-> बहुभुज रूपांतरण, लेकिन यह बाह्यरेखा उत्पन्न करने के लिए छवि में डेटा का उपयोग करने की कोशिश करता है - मैं चाहता हूं कि छवि के किनारे की रूपरेखा हो।

मैं ArcGIS डेस्कटॉप 10 का उपयोग कर रहा हूं।

जवाबों:


33

यदि आपके पास स्थानिक विश्लेषक है तो आप निम्न कर सकते हैं:

  1. रास्टर कैलकुलेटर का उपयोग करके एक निरंतर मूल्य रेखापुंज बनाने के लिए रेखापुंज को 0 से गुणा करें। (इसे पूर्णांक प्रकार में बदलना सुनिश्चित करें या चरण 2 काम नहीं करेगा)
  2. रैस्टर को बहुभुज टूल का उपयोग करके चरण 1 के परिणाम को बहुभुज में बदलें।

एक और समाधान:

यदि आपके पास 3 डी एनालिस्ट लाइसेंस है, तो आप रैस्टर डोमेन टूल का उपयोग 3 डी एनालिस्ट> रूपांतरण> से रेखापुंज (हालांकि यह सुचारू फ़ंक्शन नहीं करता है) के तहत कर सकते हैं


12

आप अपने रैस्टर डेटा के समान ही बहुभुज बनाने के लिए 3 डी एनालिस्ट से रैस्टर डोमेन टूल का उपयोग कर सकते हैं


GIS SE में आपका स्वागत है! क्या आप कृपया अपने उत्तर के संदर्भ जोड़ सकते हैं? इस तरह यह अधिक ठोस होगा।
आरके

रैस्टर डोमेन टूल ने काम किया, पूरी तरह से! रेखापुंज डेटा की एक रूपरेखा या सीमा बनाता है।

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

वास्तव में IRasterDomainExtractor.ExtractDomain पद्धति का एक पैरामीटर है जो यह नियंत्रित करता है कि वह केंद्र का उपयोग करता है या पिक्सल / कोशिकाओं के बाहरी किनारे का।
प्रेस्टन

यह पूर्ण है! एक उपकरण और मेरे पास अपने रेखापुंज की बहुभुज रूपरेखा है। धन्यवाद!
user3281667

11

बस इसे डिजिटाइज़ करने के बारे में क्या? क्लिक-क्लिक-क्लिक-किया गया।


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

3
मैं कहता हूँ क्योंकि रेखापुंज एक अनियमित आकार हो सकता है और, जटिलता के आधार पर, एक बहुत थकाऊ अंकीयकरण का परिणाम हो सकता है
फिल हेनले

4
लेकिन ओपी ने कहा कि यह आयताकार था। मेरे लिए बहुत आसान काम लगता है। ज़ूम इन करके और सटीक होने के कारण, वास्तविक रेखापुंज की रूपरेखा और डिजिटाइज़ की गई रूपरेखा के बीच का अंतर किसी भी वास्तविक तकनीकी अनुप्रयोग के लिए नगण्य होगा।
मैट

10

आप डेटा प्रबंधन टूलबॉक्स में बिल्ड फ़ुटप्रिंट टूल का उपयोग कर सकते हैं। आपको अपने रैस्टर से एक मोज़ेक डेटासेट बनाना होगा।

एक फ़ाइल जियोडेटाबेस में एक नया मोज़ेक बनाएँ, अपने रेखापुंज जोड़ें।

ArcMap में अपनी मोज़ेक खोलें और पदचिह्न निकालें।

यही मैं करता।


8

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

import arcpy,os

InFolder = arcpy.GetParameterAsText(0)
Dest=arcpy.GetParameterAsText(1)

arcpy.env.workspace=InFolder
#The raster datasets in the input workspace
in_raster_datasets = arcpy.ListRasters()

arcpy.CreateFeatureclass_management(os.path.dirname(Dest),
                                   os.path.basename(Dest),
                                   "POLYGON")
arcpy.AddField_management(Dest,"RasterName", "String","","",250)
arcpy.AddField_management(Dest,"RasterPath", "String","","",250)

cursor = arcpy.InsertCursor(Dest)
point = arcpy.Point()
array = arcpy.Array()
corners = ["lowerLeft", "lowerRight", "upperRight", "upperLeft"]
for Ras in in_raster_datasets:
    feat = cursor.newRow()  
    r = arcpy.Raster(Ras)
    for corner in corners:    
        point.X = getattr(r.extent, "%s" % corner).X
        point.Y = getattr(r.extent, "%s" % corner).Y
        array.add(point)
    array.add(array.getObject(0))
    polygon = arcpy.Polygon(array)
    feat.shape = polygon
    feat.setValue("RasterName", Ras)
    feat.setValue("RasterPath", InFolder + "\\" + Ras)
    cursor.insertRow(feat)
    array.removeAll()
del feat
del cursor  

इस कोड का उपयोग करने के तरीके के बारे में हमें बता सकते हैं। मैं इसे .asc रेखापुंज फ़ाइल पर उपयोग करना चाहते हैं। मेरी छवियां अलग-अलग उप फ़ोल्डर हैं।
जीआईएस डेटा बुचर

1
जेब के उत्तर ने मेरे लिए काम किया है, उसे वोट देने के लिए पर्याप्त प्रतिनिधि नहीं है। @ जीआईएस डेटा बुचर एक स्क्रिप्ट-थ्रो फ़ाइल में संपूर्ण स्रोत को सहेजें और इसे आर्कपार्ट के भीतर पायथन विंडो से निष्पादित करें । आप फ़ाइल से स्क्रिप्ट निष्पादित करने के लिए पायथन विंडो पर निम्न कमांड का उपयोग कर सकते हैं। > निष्पादक (r'd: \ temp \ script.py ')
Asad

उत्तम!! मुझे आश्चर्य है, वहाँ उपकरण के रूप में अच्छी तरह से सबफ़ोल्डर्स पढ़ा है?
राफेल

@rapeel, निश्चित रूप से, आपको बस स्क्रिप्ट में मानक अजगर os.listdir या os.walk को लागू करना होगा।
जेब

@ जेब हां, मुझे यह अवधारणा मिली है ... मैं इस पर बहुत नया हूं, और यह काम नहीं कर सका ... क्या आप कुछ मदद दे सकते हैं?
राफेल

4

इसके अलावा, एक आसान तरीका यह है कि आप Reclassify टूल का उपयोग करें, जहां आपको बटन वर्गीकृत करें पर क्लिक करना चाहिए और कक्षाओं की संख्या को बदलकर 1. Ok पर क्लिक करना चाहिए। अब, आउटपुट रैस्टर को रैस्टर को बहुभुज रूपांतरण टूल में आसानी से परिवर्तित किया जा सकता है। ;)


4

मुझे लगता है कि रेखापुंज को पुनः बहुभुज में बदलना और परिवर्तित करना बहुत समय लेने वाला हो सकता है। मेरी राय में, ऐसा करने का सबसे आसान तरीका है:

  • अधिकतम प्राप्त करें, अधिकतम, न्यूनतम, minY (यह वर्णन कमांड के साथ पायथन में किया जा सकता है)
  • ऊपर और पंक्तियों / स्तंभों की संख्या 1 के रूप में सीमा के साथ फिशनेट बनाएं

यदि आपके पास बहुत सारी आपदाएं हैं, तो यह पायथन में किया जाना चाहिए और सेकंड के एक मामले में सैकड़ों पैरों के निशान बना सकते हैं।


0

ArcCatalog में आप एक .gdb (डेटा प्रबंधन उपकरण-> रेखापुंज) में एक रेखापुंज सूची बना सकते हैं। अनवांटेड ठीक है। फिर राइट क्लिक करें और लोड करें (यदि रिस्टर्स सिर्फ एक फोल्डर में बैठे हैं तो "वर्कस्पेस से लोड करें"। यदि आप रैस्टर कैटलॉग को आर्कपॉपर में लोड करते हैं तो आप एक आकृति फ़ाइल या फीचर क्लास के रूप में डेटा क्लिक>> निर्यात पदचिह्न को राइट क्लिक कर सकते हैं। आकार फ़ाइल में एक 'नाम' फ़ील्ड होगा, जो रेखापुंज के नाम के साथ पॉपुलेटेड होगा।

रेखापुंज कैटलॉग स्वचालित रूप से extents प्रदर्शित करेगा, लेकिन मुझे किसी ऐसे व्यक्ति को extents भेजने की आवश्यकता है जो ArcGIS का उपयोग नहीं कर रहा था।


0

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


8
क्या आपको यकीन है कि यह मूल छवि में समान-मूल्य वाले पिक्सेल के प्रत्येक सन्निहित सेट के लिए बहुभुजों का एक बड़ा गड़बड़ नहीं बनाता है?
whuber

आप हमेशा पॉली ले जाने के लिए इसके बाद एक विघटन जोड़ सकते हैं। हालाँकि, मैं शर्त लगाता हूं कि @ जेब द्वारा सूचीबद्ध अजगर समाधान तेज है।
जियो जॉन्

0

"रैस्टर डोमेन" उपकरण एक अनियमित आकार के रेखापुंज के आसपास एक बहुभुज बनाएगा। मेरा मानना ​​है कि इसे 3 डी विश्लेषक विस्तार के लिए लाइसेंस की आवश्यकता है।


0

ArcCatalog का उपयोग करना सबसे अच्छा विकल्प है। उपलब्ध चूहों से एक मोज़ेक डेटासेट बनाएँ। बहुभुज में शामिल होने से रेखापुंज की पृष्ठभूमि से बचने के लिए मोज़ेक में "NO VALUE" को परिभाषित करें। रेडियोमेट्रिक विधि का उपयोग करके पैरों के निशान बनाएँ। ArcGIS में मोज़ेक डेटासेट खोलें और फ़ुटपाथ फ़ाइल को निर्यात करें। मोज़ेक सीमाएँ प्राप्त करने का शानदार तरीका ...


0

यदि आप डीईएम रेखापुंज की रूपरेखा प्राप्त करने की कोशिश कर रहे हैं तो आपको निम्नलिखित कार्य करने होंगे

यदि आपके पास स्थानिक विश्लेषक और 3 डी विश्लेषक हैं तो आप निम्न कर सकते हैं:

  1. रास्टर कैलकुलेटर का उपयोग करके एक निरंतर मूल्य रेखापुंज बनाने के लिए रेखापुंज को 0 से गुणा करें।
  2. "INT (टूल)" का उपयोग करके चरण 1 के परिणाम को एक रेखापुंज पूर्णांक में बदलें। अगले चरण के लिए यह आवश्यक है।
  3. Raster to Polygon tool (केवल raster पूर्णांक के साथ काम करता है) का उपयोग करके चरण 2 के परिणाम को बहुभुज में बदलें।

हाय सीमस्टर02, जीआईएस स्टैक एक्सचेंज में आपका स्वागत है :) जैसा कि लिखा गया है यह स्वीकार्य उत्तर से अलग नहीं है, gis.stackexchange.com/a/22016/108
मैट विल्की
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.