Przeszukujesz wiele zestawów danych obiektów dla klas obiektów ArcSDE przy użyciu filtrów pól w ArcCatalog?

11

Mam ~ 30 zestawów danych elementów i ~ 100 klas elementów rozmieszczonych w zestawach danych elementów. Chciałbym wyszukać klasę obiektów według nazwy wśród zestawów danych elementów. Ponadto chciałbym wysłać zapytanie do wszystkich klas obiektów tych rekordów, które mają „Date_Mod” od someDate do someOtherDate.

To wszystko w ArcGIS SDE 10.0 na serwerze SQL 2008.

Justin
źródło

Odpowiedzi:

10

Jeśli chodzi o mnie, polecam wybranie skryptu Python do tego zadania (arcpy).

Oto kilka pomysłów:

  1. Użyj ListDatasets, aby uzyskać wszystkie zestawy danych.
  2. Użyj ListFeatureClasses, aby uzyskać wszystkie klasy obiektów.
  3. Do wyszukiwania danych używaj SearchCursor .
  4. Spójrz na funkcję Opisz - może być również bardzo przydatna w przypadku niektórych zadań.

AKTUALIZACJA:

Znalazłem po opublikowaniu: @Aragon szczegółowo opisał, jak wykonać krok 3.

Alex Markov
źródło
Stworzyłem skrypt Pythona wyprowadzający coś podobnego z 4 wymienionymi elementami, więc mogę ręczyć za to, że jest to możliwe. Najpierw zdecyduj, jaki dokładnie ma być twój wynik. W skrypcie najpierw utwórz tabelę wyników. Następnie zaczynasz na poziomie obszaru roboczego i przeprowadzasz serię opisów i list, zbierając po drodze swoje dane. Musisz dodać ListFields i zebrać wartości minimalne i maksymalne z kolumn dat. Twój dokładny algorytm będzie zależał od formatu danych wyjściowych i lokalizacji zbiorów danych wejściowych funkcji (czy wszystkie pochodzą z jednego wspólnego obszaru roboczego?).
RHB
6

można sprawdzić SearchCursor metody tutaj . Jedyną rzeczą jest zbudowanie wyrażenia SQL zamiast where_clause. Wyrażenia zapytania są takie same jak standardowe wyrażenia SQL w ArcGIS. jest podobny do okna dialogowego Wybierz według atrybutów. możesz napisać własne narzędzie, patrząc na następujący kod

streszczenie

Funkcja SearchCursor ustanawia kursor tylko do odczytu dla klasy obiektów lub tabeli. SearchCursor może służyć do iteracji po obiektach wierszy i wydobywania wartości pól. Wyszukiwanie może być opcjonalnie ograniczone klauzulą ​​where lub polem i opcjonalnie posortowane.

Składnia SearchCursor (zestaw danych, {where_clause}, {spatial_reference}, {fields}, {sort_fields})

Przykład:

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) 

Mam nadzieję, że Ci to pomoże....

Aragonia
źródło
3

Możesz także włączyć indeksowanie wyszukiwania arcmap (zauważ wydajność działania).
Dla mnie użyteczność zaczyna przewyższać utratę wydajności.

wprowadź opis zdjęcia tutaj

Brad Nesom
źródło