¿Usa páginas controladas por datos (DDP) para crear un conjunto de mapas con la misma extensión pero con diferentes capas?

9

¿Es posible utilizar la herramienta de páginas controladas por datos (DDP) en ArcMap o ArcPy para crear un conjunto de mapas con la misma extensión pero que muestran diferentes capas?

Para aclarar, regularmente hago grandes conjuntos de mapas para proyectos, todos en la misma ubicación, a menudo con las mismas capas de base, pero modificados para centrarme en diferentes aspectos de la sección relevante de un informe, como ubicaciones de monitoreo, uso del suelo, características clave, etc. requieren que se creen y mantengan .mxds por separado.

Un sistema de tipo DDP me permitiría utilizar el texto dinámico y garantizar una plantilla / salida estándar en todo momento, también facilitaría mucho la vida al actualizar un número de figura general o un comentario, ya que un informe se escribe en un .mxd en lugar de múltiples para un cliente.

Estoy usando ArcMap 10.1, pero después de leer la ayuda en línea de ArcGIS DDP , supongo que esto debería hacerse con ArcPy, ya que no he podido descubrir cómo hacerlo dentro de ArcMap. Soy consciente de que QGIS tiene el complemento Atlas , aunque no estoy tan familiarizado con sus capacidades, pero felizmente lo usaría como alternativa.

MAJ742
fuente
1
Creo que lo que está buscando es crear una secuencia de comandos para los cambios en su documento de mapa en Python utilizando el conjunto de herramientas arcpy.mapping . Consulte la referencia para construir libros de mapas completos , y más específicamente dentro del documento, "Libro de mapas de series de referencia simple".
RyanKDalton el

Respuestas:

4

Aquí está mi pensamiento en pseudocódigo: obtendría su MapDocument, luego ListDataFrames, luego ListLayers. Luego, debería poder recorrer las capas, activar la propiedad Visibilidad de la capa en ExportToPDF (o lo que sea), luego desactivar nuevamente la visibilidad y pasar a la siguiente capa. Si desea dejar ciertas capas como capas base, tal vez podría agrupar las que desea cambiar para cada mapa y solo alternar la visibilidad para esas mediante la prueba de IsGroupLayer = True? Tal vez alguien más tenga un ejemplo de código real ...

Neuhausr
fuente
Nunca encontré una solución Arc integrada para esto, pero un colega ha desarrollado un script de Python para el proceso que sigue la estructura básica que sugiere. El script usa grupos para crear una nueva página en el pdf y se puede combinar con DDP para crear un libro de mapas con un conjunto de mapas para múltiples sitios.
MAJ742
5

Un método sin código

Cuando activa las páginas controladas por datos, puede especificar una consulta de definición que depende del número de página. Simplemente use esa consulta para ocultar todas las características de las capas que no desea mostrar.

  1. Configure sus marcos de mapa para estar en la misma ubicación, pero con un campo para el número de página. Configurar páginas controladas por datos con el número de página como campo de nombre.
  2. Si desea activar una capa para una página en particular, agregue un atributo "página" a su tabla y establezca el número de página correspondiente.
  3. Agregue una consulta de definición de página a la capa particular con su campo recién creado.

Cuando se selecciona la página, las capas deseadas serán visibles según la consulta de definición de página.

Matthew Snape
fuente
2
Creo que las consultas de definición de página funcionan bien en algunos casos, pero el problema es que debe agregar el número de página relevante a cada atributo en la tabla de datos y no puede mostrar la misma característica en varias páginas, ya que solo puede hacer referencia a una página a la vez
MAJ742