5 votos

¿Cómo genero una imagen de cada polígono en un shapefile?

Tengo shapefiles que contienen áreas (estados, condados, cuerpos de agua, etc.) y necesito generar una imagen (png / jpg) de cada área. ¿Cómo puedo hacer esto?

En mi mente, el flujo de trabajo manual sería:

  1. Hacer zoom a las extensiones de cada polígono,
  2. Hacer zoom un poco más para crear un borde alrededor del polígono,
  3. Crear el archivo de imagen,
  4. Moverse al siguiente polígono y repetir los pasos anteriores.
  5. Repetir para cada shapefile.

Tengo acceso a ArcMap 10.3, QGIS para mis herramientas SIG y python y .NET para herramientas de desarrollo.

Este proceso automatizado no necesitaría ejecutarse con frecuencia, tal vez unas pocas veces al año, por lo que el rendimiento no es realmente una preocupación.

Un resultado repetible / consistencia es importante. La imagen no necesita tener una escala uniforme (1:24000, por ejemplo) ya que solo se mostrará en pantalla y no se aplicará una barra de escala. La altura debe ser escalada igual que el ancho; no x = 1.00 e y = 1.23.

No quiero crear manualmente las imágenes (capturas de pantalla, imprimir como ráster, etc.). Esto realmente necesita ser automatizado. Hay docenas de shapefiles y cientos de polígonos, por lo que la automatización definitivamente vale la pena.

2 votos

Aunque la respuesta para ambos productos sería diferente, la creación de guiones probablemente sería básica y muy similar. Por favor, elija un producto GIS y un entorno de desarrollo para la implementación, pruebe algo con ese producto y enfoque su pregunta en cualquier problema que pueda surgir.

5voto

Tedy Puntos 46

Recomiendo familiarizarse con la barra de herramientas de Páginas Dirigidas por Datos de ArcGIS. Configure un archivo de mapa para que aparezca como desee y luego agregue la barra de herramientas DDP. Haga clic en Configurar Páginas Dirigidas por Datos.

introducir descripción de la imagen aquí

Actualice el menú desplegable de capas con la capa por la que desea iterar. En la pestaña de extensión, puede establecer un margen (parte de "alejar un poco más" de lo que busca).

Una vez que tenga configuradas sus páginas dirigidas por datos, puede hacer clic en Archivo -> Exportar Mapa...

Seleccione Guardar como tipo: PDF (*.pdf). En la pestaña Páginas, seleccione Todas.

La única desventaja de esto es que debe estar en formato PDF. Si puede trabajar con esto, es la forma más fácil de hacerlo sin necesidad de ningún script.

Editar: Como señaló @Chris W en un comentario, las páginas dirigidas por datos se pueden exportar en otros formatos.

En la ventana de python en ArcMap, una vez que tenga configuradas sus páginas dirigidas por datos:

mxd = arcpy.mapping.MapDocument("CURRENT")
for pageNum in range(1, mxd.dataDrivenPages.pageCount + 1):
  mxd.dataDrivenPages.currentPageID = pageNum
  arcpy.mapping.ExportToPNG(mxd, r"C:\Temp\ParcelAtlas_Page" + str(pageNum) + ".png")
del mxd

De la ayuda: Modifique el texto de la ruta del archivo C:\Temp\ParcelAtlas_Page para que coincida con la ubicación de la carpeta y el nombre de archivo que desea.

0 votos

Desafortunadamente, el producto final debe ser un png o jpg. Miraré esto para otro proyecto en el que estoy trabajando, pero para la tarea actual, no creo que funcione.

0 votos

¿No puedes convertir o exportar a png o jpg?

1 votos

@DenaliHardtail (y Emil) La salida de DDP no tiene que ser un pdf, pero requiere escribir un script utilizando controles de DDP en lugar de la GUI. Consulte los comentarios y la discusión en gis.stackexchange.com/questions/144846 o al final del archivo de ayuda relevante en resources.arcgis.com/en/help/main/10.1/index.html#//…

5voto

Chris Puntos 128

Esto se puede lograr fácilmente con QGIS (estoy haciendo esto en la versión 2.10) y el generador de Atlas.

Abre tu shapefile en QGIS. Símbolizalo como desees.

Proyecto>Nuevo Compositor de impresión

Añade un mapa al diseño que cubra toda la página.

Después de añadir el mapa, necesitamos configurarlo como controlado por atlas (selecciona el mapa e ingresa en Propiedades del elemento):

ingresa la descripción de la imagen aquí

A continuación configuramos las opciones de generación de Atlas:

ingresa la descripción de la imagen aquí

Puedes previsualizar la salida, o imprimir todos los mapas ya sea como imagen (Jpeg/PNG/Tiff/etc...), SVG, o como PDF:

ingresa la descripción de la imagen aquí

Ahora podemos ver que no son los shapefiles individuales. Simplemente hace zoom en el mapa hasta el límite. También podemos no mostrar las otras características si no queremos.

Simplemente configura una simbología basada en reglas, con el siguiente filtro: $id = $atlasfeatureid

Dando como resultado:

ingresa la descripción de la imagen aquí

La herramienta es realmente flexible y solo requiere unos pocos clics para configurarla. Las escalas y los mosaicos también pueden agregarse con facilidad.

EDICIÓN:

Para tu propósito, no uses una página A4, simplemente usa una página de 200mmx200mm (por ejemplo) en la pestaña de Composición, luego será una salida de 1x1.

Tendrás que ejecutar esto por separado para cada capa. Entonces una vez para condados, una vez para lagos, etc...

0 votos

Esto parece ser exactamente lo que tenía en mente! Me gusta QGIS pero solo lo he estado usando durante 6 meses. No tenía idea de que esto estaba en QGIS.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X