Vous recherchez de nombreux jeux de données d'entité pour les classes d'entités ArcSDE à l'aide de filtres de champ dans ArcCatalog?

11

J'ai ~ 30 ensembles de données d'entités et ~ 100 classes d'entités réparties sur l'ensemble des ensembles de données d'entités. Je voudrais rechercher une classe d'entités par nom parmi les jeux de données d'entités. Aussi, je voudrais interroger sur toutes les classes d'entités les enregistrements qui ont "Date_Mod" de someDate à someOtherDate.

Tout cela dans ArcGIS SDE 10.0 sur SQL Server 2008.

Justin
la source

Réponses:

10

Quant à moi, je recommanderais de choisir un script python pour cette tâche (arcpy).

Voici quelques idées:

  1. Utilisez ListDatasets pour obtenir tous les jeux de données.
  2. Utilisez ListFeatureClasses pour obtenir toutes les classes de fonctionnalités.
  3. Utilisez SearchCursor pour interroger des données.
  4. Jetez un oeil à la fonction Décrire - elle peut également être très utile pour certaines tâches.

METTRE À JOUR:

Ont trouvé après publication: @Aragon a décrit en détail comment effectuer l'étape 3.

Alex Markov
la source
J'ai créé un script python produisant quelque chose de similaire avec les 4 éléments répertoriés, donc je peux garantir que cela est faisable. Tout d'abord, décidez exactement ce que vous voulez que votre sortie soit. Dans votre script, créez d'abord la table de sortie. Ensuite, vous commencez au niveau de l'espace de travail et effectuez une série de descriptions et de listes, en collectant vos données en cours de route. Vous devrez ajouter ListFields et collecter les valeurs min et max des colonnes de date. Votre algorithme exact dépendra du format de votre sortie et de l'emplacement des jeux de données d'entités en entrée (proviennent-ils tous d'un espace de travail commun?).
RHB
6

vous pouvez consulter la méthode SearchCursor ici . une seule chose est de construire une expression SQL au lieu de where_clause. Les expressions de requête sont également les mêmes que les expressions SQL standard dans ArcGIS. elle est similaire à la boîte de dialogue Sélectionner par attributs. vous pouvez écrire votre propre outil en regardant le code suivant

Résumé

La fonction SearchCursor établit un curseur en lecture seule sur une classe d'entités ou une table. Le SearchCursor peut être utilisé pour parcourir les objets ligne et extraire les valeurs de champ. La recherche peut éventuellement être limitée par une clause where ou par champ, et éventuellement triée.

Syntaxe SearchCursor (jeu de données, {where_clause}, {spatial_reference}, {champs}, {sort_fields})

Exemple:

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) 

J'espère que ça t'aide....

Aragon
la source
3

Vous pouvez également activer l' indexation de recherche arcmap (notez que les performances ont été atteintes).
La convivialité pour moi commence à l'emporter sur la perte de performances.

entrez la description de l'image ici

Brad Nesom
la source