4 votos

¿Mensaje de error Arcpy: ' capa ' objeto no es subscriptable?

Qué hace el código con éxito hasta el momento, se obtiene una lista de capas en la primera trama de datos del mapa actual. Lo que no logro hacerlo es, unir los nombres de capa para el gdb ubicación usando el sistema operativo.ruta de acceso.join(), para poder luego hacer un clip en contra de una clase de entidad existente.

Yo creo que es necesario convertir el lyr nombres para una cadena antes de que lo puedo usar en un Clip_analysis, ¿cómo puedo hacer eso?

Aquí es lo que tengo hasta ahora:

import arcpy
import arcpy.mapping
import os

#Set the current map
mxd = arcpy.mapping.MapDocument("CURRENT")

# Set the dataframe
df = arcpy.mapping.ListDataFrames(mxd)[0]

# Get list of Layers from toc
layers = arcpy.mapping.ListLayers(mxd,"",df)

#Set the output workspace
outWorkspace = r'C:\Users\jsommerville\Documents\ArcGIS\California\ProjectData.gdb'

for lyr in layers: 
    outFeatureClass = os.path.join(outWorkspace, lyr) 
    arcpy.Clip_analysis(lyr, "extent", outFeatureClass)

El mensaje de error que estoy consiguiendo: 'Capa' el objeto no es subscriptable

6voto

CargoCult Puntos 218

Tienes razón sobre la necesidad de convertir el nombre de la capa en una cadena. Puede obtener el nombre de la capa como una cadena llamando al . La razón de esto es que cada capa es un [objeto de capa](http://help.arcgis.com/en/arcgisdesktop/10.0/help/index.html#//00s300000008000000), que no trabajan en . Sin embargo, el objeto tiene una propiedad 'nombre' que puede definir o pasar a otras funciones de cadena. Para ello, llame al `` .

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X