मैं "प्रोजेक्ट" परत का चयन करने (हाइलाइट) करने के लिए निम्नलिखित चाहूंगा जो ग्रिड को इंटरसेप्ट करता है, और फिर चयनित "ग्रिड" से एक रिकॉर्ड खींचता है। मुझे परत को बचाने की आवश्यकता नहीं है।
नोट: पायथन कंसोल विंडो में ArcMap के भीतर से स्क्रिप्ट चलाना।
import arcpy
# Make a layer from the feature class
arcpy.MakeFeatureLayer_management("project","project_lyr")
# Then add a selection to the layer based on location to features in another feature class
arcpy.SelectLayerByLocation_management("project_lyr","INTERSECT","Grid")
यह कोड चलता है और कोई त्रुटि नहीं दी जाती है, फिर भी यह किसी भी विशेषता का चयन (हाइलाइट) नहीं करता है। कोई आइडिया क्यों? साथ ही वास्तव में धीमी गति से चलता है।
मूल रूप से मैं यह करने की कोशिश कर रहा हूं:
यह वास्तव में तेजी से लगभग तुरंत चलता है, लेकिन मैं अजगर का उपयोग करके ऐसा ही करना चाहता हूं। मुझे केवल चयनित सुविधा तालिका से एक मान की आवश्यकता है, मुझे परत की एक प्रति की आवश्यकता नहीं है।
समाधान का हिस्सा इन-मेमोरी कार्यक्षेत्र का उपयोग करने के लिए हो सकता है जो है
इन-मेमोरी कार्यक्षेत्र में डेटा लिखना अक्सर अन्य प्रारूपों के लेखन की तुलना में काफी तेज होता है ...
बस यह सुनिश्चित नहीं है कि इन-मेमोरी वर्कस्पेस कैसे लागू किया जाए
arcpy.MakeFeatureLayer()
लाइन की आवश्यकता नहीं है , क्योंकि project
पहले से ही एक परत है। बस करो arcpy.SelectLayerByLocation_management("project","INTERSECT","Grid")
।
import arcpy
कमांड को चलाने में कुछ समय लगता है।