Générer une couche (Gestion des données)

Récapitulatif

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

Syntaxe

MakeFeatureLayer_management (in_features, out_layer, {where_clause}, {workspace}, {field_info})
ParamètreExplicationType de données
in_features

La couche ou la classe d'entités en entrée utilisée génère 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. La syntaxe de l'expression diffère légèrement en fonction de la source des données. Par exemple, lorsque vous interrogez des géodatabases fichier ou ArcSDE, des fichiers de formes ou des couvertures, placez le nom des champs entre guillemets doubles :

"MY_FIELD"

Si vous interrogez des géodatabases personnelles, placez les champs entre crochets :

[MON_CHAMP]

Dans Python, les chaînes se trouvent entre guillemets simples ou doubles. Pour créer une chaîne contenant des guillemets (comme c'est souvent le cas pour les clauses WHERE dans les expressions SQL), vous pouvez désactiver les guillemets (à l'aide d'une barre oblique inverse) ou placer la chaîne entre guillemets triples. Par exemple, si la clause WHERE souhaitée est

"CITY_NAME" = 'Chicago'

vous pouvez mettre la chaîne entière entre guillemets doubles, puis désactiver les guillemets doubles intérieurs de la manière suivante :

" \"CITY_NAME\" = 'Chicago' "

Ou vous pouvez mettre la chaîne entière entre guillemets simples, puis désactiver les guillemets simples intérieurs de la manière suivante :

' "CITY_NAME" = \'Chicago\' '

Ou vous pouvez mettre la chaîne entière entre guillemets triples sans désactiver les guillemets :

""" "CITY_NAME" = 'Chicago' """

Pour en savoir plus sur la syntaxe SQL et sur ses différences selon les sources de données, 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 des champs. Si l'entrée est une table de géodatabase et que l'espace de travail en sortie est une table dBASE, les noms de champs peuvent être tronqués car les champs dBASE ne doivent pas comporter plus de 10 caractères. Les nouveaux noms peuvent être révisés et modifiés à l'aide du contrôle des 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 d'utilisation de l'outil MakeFeatureLayer 1 (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
from arcpy import env

# 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

Thèmes connexes

9/12/2013