Résumé
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 par l'outil est temporaire et disparaît à la fin de la session si la couche n'est pas enregistrée sur le disque ou si le document cartographique n'est pas enregistré.
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 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 par cet outil.
Les couches créées dans ArcCatalog ne peuvent pas être utilisées dans ArcMap à moins de les enregistrer dans un fichier de couche à l'aide de l'outil Enregistrer dans un fichier de couche.
Si une expression SQL est utilisée mais ne renvoie aucun résultat, la sortie est vide.
Il est possible de renommer les champs à l’aide du contrôle Field Info (Informations de champ). La deuxième colonne du contrôle répertorie les noms de champ qui existent déjà dans l’entrée. Pour renommer un champ, il vous suffit de cliquer sur son nom et d’en saisir un nouveau.
Les noms de champ définis dans le contrôle Field Info (Informations de champ) sont respectés dans les autres outils utilisés par la suite. Toutefois, si cet outil est le dernier outil d’un modèle, les noms de champ sont récupérés des données sources sur disque. Pour que les noms de champ soient conservés, la nouvelle couche doit être transcrite dans une nouvelle donnée à l’aide des outils Copier des enregistrements ou Copier des entités.
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. Il est possible de vérifier et de modifier les nouveaux noms à l’aide du contrôle Field Info (Informations de champ).
Il est possible de rendre un sous-ensemble de champs indisponible dans la nouvelle couche avec la propriété de visibilité du contrôle Field Info (Informations de champ). La troisième colonne du contrôle comporte une liste déroulante qui permet d’indiquer si un champ doit être visible ou masqué dans la nouvelle couche. L’option par défaut est TRUE (VRAI). Sélectionnez l’option FALSE (FAUX) pour masquer le champ. Vous ne pouvez pas utiliser les champs masqués dans un processus si la nouvelle couche sert ultérieurement d’entrée à un processus ou à un outil. Si la sortie est enregistrée sur disque, seuls les champs indiqués comme visibles apparaissent dans les nouvelles données.
Une règle de division peut être définie à l’aide de l’option Use Ratio Policy (Règle de division) de la commande Field Info (Informations de champ). La règle de division prend effet chaque fois que 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 Règle de division 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é. L'option 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.
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 depuis sa boîte de dialogue 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 fichier de formes) 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 sont correctement appliquées.
Le modèle de saisie d’une classe d’entités source pour cet outil consiste à inclure tous les niveaux de structure de données jusqu’à la classe d’entités, par exemple C:\my.gdb\feature_dataset\feature_class_name. Toutefois, dans le cas d'un atelier parcellaire, il existe un niveau supplémentaire (la structure de l'atelier) qu'il n'est pas nécessaire d'utiliser en entrée dans cet outil. Par exemple, si le chemin de catalogue menant à une parcelle est C:\my.gdb\feature_dataset\fabric_str\feature_class_name, omettez fabric_str du chemin.
Syntaxe
arcpy.management.MakeFeatureLayer(in_features, out_layer, {where_clause}, {workspace}, {field_info})
Paramètre | Explication | Type de données |
in_features | Couche ou classe d’entité en entrée à partir de laquelle générer la nouvelle couche. Les classes d'entités complexes telles que les annotations et les dimensions ne sont pas des entrées valides pour cet outil. | 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. | 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. Il est possible de vérifier et de modifier les nouveaux noms à l’aide du contrôle d’informations de champ. | Workspace; Feature Dataset |
field_info (Facultatif) | Peut être utilisé pour examiner et modifier les noms de champ et masquer un sous-ensemble de champs dans la couche en sortie. Une règle de division peut être spécifiée. Pour en savoir plus, reportez-vous aux conseils d'utilisation. | Field Info |
Exemple de code
Exemple 1 d'utilisation de l'outil MakeFeatureLayer (fenêtre Python)
Le script de fenêtre Python ci-dessous 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 suivant montre comment utiliser l'outil MakeFeatureLayer pour créer une couche qui peut être utilisée par les outils SelectLayerByLocation et SelectLayerByAttribute.
# 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())
Environnements
Informations de licence
- Basic: Oui
- Standard: Oui
- Advanced: Oui