1 votos

Creación de un archivo de capas (.lyr) con referencia a la ruta

Estoy buscando una manera de obtener el nombre y la ruta de un archivo de capa que se utiliza en un MXD. Sé que una vez que un archivo de capa se añade a un MXD, la información de la ruta no se almacena, lo cual es problemático.

Básicamente, el objetivo final es utilizar arcpy.mapping para actualizar un grupo de capas dentro de cualquier MXD. utilizando el siguiente código

arcpy.mapping.UpdateLayer(maindataframe, updateLayer, sourceLayer, True)

Tenemos una estructura de carpetas donde todos nuestros archivos de capas están conectados a una mezcla de SDE y GDB. Y para encontrar una manera de hacer una tabla de todas las capas con las rutas sería un regalo del cielo.

La pregunta es, ¿hay una manera de programar a través de cada carpeta y subcarpetas (tal vez usando os.walk?) y obtener el nombre de la capa utilizada en ArcMap (en este caso, el Actualizar la capa ), y el camino ( capa de origen ) para obtener este formato -> [Sistema fluvial,r' C:\Catchments\Area\River_Catchments.lyr ']

Editar : Debo aclarar que no se trata de actualizar la fuente de datos, sino la ruta donde se encuentra. La razón por la que necesito esto es que hay viejos MXD que contienen simbología antigua/anticuada y necesitan ser actualizados. Actualizando la capa con la de la estructura de carpetas puedo actualizar varios MXD's a la vez.

1voto

UnkwnTech Puntos 21942

Suponiendo que "tiene una estructura de carpetas en la que todos [sus] archivos de capas están conectados a una mezcla de SDE y GDB", y que está hablando de *.lyr y no se trata de capas almacenadas en documentos cartográficos ( *.mxd archivos), el código que necesitas escribir sólo tiene que

  1. Utilice arcpy.da.Walk para recorrer la estructura de carpetas buscando *.lyr archivos.
  2. Para cada archivo de capa encontrado crear un objeto de capa usando arcpy.mapping.Layer().
  3. Ver el nombre de los objetos de la capa utilizando el name y su fuente de datos utilizando el dataSource propiedad.
  4. Cuando escriba una lista de lo anterior como tuplas, también podría almacenar el nombre del archivo de la capa como un tercer elemento en cada tupla.

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