Secuencias de comandos de geoprocesamiento para la administración y salida del documento de mapas
Introducción al módulo de geoprocesamiento arcpy.mapping
El módulo arcpy.mapping es una biblioteca de secuencias de comandos de Python que le permite abrir y manipular documentos de mapa de ArcMap (.mxd) y archivos de capa (.lyr). Las secuencias de comandos de geoprocesamiento que utilizan arcpy.mapping pueden abrir documentos de mapas y capas, consultar y modificar el contenido, e imprimir, exportar o guardar el documento modificado.
Las funciones en una secuencia de comandos arcpy.mapping imitan fielmente las acciones realizadas dentro de la aplicación ArcMap. Imagine el siguiente simple flujo de trabajo de ArcMap:
- Abrir el documento de mapas que se encuentra en C:\GIS\TownCenter_2009.mxd.
- Encontrar cualquier elemento de texto de diseño que ponga División de servicios de GIS 2009 y cambiarlos para que pongan División de servicios de GIS 2010.
- Exportar el diseño de mapa actualizado a PDF.
Una secuencia de comandos arcpy.mapping expresa estos pasos como sigue:
Esta sencilla secuencia de comandos de búsqueda y sustitución cambia 2009 por 2010 y luego exporta el diseño a un archivo PDF.
mxd = arcpy.mapping.MapDocument(r"C:\GIS\TownCenter_2009.mxd") for textElement in arcpy.mapping.ListLayoutElements(mxd, "TEXT_ELEMENT"): if textElement.text == "GIS Services Division 2009": textElement.text = "GIS Services Division 2010" arcpy.mapping.ExportToPDF(mxd, r"C:\GIS\TownCenterUpdate_2010.pdf") del mxd
El módulo de geoprocesamiento arcpy.mapping puede ser usado por cualquiera que necesite automatizar un flujo de trabajo de ArcMap. Aunque parece programación y lo controla el potente lenguaje de programación de Python, no es necesario ser un desarrollador de software de SIG para crear las secuencias de comandos arcpy.mapping. El objetivo de arcpy.mapping es automatizar tareas tediosas y que pueda concentrarse en el trabajo creativo y analítico, que es lo importante.
Propósito de arcpy.mapping y de escenarios de secuencia de comandos típicos
El módulo arcpy.mapping se ha creado para automatizar los flujos de trabajo de administración y salida de los mapas (impresión y exportación). Las funciones proporcionadas se centran en la modificación de las capas de mapa existentes y los elementos de diseño, y no se han diseñado como un sistema completo de compilación de mapas. El entorno interactivo y muy visual de ArcMap es el sistema recomendado para crear nuevos documentos de mapa y para crear capas y diseños de mapa. No obstante, cuando se usan de forma correcta, las funciones de modificación de capa y elementos de diseño de arcpy.mapping permiten crear productos de mapas al vuelo. Para que estos flujos de trabajo funcionen, hay que preparar bien los ingredientes necesarios para la creación de los mapas utilizados por la secuencia de comandos arcpy.mapping , de forma que al usar conjuntamente arcpy.mapping y ArcMap de la forma adecuada se obtiene, de hecho un sistema de producción de mapas automatizado.
Lo más sencillo para comprender las capacidades de arcpy.mapping es describir algunos de los escenarios que facilita. Estos son algunos de los muchos escenarios que puede realizar una secuencia de comandos arcpy.mapping :
- Crea una lista de mapas que incluyen capas que hacen referencia a determinadas fuentes de datos.
- Actualiza o repara los vínculos de fuentes de datos de todas las capas en un documento de mapa.
- Crea un informe con información contenida en documentos, como capas, fuentes de datos, y tipo de capa.
- Guarda un grupo de documentos de mapa en una versión anterior de ArcGIS para su distribución.
- Abre y analiza el contenido de documentos los de mapa, actualizando los metadatos del documento (por ejemplo, palabras clave, resumen) a partir del análisis del contenido. Los metadatos del documento de mapa se pueden luego descubrir e indexar en la utilidad de búsqueda de ArcGIS y en ArcGIS.com.
- Crea datos geográficos en lote usando comandos de exportación de mapa, como una serie de imágenes GeoTIFF controladas por una lista de entidades en el mapa.
- Crea una variedad de libros de mapas en PDF:
- Un libro de mapas temático con página de título, varias páginas de mapas y una serie de páginas adicionales con contenido de apoyo, como informes en tablas y listas de contactos
- Un libro de mapas de referencia a partir de Páginas controladas por datos
Para obtener más información, consulte el tema Crear libros de mapas con ArcGIS.
Geoprocesamiento, arcpy.mapping y ampliación de la aplicación ArcMap
El módulo arcpy.mapping es parte del marco de geoprocesamiento. En consecuencia, la secuencia de comandos arcpy.mapping puede utilizar cualquiera de las herramientas de geoprocesamiento disponibles en ArcGIS. Además, cualquier secuencia de comandos escrita con arcpy.mapping puede a su vez convertirse en una herramienta de secuencia de comandos de geoprocesamiento para usarse en ArcToolbox y ModelBuilder.
Como parte del marco de geoprocesamiento, arcpy.mapping se utiliza como herramienta de procesamiento por lotes, más que como un marco para personalizar la aplicación ArcMap. Debido a que arcpy.mapping le permite crear su propio sistema de procesamiento para mapas, se puede decir que es una forma de ampliar ArcMap con nuevas herramientas. Pero el geoprocesamiento no permite personalizar por completo la interfaz de usuario de ArcMap, y el conjunto completo de objetos y funciones de ArcMap no son accesibles mediante arcpy.mapping.
El SDK de ArcObjects permite acceder al conjunto completo de objetos y funciones. El SDK de ArcObjects y el geoprocesamiento se complementan, ninguno invalida al otro. Como regla general, ArcObjects se utiliza para extender ArcGIS con un comportamiento nuevo, mientras que el geoprocesamiento está diseñado para automatizar tareas. Debería usar ArcObjects para hacer cosas como añadir nuevas interfaces de usuario, agregar un nuevo comportamiento para las clases de entidad, o crear un renderizador cartográfico especial. El geoprocesamiento automatiza las tareas dentro de los límites de un marco bien ejecutado.
Usar e implementar secuencias de comandos
Las secuencias de comandos que usan arcpy.mapping se pueden implementar y ejecutar de la misma manera que cualquier secuencia de comandos de geoprocesamiento. La forma que elija para ejecutar su secuencia de comandos dependerá de cómo y cuando desee ejecutarla
- Una secuencia de comandos de exportación de libro de mapas funciona bien como herramienta de secuencia de comandos. Podría escribir la secuencia de comandos para tomar los datos de entrada que definen los documentos de mapa a incluir y una ubicación para exportar el archivo de salida. La interfaz de usuario de la caja de herramientas proporciona una buena interfaz de usuario donde se pueden definir interactivamente las entradas.
- Una secuencia de comandos que imprima un mapa a una determinada cada mañana sería una buena candidata para ejecutarse como tarea programada de Windows.
- Una secuencia de comandos que enumere los vínculos de fuentes de datos rotos podría ejecutarse desde la ventana de Python de ArcMap, donde puede ver fácilmente mensajes impresos de una secuencia de comandos y decidir el siguiente curso de acción que proceda.
Para ver las listas completas de clases y funciones de arcpy.mapping consulte: