आर्कसैटिक्स में फील्ड फिल्टर्स का उपयोग करके आर्कएसडीई फीचर कक्षाओं के लिए कई फीचर डेटासेट की खोज की जा रही है?


11

मेरे पास फ़ीचर डेटासेट में ~ 30 फ़ीचर डेटासेट और ~ 100 फ़ीचर कक्षाएं हैं। मैं फीचर डेटासेट के बीच नाम से एक फीचर वर्ग की खोज करना चाहता हूं। इसके अलावा, मैं उन सभी अभिलेखों से सभी फीचर कक्षाओं से बाहर निकलना चाहूंगा जिनके पास "Date_Mod" है जो someDate से someOrDate तक है।

यह सभी आर्कगिस एसडीई 10.0 में एसक्यूएल सर्वर 2008 पर है।

जवाबों:


10

जैसा कि मेरे लिए मैं इस कार्य (चापलूसी) के लिए अजगर स्क्रिप्टिंग चुनने की सलाह दूंगा।

यहाँ कुछ विचार हैं:

  1. सभी डेटासेट प्राप्त करने के लिए ListDatasets का उपयोग करें ।
  2. सभी फीचरक्लास प्राप्त करने के लिए ListFeatureClasses का उपयोग करें ।
  3. डेटा क्वेरी के लिए SearchCursor का उपयोग करें ।
  4. वर्णन कार्य पर एक नज़र डालें - यह कुछ कार्यों के लिए भी बहुत उपयोगी हो सकता है।

अपडेट करें:

पोस्ट करने के बाद मिला है: @Aragon ने विस्तार से बताया है कि चरण 3 कैसे करें।


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

6

आप यहाँ SearchCursor विधि की जाँच कर सकते हैं । केवल एक चीज यह है कि इसके बजाय एक SQL अभिव्यक्ति का निर्माण करें where_clause। आर्कजीआईएस में मानक एसक्यूएल एक्सप्रेशंस की तरह ही क्वैरी एक्सप्रेशन भी हैं। यह Select by Attributes डायलॉग बॉक्स के समान है। आप निम्न कोड को देखकर अपना खुद का टूल लिख सकते हैं

सारांश

SearchCursor फ़ंक्शन एक फीचर क्लास या टेबल पर रीड-ओनली कर्सर स्थापित करता है। SearchCursor का उपयोग पंक्ति वस्तुओं के माध्यम से पुनरावृत्त करने और फ़ील्ड मान निकालने के लिए किया जा सकता है। खोज वैकल्पिक रूप से जहां एक खंड या क्षेत्र द्वारा सीमित किया जा सकता है, और वैकल्पिक रूप से हल किया जा सकता है।

सिंटेक्स खोजकर्ता (डेटासेट, {where_clause}, {spatial_reference}, {फ़ील्ड}, {Sort_fields})

उदाहरण:

import arcpy

# Open a searchcursor 
#  Input: C:/Data/Counties.shp 
#  FieldList: NAME; STATE_NAME; POP2000 
#  SortFields: STATE_NAME A; POP2000 D 
# 
rows = arcpy.SearchCursor("C:/Data/Counties.shp", "'POP2000' > 5000", "", "NAME; 
STATE_NAME; POP2000", "STATE_NAME A; POP2000 D") 
currentState = "" 

# Iterate through the rows in the cursor 
# 
for row in rows: 
    if currentState != row.STATE_NAME: 
        currentState = row.STATE_NAME 

    # Print out the state name, county, and population 
    # 
    print "State: %s, County: %s, population: %i" % \
            (row.STATE_NAME, row.NAME, row.POP2000) 

मुझे उम्मीद है इससे आपको मदद मिली होगी....


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