ModelBuilder में फ़ीचर लेयर्स का उपयोग करना क्यों महत्वपूर्ण है?


9

मैं ModelBuilder के साथ एक जियोप्रोसेस के निर्माण को समझने की कोशिश कर रहा हूं, लेकिन मुझे नहीं पता कि ModelBuilder के साथ एक जियोप्रोसेस बनाते समय फ़ीचर कक्षाओं के बजाय फ़ीचर लेयर्स का उपयोग करना क्यों महत्वपूर्ण है। क्या कोई समझा सकता है कि क्यों?


जवाबों:


4

मॉडल में उनके आकार और जटिलता के आधार पर कई उप प्रक्रिया आउटपुट परतें हो सकती हैं। आपकी हार्ड डिस्क पर लिखी जा रही फाइलों को खत्म करने के लिए, कुछ उपकरण आपको फीचर लेयर्स (जैसे Iterate Feature Selection , या Select by Attribute ) का उपयोग करते हैं। फ़ीचर लेयर्स अस्थायी हैं और आपके मॉडल के समाप्त होने के बाद बनी नहीं रहेंगी।

फ़ीचर लेयर देखें


9

ऐसी कई वजहें हैं जिनके कारण आप फ़ीचर क्लासेस के विपरीत, ModelBuilder में फ़ीचर लेयर्स को रेफ़र करना चाहते हैं। पहले यह मतभेदों को समझने में मददगार होता है।

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

तो उस पृष्ठभूमि को देखते हुए, यहां कुछ कारण बताए गए हैं कि आप "मेक फ़ीचर लेयर" टूल का उपयोग कच्चे डेटा और अन्य जियोप्रोसेसिंग टूल्स के बीच में करना चाहते हैं।

  1. ModelBuilder में कई जीपी उपकरण को एक परत के उपयोग की आवश्यकता होती है, और इनपुट के रूप में एफसी को स्वीकार नहीं करेगा। यह विशेष रूप से सच है यदि आपके जीपी उपकरण (ओं) को डेटा का चयन करने की आवश्यकता है। इस परिदृश्य में, आपको LAYER के साथ सहभागिता करने की आवश्यकता है, न कि कच्चे डेटा की। उदाहरण: यदि आपके पास आर्कपैम (या अन्य जीआईएस प्रोग्राम) खुला नहीं है, तो आप कच्चे शेपफाइल से सुविधाओं का चयन कैसे करेंगे ... आप नहीं कर सकते। आपको उस चयन को करने के लिए ArcMap में परत के साथ बातचीत करने की आवश्यकता है।
  2. यदि आप आर्ककॉस्टिक्स से एक मॉडल चलाना चाहते हैं, या अपने मॉडल को एक पायथन स्क्रिप्ट में निर्यात करना चाहते हैं जो कि आर्कगिस के बाहर चलाए जा सकते हैं, तो आपको "फ़ीचर लेयर्स" का उपयोग करने की आवश्यकता है ताकि आपके कच्चे स्रोत डेटा को "लेयर्स" में परिवर्तित किया जा सके। यह आपके ArcMap सत्र में "डेटा जोड़ने" के अनुरूप होगा।

  3. जैसे ही आप ModelBuilder प्रक्रिया में जाते हैं, परतों का उपयोग करना आपके डेटा को कम करना आसान बनाता है। मान लें कि आप सभी डेटा को एक विधि के साथ "ए" विशेषता के साथ संसाधित करना चाहते हैं, लेकिन सभी डेटा विशेषता "बी" के साथ एक अन्य विधि के साथ हैं। आप अपने कच्चे डेटा को एक बार संदर्भित कर सकते हैं, फिर फीचर परत का उपयोग करके डेटा को दो "शाखाओं" में विभाजित कर सकते हैं और प्रत्येक सेट को स्वतंत्र रूप से संसाधित कर सकते हैं, लेकिन एकल स्रोत डेटासेट को प्रभावित / अपडेट कर सकते हैं।

  4. आप "in_memory" फ़ीचर लेयर्स बना सकते हैं जो वास्तव में अस्थायी डेटा प्रोसेसिंग "डिब्बे" हैं, और जो हर ऑपरेशन के बाद डेटा को लिखने की तुलना में बहुत तेज़ी से संसाधित कर सकते हैं। यह आपकी प्रसंस्करण पूरी होने के बाद आपको कबाड़ की मात्रा को भी सीमित करता है।

बहुत बहुत धन्यवाद रयान। आपका उत्तर बहुत पूर्ण और स्पष्ट है।
डिएगो पार्डो

