En este articulo aprenderás como establecer y/o redefinir una expresión de consulta SQL a una capa que se encuentra almacenada en varios archivos MXD utilizando Python.
Puede que necesites limitar la información espacial que muestra una capa respecto a la totalidad que posee para hacer énfasis en un elemento u otro o varios elementos, también puede ocurrirte (como me ha ocurrido) que al principio de tu proyecto elijas utilizar un feature class para representar una cosa en tus salidas gráficas, y con el paso del tiempo hayas tenido que incluir otros objetos geométricos a dicho feature class, por lo tanto también se ven representados estos nuevos objetos en tus salidas gráficas previas, mostrando información incoherente al momento de volver a exportarlas.
Sea cual sea el caso, tu solución tradicional sería la siguiente:
¿Cómo modificar y/o crear una expresión SQL una capa de ArcGIS / ArcMap?
1) Abrir el archivo MXD. Supongamos que queremos mostrar sólo el feature "1" y ocultar el feature "2".
2) Dar doble clic a la capa a la cual se le quiere modificar y/o crear la expresión SQL (Es lo mismo que hacer clic derecho [a] y presionar el botón "Properties..." [b]), ir a la pestaña Definition Query (c). Pulsar el boton "Query Builder..." (d).
3) Escribir la expresión SQL. En este caso se usara el campo "Name" como discriminador, cuando el campo es tipo texto los valores numéricos deben ser usados entre apostrofes, en lugar de escribir simplemente 1, hay que escribir '1'. Mientras la expresión tenga sentido, puede ser tan compleja como se requiera.
4) Dar clic en el botón "OK". El resultado será el siguiente:
5) Guardar archivo MXD.
Este procedimiento ha de repetirse con esta misma capa en cada uno de los archivos MXD, lo que puede ser bastante demorado, por esto 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 cónsula SQL o Definition Query por lotes de una capa 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.
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.
Paso 5: En la línea #06 del código remplazar "Layers" por el nombre del dataframe que contiene la capa a modificar (Es una buena practica que si hay mas de un dataframe dentro de un archivo mxd, el nombrar cada uno de forma única).
Paso 6: En la línea #07 del código remplazar "Layer" por el nombre de la capa a modificar.
Paso 7: En la línea #09 del código reemplazar "Name = 1" por la expresión SQL a utilizar.
Paso 8: 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 podrás notar la aplicación de la expresión SQL a la capa citada en el paso 6.
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.





