PYTHON GIS - Modificar simbología de una capa en varios archivos de ArcGIS

0

 

Bienvenido, en este artículo aprenderás como modificar la simbología de una capa almacenada en varios archivos de ArcGIS / ArcMap (Procedimiento por lote o Batch)



En este articulo aprenderás como modificar la simbología de una capa especificada almacenada en uno o 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 modificación de la simbología utilizada para representar los datos espaciales (Shapefile, feature Class, entre otros), ya sea por gusto del cliente final, tu jefe inmediato o porque ha habido cambios en la información espacial per-se, entre las razones que alcanzo a vislumbrar en este momento. La solución tradicional seria la siguiente:


¿Cómo modificar la simbología de una capa de ArcGIS / ArcMap?


Opción 1:


1) Abrir el archivo MXD.


2) Dar doble clic a la capa a la cual se le quiere modificar la simbología (Es lo mismo que hacer clic derecho [a] y presionar el botón "Properties..." [b]), ir a la pestaña Symbology (c).


Se muestra como acceder a la pestaña Symbology en las propiedades de una capa almacenada en un archivo de ArcGIS / ArcMap / MXD


3) Ajustar la simbología.


Muestra el cambio de color en la capa cómo ejemplo de ajuste de la simbología


4) Darle clic en el botón Aceptar.


Muestra un ejemplo del final de la edición de la simbología


5) Guardar el archivo MXD.


6) Repetir el procedimiento en cada archivo MXD.


Una forma de hacerlo manualmente un poco más ágil, sería la siguiente:


Opción 2:


1) Abrir el archivo MXD.


2) Dar doble clic a la capa a la cual se le quiere modificar la simbología (Es lo mismo que hacer clic derecho [a] y presionar el botón "Properties..." [b]), ir a la pestaña Symbology (c).


Se muestra como acceder a la pestaña Symbology en las propiedades de una capa almacenada en un archivo de ArcGIS / ArcMap / MXD



3) Ajustar la simbología.


Muestra el cambio de color en la capa cómo ejemplo de ajuste de la simbología

4) Dar clic en el botón aceptar.


Muestra un ejemplo del final de la edición de la simbología


Crear un archivo de simbología de capa


5) Guardar la nueva simbología de la capa como archivo. lyr; para esto haz clic derecho sobre la capa (a), presiona el botón "Save As Layer File..." (b) posteriormente ubica un directorio donde guardar el nuevo archivo y presiona el botón "Save" (c).


Se muestra cómo puedes guardar la simbología de una capa como archivo .lyr

6) Guardar el archivo MXD.


Importar simbología en ArcGIS desde archivo .lyr


7) Abrir otro archivo MXD, Dar doble clic a la capa a la cual se le quiere modificar la simbología (Es lo mismo que hacer clic derecho [a] y presionar el botón "Properties..." [b]), ir a la pestaña Symbology (c), pero en lugar de modificar la simbología, presiona el botón "Import..." (d), luego pulsa el icono de carpeta (e). 


Muestra la ventana Symbology y la sub ventana del botón Import...


8 ) Busca el archivo .lyr del paso 5 y presiona el botón "Add" (f).


Muestra un ejemplo de selección de archivo .lyr en ArcGIS

9) Presiona "OK" (g) y presiona el botón "Aceptar" (h), finalmente guarda el archivo MXD.


Muestra los pasos finales al momento de importar la simbología


9) Repetir este paso con los archivos de mapas y/o figuras restantes.


Este segundo proceso indicado a partir del paso 7 es el que aprenderás como automatizar en este artículo, ya que aunque hacerlo así resulta un poco mejor, aun 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 modificar la simbología por lotes de una capa de ArcGIS / ArcMap usando Python?


Paso 1: Abrir el archivo MXD.


Paso 2: Dar doble clic a la capa a la cual se le quiere modificar la simbología, ir a la pestaña Symbology.


Paso 3: Ajustar la simbología.


Paso 4: Dar clic en el botón "Aceptar".


Paso 5: Guardar la nueva simbología de la capa como archivo ".lyr".


Nota: Los pasos hasta ahora descritos estan ilustrados en los apartados anteriores llamados "Crear un archivo de simbología de capa" e "Importar simbología en ArcGIS desde archivo .lyr".


Paso 6: Cerrar el archivo MXD (no es necesario guardar los cambios).


Paso 7: Abrir un archivo de ArcGIS en blanco.


Paso 8: 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 9: Respaldar los archivos MXD originales.


Paso 10: Copiar en un blog de notas el siguiente código y reemplazar el texto C:\EJEMPLO\EJEMPLO\LayerMod.lyr en la línea #09 por el nombre del archivo .lyr incluyendo la ruta donde se almacena.




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
    df = arcpy.mapping.ListDataFrames(mxd, "DATAFRAME")[0]                    #06
    for lyr in arcpy.mapping.ListLayers(mxd, "Layer", df):                    #07
        updateLayer = lyr                                                     #08
        sourceLayer = arcpy.mapping.Layer(r"C:\EJEMPLO\EJEMPLO\LayerMod.lyr") #09
        arcpy.mapping.UpdateLayer(df, updateLayer, sourceLayer, True)         #10
    mxd.save()                                                                #11
                                                                              #12
del mxd_list                                                                  #13
                                                                     


Paso 11: 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.


Paso 12: En la línea #06 del código remplazar DATAFRAME por el nombre del marco de datos (Dataframe) que contiene la capa a modificar (Es una buena practica que si hay mas de un marco de datos dentro de un archivo MXD, el nombrar cada uno de forma única).


Paso 13: En la línea #07 del código remplazar Lyr por el nombre de la capa a modificar.


Paso 14: 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 abrirlo notaras la actualización de la simbología de las capas 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. 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