7

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

आर्कजीआईएस में कई परिचालनों में इनपुट के रूप में अस्थायी परतों की आवश्यकता होती है। उदाहरण के लिए, सेलेक्ट लेयर बाय लोकेशन (डेटा मैनेजमेंट) एक बहुत ही शक्तिशाली और आसान उपकरण है जो आपको एक परत की विशेषताओं का चयन करने की अनुमति देता है जो स्थानिक रिश्तों को किसी अन्य चयन सुविधा के साथ साझा करता है। आप "HAVE_THEIR_CENTER_IN" या "BOUNDARY_TOUCHCH" जैसे जटिल संबंध निर्दिष्ट कर सकते हैं, आदि।

संपादित करें:

जिज्ञासा से बाहर, और फीचर लेयर्स और in_memory वर्कस्पेस का उपयोग करके प्रोसेसिंग अंतरों को विस्तृत करने के लिए, निम्नलिखित गति परीक्षण पर विचार करें जहां 39,000 अंक 100 मी बफ़र किए गए हैं:

import arcpy, time
from arcpy import env

# Set overwrite
arcpy.env.overwriteOutput = 1

# Parameters
input_features = r'C:\temp\39000points.shp'
output_features = r'C:\temp\temp.shp'

###########################
# Method 1 Buffer a feature class and write to disk
StartTime = time.clock()
arcpy.Buffer_analysis(input_features,output_features, "100 Feet")
EndTime = time.clock()
print "Method 1 finished in %s seconds" % (EndTime - StartTime)
time.sleep(5)

############################
# Method 2 Buffer a feature class and write in_memory
StartTime = time.clock()
arcpy.Buffer_analysis(input_features, "in_memory/temp", "100 Feet")
EndTime = time.clock()
print "Method 2 finished in %s seconds" % (EndTime - StartTime)
time.sleep(5)

############################
# Method 3 Make a feature layer, buffer then write to in_memory
StartTime = time.clock()
arcpy.MakeFeatureLayer_management(input_features, "out_layer")
arcpy.Buffer_analysis("out_layer", "in_memory/temp", "100 Feet")
EndTime = time.clock()
print "Method 3 finished in %s seconds" % (EndTime - StartTime)
time.sleep(5)

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


हम देख सकते हैं कि विधि 2 और 3, विधि 1 की तुलना में लगभग 3 गुना तेज और समरूप हैं। यह बड़े वर्कफ़्लोज़ में मध्यवर्ती चरणों के रूप में फीचर लेयर्स का उपयोग करने की शक्ति को दर्शाता है।


यह दो चीजों (इन-मेमोरी डेटा और फीचर लेयर्स) को भ्रमित करता हुआ प्रतीत होता है। वे एक जैसे नहीं हैं। in_memoryकार्यक्षेत्र के लिए लिखा गया डेटा अभी भी डेटा है (जैसे फीचर क्लासेस और टेबल) अभी भी (संभवतः बहुत सारे) स्पेस लेता है। दूसरी ओर, फ़ीचर लेयर्स, डेटा पर एक दृश्य हैं , जिससे आप डेटा का सबसेट चुन सकते हैं और बाद की प्रक्रियाओं में इसका उपयोग कर सकते हैं, बजाय इसके कि एक सबसेट प्राप्त करने के लिए डुप्लिकेट डेटा की बजाय। फ़ीचर लेयर्स में लगभग कोई जगह नहीं है। मैं उन्हें "मेटाडेटा के साथ पॉइंटर्स" के रूप में सोचना पसंद करता हूं, उदाहरण के लिए वे कुछ डेटा को इंगित करते हैं और यह बताते हैं कि इसे कैसे क्वेरी / रेंडर करना है।
blah238

बस अपनी पिछली टिप्पणी में जोड़ने के लिए, मैंने इस साइट पर कहीं पढ़ा है कि in-memoryकार्यक्षेत्र मूल रूप से एक फ़ाइल जियोडैटेबेस है जो स्मृति में बैठता है, अगर आप इसे इस तरह से सोचना चाहते हैं।
blah238

फ़ाइल जियोडैटेबेस की तरह लेकिन आकार क्षेत्रों की गणना तब नहीं की जाती है जब in_memory - बाद में इस पर लिंक प्रदान करेगा।
PolyGeo

अपने अद्यतन किए गए दूसरे उदाहरण में, आप एक फीचर लेयर इन-मेमोरी बना रहे हैं, न कि एक फीचर लेयर।
ब्लाह 238

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