Description des données

Les outils de géotraitement fonctionnent avec tous les types de données, tels que les classes d'entités de géodatabase, les fichiers de formes, les rasters, les tables, les topologies et les réseaux. Chaque donnée possède des propriétés particulières auxquelles vous pouvez accéder afin de les utiliser pour contrôler le flux d'un script ou en tant que paramètres d'un outil. Par exemple, le type d'entité en sortie d'une opération de l'outil Intersecter dépend du type de forme des données intersectées : point, ligne ou polygone. Lorsque l'outil Intersecter est exécuté dans un script sur une liste de jeux de données en entrée, vous devez pouvoir déterminer les types de forme des jeux de données en entrée afin de définir le type de forme en sortie correspondant. Vous pouvez utiliser la fonction Describe pour déterminer les types de forme de tous les jeux de données en entrée.

La fonction Describe permet de déterminer les propriétés d'un jeu de données et de les utiliser pour prendre des décisions. Par exemple, dans l'exemple suivant, le script utilise Describe pour évaluer le type de forme (polyligne, polygone, point, etc.) de données en entrée et pour déterminer l'outil de géotraitement approprié.

import arcpy

inFC = arcpy.GetParameterAsText(0)
outFC = arcpy.GetParameterAsText(1)

# Describe a feature class
#
desc = arcpy.Describe(inFC)

# Get the shape type (Polygon, Polyline) of the feature class
#
type = desc.shapeType

# If the shapeType is Polygon convert the data to polylines using the FeatureToLine tool,
#  otherwise just copy the data using the CopyFeatures tool.
#
if type == "Polygon":
    arcpy.FeatureToLine_management(inFC, outFC)
else:
    arcpy.CopyFeatures_management(inFC, outFC)

    
 

La fonction Describe renvoie un objet Describe avec plusieurs propriétés, telles qu'un type de données, des champs, des index, etc. Ses propriétés sont dynamiques, ce qui signifie que selon le type de données décrit, différentes propriétés de description peuvent être utilisées.

Les propriétés Describe sont organisées en une série de groupes de propriétés. Tout jeu de données particulier acquiert les propriétés d'au moins un de ces groupes. Par exemple, lors de la description d'une classe d'entités de géodatabase, vous pouvez accéder aux propriétés des groupes de propriétés GDB FeatureClass, FeatureClass, Table et Dataset. Toutes les données, quel que soit leur type, acquièrent toujours les propriétés génériques de l'objet Describe.

Propriétés de l'objet DescribePropriétés de l’élément ArcInfoPropriétés de la table ArcInfoPropriétés du jeu de données de dessin DAOPropriétés des classes d'entités DAOPropriétés des classes d'entités de couverturePropriétés de la couverturePropriétés du jeu de donnéesPropriétés de table dBasePropriétés de la classe d'entitésPropriétés de fichierPropriétés du dossierPropriétés des classes d'entité de géodatabasePropriétés de la table de géodatabasePropriétés du réseau géométriquePropriétés de la couchePropriétés de la cartePropriétés de la mosaïquePropriétés de la couche Network AnalystPropriétés du jeu de données réseauPropriétés des fichiers prjPropriétés du canal rasterPropriétés du catalogue d'imagesPropriétés du jeu de données rasterPropriétés de la classe de relationsPropriétés de la classe de représentationsPropriétés des jeux de données schématiquesPropriétés des diagrammes schématiquesPropriétés des dossiers schématiquesPropriétés des classes d'entités SDCPropriétés des classes d'entités de fichiers de formesPropriétés de la tablePropriétés de la vue tabulairePropriétés du fichier textePropriétés des TINPropriétés de l'outilPropriétés des boîtes à outilsPropriétés de la topologiePropriétés de la couverture VPFPropriétés des classes d'entités VPFPropriétés de la table VPFPropriétés de l'espace de travail

Utilisation de jeux de propriétés

Certaines propriétés appartiennent à un jeu de propriétés. Par exemple, les tolérances d'une couverture ou les propriétés de connexion d'un espace de travail sont renvoyées comme ensembles de propriétés. Les jeux de propriétés possèdent des propriétés nommées qui peuvent être appelées à partir du jeu de propriétés lui-même. Dans l'exemple suivant, les tolérances d'une couverture (Fuzzy, Dangle, TicMatch, Edit, NodeSnap, Weed, Grain et Snap) sont imprimées dans la sortie standard :

import arcpy

# Create a describe object from a coverage feature class
#
desc = arcpy.Describe("D:/St_Johns/covs/freshwater")

# Create a property set of coverage tolerances
#
covTols = desc.tolerances

# Print each coverage tolerance
#
print covTols.fuzzy
print covTols.dangle
print covTols.ticMatch
print covTols.edit
print covTols.nodeSnap
print covTols.weed
print covTols.grain
print covTols.snap

Les jeux de propriétés sont généralement utilisés lorsque les propriétés de l'objet décrit varient. Les propriétés de connexion d'un espace de travail d'une géodatabase d'entreprise (serveur, instance, base de données, utilisateur et version) varient selon le type de base de données ArcSDE utilisée. Il est donc parfaitement adapté à un ensemble de propriétés ne contenant aucun jeu de valeurs prédéfini.

Rubriques connexes


7/10/2012