TP GeoCMS
Ce support est 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
Les redirections de ports suivantes ont déjà été configurées pour pouvoir communiquer avec votre machine virtuelle :
ssh | localhost:3022 | 22 |
http | localhost:80 | 80 |
geoserver | localhost:8180 | 8180 |
geonetwork | localhost:8280 | 8280 |
Si elles n’existent pas, les configurer manuellement dans Configuration/Réseau/Avancé ou avec les commandes suivantes :
VBoxManage modifyvm "ANFSIST18_geocms" --natpf1 "ssh,tcp,,3022,,22" VBoxManage modifyvm "ANFSIST18_geocms" --natpf1 "http,tcp,,80,,80" VBoxManage modifyvm "ANFSIST18_geocms" --natpf1 "geoserver,tcp,,8180,,8180" VBoxManage modifyvm "ANFSIST18_geocms" --natpf1 "geonetwork,tcp,,8280,,8280"
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
Fourni par Christophe Martin <christophe.martin@univ-brest.fr> Laboratoire Géosciences Océans, Plouzané,
Installation
Le script a déjà été installé sur la machine virtuelle, dans /root/
.
Ce script est une contribution de Christophe Martin. Il souhaite qu’on lui laisse un mot sur sa page web : https://perso-sdt.univ-brest.fr/~cmartin/info/geocms/install-geocms
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érifier que les services ont bien démarré et inspecter le rapport indiqué dans l’URL à la fin de l’installation.
le rapport d’installation est disponible à cette adresse : http://localhost/uploads/rapport/2017-11-27T15:29:36_6lOLBulmam2OxvWI/#h2geocms
Pour les besoins du TP il est nécessaire de démarrer les services geoserver et geonetwork précédemment installés et configurés
sudo -s cd /var/lib/tomcat-geonetwork ./bin/startup.sh cd ../tomcat-geoserver ./bin/startup.sh
Configuration générale (admin)
Suivez le lien vers le backend http://localhost/backend et connectez vous avec l’utilisateur administrateur ford
(référence geek incluse). Le mot de passe se trouve dans le rapport d’installation.
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
- 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://osuna.indigeo.fr http://portail.indigeo.fr Attention ce prefixe n’est PAS MODIFIABLE, le choisir judicieusement)
- Utilisateur : la création d’une instance nécessite obligatoirement la création d’un utilisateur administrateur de l’instance
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é |
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
Créer un utilisateur de l’application
Créer un compte
et le configurer avec les paramètres suivants.
- Identifiant : user
- Email : user@anfsist.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@anfsist.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 trillian
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
- Autres
- Spearfish, South Dakota, USA
- Spearfish, South Dakota, USA
Vous pouvez modifier l’ordre des catégories avec les flèches bleues 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:8180/geoserver/anfsist/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:8180/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, puis sélectionner la ou les catégorie(s) de destination (maintenir la touche Ctrl pour sélectionner plusieurs catégories).
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
s’affiche en haut 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
sf
(Spearfish) du geoserver local (http://localhost:8180/geoserver/sf/wms) - Cocher la case
Source externe
- Cocher la case
Synchronisation
- Sélectionner la catégorie
Spearfish, South Dakota, USA
Puis Créer
par défaut la tâche de synchronisation est programmée toutes les nuits à 4h via crontab
Lancer manuellement la tâche de synchronisation :
sudo -s su - geouser cd /app/rails/geocms/ ./task-update-layer
Attention il y a actuellement un problème en cours de résolution sur le lancement manuel de la tâche de synchronisation. Les vignettes ainsi que le centrage ne sont pas fonctionnel.
Pour le bon déroulement de la suite du TP merci d’importer manuellement les couches de la source Spearfish vers la catégorie Spearfish, South Dakota, USA.
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 \faPlus \faSearch 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 la métadonnées (En savoir plus) 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 »
- Title : Titre de la couche (importé depuis le champ Titre de la source) -> Modifiable
- Nom et Data source : références à la couche et à sa source -> Éviter de modifier…
- Metadata url : 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)
maxZoom et Tiled
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
- Définir le Max zoom à 23 : permet de zoomer jusqu’au niveau 23 lorsque cette couche est affichée
- Cocher la case Tiled : force l’interrogation des tuiles (générées par GeoWebCache par exemple)
Puis Mettre à jour
Se rendre dans le frontend, afficher la couche puis apprécier les modifications.
Queryable
Certaines couches, principalement les fonds de cartes raster, n’ont pas toujours d’intérêt à être interrogées.
Par exemple, depuis le frontend, afficher les couches « sfdem is a Tagged Image File Format with Geographic information » et « Spearfish archeological sites » depuis la catégorie « Spearfish, South Dakota, USA ».
Remarquer que l’interrogation d’un site archéologique propose également l’interrogation du MNT.
Retour dans le backend. Depuis l’onglet COUCHES, ouvrir la catégorie « Spearfish, South Dakota, USA » puis éditer la couche « sfdem is a Tagged Image File Format with Geographic information ».
- Décocher la case Queryable puis
Mettre à jour
Se rendre dans le frontend, afficher les couches puis apprécier les modifications.
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}}
.
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
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 Spearfish puis zoomer sur la couche Spearfish restricted areas
- 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
- Lien direct : url de partage sans les onglets (pour les faire apparaitre, supprimer le /share de l’url)
- HTML : code permettant d’intégrer la carte dans un site web, un blog, une publication en ligne
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 Spearfish map
- 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 ;-)
Démonstrations :
interopérabilité
séries temporelles
avec manageChart : http://portail.indigeo.fr/geocms/projects/osu-iuem