Durchsuchen vieler Feature-Datasets nach ArcSDE-Feature-Classes mithilfe von Feldfiltern in ArcCatalog?

11

Ich habe ~ 30 Feature-Datasets und ~ 100 Feature-Classes, die über die Feature-Datasets verteilt sind. Ich möchte unter den Feature-Datasets nach einer Feature-Class mit Namen suchen. Außerdem möchte ich aus allen Feature-Classes diejenigen Datensätze abfragen, die "Date_Mod" von someDate bis someOtherDate haben.

Dies ist alles in ArcGIS SDE 10.0 auf SQL Server 2008.

Justin
quelle

Antworten:

10

Ich würde empfehlen, Python-Scripting für diese Aufgabe zu wählen (arcpy).

Hier sind ein paar Ideen:

  1. Verwenden Sie ListDatasets , um alle Datasets abzurufen .
  2. Verwenden Sie ListFeatureClasses , um alle Feature- Classes abzurufen.
  3. Verwenden Sie SearchCursor zum Abfragen von Daten.
  4. Schauen Sie sich die Beschreibungsfunktion an - sie kann auch für einige Aufgaben sehr nützlich sein.

AKTUALISIEREN:

Nach dem Posten gefunden haben: @Aragon hat ausführlich beschrieben, wie Schritt 3 ausgeführt wird.

Alex Markov
quelle
Ich habe ein Python-Skript erstellt, das mit den 4 aufgelisteten Elementen etwas Ähnliches ausgibt, damit ich dafür bürgen kann, dass dies machbar ist. Entscheiden Sie zunächst genau, wie Ihre Ausgabe aussehen soll. Erstellen Sie in Ihrem Skript zuerst die Ausgabetabelle. Anschließend beginnen Sie auf der Ebene des Arbeitsbereichs und führen eine Reihe von Beschreibungen und Listen durch, wobei Sie Ihre Daten auf dem Weg sammeln. Sie müssen ListFields hinzufügen und die Min- und Max-Werte aus den Datumsspalten sammeln. Ihr genauer Algorithmus hängt vom Format Ihrer Ausgabe und dem Speicherort der Eingabe-Feature-Datasets ab (stammen alle aus einem gemeinsamen Arbeitsbereich?).
RHB
6

Sie können die SearchCursor- Methode hier überprüfen . Nur eines ist, dass stattdessen ein SQL-Ausdruck erstellt wird where_clause. Abfrageausdrücke entsprechen auch Standard-SQL-Ausdrücken in ArcGIS. Es ähnelt dem Dialogfeld Nach Attributen auswählen. Sie können Ihr eigenes Tool schreiben, indem Sie sich den folgenden Code ansehen

Zusammenfassung

Die SearchCursor-Funktion erstellt einen schreibgeschützten Cursor für eine Feature-Class oder Tabelle. Der SearchCursor kann verwendet werden, um Zeilenobjekte zu durchlaufen und Feldwerte zu extrahieren. Die Suche kann optional durch eine where-Klausel oder ein Feld eingeschränkt und optional sortiert werden.

Syntax SearchCursor (Datensatz, {where_clause}, {räumliche_Referenz}, {Felder}, {Sortierfelder})

Beispiel:

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) 

ich hoffe es hilft dir ....

Aragon
quelle
3

Sie können auch die Indizierung der Arcmap- Suche aktivieren (Hinweis auf die Leistung der Notiz).
Die Benutzerfreundlichkeit für mich beginnt, den Leistungsverlust aufzuwiegen.

Geben Sie hier die Bildbeschreibung ein

Brad Nesom
quelle