¿Busca en muchos conjuntos de datos de entidades clases de entidad de ArcSDE utilizando filtros de campo en ArcCatalog?


11

Tengo ~ 30 conjuntos de datos de entidades y ~ 100 clases de entidades distribuidas en todos los conjuntos de datos de entidades. Me gustaría buscar una clase de entidad por nombre entre los conjuntos de datos de entidades. Además, me gustaría consultar de todas las clases de entidad aquellos registros que tienen "Date_Mod" de someDate a someOtherDate.

Todo esto está en ArcGIS SDE 10.0 en sql server 2008.

Respuestas:


10

En cuanto a mí, recomendaría elegir las secuencias de comandos de Python para esta tarea (arcpy).

Aquí hay algunas ideas:

  1. Use ListDatasets para obtener todos los conjuntos de datos.
  2. Use ListFeatureClasses para obtener todas las clases de características.
  3. Use SearchCursor para consultar datos.
  4. Eche un vistazo a la función Describir : también puede ser muy útil para algunas tareas.

ACTUALIZAR:

Han encontrado después de publicar: @Aragon ha descrito en detalle cómo realizar el paso 3.


He creado un script de Python que genera algo similar con los 4 elementos enumerados, por lo que puedo garantizar el hecho de que esto es factible. Primero, decida exactamente cuál quiere que sea su salida. En su script, cree primero la tabla de salida. Luego, comienza en el nivel del espacio de trabajo y realiza una serie de descripciones y listas, recolectando sus datos en el camino. Deberá agregar ListFields y recopilar los valores mínimo y máximo de las columnas de fecha. Su algoritmo exacto dependerá del formato de su salida y ubicación de los conjuntos de datos de características de entrada (¿todos se originan en un espacio de trabajo común?).
RHB

6

Puede consultar el método SearchCursor aquí . solo una cosa es construir una expresión SQL en lugar de where_clause. Las expresiones de consulta son las mismas que las expresiones SQL estándar en ArcGIS también. es similar al cuadro de diálogo Seleccionar por atributos. puedes escribir tu propia herramienta mirando el siguiente código

Resumen

La función SearchCursor establece un cursor de solo lectura en una clase de entidad o tabla. SearchCursor se puede usar para recorrer en iteración objetos de fila y extraer valores de campo. La búsqueda puede estar opcionalmente limitada por una cláusula where o por campo, y opcionalmente ordenada.

Sintaxis SearchCursor (conjunto de datos, {where_clause}, {spatial_reference}, {fields}, {sort_fields})

Ejemplo:

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) 

Espero que te ayude....


Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.