ArcGIS डेस्कटॉप में ArcPy का उपयोग करते हुए बैच क्लिपिंग?


12

मैं आर्कगिस के पुराने संस्करणों के लिए कुछ इसी तरह के सवाल पर आया हूं, लेकिन आर्कजीआईएस 10 के लिए उपयुक्त उत्तर नहीं मिला है।

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

यह देखते हुए कि इस प्रक्रिया को करने के लिए 50 क्लिप हैं, यह बैच प्रसंस्करण के लिए एक महान उम्मीदवार है।


1
आपने आर्कगिस के पुराने संस्करणों के लिए क्या पाया है, और क्या उन्हें आर्कजीआईएस 10 के साथ उपयोग के लिए अनुपयुक्त बनाता है?
18

2
@ राडार इस प्रश्न पर एक नज़र डालें: gis.stackexchange.com/q/8104/1297 यह आपको कवर करता है कि आप क्या देख रहे हैं। यदि आपको अपनी आवश्यकताओं को संशोधित करने में कोई मदद चाहिए, तो मुझे बताएं। मैंने इसे संभावित डुप्लिकेट के रूप में चिह्नित किया है।
SaultDon

@SaultDon: क्या आप कह रहे हैं कि gis.stackexchange.com/q/8104/1297 पर समाधान (s) निश्चित रूप से ArcGIS 10 में भी काम करेगा?
whuber

@ सॉल्टडॉन - आर्कजीआईएस 10 में शापर्स के लिए कुछ बदलाव किए गए हैं, जो उस विशेष उत्तर को पुराना होने का कारण बनाते हैं। मैं आर्क 10 के लिए सबसे अच्छा समाधान खोजने की उम्मीद कर रहा हूं और केवल 9.3 स्क्रिप्ट का हैक किया गया संस्करण नहीं।
रडार

@ जब तक ऐसा नहीं होता, तब तक ऐसे बदलावों की जरूरत होती है जो स्पष्ट न हों। रडार - आप सही कह रहे हैं, वे सरल हैं =)
SaultDon

जवाबों:


17

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

import arcpy

arcpy.env.workspace = r'D:\Projects\GDBs\slowbutter.gdb\IPAS'
rows = arcpy.SearchCursor('HspAOI')
for row in rows:
    feat = row.Shape
    arcpy.Clip_analysis('HspWBD_HU12', feat, 'HspWBD_HU12_' + str(row.getValue('NAME')), '')

बिल्कुल सही हालांकि क्लासिक प्रकार कर्सर !!
SIslam

8

जैसा कि आप ArcGIS 10 का उपयोग करते हैं, मैं इस कार्य को करने के लिए बिलिन टूल के साथ मॉडलबिल्डर का उपयोग करेगा: Iteration Feature Selection। चित्र में छद्म मॉडल देखें। यह अजगर को बिल्कुल भी पता नहीं है। छद्म मॉडल


इस दृष्टिकोण की गहन व्याख्या के लिए, एक विशिष्ट अध्ययन क्षेत्र के लिए संपूर्ण कार्यक्षेत्र को आसानी से क्लिप करें , और संबंधित क्लिप कार्यस्थान जियोप्रोसेसिंग टूल पैकेज। स्टैक पर यहां भी खोजबीन की गई
मैट

2

यह बिल्कुल वैसा ही लगता है जैसा विश्लेषण टूलबॉक्स से स्प्लिट टूल करता है।

हालाँकि, इसे चलाने के लिए एक ArcInfo लाइसेंस की आवश्यकता होती है, इसलिए यह ArcGIS डेस्कटॉप उपयोगकर्ताओं के बहुमत के लिए उपलब्ध नहीं है, इसलिए मुझे चाड का उत्तर पसंद है, जो ArcView और 10 के डेस्कटॉप उपयोगकर्ताओं के लिए ArcView और ArcEditor स्तर के लाइसेंस के साथ भी काम करेगा।


-1

यदि आप किसी अन्य टूल को पहले बैच मोड में चलाते हैं, तो आप ऐसा कर सकते हैं: रूपांतरण उपकरण> टू जियोडैटेबेस> फ़ीचर क्लास टू फ़ीचर क्लास। यह आपको अपनी वाटरशेड लेयर को लेने के लिए एक अभिव्यक्ति का उपयोग करेगा और प्रत्येक वाटरशेड को अदृश्य रूप से बाहर निकालेगा और इसे अपने स्वयं के फीचर वर्ग के रूप में बचाएगा, फिर आपके पास 50 अलग-अलग लेयर्स होंगे जिनका उपयोग आप क्लिप मोड के साथ बैच मोड में कर सकते हैं।


2
मैं उत्तर की सराहना करता हूं, लेकिन यह एक बहुत ही कुशल समाधान नहीं लगता है। मैं नहीं बल्कि 50 अलग वाटरशेड फ़ाइलें बनाना चाहते हैं और फिर 50 और अधिक क्लिप फ़ाइलें।
रडार

-1

स्प्लिट ArcGIS में उपकरण वास्तव में ऐसा करता है।

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