Créer une couche d’entités (Gestion des données)

Synthèse

Crée une couche d'entités à partir d'un fichier de couches ou d'une classe d'entités en entrée. La couche créée est temporaire et disparaît à la fin de la session si la couche n’est pas enregistrée sur le disque ou si la carte n’est pas enregistrée.

Utilisation

  • La couche d’entités temporaire peut être enregistrée en tant que fichier de couche à l’aide de l’outil Enregistrer dans un fichier de couche ou enregistrée en tant que nouvelle classe d’entités à l’aide de l’outil Copier des entités.

  • Les classes d’entités complexes telles que les annotations et les dimensions ne sont pas prises en charge.

  • Si une expression SQL est utilisée mais ne renvoie aucun résultat, la sortie est vide.

  • Un espace de travail en entrée doit être indiqué pour la validation des noms de champ. Par conséquent, dans le cas où l’entrée est une classe d’entités de géodatabase et l’espace de travail en sortie est un dossier, les noms de champ sont susceptibles d’être tronqués du fait que les noms d’attribut de shapefile sont limités à dix caractères.

  • Une règle de division peut être définie à l’aide de l’option Ratio du paramètre Informations de champ. La règle de division prend effet lorsque la couche d’entités est utilisée en tant qu’entrée dans un outil et qu’une géométrie de couche d’entités en entrée est fractionnée au cours du traitement. Lorsque la géométrie fractionnée est envoyée à la sortie, un ratio de la valeur attributaire en entrée est calculé pour la valeur attributaire en sortie. Lorsque l’option Ratio est activée, chaque fois qu’une entité est fractionnée dans une opération de superposition, les attributs des entités résultantes sont égaux à un quotient de la valeur attributaire de l’entité en entrée. La valeur en sortie dépend du quotient de division de la géométrie d’entité en entrée. Par exemple, si la géométrie en entrée a été divisée en parties égales, la moitié de la valeur attributaire de l'entité en entrée est affectée à la valeur attributaire de chaque nouvelle entité. La règle de division s’applique uniquement aux champs de type numérique.

    Cette option est désactivée par défaut (none [aucune]). Cela signifie que l'attribut des deux entités résultantes hérite d'une copie de la valeur attributaire de l'objet de départ.

    Attention :

    Les outils de géotraitement ne respectent pas les règles de fractionnement de champ des classes d'entités ou des tables de géodatabase.

  • Lorsque vous utilisez ModelBuilder pour créer un outil, vous devez vérifier que la variable de données en entrée dans cet outil n’est pas marquée comme intermédiaire. Si c’est le cas, elle sera supprimée à l’issue de l’exécution du modèle et la couche en sortie ne sera pas ajoutée à l’affichage.

  • Dans un modèle, la variable en sortie de l’outil Générer une couche peut se voir attribuer un fichier de couche à partir duquel appliquer la symbologie à la couche en cours de création. Lorsque la couche en cours de création est renvoyée en tant que paramètre en sortie du modèle ou de l’outil de script dans une carte, la symbologie du fichier de couche est conservée, mais les propriétés des étiquettes ne le sont pas. Toutefois, si la couche créée par l’outil Générer une couche (dans un modèle) est enregistrée en tant que données permanentes (classe d’entités ou shapefile) et que ces données permanentes sont renvoyées dans la carte en tant que paramètre en sortie, les propriétés des étiquettes provenant du fichier de couche seront correctement appliquées.

  • Si la valeur du paramètre Entités en entrée est une couche, la symbologie, la sélection et l’ensemble de définition de l’entrée seront transférés vers la couche en sortie.

Paramètres

ÉtiquetteExplicationType de données
Entités en entrée

Couche ou classe d’entités en entrée à partir de laquelle la nouvelle couche sera générée. Les classes d’entités complexes telles que les annotations et les dimensions ne sont pas des entrées valides.

Feature Layer
Couche en sortie

Nom de la couche d'entités à créer. La nouvelle couche d'entités créée peut être utilisée comme entrée de tout outil de géotraitement acceptant une couche d'entités comme entrée.

Feature Layer
Expression
(Facultatif)

Expression SQL permettant de sélectionner un sous-ensemble d’entités.

