Générer des cartes de chaleur statiques côté serveur?


8

J'ai cherché un moyen de générer des cartes statiques côté serveur en utilisant Python (ou tout autre langage, peu importe).

Je peux créer les cartes que je veux avec QGIS (et elles sont vraiment superbes) mais je ne sais pas comment automatiser le processus.

Ce que je veux, c'est;

  • Créer un style de carte dans QGIS et l'exporter vers une sorte de XML (il y a un plugin nommé quantumnik mais il n'est plus disponible je suppose)

  • Exécuter une requête sur PostGIS dans mon script Python

  • Création d'un fichier de formes ou uniquement d'un PNG à l'aide de l'ensemble de données renvoyé par la requête et le style XML définis ci-dessus.
  • Répétition de l'ensemble du processus chaque nuit avec différents jeux de données.

J'ai joué avec Mapnik mais je n'ai pas encore réussi à générer une carte thermique ( https://github.com/stellaeof/mapnik-rasterizers )

J'ai lu sur le serveur QGIS, GeoServer, MapServer. Mais maintenant je suis confus car il y a beaucoup d'outils autour.

  1. Mapnik est-il la bonne direction ou existe-t-il de meilleurs outils pour ce genre de processus?

  2. Ou existe-t-il un moyen d'utiliser QGIS par programme sur un serveur?

ÉDITER:

Après avoir essayé beaucoup de choses différentes, j'ai décidé d'utiliser GeoServer. Je l'ai installé en utilisant l'image du conteneur Docker: https://github.com/kartoza/docker-geoserver Il peut générer des png, gif, jpeg et peut également servir des couches WMS qui peuvent être intégrées assez facilement à Leafletjs.

Le seul problème est que j'essaie de concevoir mes cartes avec QGIS d'abord, puis de les exporter vers GeoServer en utilisant le plugin "Geoserver Explorer" et cela ne fonctionne pas bien pour les étiquettes et certaines autres fonctionnalités. Il n'y a pas de moyen facile de générer SLD dans QGIS, je suppose. Je continue de corriger les configurations SLD à la main après les avoir exportées vers GeoServer. Mais c'est toujours la meilleure solution, je suppose.

Ce serait toujours bien si vous pouviez suggérer de meilleurs plugins ou des façons d'intégrer QGIS et GeoServer ou tout autre éditeur SLD.


D'après une expérience personnelle douloureuse, j'utilise le processus exact que vous décrivez (création de SLD dans QGIS, puis modification manuelle pour s'adapter au géoserveur) sur une base presque hebdomadaire. Géré pour automatiser une partie de la correction via des scripts sur le géoserveur, mais pas idéal.
Phil G

Il y a SLDEditor github.com/robward-scisys/sldeditor/wiki/userguide ou les deux QGIS et GeoServer accepteront des contributions ou de l'argent pour résoudre les problèmes s'ils vous intéressent
Ian Turton

Réponses:


1

Oui, c'est compliqué, et en partie à cause du nombre de pièces en mouvement dans le processus. J'ai fait quelque chose de similaire en utilisant Python et Mapnik. Voici la procédure étape par étape:

1) Un script python télécharge les données depuis le serveur (données de stations météo dispersées dans ce cas). 2) Un script bash exécute gdal_grid qui interpole les données et écrit un fichier GeoTIFF. 3) Un script bash exécute generate_tiles.py en utilisant un fichier de style mapnik prédéfini et GeoTIFF pour créer toutes les tuiles. 4) Une application Web utilisant la couche OpenLayers + TMS consomme ces tuiles.

J'espère que cela aide. À votre santé

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.