TP GeoCMS

logo_sist.png
by-nc-sa-small.png 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

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.
GC_pref.png

  • 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.

GC_instance.png
  • 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.

Tableau 1 : Permissions des rôles sur les objets
  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.
GC_user2.png

  • 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.

GC_category.png

Vous pouvez immédiatement Créer une sous-catégorie ou revenir à l’accueil en cliquant sur la maison ou sur l’onglet COUCHES.

GC_category2.png

Créer l’arborescence suivante

  • Activités humaines
    • Activités maritimes
    • Occupation du sol
  • Imagerie
    • Imagerie aérienne
  • Autres
    • 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.

GC_category3.png

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

GC_source.png
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.

GC_import.png
Puis Importer
GC_import_reussi.png 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
    GC_synchro.png

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 croix X
    GC_catalogue.png
  • 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
    GC_layer.png
  • 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)
    GC_maxzoom_tiled.png

Puis Mettre à jour
Se rendre dans le frontend, afficher la couche puis apprécier les modifications.
GC_maxzoom_tiled2.png

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.

GC_queryable.png

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
GC_queryable2.png

Se rendre dans le frontend, afficher les couches puis apprécier les modifications.

GC_queryable3.png

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}}.
GC_template.png

Le bouton « catalogue » permet de lister les attributs de la couche et de les insérer.
GC_template1.png

Se rendre dans le frontend, afficher les couches puis apprécier les modifications
GC_template2.png

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
GC_projet.png
  • 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
GC_projet2.png

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
GC_projet3.png

Puis Sauvegarder
GC_projet4.png

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)
GC_repertoire.png
  • ouvrir le répertoire user puis éditer la carte Spearfish map
  • Choisir le Dossier précédemment créé
GC_repertoire2.png

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
GC_defaut.png

Enfin se déconnecter puis apprécier le rendu final de votre travail ;-)

Démonstrations :

séries temporelles