Seleccionar capa por atributo (Administración de datos)
Resumen
Agrega, actualiza o quita una selección en una capa o vista de tabla basada en una consulta de atributos.
Uso
-
La entrada debe ser una capa de entidades o una vista de tabla. La entrada no puede ser una tabla o clase de entidad.
-
Esta herramienta funciona sobre capas o vistas de tabla en la tabla de contenido de ArcMap y también sobre capas o vistas de tabla creadas en una secuencia de comandos con las herramientas Crear capa de entidades o Crear vista de tabla.
-
Si se especifica un Entorno de extensión, o si hay una consulta de definición en la Capa de entrada o vista de tabla, sólo pueden seleccionarse las entidades o filas dentro de la extensión o que coincidan con la consulta de definición.
-
Puede utilizarse la herramienta Obtener contador para determinar el número de entidades o filas seleccionadas. Esta puede ser especialmente útil en una secuencia de comandos o en un modelo para determinar si se quiere seguir procesando.
Sintaxis
Parámetro | Explicación | Tipo de datos |
in_layer_or_view |
Capa de entidades o vista de tabla a la que se aplicará la selección. La entrada puede ser una capa o una vista de tabla de la tabla de contenido de ArcMap, o una capa o vista de tabla creada en ArcCatalog o en secuencias de comandos con las herramientas Crear capa de entidades o Crear vista de tabla. | Table View; Raster Layer; Mosaic Layer |
selection_type (Opcional) |
Determina cómo se aplicará la selección y qué hacer si ya existe una selección.
| String |
where_clause (Opcional) |
Una expresión SQL utilizada para seleccionar un subconjunto de registros. La sintaxis para la expresión difiere levemente según la fuente de datos. Por ejemplo, si está consultando shapefiles, coberturas, tablas de dBASE o INFO, o geodatabases de archivos o de ArcSDE, encierre los nombres de campo con comillas dobles: "MY_FIELD" Si está consultando geodatabases personales, encierre los campos en corchetes: [MY_FIELD] En Python, las cadenas de caracteres están encerradas con comillas simples o dobles. Para crear una cadena de caracteres que consta de comillas (como es común con una cláusula WHERE en las expresiones SQL), puede separar las comillas (usando una barra invertida) o poner comillas triples en la cadena de caracteres. Por ejemplo, si la cláusula WHERE propuesta es "CITY_NAME" = 'Chicago' podría encerrar toda la cadena de caracteres entre comillas dobles y después separar las comillas dobles interiores de esta manera: " \"CITY_NAME\" = 'Chicago' " O podría encerrar toda la cadena de caracteres entre comillas simples y después separar las comillas simples interiores de esta manera: ' "CITY_NAME" = \'Chicago\' ' O puede encerrar toda la cadena de caracteres entre comillas triples sin separar: """ "CITY_NAME" = 'Chicago' """ Para obtener más información sobre la sintaxis de SQL y cómo difiere entre las fuentes de datos, consulte el tema de ayuda Referencia SQL para las expresiones de consulta utilizadas en ArcGIS. | SQL Expression |
Ejemplo de código
La siguiente secuencia de comandos de la ventana de Python muestra cómo utilizar la función SelectLayerByAttribute en el modo inmediato.
import arcpy arcpy.MakeFeatureLayer_management ("C:/data/data.mdb/states", "stateslyr") arcpy.SelectLayerByAttribute_management ("stateslyr", "NEW_SELECTION", " [NAME] = 'California' ")
La siguiente secuencia de comandos independiente muestra cómo utilizar la función SelectLayerByAttributes en un flujo de trabajo para extraer entidades en una nueva clase de entidad basada en la ubicación y en una consulta de atributos.
# Name: ExtactFeaturesByLocationAndAttribute.py # Description: Extract features to a new feature class based on a spatial relationships to another layer AND an attribute query # Author: ESRI # Import system modules import arcpy # Set the workspace env.workspace = "c:/data/mexico.gdb" # Make a layer from the feature class arcpy.MakeFeatureLayer_management("cities", "lyr") # Select all cities which overlap the chihuahua polygon arcpy.SelectLayerByLocation_management("lyr", "intersect", "chihuahua", 0, "new_selection") # Within selected features, further select only those cities which have a population > 10,000 arcpy.SelectLayerByAttribute_management("lyr", "SUBSET_SELECTION", ' "population" > 10000 ') # Write the selected features to a new featureclass arcpy.CopyFeatures_management("lyr", "chihuahua_10000plus")