PYTHON GIS - Como quitar una capa en varios archivos de ArcGIS automáticamente (ArcMap / MXD)

0

 

Como remover o quitar una capa en varios archivos MXD con Python


En este articulo aprenderás como quitar o remover una capa en varios archivos MXD utilizando Python.


Sucede a menudo que durante la ejecución de un proyecto en el cual se han venido realizando distintas salidas gráficas y/o mapas que por alguna razón se hace necesario la eliminación de una capa usada para representar cierta información espacial (Shapefile, feature Class, entre otros), ya sea por decisión del cliente final, tu jefe inmediato, porque se agregó en un principio sin ser necesaria, o la información ya no existe en el conjunto de datos, entre las varias razones que alcanzo a vislumbrar en este momento. La solución tradicional seria la siguiente:


¿Cómo quitar una capa de ArcGIS / ArcMap?


1) Abrir el archivo MXD.


2) Dar clic derecho a la capa a remover (a).


3) Darle clic a la opción Remove (b).


Descripción gráfica de como quitar una capa de la tabla de contenidos



4) Guardar el archivo MXD. 


5) Repetir el procedimiento en cada archivo MXD.


En caso de que la corrección deba hacerse a uno o dos archivos no es algo grave, pero si la corrección debe hacerse en decenas de imágenes y/o mapas en formato MXD esto puede consumir mucho de tu tiempo, a continuación, te enseñare como puede ser mucho más eficiente utilizando código Python (No te preocupes no necesitaras saber programar para lograrlo)



¿Cómo quitar capas por lotes en varios archivos de ArcGIS / ArcMap usando Python?


Paso 1: Abrir un archivo MXD en blanco.


Paso 2: Abrir la ventana Python en la barra de herramientas Standard.


Muestra la ubicación de la ventana Python dentro de la barra de herramientas Standard (estándar)


Paso 3: Respaldar los archivos MXD originales.


Paso 4: Copiar en un blog de notas el siguiente código y en la línea #02 del código remplazar la ruta C:\EJEMPLO\EJEMPLO con la ruta donde se almacenan los archivos MXD a modificar.



import arcpy, os                                           #01
arcpy.env.workspace = ws = r"C:\EJEMPLO\EJEMPLO"           #02
mxd_list = arcpy.ListFiles("*.mxd")                        #03
for mxd in mxd_list:                                       #04
    mxd = arcpy.mapping.MapDocument(os.path.join(ws, mxd)) #05
    for df in arcpy.mapping.ListDataFrames(mxd):           #06
        for lyr in arcpy.mapping.ListLayers(mxd, "", df):  #07
            if lyr.name.title() == "LAYER_NAME":           #08
                arcpy.mapping.RemoveLayer(df, lyr)         #09
    mxd.save()                                             #10
                                                           #11
del mxd_list                                               #12
                                                                     


Paso 5: En la línea #08 del código remplazar LAYER_NAME por el nombre de la capa a remover.


Paso 6 (Opcional): Si es necesario remover mas de una capa, replica y agrega las líneas #08 y #09 debajo de la línea #09 una vez por cada capa adicional a quitar; conservando el espaciado o margen horizontal de las líneas originales.


Paso 7: Copiar el código modificado en la ventana Python y presionar la tecla Enter o Intro dos veces.


Al cabo de unos segundos veras como comienza a actualizarse la fecha de modificación de los archivos de ArcMap, y al abrirlos notaras la eliminación de la capa en cada archivo MXD.


Espero hayas disfrutado este artículo, próximamente subiré un video explicativo del procedimiento que podrás consultar en este blog, así como otro articulo donde te explicare como agregar las capas dentro de un grupo de capas en particular. Guarda mi blog entre tus enlaces favoritos, estaré subiendo muchos más trucos de este estilo, recuerda que puedes hacer llegarme tus inquietudes en la página de contacto o deja tu comentario, estaré atento a responder. 


Entradas que pueden interesarte

Sin comentarios