ArcCatalog'da alan filtrelerini kullanarak ArcSDE özellik sınıfları için birçok özellik veri kümesi mi arıyorsunuz?


11

Ben ~ 30 özellik veri kümeleri ve özellik veri kümeleri yayılmış ~ 100 özellik sınıfları var. Özellik veri kümeleri arasında ada göre bir özellik sınıfı aramak istiyorum. Ayrıca, someDate için someOtherDate "Date_Mod" olan kayıtları tüm özellik sınıfları dışında sorgulamak istiyorum.

Bunların hepsi 2008 sql sunucusunda ArcGIS SDE 10.0'da.

Yanıtlar:


10

Bana gelince, bu görev (arcpy) için python komut dosyası seçmenizi tavsiye ederim.

İşte bazı fikirler:

  1. Tüm veri kümelerini almak için ListDatasets kullanın .
  2. Tüm özelliklerin elde edilmesi için ListFeatureClasses kullanın .
  3. Verileri sorgulamak için SearchCursor kullanın .
  4. Tanımlama işlevine bir göz atın - bazı görevler için de çok yararlı olabilir.

GÜNCELLEME:

Gönderdikten sonra bulduk: @Aragon, 3. adımın nasıl gerçekleştirileceğini ayrıntılı olarak açıkladı.


Listelenen 4 öğe ile benzer bir şey çıktı bir python komut dosyası oluşturduk, bu yüzden bu mümkün olduğu için kefil olabilir. İlk olarak, çıktınızın tam olarak ne olmasını istediğinize karar verin. Komut dosyanızda önce çıktı tablosunu oluşturun. Ardından, çalışma alanı düzeyinde başlar ve yol boyunca verilerinizi toplayan bir dizi açıklama ve liste yürütürsünüz. ListField'leri eklemeniz ve tarih sütunlarından min ve maks değerleri toplamanız gerekir. Tam algoritmanız, çıktınızın biçimine ve giriş özelliği veri kümelerinin konumuna bağlı olacaktır (hepsi ortak bir çalışma alanından mı kaynaklanıyor?).
RHB

6

SearchCursor yöntemini buradan kontrol edebilirsiniz . tek bir şey yerine bir SQL ifadesi oluşturmak where_clause. Sorgu ifadeleri ArcGIS'teki standart SQL ifadeleriyle aynıdır. Niteliklere Göre Seç iletişim kutusuna benzer. aşağıdaki koda bakarak kendi aracınızı yazabilirsiniz

özet

SearchCursor işlevi, bir özellik sınıfı veya tabloda salt okunur bir imleç oluşturur. SearchCursor, satır nesneleri arasında yineleme yapmak ve alan değerlerini ayıklamak için kullanılabilir. Arama isteğe bağlı olarak where cümlesi veya alana göre sınırlandırılabilir ve isteğe bağlı olarak sıralanabilir.

Sözdizimi SearchCursor (veri kümesi, {where_clause}, {spatial_reference}, {fields}, {sort_fields})

Misal:

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) 

umarım sana yardımcı olur ....


3

Ayrıca, arkmap arama dizine eklemeyi de etkinleştirebilirsiniz (performans isabeti)
Benim için kullanılabilirlik performans kaybından daha ağır basmaya başlıyor.

resim açıklamasını buraya girin

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.