8 votos

¿Obtención de los ID de las capas con ArcPy?

Estoy trabajando en una sesión de ArcMap, he marcado la opción de obtener un ID para cada una de las capas de mi documento, así que cualquiera lo tiene.

enter image description here

Ahora, lo que necesito es una forma de obtener estos valores dentro de un script de python (para copiar eso automáticamente en una tabla): no hay esa información en las propiedades de la capa a la que se llega con un describe, ni desde el módulo .mapping.

4voto

Jivan Scarano Puntos 11

En ArcGIS Pro puede hacerlo:

cim_version = 'V2'
aprx = arcpy.mp.ArcGISProject(aprx_file)
map0 = aprx.listMaps()[0]
lyr0 = map0.listLayers()[0]
def0 = lyr0.getDefinition(cim_version)
# serviceLayerID will be -1 if "allow assign. unique ids to layers"
# was not check on the Data Frame properties
# in that case, serviceLayerID are in order from 0 -> len(layers) - 1
# & includes GroupLayers (can check lyr0.isGroupLayer, etc)
serviceLayerID = def0.serviceLayerID

1voto

jbalk Puntos 581

Después de probar esto en ArcGIS 10.3, y de acuerdo con la documentación disponible para Layer y Describe en arcpy, y también este hilo: https://geonet.esri.com/thread/178341 Esta funcionalidad aún no existe. No se puede acceder al ID de la capa desde arcpy. Es posible que puedas acceder a él a través de ArcObjects si tienes los conocimientos necesarios.

Como solución, ¿puede introducir el ID en los campos Créditos o Descripción? Puedes acceder a ambos campos a través de arcpy.

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