Resumen
Crea una capa de entidades a partir de un archivo de capa o clase de entidad de entrada. La capa creada por la herramienta es temporal y, una vez finalizada la sesión, no permanece en el sistema a menos que se guarde el documento de mapa o que la capa se guarde en el disco.
Uso
La capa de entidad temporal se puede guardar como un archivo de capas utilizando la herramienta Guardar en archivo de capa o se puede guardar como una clase de entidad nueva utilizando la herramienta Copiar entidades.
Esta herramienta no admite clases de entidad complejas, como por ejemplo, anotación y dimensiones.
Las capas creadas en ArcCatalog no se pueden utilizar en ArcMap, a menos que se guarden en un archivo de capa usando la herramienta Guardar en archivo de capa.
Si se utiliza una expresión SQL pero no se devuelve ningún resultado, la salida quedará vacía.
Es posible cambiar el nombre de los campos con el control Información de campo. La segunda columna del control enumera los nombres de campo de entrada existentes. Para cambiar el nombre de un campo, haga clic en el nombre de campo y escriba un nombre nuevo.
Los nombres de campo definidos en el control Información de campo se respetarán en las herramientas posteriores. Sin embargo, si esta herramienta es la última herramienta de un modelo, los nombres de campo se obtendrán a partir de los datos de origen en disco. Para mantener los nombres de campo, la nueva capa se debe escribir en datos nuevos con las herramientas Copiar filas o Copiar entidades.
Los nombres de campo se validarán al especificar un espacio de trabajo de entrada. Por lo tanto, si la entrada es una clase de entidad de geodatabase y el espacio de trabajo de salida es una carpeta, los nombres de campo se pueden truncar porque los atributos de shapefile sólo pueden tener nombres de un máximo de diez caracteres. Los nuevos nombres pueden revisarse y modificarse con el control Información de campo.
Es posible anular la disponibilidad de un subconjunto de campos en la nueva capa con la propiedad visible del control Información de campo. La tercera columna del control ofrece una opción desplegable para especificar si un campo será visible o estará oculto en la nueva capa. La opción predeterminada es VERDADERO. Si selecciona FALSO, el campo se ocultará. No puede utilizar los campos ocultos en un flujo de trabajo si la capa recién creada es la entrada de un proceso o una herramienta posterior. Si la salida se guarda en el disco, tan solo los campos que aparecen visibles aparecerán en los datos nuevos.
Se puede establecer una política de división utilizando la opción Utilizar política de relación del control Información de campo. La política de división entra en efecto cada vez que la capa de entidad se utiliza como una entrada en una herramienta y una geometría de la capa de entidad de entrada se divide durante el procesamiento. Cuando la geometría de división se envía a la salida, se calcula una relación del valor de atributo de entrada para el valor de atributo de salida. Cuando se habilita Utilizar política de relación, siempre que se divida una entidad en una operación de superposición, los atributos de las entidades resultantes son una relación del valor de atributo de la entidad de entrada. El valor de salida está basado en la relación en la que se dividió la geometría de la entidad de entrada. Por ejemplo, si la geometría de entrada se dividió equitativamente, al valor de atributo de cada entidad nueva se le asigna la mitad del valor de atributo de la entidad de entrada. Utilizar política de relación solo se aplica a los tipos de campos numéricos.
El valor predeterminado es ninguno (desactivado). Esto significa que el atributo de las dos entidades resultantes acepta una copia del valor de atributo del objeto original.
Al utilizar ModelBuilder para crear una herramienta, necesita asegurarse de que la variable de datos de entrada de esta herramienta no esté marcada como intermedia. Si la entrada se encuentra marcada como intermedia, se eliminará después de que el modelo se ejecute desde su cuadro de diálogo y la capa de salida no se agregará a la visualización.
En un modelo, a la variable de salida de la herramienta Crear capa de entidades se le puede asignar un archivo de capa desde el cual aplicar la simbología a la capa que se crea. Cuando la capa que se está creando se devuelve como un parámetro de salida de herramienta de modelo o script para un mapa, la simbología del archivo de capa se mantiene, pero no así las propiedades de la etiqueta. No obstante, si la capa creada con Crear capa de entidades (en un modelo) se guarda como datos permanentes (clase de entidad o shapefile), y esos datos permanentes se devuelven al mapa como un parámetro de salida, las propiedades de la etiqueta del archivo de capa se aplicarán correctamente.
El patrón para introducir una clase de entidad de origen para esta herramienta consiste en incluir todos los niveles de la estructura de datos en la clase de entidad, como C:\my.gdb\feature_dataset\feature_class_name. No obstante, en el caso de una estructura de parcela, existe un nivel adicional (la estructura de parcela) que no necesita utilizar en la entrada para esta herramienta. Por ejemplo, si la ruta del catálogo a una parcela es C:\my.gdb\feature_dataset\fabric_str\feature_class_name, omita fabric_str en la ruta.
Sintaxis
arcpy.management.MakeFeatureLayer(in_features, out_layer, {where_clause}, {workspace}, {field_info})
Parámetro | Explicación | Tipo de datos |
in_features | La capa o clase de entidad de entrada a partir de la cual se crea la capa nueva. Las clases de entidades complejas, como anotación y dimensiones. no son entradas válidas para esta herramienta. | Feature Layer |
out_layer | Nombre de la capa de entidad que se creará. La capa nueva creada se puede utilizar como entrada en cualquier herramienta de geoprocesamiento que acepte una capa de entidad como entrada. | Feature Layer |
where_clause (Opcional) | Una expresión SQL utilizada para seleccionar un subconjunto de entidades. Para obtener más información sobre la sintaxis SQL, consulte el tema de ayuda Referencia SQL para las expresiones de consulta utilizadas en ArcGIS. | SQL Expression |
workspace (Opcional) | El espacio de trabajo de entrada que se utiliza para validar los nombres de campo. Si la entrada es una tabla de geodatabase y el espacio de trabajo de salida es una tabla de dBASE, los nombres de campo pueden estar truncados ya que los campos de dBASE sólo pueden tener nombres de un máximo de diez caracteres. Los nuevos nombres pueden revisarse y modificarse con el control de información de campo. | Workspace; Feature Dataset |
field_info (Opcional) | Se puede utilizar para revisar y modificar los nombres de campo y ocultar un subconjunto de campos en la capa de salida. Se puede especificar una política de división. Consulte los usos para obtener más información. | Field Info |
Muestra de código
Ejemplo 1 de MakeFeatureLayer (ventana de Python)
El siguiente script de la ventana de Python demuestra cómo utilizar la función MakeFeatureLayer en el modo inmediato.
import arcpy
arcpy.env.workspace = "C:/data/input"
arcpy.MakeFeatureLayer_management("parcels.shp", "parcels_lyr")
Ejemplo 2 de MakeFeatureLayer (secuencia de comandos independiente)
En la siguiente secuencia de comandos independiente se muestra cómo utilizar MakeFeatureLayer para crear una capa que las herramientas SelectLayerByLocation y SelectLayerByAttribute puedan utilizar.
# 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())
Entornos
Información de licenciamiento
- Basic: Sí
- Standard: Sí
- Advanced: Sí