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 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 que le type de données, les champs, l'index et beaucoup d'autres. 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 ArcInfo WorkstationPropriétés de la table ArcInfo WorkstationPropriétés du jeu de données de dessin DAOPropriétés de la classe d'entités DAOPropriétés de l'atelier cadastralPropriétés de FeatureClass couverturePropriétés de la couverturePropriétés du jeu de donnéesPropriétés de la table dBASEPropriétés du jeu de données du suivi d'éditeurPropriétés de la classe d'entitésPropriétés du fichierPropriétés du dossierPropriétés de la géodatabase FeatureClassPropriétés de la table de géodatabasePropriétés du réseau géométriquePropriétés du jeu de données LASPropriétés de la couchePropriétés de la cartePropriétés de la mosaïquePropriétés de la couche ArcGIS 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 RecordSet et FeatureSetPropriétés de la classe de relationsPropriétés de la classe de représentationsPropriétés du jeu de données schématiquesPropriétés du diagramme schématiquePropriétés du dossier schématiquePropriétés de la classe d'entités SDCFichier de la classe d'entités du fichier 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 de la boîte à outilsPropriétés de la topologiePropriétés de la couverture VPFPropriétés de la classe 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.

Thèmes connexes

9/12/2013