Mencari banyak set data fitur untuk kelas fitur ArcSDE menggunakan filter lapangan di ArcCatalog?

11

Saya memiliki ~ 30 dataset fitur dan ~ 100 kelas fitur yang tersebar di seluruh dataset fitur. Saya ingin mencari kelas fitur dengan nama di antara set data fitur. Juga, saya ingin meminta keluar dari semua kelas fitur catatan-catatan yang memiliki "Date_Mod" dari someDate ke someOtherDate.

Ini semua di ArcGIS SDE 10.0 pada sql server 2008.

Justin
sumber

Jawaban:

10

Bagi saya, saya akan merekomendasikan memilih skrip python untuk tugas ini (arcpy).

Berikut ini beberapa ide:

  1. Gunakan ListDatasets untuk mendapatkan semua dataset.
  2. Gunakan ListFeatureClasses untuk mendapatkan semua kacamata fitur.
  3. Gunakan SearchCursor untuk menanyakan data.
  4. Lihatlah fungsi Jelaskan - ini juga bisa sangat berguna untuk beberapa tugas.

MEMPERBARUI:

Telah ditemukan setelah memposting: @Aragon telah menjelaskan secara rinci bagaimana melakukan langkah 3.

Alex Markov
sumber
Saya telah membuat skrip python yang mengeluarkan sesuatu yang mirip dengan 4 item yang terdaftar, jadi saya dapat menjamin fakta bahwa ini bisa dilakukan. Pertama, putuskan dengan tepat seperti apa output yang Anda inginkan. Dalam skrip Anda, buat tabel output terlebih dahulu. Kemudian, Anda mulai di tingkat ruang kerja dan melakukan serangkaian penjelasan dan daftar, mengumpulkan data Anda di sepanjang jalan. Anda harus menambahkan ListFields dan mengumpulkan nilai min dan maks dari kolom tanggal. Algoritme Anda yang tepat akan tergantung pada format output Anda & lokasi dataset fitur input (apakah semuanya berasal dari satu ruang kerja umum?).
RHB
6

Anda dapat melihat metode SearchCursor di sini . hanya satu hal yang membangun ekspresi SQL where_clause. Ekspresi kueri sama dengan ekspresi SQL standar di ArcGIS juga. ini mirip dengan kotak dialog Select By Attributes. Anda dapat menulis alat Anda sendiri dengan melihat kode berikut

Ringkasan

Fungsi SearchCursor menetapkan kursor read-only pada kelas fitur atau tabel. SearchCursor dapat digunakan untuk beralih melalui objek baris dan mengekstrak nilai bidang. Pencarian dapat dibatasi secara terbatas oleh klausa mana atau berdasarkan bidang, dan secara opsional diurutkan.

Syntax SearchCursor (dataset, {where_clause}, {spatial_reference}, {fields}, {sort_fields})

Contoh:

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) 

semoga membantu ....

Aragon
sumber
3

Anda juga dapat mengaktifkan pengindeksan pencarian arcmap (hit performance hit).
Kegunaan bagi saya mulai melebihi kerugian kinerja.

masukkan deskripsi gambar di sini

Brad Nesom
sumber