8 votos

¿Generar mapas de calor estáticos en el servidor?

He estado buscando una manera de generar mapas estáticos del lado del servidor usando Python (o cualquier otro lenguaje, no importa).

Puedo crear los mapas que quiero con QGIS (y tienen muy buena pinta), pero no sé cómo automatizar el proceso.

Lo que quiero es;

  • Crear un estilo de mapa en QGIS y exportarlo a algún tipo de XML (hay un plugin llamado quantumnik pero creo que ya no está disponible)

  • Ejecutar una consulta sobre PostGIS en mi script de Python

  • Crear un shapefile o sólo un PNG utilizando el conjunto de datos devuelto por la consulta y el estilo XML definidos anteriormente.

  • Repetir todo el proceso cada noche con diferentes conjuntos de datos.

He jugado con Mapnik pero aún no he conseguido generar un mapa térmico ( https://github.com/stellaeof/mapnik-rasterizers )

He leído sobre QGIS server, GeoServer, MapServer. Pero ahora estoy confundido ya que hay un montón de herramientas alrededor.

  1. ¿Es Mapnik la dirección correcta o hay herramientas mejores para ese tipo de proceso?

  2. ¿O hay alguna forma de utilizar QGIS mediante programación en un servidor?

EDITAR:

Después de probar un montón de cosas diferentes, he decidido utilizar GeoServer. Lo he instalado usando una imagen de contenedor docker: https://github.com/kartoza/docker-geoserver Puede generar png, gif, jpeg, y también puede servir capas WMS que se pueden integrar con Leafletjs con bastante facilidad.

El único problema es que estoy tratando de diseñar mis mapas con QGIS primero y luego exportarlos a GeoServer utilizando "Geoserver Explorer" plugin y no funciona bien para las etiquetas y algunas otras características. Supongo que no hay una manera fácil de generar SLD en QGIS. Sigo arreglando las configuraciones SLD a mano después de exportarlas a GeoServer. Pero supongo que esta sigue siendo la mejor solución.

Seguiría siendo genial si puedes sugerir mejores plugins o formas de integrar QGIS y GeoServer o cualquier otro editor SLD.

1voto

IT Team Puntos 88

Sí, es complicado, en parte porque hay muchas piezas móviles en el proceso. He hecho algo similar usando Python y Mapnik. A continuación se muestra el procedimiento paso a paso:

1) Un script en python descarga los datos del servidor (datos dispersos de la estación meteorológica en este caso). 2) Un script bash ejecuta gdal_grid que interpola los datos y escribe un archivo GeoTIFF. 3) Un script bash ejecuta generate_tiles.py usando un archivo predefinido de estilo mapnik y el GeoTIFF para crear todos los tiles. 4) Una aplicación web utilizando OpenLayers + TMS capa de consumir los azulejos.

Espero que te ayude. Saludos

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