Mon organisation recueille de nombreuses données de surveillance environnementale (débit des cours d'eau, chimie de l'eau, etc.) dont la plupart sont actuellement stockées dans Excel. Je voudrais tout mettre dans une base de données - probablement PostGIS - mais j'ai besoin que les données soient accessibles aux personnes sans connaissance des principes de base de données (pas de SQL ou quelque chose comme ça).
Je voudrais avoir une sorte de front-end simple pour ma base de données où l'utilisateur sélectionne une station de surveillance d'intérêt, un type variable (par exemple la concentration de nitrate dans le flux) et un intervalle de temps. La base de données retournerait alors les données demandées au format csv, que l'utilisateur pourrait télécharger sur son ordinateur. Dans un monde idéal, le front-end afficherait une carte cliquable de toutes les stations de surveillance, mais si c'est plus facile, une liste déroulante des sites disponibles serait bien pour commencer. Je suppose que ce front-end serait probablement un site Web, mais ce n'est pas obligatoire.
Est-ce difficile, s'il vous plaît, et quelles sont mes différentes options? Je ne suis en aucun cas un expert en bases de données, mais j'ai une solide expérience dans Desktop GIS et je suis heureux d'écrire des scripts Python simples et de jouer avec les géodatabases PostGIS, SpatiaLite et ESRI Personal. Je n'ai jamais fait de développement Web ni de SIG Web, mais j'ai hâte d'apprendre.
J'ai passé une partie d'hier à explorer certains des excellents tutoriels OpenGeo . Cette approche semble prometteuse, et au moins je peux maintenant voir comment afficher mes données sur un site Web. Ce qui est moins évident pour moi, c'est comment je laisse l'utilisateur interroger la base de données et obtenir des résultats.
Ma question: à quel type de structure logicielle dois-je penser pour un projet comme celui-ci? par exemple
PostGIS + GeoServer + Something else?
Quelles autres options sont disponibles que je devrais rechercher?
Une solution simple mais fonctionnelle serait préférable dans un premier temps: si je peux monter un prototype de base je peux l'utiliser pour justifier de passer plus de temps à apprendre à faire les choses «correctement». L'open source est également une exigence car je n'ai pas de budget pour cela jusqu'à ce que je puisse prouver certains avantages.
Merci beaucoup!
Réponses:
Si vous connaissez déjà Python et SQL, il ne serait pas trop difficile de créer un site Web à l'aide d'un cadre Web Python. Deux idées simples - cherry.py et web.py - viennent à l'esprit. Je pense qu'apprendre à contourner le mappeur relationnel d'objets de Django pourrait être plus de travail que cela ne vaut.
Python possède une bibliothèque appelée psycopg2 (http://initd.org/psycopg/, et un tutoriel: http://wiki.postgresql.org/wiki/Psycopg2_Tutorial ) qui vous permet d'exécuter facilement des requêtes sur PostGRESQL / PostGIS. Il dispose également d'un module CSV (http://docs.python.org/library/csv.html) qui rendra la création de votre CSV à partir de ladite requête un jeu d'enfant.
Comme d'autres l'ont dit, la création d'une carte à l'extrémité avant ajoute une grande complexité. Vous aurez besoin de quelque chose comme OpenLayers pour afficher les cartes, et quelque chose comme MapServer ou GeoServer pour créer des images de carte à partir de votre base de données (ou d'autres sources de données). Ce serait probablement mieux comme deuxième étape.
Pour l'instant, "tout" il semble que vous ayez besoin d'une seule page Web: un formulaire qui vous permet de sélectionner les paramètres de requête que vous souhaitez. Ils frappent "soumettre", les paramètres de requête sont envoyés au serveur (Apache serait un bon choix), qui exécute ensuite votre script, qui interroge la base de données, crée un fichier CSV approprié et le renvoie au navigateur. Facile comme py;)
la source
GeoDjango
Il est assez facile à configurer et offre des fonctionnalités de base. C'est Python, donc au moins vous connaissez le langage. Il peut être exagéré pour vos besoins. Mais, si jamais vous souhaitez développer le site, vous disposez d'un cadre mature sur lequel vous pouvez construire.
la source
Si vous ne voulez pas / n'avez pas besoin de créer une carte. Tout ce dont vous avez besoin est un serveur Web et un langage de programmation (je préfère Apache car il est facile à utiliser et à configurer, mais il existe d'autres options), puis Postgres avec PostGIS ou une autre base de données.
Si vos fichiers Excel sont bien formatés, l'importation des données dans la base de données devrait être simple. Vous pouvez écrire un script qui peut générer les instructions INSERT. Les requêtes que vous décrivez semblent également gérables.
Si / quand vous voulez faire la partie cartographie, Apache, GeoServer et OpenLayers seraient une solution simple et gratuite. GeoServer (comme vous le savez) peut facilement utiliser PostGIS for WMS ou un autre format de sortie. Tout ce que vous avez à faire est d'ajouter un magasin qui se connecte à PostGIS, puis d'ajouter des couches à partir des tables dans PostGIS.
D'autres outils de cartographie gratuits que vous pouvez consulter sont Mapserver et MapGuide. MapGuide Open Source fait des trucs plutôt sympas mais c'est plus compliqué et sa documentation est un peu en retard.
MySQL a également une extension spatiale, mais il n'a pas autant de caractéristiques et de fonctions spatiales que PostGIS.
Si vous êtes familier avec le python, je regarderais GeoDjango ... Je ne sais pas grand-chose personnellement mais j'ai entendu de bonnes choses
la source
Vous pouvez trouver un aperçu des problèmes de conception et de développement d'applications de cartographie Web, en plus du code source entièrement documenté pour une application de cartographie Web environnementale basée sur Google Maps et la base de données spatio-temporelle PostgreSQL / PostGIS, dans ma dissertation MSc en informatique relativement récente: " Conception et développement d'un prototype abordant la gestion, l'analyse et la livraison de données vectorielles environnementales spatio-temporelles en utilisant la technologie Open Source. Cadre général et étude de cas axés sur la gestion des eaux souterraines dans une zone côtière "
La dissertation peut être téléchargée sur http://www.giscience.it/it/pdf/DissertationMscComputerScience_CrestazEzio_Supervisors.pdf
la source