Si l’entrée est une couche avec un ensemble de définition existant et qu’une clause Where est spécifiée avec ce paramètre, les deux clauses Where seront combinées avec un opérateur AND pour la couche en sortie. Par exemple, si la couche en entrée a une clause Where ID > 10 et que ce paramètre est défini sur ID < 20, la clause Where de la couche sera ID > 10 AND ID < 20.

SQL Expression
Espace de travail ou jeu de classes d’entités
(Facultatif)

Espace de travail en entrée utilisé pour valider les noms de champ. Dans le cas où l’entrée est une table de géodatabase et l’espace de travail en sortie est une table dBASE, les noms de champ sont susceptibles d’être tronqués du fait que les noms de champ dBASE sont limités à dix caractères.

Workspace; Feature Dataset
Informations de champ
(Facultatif)

Les champs de l’entrée seront renommés et rendus visibles dans la sortie. Une règle de division peut être spécifiée.

Field Info

arcpy.management.MakeFeatureLayer(in_features, out_layer, {where_clause}, {workspace}, {field_info})
NomExplicationType de données
in_features

Couche ou classe d’entités en entrée à partir de laquelle la nouvelle couche sera générée. Les classes d’entités complexes telles que les annotations et les dimensions ne sont pas des entrées valides.

Feature Layer
out_layer

Nom de la couche d'entités à créer. La nouvelle couche d'entités créée peut être utilisée comme entrée de tout outil de géotraitement acceptant une couche d'entités comme entrée.

Feature Layer
where_clause
(Facultatif)

Expression SQL permettant de sélectionner un sous-ensemble d'entités. Pour en savoir plus sur la syntaxe SQL reportez-vous à la rubrique d’aide Référence SQL pour les expressions de requête utilisées dans ArcGIS.

Si l’entrée est une couche avec un ensemble de définition existant et qu’une clause Where est spécifiée avec ce paramètre, les deux clauses Where seront combinées avec un opérateur AND pour la couche en sortie. Par exemple, si la couche en entrée a une clause Where ID > 10 et que ce paramètre est défini sur ID < 20, la clause Where de la couche sera ID > 10 AND ID < 20.

SQL Expression
workspace
(Facultatif)

Espace de travail en entrée utilisé pour valider les noms de champ. Dans le cas où l’entrée est une table de géodatabase et l’espace de travail en sortie est une table dBASE, les noms de champ sont susceptibles d’être tronqués du fait que les noms de champ dBASE sont limités à dix caractères.

Workspace; Feature Dataset
field_info
(Facultatif)

Les champs de l’entrée seront renommés et rendus visibles dans la sortie. Une règle de division peut être spécifiée.

Field Info

Exemple de code

Exemple 1 d'utilisation de l'outil MakeFeatureLayer (fenêtre Python)

La fenêtre de script Python suivante illustre l’utilisation de la fonction MakeFeatureLayer en mode immédiat.

import arcpy

arcpy.env.workspace = "C:/data/input"
arcpy.MakeFeatureLayer_management("parcels.shp", "parcels_lyr")
Exemple 2 d'utilisation de l'outil MakeFeatureLayer (script autonome)

Le script autonome ci-dessous illustre l’utilisation de la fonction MakeFeatureLayer pour créer une couche que les fonctions SelectLayerByLocation et SelectLayerByAttribute peuvent utiliser.

# Name: ExtractFeaturesByLocationAndAttribute.py
# Description:  Extracts features to a new feature class based on a location and an attribute query.

# Import system modules
import arcpy

# Set overwrite option
arcpy.env.overwriteOutput = True

# Put in error trapping in case an error occurs when running tool
try:

   # Make a layer from the feature class
   arcpy.MakeFeatureLayer_management("C:/data/mexico.gdb/cities","cities_lyr")

   # Select all cities that overlap the chihuahua polygon
   arcpy.SelectLayerByLocation_management("cities_lyr", "INTERSECT", "c:/data/mexico.gdb/chihuahua", "", "NEW_SELECTION")

   # Within the selection (done above) further select only those cities that have a population >10,000
   arcpy.SelectLayerByAttribute_management("cities_lyr", "SUBSET_SELECTION", "POPULATION > 10000")

   # Write the selected features to a new featureclass
   arcpy.CopyFeatures_management("cities_lyr", "c:/data/mexico.gdb/chihuahua_10000plus")

except:
   print(arcpy.GetMessages())

Informations de licence

  • Basic: Oui
  • Standard: Oui
  • Advanced: Oui

Rubriques connexes