Coder Social home page Coder Social logo

pnx-si / geonature-atlas Goto Github PK

View Code? Open in Web Editor NEW
44.0 23.0 45.0 40.49 MB

Application WEB permettant de générer des fiches espèces publiques à partir d'observations faune/flore

License: GNU General Public License v3.0

Python 26.59% HTML 33.12% JavaScript 14.46% Shell 10.93% CSS 10.93% PLpgSQL 3.53% Dockerfile 0.45%
python flask postgresql postgis leaflet nature national-parks fauna flora bluehats

geonature-atlas's Introduction

GeoNature-atlas

Atlas WEB dynamique Faune-Flore basé sur les données présentes dans la synthèse de GeoNature.

Utilisé pour Biodiv'Ecrins, l'atlas de faune et de la flore du Parc national des Ecrins (http://biodiversite.ecrins-parcnational.fr).

Il permet de générer dynamiquement des fiches espèces avec des données calculées automatiquement (cartes de répartition, répartition altitudinale et phénologique, communes, secteurs, observateurs...) ainsi que des données saisies pour chaque espèce (photos, description...).

L'outil a été développé de manière générique pour pouvoir être déployé sur d'autres BDD que GeoNature (SERENA, SICEN, INPN, fichier CSV, etc).

Interrogez vos observations naturalistes, croisez-les avec TAXREF, publiez votre atlas en ligne dynamique

Ou déployez l'ensemble complet d'applications de gestion de données naturalistes (UsersHub, TaxHub, GeoNature)

Documentation d'installation : https://github.com/PnX-SI/GeoNature-atlas/blob/master/docs/installation.rst

Présentation générale : https://github.com/PnX-SI/GeoNature-atlas/blob/master/docs/2016-09-GeoNature-atlas-PRESENTATION.pdf

Rapport de stage (Théo Lechemia) : https://github.com/PnX-SI/GeoNature-atlas/blob/master/docs/2016-09-30-rapport_stage_Theo-Lechemia.pdf

Soutenance de stage (Théo Lechemia) : https://github.com/PnX-SI/GeoNature-atlas/blob/master/docs/2016-09-soutenance-Theo-Lechemia.pdf

Exemples d'atlas en ligne utilisant GeoNature-atlas :

Technologies

  • Langages : Python, HTML, JS, CSS
  • BDD : PostgreSQL, PostGIS
  • Serveur : Debian ou Ubuntu
  • Framework Python : Flask
  • Framework JS : jQuery
  • Framework carto : Leaflet
  • Serveur carto : Aucun
  • Fonds rasters : Geoportail, OpenStreetMap, Google Maps, WMS...

Généricité

L'API de GeoNature-atlas se sert directement dans des vues. Ainsi chacun peut personnaliser ses vues en fonction des besoins et des différences dans les tables.

L'ensemble des vues sont regroupées dans un schéma spécifique « atlas », ce qui laisse la possibilité de les remplir avec autre chose que GeoNature.

Auteurs

  • Théo Lechemia
  • Gil Deluermoz
  • Camille Monchicourt
  • Amandine Sahl

Licence

  • OpenSource - GPL V3
  • Copyright (c) 2016-2022 - Parc National des Écrins

image

geonature-atlas's People

Contributors

adrien-pajot avatar amandine-sahl avatar andriacap avatar bouttier avatar camillemonchicourt avatar corentinlange avatar dependabot[bot] avatar gildeluermoz avatar gustry avatar jbdesbas avatar joelclems avatar jpm-cbna avatar lpofredc avatar mathildeleclerc avatar mvergez avatar rnf-si avatar sig-pnrnm avatar splendens avatar theolechemia avatar xavyeah39 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

geonature-atlas's Issues

Install_DB et généricité

  • Ne pas créer les schemas meta et utilisateurs
  • Ne pas importer COMMUNE si GeoNature OU si IMPORT_SHP_COMMUNE = False ?
  • Ajouter paramètre SOURCE_GEONATURE (True ou False) pour ne pas crééer les FWD, les tables GeoNature, les GRANT
  • Clarifier settings.ini et commentaires, notamment si on n'utilise pas GeoNature
  • Nommer champs geom ou the_geom
  • current_date ?
  • Ne pas dézipper les ZIP des mailles métropoles si metropole = False
  • Si metropole = False, importer les mailles dans ``t_mailles_territoireet nont_mailles_custom` car sinon la vue vm_observations_maille ne fonctionnera pas ?
  • Encodage LATIN1 ?
  • N'importer en BDD que la taille de maille choisie. Supprimer cette table après la creation de t_mailles_territoire pour alléger la BDD
  • data/mailles.sql à renommer data/observations_mailles.sql
  • Ne pas donner des droits et MDP de GeoNature dans GeoNature-atlas ?

FICHE ESPECE - Agglomeration sous-espèces et médias

Quand on est sur une fiche ESPECE qui a des obs faites au niveau de ses SOUS-ESPECES (ou variétés...), les observations sont agglomérées ainsi que les photos.
Mais actuellement, il liste tous les medias dans la galerie photo, pas seulement ceux de type PHOTO.

Utilisation de vues non matérialisées

Bonjour,
Savez-vous s'il est possible d'utiliser GeoNature-atlas avec des vues non matérialisés (même si du coup, cela est moins intéressant)?
En effet, je travaille avec Postgresql 9.1... (désolé ^^)

LISTE TAXONS - RECURSIVITE - afficher la taxonomie supra

Comme dans une fiche espèce, lorsque l'on est sur la liste des taxons d'un genre ou d'une famille par exemple, il faudrait pouvoir cliquer sur un des niveaux taxonomiques supérieurs pour avoir la liste des taxons observés pour ce niveau. Actuellement pour faire cela, il faut repasser par la fiche espèce.

Fiche espece et affichage des mailles - Optimisation

Actuellement on se base sur vm_observations_maille pour cela mais du coup on renvoie autant d'objets qu'il y a d'observations. Du coup les mailles peuvent être dupliqués de nombreuses fois et cela alourdit le JSON. On pourrait renvoyer uniquement le nombre de mailles observées en se basant sur une vm_taxons_mailles.

Mais cela casserait le fonctionnement du slider pour filtrer les observations par année.

Regrouper la customisation

Pour faciliter la mise à jour de l'application, il est préférable de regrouper tous les fichiers de customisation pour pouvoir les rapatrier simplement dans la nouvelle installation :

  • Fichier de conf de surcouche
  • CSS de surcouches
  • Templates customisés
  • Fichiers de langue PO ?
  • Images spécifiques

Recherche taxon - Affichage des synonymes

Désormais on ne cherche plus sur une liste de taxons de référence, mais sur la liste des taxons avec tous leurs synonymes :
f7edb7a
b127ef2

Tous les synonymes renvoient à la fiche détail du taxon de référence.

Mais du coup c'est un peu perturbant :

atlas-search

Une première piste serait d'inverser nom latin et nom français dans la liste pour réduire l'impression de doublons dans le liste de recherche.

Ensuite il faudrait aussi afficher les synonymes sur chaque fiche espèce comme ça les visiteurs comprendraient mieux qu'il n'y a qu'une fiche de référence pour tous les synonymes.

MAP - n'appeler qu'un seul fond

Lorsque l'on zoom on voit que l'appli charge le fond OSM en arrière plan. Il ne faut afficher qu'un seul fond pour accélérer le chargement des tuiles.

FICHE TAXON - RECURSIVITE - afficher la liste des taxons infra

Lorsque l'on choisi d'afficher sous forme d'une fiche espèce, un genre par exemple, il faudrait voir la liste des taxons observés appartenant à ce genre (avec nombres d'obs pour chacune si possible). Idem pour la fiche d'une espèce possédant plusieurs sous espèces observées.

FICHE TAXON - nbre d'observations

Remplacer : Nombre d'observation sur le parc: n
par
n observation(s)

D'autre part il y a une incohérence entre le nbre d'obs en haut de la fiche et le résultat dans le slider (même si on affiche toutes les années). Test réalisé avec "Boloria graeca"

Après avoir diagnostiquer la source de l'incohérence, se poser la question : faut-il conserver l'information au 2 endroits ?

Installation : adaptation de atlas.sql ou installation de Taxhub?

Ne trouvant pas directement comment installer TaxHub (pas trouvé de doc d'install), je me suis dis que j'utiliserai directement les tables de taxref que j'ai en base.

Cependant, dans le fichier data/atlas.sql, la requête est SELECT * FROM taxonomie.taxref;

D'où deux questions :

  • Existe-t-il une doc pour installer TaxHub?
  • Sinon, quels sont les champs nécessaire pour construire atlas.vm_taxref?

Système de configuration

Prévoir dès le début un maximum d'éléments en paramètres.
Quelques exemples :

  • Connexion à la BDD
  • Nom des vues dans la BDD
  • Étendue territoire (ou centre du territoire)
  • Zoom par défaut
  • Zoom min et max
  • Affichage des différents modules (sur la page d'accueil et sur les fiches détail)
  • Nom de l'appli
  • Nom de la structure
  • Logo de l'appli
  • Favicon
  • Filtres
  • Fonds carto
  • Surcouches de la carto (avec mbtiles ou Geojson surchargés)
  • ...

Idéalement, l'application disposera d'un fichier de configuration avec une valeur par défaut pour tous les paramètres et ceux-ci pourront être surcouchés (override) par un fichier spécifique à l'installation.
Les paramètres non surcouchés utiliseront la valeur par défaut.
Ce fonctionnement simplifie grandement la mise à jour de l'appli et l'ajout de nouveaux paramètres.

Liste générique des taxons

Créer une première page listant des taxons avec un critère de filtre (une commune, un groupe, une classe, une famille...) passé en paramètre.

Trier par défaut par nombre d'observation.
Pouvoir trier sur les autres colonnes.
Page paginée.

Afficher :

  • photo (ou picto du groupe si on n'a pas de photo de l'espèce)
  • nom français et scientifique
  • nombre d'observations correspondant au critère de filtre
  • dernière observation ?
  • espèce protégée ?
  • espèce patrimoniale ?
  • Lien vers la fiche de l'espèce

Exemple :
https://inpn.mnhn.fr/collTerr/commune/05061/tab/especes

Medias - Chemins ou URL

La vm_medias renvoit soit une URL soit un chemin, selon que le média est local ou distant.

Selon la manière de saisir, TaxHub renvoie bien null pour le champ vide, parfois non (si le curseur a été placé dans la champs lors de la saisie).

Cela pose des soucis dans l'atlas qui sait actuellement uniquement détecter les champs ayant null comme valeur mais pas les champs vides. En effet ceux-ci ne sont pas égal à '' mais à ' '.

Du coup pour contourner une solution temporaire a été mise en place (fb47a37) :
Comme le champs chemin n'est jamais égal à "NULL", je vérifie simplement si le premier caractère que renvoie ce champs est égal à "s" (le chemin est actuellement toujours '/static/medias').
Si c'est le cas, je renvoie le champs chemin, sinon je renvoie le champs URL.

Mais cela n'est pas pérenne, le chemin pouvant varier dans d'autres contextes.

Ce problème de BDD qui renvoie des longs espaces même quand les champs sont renseignés est à creuser globalement.

Récursivité taxonomie ?

Voir les développements de l'API dans le cadre du stage au CEN LR pour mettre en place un atlas basé sur les données présentes dans SiCen :

Précisions @mathieubossaert :

Pour faire court, nous sommes partis du postulat de départ que toutes les données d'observation stockées dans SiCen sont rattachées à un référentiel taxonomique, qui a une structure arborescente.

Nous disposons dans nos base de données des outils pour interroger et explorer ce type de structure de données (récursivité). Ainsi, en tout nœud du référentiel, nous pouvons faire la synthèse sur l'ensemble des fils du nœud, sans connaitre a priori la profondeur de l'arbre.

Et donc afficher une page de synthèse pour n'importe quel taxon :

Fichiers "exemple" pour tester l'installation

Bonjour,

J'ai testé l'installation avec les données présentes dans le dossier data/ref en changeant le nom des fichiers :

mv /home/MONUSER/atlas/data/ref/communes.shp.sample /home/MONUSER/atlas/data/ref/mescommunes.shp
mv /home/MONUSER/atlas/data/ref/emprise_territoire.sample.shp /home/MONUSER/atlas/data/ref/emprise_territoire.shp

et, effectivement, ça ne fonctionne pas :
Unable to open datasource XXX with the following drivers.
Les fichiers ne sont pas complet.

Ça pourrait être top, pour tester l'installation, d'avoir un jeu test clé en main et prévoir le fichier de config sur ce jeu

Source librairie Leaflet Markercluster ?

Je me demande si il faut la prendre directement chez MapBox comme actuellement https://github.com/PnEcrins/GeoNature-atlas/blob/master/templates/ficheEspece.html#L35-L37
Ou si il faut prendre directement le plugin chez Leaflet - https://github.com/Leaflet/Leaflet.markercluster

C'est peut-être plus sur de l'embarquer comme dans le projet du PnC - https://github.com/PnCevennes/projet_suivi/tree/master/web/js/lib

Ils embarquent le JS et le CSS - https://github.com/PnCevennes/projet_suivi/blob/master/web/suivi.html#L18-L34

Ajouter un picto par groupe

Pour mieux identifier les espèces dans les listes, éventuellement les cartes ainsi que les fiches espèces.

Pouvoir limiter l'atlas à un règne ou groupe

Cela se gérera notamment au niveau de la vue qui alimente l'atlas mais pourra avoir des répercussions sur l'interface, les filtres etc...
Pour les filtres par exemple, il faudra d'autant plus qu'ils soient génériques en se basant sur les données retournées par la vue (par exemple si la vue ne retourne que des données du règne Flore, alors ne pas afficher le filtre permettant de n'afficher que le règne Faune, idem pour les groupes...). Ou en se basant sur un paramètre listant les valeurs disponibles.

Cartes des OBS - Point ou Maille

Selon les structures, il n'est pas souhaité d'afficher les obs sous forme de point.

  • Ajouter un paramètre pour afficher les points ou les agglomérations par maille
  • Taille des mailles paramétrables ?
  • Affichage dépendant du niveau de zoom ?
  • Paramètre du niveau de zoom max ?

Petite erreur dans la doc d'installation - vX.Y.Z.zip

Bonjour!
C'est pas grand chose, mais j'ai remarqué que les lignes de commandes concernant la récupération la dernière version (X.Y.Z), par rapport à la nomenclature de vos release, il manque un v :

wget https://github.com/PnEcrins/GeoNature-atlas/archive/vX.Y.Z.zip
unzip vX.Y.Z.zip

Voilou
Test de l'installation en cours
Bonne journée

Galerie photo - Ajouter un lien vers la fiche espece

Différents tests n'ont pas fonctionné :

  • Ajouter un lien sur le bloc initial car c'est déjà un lien vers la lightbox
  • Ajouter le lien dans la légende car elle utilise le title de l'image donc on ne peut pas y coller du HTML

Autre piste :

  • Ajouter un lien dans la lightbox, au survol de la photo mais cela nécessite de toucher à la librairie

Ne pas couper les mailles

Les mailles en bordure du territoire ne devraient pas être découpées, une maille doit toujours rester complète.
Donc prendre toutes les mailles dans le territoire et intersectes par le territoire mais ne pas couper celles en bordure

Champs pour chaque taxon

Infos calculées automatiquement pour chaque espèce :

  • Nom + Taxonomie + Liens INPN
  • Carte de répartition des observations (navigable avec affichage par maille quand on visualise l'ensemble du territoire puis bascule sur les observations sous forme de points clusterisés à partir d'un certain zoom)
  • Répartitions altitudinale
  • Répartitions communales
  • Répartitions par massif/secteur/unité géographique
  • Périodes d’observation (phénologie)
  • Statuts
  • Observateurs

Infos saisies sur chaque espèce (dans TaxHub) :

  • Description
  • Commentaire libre agent
  • Répartition / Distribution (régions)
  • Habitats/Milieux (liste prédéfinie)
  • Galerie photos
  • Autres médias (audio, video)
  • Liens vers article, PDF...

Classe d'altitude - Créer une BIB

Créer une table des classes d'altitude, comme ça il est simple pour chacun de personnaliser ou rajouter des classes.
La VM boucle sur cette bib pour chaque taxon.

Nombre d'obs et récursivité

On utilise désormais le champs calculé nb_obs dans atlas.vm_taxons pour éviter de calculer cette info à la volée.
Cependant ce champs ne prend pas (à priori) en compte la récursivité, du coup si le taxon a des observations à un niveau inférieur, elles ne seront pas prises en compte dans le calcul global.
Par contre sur la fiche espèce, c'est bien la somme des obs qui est calculée et affichée ?

FICHE TAXON - cluster - seule une popup sur 2 fonctionne

pour tester, choisir Parnassius apollo, zoomer sur le vallon du Fournel. Au fond du vallon, il y a 2 observations sur le même point sur la cote 2000 sous le lieu dit le "Queyrellet". Si on clique sur le cluster, les 2 obs s'éclatent en 2 points. Seul un des 2 points peut afficher la popup.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.