TP GeoCMS
Ce support est dérivé de https://sist.pages.in2p3.fr/anf18-geocms/ et mis à disposition sous licence Attribution - Pas d’Utilisation Commerciale - Partage dans les Mêmes Conditions 4.0 International. Pour voir une copie de cette licence, visitez http://creativecommons.org/licenses/by-nc-sa/4.0/. |
Présentation
geoCMS est un visualiseur de données géo-référencées développé dans le cadre de l’infrastructure de données scientifiques indigeo (UMR LETG CNRS / OSU IUEM / ZABrI)
Il propose des fonctionnalités de découverte et de visualisation de données géographiques notamment spatio-temporelles. Il permet d’enrichir l’interrogation de ces données au moyen de templates et offre la possibilité de sauvegarder et de partager des contextes cartographiques.
Démonstration sur indigeo
Installation
Configurer la machine virtuelle
La machine virtuelle sist22-atelier-lubuntu est basée sur une distribution lubuntu 20.04.4 LTS.
Elle dispose des services geoserver 2.20.4, geonetwork 3.12.3 et managechart installés dans des containers docker ainsi que de l’application geocms installée à partir d’un script interactif.
Les redirections de ports suivantes ont déjà été configurées pour pouvoir communiquer avec votre machine virtuelle :
Nom | Port hôte | port invité |
ssh | localhost:3022 | 22 |
geocms | localhost:80 | 80 |
managechart | localhost:81 | 81 |
geoserver | localhost:8180 | 8180 |
geonetwork | localhost:8280 | 8280 |
Si elles n’existent pas, les configurer manuellement dans Configuration/Réseau/Avancé
Physiologie de geocms
┌──────────────┐ │ poste client │ ┌────►│ │◄─────────────┐ │ └──────────────┘ │ │ ▲ │ ▼ │ │ ┌────────────────┐ ▼ ▼ ┌────►│ nginx │ ┌──────────────┐ ┌─────────────┐ │ ┌─►│front web server│ │ geonetworkS │ │ geoserverS │ /app │ │ └────────────────┘ │ meta data │ │ w*s service │ ├── rails │ │ └──────────────┘ └─────────────┘ │ └── geocms │ │ ┌───────────────────┐ ▲ ▲ ▲ │ ├── app │ │ │┌───────────────────┐ │ │ │ │ ├── public ◄────────┘ │ ││┌───────────────────┐ │ │ │ │ │ ├── assets │ └││ unicorn rails app │◄────┘ │ │ │ │ └── uploads │ └│ geocms │◄───────────────┘ │ │ └── tmp │ └───────────────────┘ │ │ ├── pids │ ▲ ▲ ▲ ┌─────────────────┐ │ │ └── sockets ▼ │ │ │ │ Postgresql │ │ │ └── unicorn─socket◄────────┘ │ └────►│ local or remote │ │ └── node │ └─────────────────┘ │ └── screenshot─as─a─service │ ▲ │ │ │ │ ▼ ▼ │ ┌────────────────┐ ┌─────────────────────┐ │ │ redis server │◄──►│ sidekiq │ │ │ DB & msg broker│ │ (ruby delayed jobs) │ │ └────────────────┘ └─────────────────────┘ │ ┌──────────────────────┐ ▲ │ │ screenshot─service │ │ │ │ (web screenshot) │◄─────────────────────────────────┘ │ └──────────────────────┘ │ ▲ ┌─────────────────────────────┐ │ │ │ phantom js │◄─────────────┘ └───────────────►│ /usr/local/bin/phantomjsssl │ └─────────────────────────────┘
Crédits : Christophe Martin, Laboratoire Géosciences Océan
La page de rapport générée à l’issue de l’installation contient des détails sur les différentes briques logicielles de l’application et la nature de leurs interactions.
Script d’installation automatique
L’application geoCMS s’installe à l’aide d’un script gentiment fourni par Christophe Martin <christophe.martin@univ-brest.fr> Laboratoire Geo-Ocean, Plouzané,
Installation
L’application geoCMS a déjà été installée sur la machine virtuelle, merci de ne pas executer le script et de passer directement à l’étape Fin de l’installation, nous verrons en fin de TP comment il fonctionne.
Décompresser le fichier et l’exécuter en tant que root
:
sudo -s gunzip install-geocms.gz bash install-geocms
Ce script est interactif ! se laisser guider…
Pour une configuration parfaite, indiquer les informations suivantes pour les questions :
- Zone DNS de ce système :
localdomain
- Nom réseau non qualifié de ce système :
localhost
Plus tard à la question :
Supprimer cette instance de rvm et réinstaller ? (o/n) :
répondre « n »
application geocms déjà présente. Réinstaller ? (o/n) : n
répondre « n »
Fin de l’installation
Vérifiez que les services ont bien démarré et inspectez le rapport indiqué dans l’URL à la fin de l’installation.
- le rapport d’installation est disponible à cette adresse : http://localhost/uploads/rapport/2022-05-12T09:39:37_jTNqOTwyvBGlzjNu/index.html
- geoCMS est disponible à cette adresse : http://localhost
- geoserver est disponible à cette adresse : http://localhost:8081/geoserver
- geonetwork est disponible à cette adresse : http://localhost:8080/geonetwork
- managechart est disponible à cette adresse : http://localhost:81/
Configuration générale (admin)
Suivez le lien vers le backend http://localhost/backend et connectez vous avec l’utilisateur administrateur admin
et le mot de passe admin
Présentation du backend
Le backend est composé de 4 onglets :
- CONFIGURATION : réglage des préférences de l’instance, gestion des instances et des utilisateurs
- SOURCES : gestion et configuration des sources de données (flux WMS)
- PROJETS : gestion des contextes cartographiques et des dossiers projets
- COUCHES : gestion des catégories et de leur organisation (arborescence), gestion et configuration des couches d’informations
Préférences
Dans l’onglet CONFIGURATION, la page Préférences
permet de configurer les paramètres de l’instance.
- Longitude/Latitude/Zoom de la vue cartographique par défaut
- Crs : projection de l’instance (saisir : EPSG:3857)
- Host : adresse du serveur hôte de l’application (saisir : localhost)
- Prefix uri : point de montage de l’application (laisser vide)
- Geovisu url : url d’un visualiseur tiers supportant le standard WMC (Web Map Context) exemple sur http://portail.indigeo.fr (laisser vide)
- Screenshot url : url du serveur de screenshot pour les vignettes (http://localhost:3000)
- Nom de l’instance : nom affiché sur le bandeau
- Instance privée : force l’authentification pour l’accès au frontend
- Logo de l’instance : logo affiché sur le bandeau
Pour valider les modifications, cliquer sur Mise à jour
Instances
geoCMS permet de générer autant d’instances que nécessaire. Chaque instance est totalement indépendante des autres; c’est à dire qu’elle possède ses propres catégories, couches, sources, projets, utilisateurs. Un utilisateur peut cependant avoir des droits sur plusieurs instances.
Ajouter
une nouvelle instance.
- Nom de l’instance (modifiable par la suite)
- Sous Domaine : prefixe par lequel l’instance sera accessible (par exemple : http://bacasable.indigeo.fr, http://portail.indigeo.fr Attention ce prefixe n’est PAS MODIFIABLE, le choisir judicieusement)
- Instance privée : force l’authentification pour l’accès au frontend
Utilisateur : la création d’une instance nécessite obligatoirement la création d’un utilisateur administrateur de l’instance
L’instance créée est accessible à l’adresse http://{{domain}}.localhost.localdomain/
L’accès à une instance nécessitant une configuration du serveur web, elle n’est accessible dans le cadre de ce TP, que depuis la VM (invité), pas depuis la machine hôte
Se connecter au backend de l’instance avec l’utilisateur précédemment créé.
Pour ajouter des utilisateurs d’autres instances « Choisir un collaborateur » puis Ajouter
Pour la suite du TP, se deconnecter de l’instance et retourner dans la configuration de l’instance d’origine : http://localhost/backend
Utilisateurs
Cette page permet d’administrer les utilisateurs de l’application.
On distingue 4 type de rôles dans geoCMS : Administrateur, Administrateur de l’instance, Administrateur des données, Utilisateur.
Un utilisateur peut avoir plusieurs rôles, le tableau 1 montre les permissions de chacun des rôles sur tous les objets manipulables.
User | Instance | Préf. | Sources | Couches | Projets backend | Projets frontend | |
---|---|---|---|---|---|---|---|
non connecté* |
|||||||
non connecté² |
RO 1 | ||||||
user |
RW 2 | ||||||
admin_data |
RW | RW | RW | RW 2 | |||
admin_instance |
RW 3 | RW 3 | RW 2 | ||||
admin |
RW | RW | RW | RW 2 |
- RO : Lecture seule (Read Only)
- RW : Lecture et écriture (Read Write)
- 1 : projets public uniquement
- 2 : sur ses propres projets uniquement
- 3 : sur l’instance uniquement
- * : pour une instance privée
- ² : pour une instance publique
Créer un utilisateur de l’application
Créer un compte
et le configurer avec les paramètres suivants.
- Identifiant : user
- Email : user@ateliersist.fr
- Mot de passe : user
- Rôle : Utilisateur
Créer un administrateur de données
Créer un compte
et le configurer avec les paramètres suivants.
- Identifiant : admin_data
- Email : admin_data@ateliersist.fr
- Mot de passe : admin_data
- Rôle : Administrateur des données
Configuration d’une instance (admin_instance)
Se déconnecter puis se connecter au backend http://localhost/backend/ avec l’utilisateur administrateur d’instance admin_instance
Création d’une arborescence du catalogue (catégories)
Depuis l’onglet COUCHES, Ajouter une catégorie mère
puis lui donner un nom.
Vous pouvez immédiatement Créer une sous-catégorie
ou revenir à l’accueil en cliquant sur la maison ou sur l’onglet COUCHES.
Créer l’arborescence suivante
- Activités humaines
- Activités maritimes
- Occupation du sol
- Activités maritimes
- Imagerie
- Imagerie aérienne
- Imagerie aérienne
- Hydrographie
Vous pouvez modifier l’ordre des catégories avec les flèches ainsi qu’ajouter/modifier/supprimer des catégories avec les boutons correspondants.
Ajouter des sources de données
Depuis l’onglet SOURCES, Créer une nouvelle source de données
puis remplir les champs obligatoires:
- Nom : nom choisi pour identifier la source (apparaitra dans le frontend en tant que source pour chacune des couches)
- Wms : url du flux WMS, en général sans le « ? » ni les paramètres SERVICE, VERSION, REQUEST (ex : http://localhost:8081/geoserver/sist/wms)
- Ogc : url de l’interface web du serveur de données ou du site web de la source (apparaitra dans le frontend en tant que lien hypertexte pour la source) (ex : http://localhost:8081/geoserver)
- Source externe : choix de l’origine de la source (interne ou externe). La seule différence est de permettre, pour les sources interne, le téléchargement des données via une requête WFS depuis la couches dans le frontend. Décocher la case pour définir votre source en source interne
Les champs optionnels :
- Il est possible de forcer la version du service WMS (1.1.0 ou 1.3.0)
- Synchronisation : synchronise la source avec la catégorie sélectionnée (voir rubrique Importer des couches)
Les champs suivants ne sont pas implémentés actuellement :
- Wfs, Csw et Rest
Puis Créer
Importer des couches dans des catégories
- Cocher la ou les couche(s) à importer,
Sélectionner le type d’import parmis :
automatic
: teste si la donnée est raster puis construit une requête WCS pour le téléchargement, sinon bascule envector
vector
: pour les données vecteur uniquement, pas de test la requête WFS sera contruite à la volée, plus rapide.
- Sélectionner la ou les catégorie(s) de destination (maintenir la touche Ctrl pour sélectionner plusieurs catégories si nécessaire).
il est en effet possible d’affecter une couche à plusieurs catégories. Elle ne sera importée qu’une seule fois mais apparaitra dans différentes catégories.
Puis Importer
« L’import des couches (nom) initié à HH:MM:SS a réussi » s’affiche en vert en haut et en bas de la page.
Importer les 3 couches de la source dans les catégories idoines.
Fonctionnalité de synchronisation
Ajouter une source vers l’espace de travail ecla
du geoserver local
- WMS : http://localhost:8081/geoserver/ecla/wms
- OGC : http://localhost:8081/geoserver
- Cocher la case
Source externe
- Cocher la case
Synchronisation
- Sélectionner la catégorie
Hydrographie
Puis Créer
Par défaut la tâche de synchronisation est programmée toutes les nuits à 4h via crontab. Merci de régler votre reveil, le TP se poursuivra à 4h du mat’ ;-).
Pour le bon déroulement de la suite du TP merci d’importer manuellement les couches de la source ecla vers la catégorie Hydrographie.
Vous pouvez maintenant vous rendre dans le frontend puis retrouver les couches précédemment importées dans le catalogue.
- Ouvrir le catalogue en cliquant sur le bouton puis naviguer dans l’arborescence jusqu’à la couche recherchée.
- Sélectionner la couche en cliquant dessus (la case doit être cochée et la couche grisée) puis
Valider
ou fermer le catalogue avec la croixX
- Dans l’onglet
Couches
centrer sur la couche avec le bouton cible puis ouvrir les outils avec la roue dentée bleue. - Vérifier le lien vers les métadonnées et le téléchargement
- L’onglet
Légende
affiche la légende de la couche.
Configurer une couche
geoCMS permet de configurer les couches importées afin d’optimiser leur affichage et interrogation.
Titre, description et url metadata
Retour dans le backend. Depuis l’onglet COUCHES, ouvrir la catégorie « Occupation du sol » puis éditer la couche « Occupation du sol à Ouessant en 2008 »
- Titre : Titre de la couche (importé depuis le champ Titre de la source) -> Modifiable
- Nom et Source de données : références à la couche et à sa source -> NE PAS modifier…
- URL des métadonnées : Url vers la fiche de métadonnée (importé depuis le champ Liens vers les métadonnées de type TC/211 de la source)
- Description : Description succincte de la couche (importé depuis le champ Résumé de la source)
Zoom max, Service tuilé et Tuile unique
En visualisant la couche « Ortho Image méandre rivière Vx Habitant lieu dit Crash Zone » depuis le frontend on remarque qu’elle met du temps à s’afficher et que l’on ne peut pas zoomer suffisamment pour en apprécier sa haute résolution.
Retour dans le backend. Depuis l’onglet COUCHES, ouvrir la catégorie « Imagerie aérienne » puis éditer la couche « Ortho Image méandre rivière Vx Habitant lieu dit »Crash Zone« 2013 »
- Définir le Zoom max à 23 : permet de zoomer jusqu’au niveau 23 lorsque cette couche est affichée
- Cocher la case Service tuilé : force l’interrogation des tuiles (générées par GeoWebCache par exemple)
Puis Mettre à jour
Certaines modifications ne sont pas visibles immédiatement dû au cache du navigateur, pour éviter ce désagrément ouvrez une fenêtre de navigation privée (CTRL+MAJ+P dan Firefox).
Se rendre dans le frontend, afficher la couche puis apprécier les modifications.
La case Tuile unique permet de forcer le chargement de la couche en une unique tuile (plus long mais utile pour résoudre des problèmes d’affichage liés aux styles SLD)
Interrogeable
Certaines couches n’ont pas toujours d’intérêt à être interrogées (fonds de plan, ortho).
Par exemple, depuis le frontend, afficher les couches « Lacs DCE » puis « Températures de surface » depuis la catégorie « Hydrographie ».
Zoomer sur la couche « Températures de surface ».
Remarquer qu’un clique dans l’emprise du lac propose le choix de la couche à interroger.
Dans cet exemple, nous ne souhaitons pas proposer l’interrogation de la couche de température mais uniquement celle du lac afin de pouvoir afficher plus tard un contenu associé (graphique)
Retour dans le backend. Depuis l’onglet COUCHES, Rechercher Températures depuis le champ de recherche puis éditer la couche « Températures de surface ».
Constater que certains champs ne sont pas modifiables. En effet cette couche étant synchronisée, toute modification de champs provenant du service WMS serait écrasée à la prochaine synchronisation.
Retourner dans l’édition de la source ecla pour désactiver la synchronisation puis rechercher à nouveau la couche « Températures de surface » pour l’éditer.
- Décocher la case Interrogeable puis
Mettre à jour
Se rendre dans le frontend, afficher les couches puis apprécier les modifications.
Type d’import et URL de téléchargement
Il est possible de définir une URL de téléchargement personnalisée (vers un FTP par exemple) lorsque la donnée est trop volumineuse pour être servie par un webservice WFS/WCS.
à noter que dans le cas d’un raster (type d’import « automatic ») cette URL est déjà remplie avec une requête WCS
Template de visualisation pour l’info-bulle
Il est possible de personnaliser le contenu et la forme des informations de l’info-bulle déclenchée à l’interrogation d’une couche.
Editer la couche « Présence/Absence quotidienne des activités maritimes encadrées en rade de Brest en 2009 ».
- Dans le champ template
Saisir du texte, le mettre en forme, utiliser les valeurs des attributs de la couche avec la notation {{attribut}}
Ex :
Type d’activité : {{ACT}}
Source : {{SOURCE}}
Commentaire : {{UST_COMM}}
Date: {{DATE_}}
Le bouton « catalogue » permet de lister les attributs de la couche et de les insérer.
Se rendre dans le frontend, afficher les couches puis apprécier les modifications
Données spatio-temporelle
La couche « Présence/Absence quotidienne des activités maritimes encadrées en rade de Brest en 2009 » présente la particularité d’être spatio-temporelle.
geoCMS interprète automatiquement cette capacité en générant un slider permettant de naviguer dans la dimension temporelle de la couche. Un symbole d’horloge est également ajouté devant le titre de la couche afin de l’identifier dans le catalogue.
Utilisation (user)
Se déconnecter puis se connecter avec l’utilisateur user
créé précédemment sur le backend
Rechercher/Visualiser
Lorsqu’il y a beaucoup de couches il peut être fastidieux de parcourir le catalogue pour les trouver. Le moteur de recherche permet d’interroger rapidement le catalogue.
- Dans le champ de recherche saisir « Ouessant » puis entrée, « Brest » puis entrée…
Créer une carte
Depuis le menu Projets
en haut à droite, accéder à la page des projets puis créer un + Nouveau projet
- Ajouter toutes les couches de la catégorie Hydrographie puis zoomer sur la couche Températures de surface
- Modifier l’ordre des couches en les sélectionnant par leur poignée à gauche puis en les déplaçant
- Modifier l’opacité des couches à partir de leur outils
- Décocher les couches qui ne doivent pas être affichées par défaut
Depuis l’onglet Carte
basculer sur le sous-onglet Configuration
- Nom : Saisir un titre pour la carte
- Description : Saisir une description de la carte
- Dossier : Choisir le dossier
user
- Récupérer les coordonnées et le niveau de zoom de la carte en cliquant sur la marque bleue
Puis Sauvegarder
Retourner dans le menu Projets
puis dans le dossier user
et retrouver la carte sauvegardée.
Réutilisation de la carte
La carte ainsi créée est partageable et réutilisable.
pour récupérer les liens de partage et de réutilisation web, cliquer sur Editer
puis sur l’onglet « Carte »
- Lien direct : url de partage sans accès au catalogue et avec onglets cachés par défaut. Possibilité d’afficher par défaut l’onglet de son choix (projet /share#project couches : /share#layers ou légende : /share#legend)
- HTML : code permettant d’intégrer la carte dans un site web, un blog, une publication en ligne. Les fonctionnalités de choix de l’onglet sont conservée en modifiant l’URL de l’attribut src= de la balise iframe.
Gestion des projets (admin_data)
Se déconnecter puis se connecter avec l’utilisateur admin_data
créé précédemment.
créer et administrer des dossier projets
Depuis le backend, se rendre sur l’onglet PROJETS puis Ajouter un répertoire
- Nom : Nom du répertoire
- Public : Un répertoire public est visible par tous (non connecté également)
- Ouvrir le répertoire user puis éditer la carte précédemment créée.
- Choisir le Dossier précédemment créé
puis Mettre à jour
Ouvrir une fenêtre de navigation privée avec le navigateur puis se rendre sur l’instance : http://localhost puis dans le menu Projets
pour constater les modifications.
Définir une carte par défaut (carte d’accueil)
Il est possible de définir une carte d’accueil de l’instance qui sera chargée par défaut à l’ouverture.
Revenir dans la fenêtre connectée avec l’utilisateur admin_data
- cocher la case Par défaut puis
Mettre à jour
Enfin se déconnecter puis apprécier le rendu final de votre travail ;-)