Поиск многих наборов классов объектов для классов объектов ArcSDE с использованием полевых фильтров в ArcCatalog?

11

У меня есть ~ 30 наборов классов объектов и ~ 100 классов объектов, распределенных по наборам классов объектов. Я хотел бы найти класс объектов по имени среди наборов классов объектов. Кроме того, я хотел бы запросить из всех классов пространственных объектов те записи, которые имеют «Date_Mod» от someDate до someOtherDate.

Это все в ArcGIS SDE 10.0 на SQL Server 2008.

Джастин
источник

Ответы:

10

Что касается меня, я бы порекомендовал выбрать сценарии Python для этой задачи (arcpy).

Вот несколько идей:

  1. Используйте ListDatasets для получения всех наборов данных.
  2. Используйте ListFeatureClasses для получения всех классов объектов.
  3. Используйте SearchCursor для запроса данных.
  4. Взгляните на функцию Describe - она ​​также может быть очень полезна для некоторых задач.

ОБНОВИТЬ:

Нашли после публикации: @Aragon подробно описал, как выполнить шаг 3.

Алекс Марков
источник
Я создал скрипт Python, выводящий что-то похожее с четырьмя перечисленными элементами, так что я могу ручаться за то, что это выполнимо. Во-первых, решите, что именно вы хотите сделать. В вашем скрипте сначала создайте таблицу вывода. Затем вы начинаете на уровне рабочей области и проводите серию описаний и списков, собирая ваши данные по пути. Вам нужно будет добавить ListFields и собрать минимальные и максимальные значения из столбцов даты. Точный алгоритм будет зависеть от формата вывода и местоположения входных наборов классов объектов (все они происходят в одном общем рабочем пространстве?).
RHB
6

Вы можете проверить метод SearchCursor здесь . Единственное, что строит выражение SQL вместо where_clause. Выражения запросов аналогичны стандартным выражениям SQL в ArcGIS. это похоже на диалоговое окно Выбор по атрибутам. Вы можете написать свой собственный инструмент, взглянув на следующий код

Резюме

Функция SearchCursor устанавливает курсор только для чтения на класс пространственных объектов или таблицу. SearchCursor может использоваться для перебора объектов строки и извлечения значений полей. Поиск может быть необязательно ограничен предложением where или полем и, возможно, отсортирован.

Синтаксис SearchCursor (набор данных, {where_clause}, {пространственные_референции}, {fields}, {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) 

я надеюсь, что это поможет вам ....

Арагон
источник
3

Вы также можете включить индексирование поиска по ArcMap (заметьте снижение производительности).
Юзабилити для меня начинает перевешивать потерю производительности.

введите описание изображения здесь

Брэд Несом
источник