73
Formation GraceTHD ou Mode d’emploi pour réceptionner, visualiser et gérer les données FTTH des livrables ‘shapfile+csv’ en GraceTHD Formation novembre 2016 par Christophe NIEL Page

Formation GraceTHD Ou mode d'emploi pour réceptionner, visualiser & gérer les données FTTH des livrables 'shapefile + csv' en GraceTHD

Embed Size (px)

Citation preview

Formation GraceTHDou

Mode d’emploi pour réceptionner, visualiser et gérer

les données FTTH des livrables ‘shapfile+csv’

en GraceTHD

Formation novembre 2016par Christophe NIEL

Page

DOTIC - Formation ‘Comment utiliser GraceTHD ?‘ – novembre 2016

INTRODUCTIONDéroulement de la formation – durée 2 jours

1. Prérequis et objectifs de la formation2. Mise en route3. Mécanisme de création d’une base de données Spatialite GraceTHD4. Mécanisme d’intégration d’un livrable ‘shape/csv’ dans une db Spatialite5. Mécanisme de création des vues GraceTHD-layers6. QGIS & les styles (QLR et QML)7. Les requêtes SQL attributaires8. Les requêtes SQL spatiales9. Mise en exploitation10. Importation/Exportation de fichier Shapefile ou CSVAnnexe 1 – Fichier de paramétrage ‘conf.bat’Annexe 2 – Le modèle de données GraceTHDAnnexe 3 – Sources et Supports

2

Formation GraceTHD

DOTIC - Formation ‘Comment utiliser GraceTHD ?‘ – novembre 2016

Prérequis&

Objectifs de la formation

3

Formation GraceTHD

DOTIC - Formation ‘Comment utiliser GraceTHD ?‘ – novembre 2016

Prérequis, objectifs

Pour mémoire, votre poste doit être pré-installé :q OS Windows.

q Qgis 2.14.7 (Essen) - Version maintenue à long terme - LTRhttp://qgis.org/fr/site/forusers/download.html.

Les objectifs de la formation ‘Devenir autonome sur Grace-THD’ :q Comprendre le fonctionnement du projet GraceTHD.

q Connaître les grandes étapes nécessaires à la mise en œuvre d'une démarche GraceTHD.

q Savoir réceptionner, consulter et contrôler des livrables GraceTHD (premier niveau avec les outils actuellement disponibles).

q Appréhender les possibilités d'intégration de GraceTHD dans le SI de la collectivité.

PREREQUIS ET OBJECTIFS DE LA FORMATION

4

DOTIC - Formation ‘Comment utiliser GraceTHD ?‘ – novembre 2016

MISE EN ROUTE

5

Formation GraceTHD

DOTIC - Formation ‘Comment utiliser GraceTHD ?‘ – novembre 2016

EXERCICE1. Démarrer votre ordinateur et ouvrir l’explorateur2. Copier via la clef USB le répertoire 'raison sociale' à la racine de votre

disque local

L’arborescence du projet 'raison sociale'

ð Ce répertoire doit être unique au sein de 'raison sociale'. Prévoir par exemple un espace de partage sur un serveur.

ð C’est ici ou vous devez déposer le livrable ‘shp+csv’ à visualiser.ð La base de données ‘Spatialite’ est enregistrée dans ‘db-spatialite’.

ð Vous pouvez ici enregistrer vos propres fonds de plan, base cadastral, ….ð C’est le répertoire avec dans les différents fichiers QGIS.

ð C’est ici que vous exécuterez la création de base de données et intégration de données.ð Ce sont les scripts SQL ‘GraceTHD’.

ð Les différentes application liées à Spatialite et aux Shapefile.ð La documentation : formation, guide, etc.

ð Les scripts SQL de votre production.

‘raison sociale’

6

DOTIC - Formation ‘Comment utiliser GraceTHD ?‘ – novembre 2016

L’arborescence du projet 'raison sociale'

Contraintes d’organisation des fichiers :

La problématique des dépendances entre fichiers dans les SIG• Le déplacement ou la restructuration d’un espace de travail SIG peut-être complexe. • L’organisation d’un espace de travail cohérent est un point crucial.

Dans le cadre de cette formation, les liens entre les fichiers se feront de façon relative, par rapport audossier courant. Le répertoire « racine » peut-être placé où vous le souhaitez, mais les sous-répertoireset les emplacements/noms de fichiers ne doivent pas être modifiés.

Points d’attention :

ü de façon générale, on banni dans les noms de répertoires et les noms de fichiers les accents,caractères spéciaux, espaces…

ü Il est conseillé de confier la gestion de l’arborescence à une personne qui endossera le rôled’administrateur de données et se chargera de la mettre en place, de définir et de faire appliquerdes règles de gestion et enfin d’y gérer les droits d’accès.

7

DOTIC - Formation ‘Comment utiliser GraceTHD ?‘ – novembre 2016

QGIS, les options de l’application

Général (par défaut les options sont corrects) F Décocher ‘Montrer les astuces au démarrage’F Répertoire de modèle de projets : ‘..\'raison

sociale'\10_qgis’

SCR : F Activer la projection à la voléeF SCR par défaut : Lambert 93F Utiliser le SCR du projet

Canavas : Couleur de sélection : ‘jaune’ (car pas de jaune en carto).

Source de données : F Attributs dans fenêtre intégrée : peut aider les

débutants.

EXERCICE1. Lancer l’application QGIS 2.142. Dans le menu, sélectionnez ‘Préférences’, puis ‘Options’ 3. Appliquer les recommandations ci-dessous

Rendu : ! Le cache de la table attributaire diminue le temps

de réponse aux requêtes mais peut poser des problèmes.

F Le multithread change grandement les perfs (selon machine).

Couleurs : charte graphique entreprise par exemple

Outils cartographiques/Outils de mesure : Unité métrique.

Composeur d’impression : mettre la police utilisée

Numérisation : à configurer pour un usage intense de création d’objets.

GDAL : comportement pour formats image

Réseau : si vous êtes derrière un proxy

8

DOTIC - Formation ‘Comment utiliser GraceTHD ?‘ – novembre 2016

EXERCICE1. De Qgis, ouvrir le projet 'raison sociale' dans le répertoire

‘10_QGIS2.12/qgs’

QGIS, les options du projet

Général :

F Sélectionner ‘Relatif’ pour ‘Enregistrer les chemins’, ainsi le ‘'raison sociale'.qgs’ ne dépend plus de la configuration locale.

F Projection à la volée : A chaque navigation dans la carte, les couches qui ont un système de coordonnées (SCR) différent du projet sont projetées dans le SCR du projet.

SCR : F Vérifier que ‘Lambert-93’ soit bien le Système de coordonnées géographiques de votre projet.

9

DOTIC - Formation ‘Comment utiliser GraceTHD ?‘ – novembre 2016

QGIS l’interface graphiqueEXERCICE1. De Qgis, modifier l’ordre des couches manuellement

F Faire un ‘Drag & DROP’ pour déplacer les couches avec l’aide de la souris.

2. Mettre une couche au premier plan

F Se mettre sur la couche, faire ‘clic droit’ et choisir l’option

3. Créer un groupe de couche

F Se mettre sur la couche, faire ‘clic droit’ et choisir l’option

4. Montrer le décompte d’entité d’une couche

F Se mettre sur la couche, faire ‘clic droit’ et choisir l’option

5. Zoomer sur la zone d’emprise

F Barre d’outils et cliquez sur

6. Changer d’échelle avec la barre de statut et désélectionner l’option ’Rendu’

F A quoi sert le rendu ?

7. Charger la couche vectorielle ‘Communes_18’ enregistrée dans ‘3_fonddeplan’

F Dans la barre de menu, Sélectionnez ‘Couche’, ’Ajouter une couche’, ’Ajouter une couche vecteur’

QGIS, quelques commandes de base

10

DOTIC - Formation ‘Comment utiliser GraceTHD ?‘ – novembre 2016

Mécanisme de création d’une base de données Spatialite

GraceTHD

11

Formation GraceTHD

DOTIC - Formation ‘Comment utiliser GraceTHD ?‘ – novembre 2016

Mécanisme de création d’une base de données Spatialite Etape 1 : création de la base de données spatialite 'raison sociale' :Nota bene : Lors de la première création, vous devez modifier les paramètres définis dans le fichier conf.bat – cf. Annexe

Ajoute les indexFichier : ‘12_scripts\gracethd_50_index.sql’

Ajoute les champs géométriquesFichier : ‘12_scripts\gracethd_40_lists.sql’

Crée les tables d’objetsFichier : ‘12_scripts\gracethd_30_tables.sql’

Insère les valeurs dans chaque table Fichier : ‘12_scripts\gracethd_20_insert.sql’

Crée les tables de valeursFichier : ‘12_scripts\gracethd_10_lists.sqlf’

Charge les variables localesFichier : ‘11_lanceurs\'raison sociale'_conf’

La base de données ‘GraceTHD’ est crée dans 2_db-spatialite\'raison sociale'.sqlite

Double-clic sur le fichier ’11_lanceurs\1_creer_db.bat’

On utilise ‘Spatialite’ pour exécuter l’ensemble de ces opérations

12

DOTIC - Formation ‘Comment utiliser GraceTHD ?‘ – novembre 2016

QGIS l’interface graphiqueEXERCICE1. CRÉER VOTRE BASE DE DONNEES GRACETHD

F D’abord, assurez-vous que QGIS soit bien ferméF Puis, faire un double-clic sur le fichier ’11_lanceurs\1_creer_db’

NB : le temps de l’opération est de 1 à 2 mn

Mécanisme de création d’une base de données Spatialite

13

‘raison sociale’

‘raison sociale’

‘raison sociale’.sqlite

DOTIC - Formation ‘Comment utiliser GraceTHD ?‘ – novembre 2016

QGIS l’interface graphiqueEXERCICE1. Ouvrir de nouveau projet dans QGIS ‘'raison sociale'_etape1.qgs’

2. Connecter la base de données spatialite ‘'raison sociale'.sqlite’

Mécanisme de création d’une base de données Spatialite

F Dans la barre de menu, sélectionner ‘Couche’, puis ‘Ajouter une couche’, puis ‘Ajouter une couche Spatialite’

F Cliquer sur le bouton ‘Nouveau et sélectionner le fichier ‘'raison sociale'.sqlite’F Cliquer sur le bouton ‘Connecter’

3. Pourquoi n’y a-t-il pas toutes les tables de GraceTHD ?

14

’raisonsociale’.sqlite ’raisonsociale’.sqlite

DOTIC - Formation ‘Comment utiliser GraceTHD ?‘ – novembre 2016

QGIS l’interface graphique

4. Que constatez-vous ?

Mécanisme de création d’une base de données Spatialite

F Sélectionner toutes les tables et cliquer sur le bouton ‘Valider’F Enregistrer votre projet’

F Faire un zoom sur l’emprise totaleF Ouvrir la table attributaire de la couche ‘t_noeud’

15

’raison sociale’.sqlite

DOTIC - Formation ‘Comment utiliser GraceTHD ?‘ – novembre 2016

Mécanisme d’intégration d’un livrable ‘shape/csv’ dans une db

Spatialite

16

Formation GraceTHD

DOTIC - Formation ‘Comment utiliser GraceTHD ?‘ – novembre 2016

Etape 2 : Intégration de la données ‘GraceTHD’ dans la base de données spatialite 'raison sociale' :

Crée les tables de valeursInsère table par table les données provenant des fichiers shapes ou des

fichiers csv entreposés dans le répertoire ‘1_shpvcv-in’

Charge les variables locales

Fichier : ‘11_lanceurs\'raison sociale'_conf’

Le chargement des données du livrable est effectué dans la base de données ‘'raison sociale'.sqlite’

Ø Double-clic sur le fichier ’11_lanceurs\2_charger_shpcsvin.bat’

Ø Copier votre livrable dans le répertoire ‘1_shpcsv-in’

On utilise ‘OGR2OGR’ pour exécuter l’ensemble de l’opérations

17

Mécanisme d’intégration de la données ‘shape’ et ‘csv’

DOTIC - Formation ‘Comment utiliser GraceTHD ?‘ – novembre 2016

QGIS l’interface graphiqueEXERCICE1. Intégrer dans votre base de données Spatialite les données de votre livrable

F D’abord, assurez-vous que QGIS soit bien ferméF Copier l’ensemble du livrable dans ‘0_Input\...’ vers ‘1_shpcsv-in’ F Puis, faire un double-clic sur le fichier ’11_lanceurs\2_charger_shpcsvin.bat’

NB : le temps de l’opération est inférieur à 30 sec (pour le livrable)

2. Que constatez-vous ?

Mécanisme d’intégration de la données ‘shape’ et ‘csv’

18

‘raison sociale

‘raison sociale

‘raison sociale’.sqlite

DOTIC - Formation ‘Comment utiliser GraceTHD ?‘ – novembre 2016

QGIS l’interface graphiqueEXERCICE1. Ouvrir le projet dans QGIS ‘'raison sociale'_etape1.qgs’

2. Avez-vous besoin de vous connecter à votre base de données ? Et pourquoi ?

3. Un autre moyen de se connecter à une db, sans la barre d’outils, cliquer sur (vérifier que le plugin ‘Dbmanager’ soit installé

F Cliquer sur ‘Spatialite’ et sur ‘'raison sociale'.sqlite’

F Cliquer sur la table ‘t_ebp’

Mécanisme d’intégration de la données ‘shape’ et ‘csv’

4, Quelle est la différence avec la précédente interface ?

19

‘raison sociale’.sqlite‘raison sociale’.sqlite

DOTIC - Formation ‘Comment utiliser GraceTHD ?‘ – novembre 2016

QGIS l’interface graphique

F Sélectionner sur l’onglet ‘Table’

Mécanisme d’intégration de la données ‘shape’ et ‘csv’

5. Pourquoi certaines tables ont un préfixe ‘t_’ ou d’autres ‘l_’, pourquoi ?

6. Comment distingue-t-on une table avec une géométrie ?

7. Aller sur la table l_bp_type_log et lire les enregistrements de cette table

8. Pourquoi l’onglet ‘Aperçu’ est grisé ?

9. Double cliquer sur la table ‘t_ptech’, que constatez-vous ?

10. Enregistrer le projet QGIS comme ‘'raison sociale'_etape2’

20

DOTIC - Formation ‘Comment utiliser GraceTHD ?‘ – novembre 2016

Mécanisme de création des vues

GraceTHD-layers

21

Formation GraceTHD

DOTIC - Formation ‘Comment utiliser GraceTHD ?‘ – novembre 2016

QGIS l’interface graphique

F Sélectionner la couche ‘t_noeud’ et double cliquerF Sélectionner ‘Jointure’, appuyer sur le bouton ‘plus’. Faire comme ci-dessous.

Mécanisme de création des vues ‘GraceTHD-layers’

1. Pour obtenir la géométrie des points techniques, il faut créer une jointure entre les tables t_noeud’ et ‘t_ptech’, comment faire via QGIS ?

F Sélectionner ‘Choisir les champs à joindre’ et choisissez ‘ :

F Valider

22

DOTIC - Formation ‘Comment utiliser GraceTHD ?‘ – novembre 2016

QGIS l’interface graphique2. Ouvrir la table attributaire de la couche ‘t_noeud’, que constatez-vous ?

3. Pourquoi les valeurs attributaires de certaines entités de la table ‘ptech’ sont à ‘Null’ ?

4. Quels sont les désavantages de ce type de jointure ?

5. Enregistrer, fermer le projet Qgis et quitter l’application.

Mécanisme de création des vues ‘GraceTHD-layers’

23

DOTIC - Formation ‘Comment utiliser GraceTHD ?‘ – novembre 2016

Etape 3 : Création de vues ‘GraceTHD-layers’

Création de l’ensemble des vuesLance le Script SQL gracethd_61_vues_elem.sql

Charge les variables localesFichier : ‘11_lanceurs\'raison sociale'_conf’

Les vues sont créées

Ø Double-clic sur le fichier ’11_lanceurs\3_creer_vues.bat’

On utilise ‘Spatialite’ pour exécuter l’ensemble des opérations

Mécanisme de création des vues ‘GraceTHD-layers’

Jointure ‘t_noeud’ et ‘t_ptech’

24

DOTIC - Formation ‘Comment utiliser GraceTHD ?‘ – novembre 2016

QGIS l’interface graphiqueEXERCICE1. Intégrer dans votre base de données Spatialite les données de votre livrable

F D’abord, assurez-vous que QGIS soit bien ferméF Puis, faire un double-clic sur le fichier ’11_lanceurs\3_creer_vues.bat’

NB : le temps de l’opération est inférieur à 30 sec (pour le livrable)

2. Le volume de la db a-t-il beaucoup changé et pourquoi ?

Mécanisme de création des vues ‘GraceTHD-layers’

25

DOTIC - Formation ‘Comment utiliser GraceTHD ?‘ – novembre 2016

QGIS l’interface graphiqueEXERCICE1. Ouvrir de nouveau projet dans QGIS ‘'raison sociale'_etape2.qgs’

2. Connecter la base de données spatialite ‘'raison sociale'.sqlite’

F Dans la barre de menu, sélectionner ‘Couche’, puis ‘Ajouter une couche’, puis ‘Ajouter une couche Spatialite’

F Sélectionner la db ‘'raison sociale'.sqlite’F Cliquer sur le bouton ‘Connecter’

3. Pourquoi voit-on de nouvelles couches ?

Mécanisme de création des vues ‘GraceTHD-layers’

26

’raisonsociale’.sqlite ‘raisonsociale’.sqlite

DOTIC - Formation ‘Comment utiliser GraceTHD ?‘ – novembre 2016

QGIS l’interface graphique4. Ajouter les nouvelles tables avec de la géométriePuis, enregistrer le projet 'raison sociale'_étape3.qgs’

Mécanisme de création des vues ‘GraceTHD-layers’

• Des vues que nous avons appelées "élémentaires".

• Nommage :

• Le préfixe "vs_" signifie vue spatiale et "v_" signifie vue (sans geom).

• "elem_" pour élémentaire. • Les codes des éléments (types d'objets) intégrés dans la vue. • Par exemple vs_elem_lt_st_nd : les locaux techniques avec les

sites et les nœuds correspondant aux locaux techniques.

• Point d’attention sur les listes de valeurs :

Ce sont les données réelles qui sont affichées, ce sont en effet les codes associés à des listes que l’on a comme attribut dans les vues et non les libellés.

Il serait préférable pour une meilleure interprétation d’afficher dans une prochaine version de GraceTHD-layers les libellés au lieu des codes.

A vous d’exprimer votre besoin au travers de Redmine.

27

DOTIC - Formation ‘Comment utiliser GraceTHD ?‘ – novembre 2016

QGIS l’interface graphiqueMécanisme de création des vues ‘GraceTHD-layers’

5. Ajouter deux groupes ‘vs_elem’ et ‘database’ sur le panneau ‘Couches’.Ranger les couches vs_... dans le groupe ‘vs_elem’ et les autres dans le groupe

‘database’.Cacher toutes les couches.

Puis, afficher la couche ‘vs_elem_pt_nd’, ‘vs_elem_bp_pt_nd’ et ‘vs_elem_cs_bp_pt_nd’.

Que constatez-vous ?

F Géométrie ?F Nombre d’entité ?F Valeur attributaire ?

28

DOTIC - Formation ‘Comment utiliser GraceTHD ?‘ – novembre 2016

QGIS & les styles (QLR et QML)

29

Formation GraceTHD

DOTIC - Formation ‘Comment utiliser GraceTHD ?‘ – novembre 2016

QGIS & les styles (QLR et QML)

EXERCICE1. Ouvrir le projet dans QGIS ‘'raison sociale'_etape3.qgs’

2. Ajouter la couche QLR

F Dans la barre de menu, sélectionner ‘Couche’, puis ‘Ajouter une couche’, puis ‘Ajouter dans un fichier de définition de couche’

F Ouvrir le fichier ‘gracethd_spatialite.qlr’ se trouvant dans ‘10_qgis2.12/qlr/’F Dans la panneau ‘Couche’, le groupe ‘GraceTHD(Spatialite) s’est ajouté.

Le fichier ‘.qlr’ :

un sous-ensemble du projet, qui permet de sauvegarder le paramétrage complet d’une ou plusieurs couches.Le fichier ‘.qml’ :

permet de sauvegarder le style d’affichage d’une couche

30

DOTIC - Formation ‘Comment utiliser GraceTHD ?‘ – novembre 2016

QGIS & les styles (QLR et QML)

Les couches : nommage et organisation• Un groupe de couches GraceTHD composé des groupes :

• Database : exhaustivité des tables, tables spatiales, listes et vues. • Pour voir l’intégralité des tables et vues. • Pour consulter et éditer les données telles que stockées en base. • Pour pouvoir créer sous QGIS des jointures et des relations avec les autres

couches. • Styles par défaut pour ne pas confondre avec les autres couches.

• Général : les tables et vues qui comportent des informations non liées à une "couche télécom" (organismes, références, nœuds, documentation, zones déploiement et coax).

• FTTH : informations spécifiques au FTTH (Zones arrières, NRO, SRO, SUF). • Génie civil : cheminements et les points techniques. • Conduites : conduites et masques. • Sites : sites techniques, sites d'émission, adresses. • Aménagement des sites : locaux techniques, baies. • Câblage : câbles, extrémités de câbles (pour localiser les câbles sans géométrie

linéaire), Love, BPE, PTO, Tiroirs, Equipements. • Fibre : fibres, cassettes, routes optiques (fibres composant les routes).• Fond de plan OSM (en TMS via GDAL).

• Noms des couches : • Nom littéral + (nom de la table ou de la vue exploitée). • Quelques couches ont un filtre décrit entre crochets). Ex : PTO

(vs_elem_bp_sf_nd [PTO]).

3. Naviguer librement sur l’ensemble des couches du groupe ‘GraceTHD(spatialite)’ de manière à vous approprier votre nouvel environnement de travail.

31

DOTIC - Formation ‘Comment utiliser GraceTHD ?‘ – novembre 2016

QGIS & les styles (QLR et QML)

4. Comment ne plus afficher l’étiquette de la couche chambre ?

F Double cliquer sur la couche chambreF Sélectionner ‘Etiquette’ dans le menu.F Dans le menu déroulant (fig. ci-dessous), choisir ‘Pas d’étiquette’. F Valider

EXERCICE

32

DOTIC - Formation ‘Comment utiliser GraceTHD ?‘ – novembre 2016

QGIS & les styles (QLR et QML)

1. 1ere solution : En enregistrant la modification dans le fichier ‘définition de Couche’

Vous désirez conserver la modification faite sur la couche ‘Chambre’ pour vos futurs projets Qgs, deux possibilités s’offres à vous :

F Sélectionner le groupe ‘GraceTHD(spatialite)’ dans le panneau Couche.F Faire un clic-droit.F Sélectionner ‘Enregistrer en tant que Fichier de définition de couche’F Aller sur le répertoire ‘Qlr’F Enregistrer sous un nouveau nom ‘gracethd_spatialite_'raison sociale'_’votre trigramme’’

2. Supprimer toutes les couches et ajouter le qlr avec trigramme.3. Supprimer toutes les couches et le qlr sans trigramme

4. 2ème solution : En enregistrant la modification comme style de de Couche’

F Sélectionner le couche ‘Chambre’F Faire un double clic et aller sur ‘Style’..F Ouvrir le menu déroulant ‘Style’ et chois ‘Fichier de style de couche Qgis’F Aller sur le répertoire ‘Qml’F Enregistrer sous un nouveau nom ‘gracethd-ptech-chambres_TNC_’votre trigramme’’

EXERCICE

33

DOTIC - Formation ‘Comment utiliser GraceTHD ?‘ – novembre 2016

QGIS & les styles (QLR et QML)

5. Supprimer toutes les couches et ajouter le qlr sans trigramme6. Charger le style que vous venez de créer sur la couche ‘Chambre’

Quand employer Qlr ou Qml ?

QLR : très pratique qu’il agit sur un ensemble de couche.

Cependant dans notre contexte , le QLR initial est fourni par GraceTHD et Il évoluera dans le temps.

Pour pouvoir implémenter vos modifications dans le futur Qlr de GraceTHD, vous devez les enregistrer comme style ‘QML’ pour chacune des couches modifiées. Ainsi, vous pourrez les charger sur le Qlr GraceTHD et ensuite enregistrer votre propre Qlr.

1. Modifier l’étiquette de câble en agrandissant le numéro et le rond. Puis, opérer à l’enregistrement du style et du fichier de couches

EXERCICE

34

DOTIC - Formation ‘Comment utiliser GraceTHD ?‘ – novembre 2016

Processus de traitement d’un livrable

35

Formation GraceTHD

DOTIC - Formation ‘Comment utiliser GraceTHD ?‘ – novembre 2016

GraceTHD-layers

GraceTHD-layers, c’est l’ensemble des éléments vues dans les chapitres précédents :• Validation du livrable avec mise en correspondance de votre grille de remplissage• Création de la base de données GraceTHD -> ‘1_creer_db.bat’• Intégration des données constituées de Shapefile et de CSV -> ‘2_charger_shpcsvin.bat’• Création de vues élémentaires -> ‘3_creer_vue’• Ouverture de Qgis, chargement du Qlr GraceTHD -> ‘gracethd_spatialite.qlr’ et

enregistrement du projet. Nota bene : si vous garder le même nom de projet cette opération ne à faire que la première fois.

Nota bene : Les script GraceTHD, les Qlr et Qml sont fournis par GraceTHD

• Les scripts d’exécution des scriptsSQL sont eux adaptés à votre contexte. L’administrateur devra veiller à les faire évoluer en cas de changement.

36

DOTIC - Formation ‘Comment utiliser GraceTHD ?‘ – novembre 2016

GraceTHD-layers

1. Appliquer le processus de création et d’intégration de votre livrable APD avec l’environnement GraceTHD-layers.

EXERCICE

2. Appliquer le processus de création et d’intégration de votre livrable APD comportant une erreur sur le nom d’un des attributs de la table t_suf. Ouvrer Qgis.

Que constatez vous ?

3. Appliquer le processus de création et d’intégration de votre livrable APD comportant une erreur sur la valeur de l’attribut ‘ de la table t_sitetech. Ouvrer Qgis.

Que constatez vous ?

F Copier l’ensemble des fichiers du répertoire .\'raison sociale'\0_referentiel-'raison sociale'\cd18\vca\apd\111016dans le répertoire .\'raison sociale'\1_shpcsv-in

F Puis, appliquer la procédure …

F Copier l’ensemble des fichiers du répertoire .\'raison sociale'\0_referentiel-'raison sociale'\cd18\vca\apd\avec_erreur_1dans le répertoire .\'raison sociale'\1_shpcsv-in

F Puis, appliquer la procédure …

F Copier l’ensemble des fichiers du répertoire .\'raison sociale'\0_referentiel-'raison sociale'\cd18\vca\apd\avec_erreur_2dans le répertoire .\'raison sociale'\1_shpcsv-in

F Puis, appliquer la procédure …37

DOTIC - Formation ‘Comment utiliser GraceTHD ?‘ – novembre 2016

Spatialite très permissif :

Comme nous l’avons vu, Spatialite ne permet pas de détecter les anomalies dans les listes de valeurs, ni des champs mal formatés, des colonnes manquantes ou ajoutées…

Spatialite reste extrêmement permissif.

Une nouvelle version de Spatialite qui permettrait de détecter plus d’anomalies est à l’étude. Une intégration des livrables dans PostGIS reste fortement conseillée, à minima pour le contrôle.

Cependant lors de l’intégration des données ‘shp +csv’ : Si le livrable ne respecte pas les contraintes ‘GraceTHD’, Par exemple le type de géométrie incorrecte, le message suivant apparait :

38

GraceTHD-layers

DOTIC - Formation ‘Comment utiliser GraceTHD ?‘ – novembre 2016

GraceTHD-layers

Ou un id (clef primaire) déjà existant sur une table, cas ici d’un chargement d’un livrable déjà intégré dans la base de données Spatialite :

Après avoir créer les vues, vous pouvez rencontrer ce type d’erreur : Si des vues n’ont pas de données attributaires, il y a de fortes chances que le problème si situe au niveau des attributs qui font la relation entre les tables sollicitées pour la vue.

39

DOTIC - Formation ‘Comment utiliser GraceTHD ?‘ – novembre 2016

Correspondance Grille de remplissage vs. Livrable lors du PRO :

t_cheminement Ot_conduitet_cond_chemt_cable Ot_cableline Ot_cab_condt_fibret_cas s ettet_pos itiont_ropt Nt_noeud Ot_ptech Ot_mas que Nt_lovet_ebp Ot_s itetech Ot_ltech Ot_baiet_tiroirt_equipementt_reference Ot_s uf Ot_adres s e Ot_s iteemis s iont_organisme Ot_znro Ot_zs ro Ot_zpbo Ot_zdep Ot_zcoax Ot_documentt_docobjt_empreinte

t_ptech pt_code Ot_ptech pt_codeext Ct_ptech pt_etiquett_ptech pt_nd_code Ot_ptech pt_ad_codet_ptech pt_ges t_do Ot_ptech pt_prop_dot_ptech pt_prop Ot_ptech pt_ges t Ot_ptech pt_us ert_ptech pt_proptyp Ot_ptech pt_s tatut Ot_ptech pt_etat Ot_ptech pt_dateins Nt_ptech pt_datemes Nt_ptech pt_avct Ot_ptech pt_typephy Ot_ptech pt_typelog Ot_ptech pt_rf_code Ct_ptech pt_nature Ot_ptech pt_s ecut_ptech pt_occp Ct_ptech pt_a_dan Nt_ptech pt_a_dtetu Nt_ptech pt_a_s truc Ct_ptech pt_a_hautt_ptech pt_a_pas s at_ptech pt_a_s tratt_ptech pt_rotatiot_ptech pt_detect_ptech pt_commentt_ptech pt_creadat Ot_ptech pt_majdate Ct_ptech pt_majs rc Ct_ptech pt_abddate Ct_ptech pt_abds rc C

Livrable ‘PRO’pt_code PT180965001877pt_codeextpt_etiquetpt_nd_code ND180965001877pt_ad_codept_gest_dopt_prop_dopt_prop OR000000000003pt_gest OR000000000003pt_userpt_proptyp LOCpt_statut PROpt_etat NCpt_dateinspt_datemespt_avct Ept_typephy Cpt_typelog Tpt_rf_codept_nature L4Tpt_secupt_occp 1.1pt_a_danpt_a_dtetupt_a_strucpt_a_hautpt_a_passapt_a_stratpt_rotatiopt_detecpt_commentpt_creadat 2016-10-0716:52:25.563pt_majdatept_majsrcpt_abddatept_abdsrc

Table ‘ptech’

40

GraceTHD-layers

DOTIC - Formation ‘Comment utiliser GraceTHD ?‘ – novembre 2016

Les requêtes SQL

41

Formation GraceTHD

DOTIC - Formation ‘Comment utiliser GraceTHD ?‘ – novembre 2016

1. Faire un filtre sur la couche ‘t_suf’ afin de ne visualiser que les sites professionnels via une requête par le ‘Constructeur de requête’

EXERCICE

F Accéder au Constructeur de requête en faisant un clic droit sur le nom de la couche ‘t_suf’ dans le panneau Couches

F Cliquer sur Filtrer

F Sélectionner le champs ‘sf_type’

F Cliquer sur le bouton ‘Echantillon’

F Dans le champs Expression, écrire ‘"sf_type" = "P " pour réaliser un filtrer sur les entreprise.

Les requêtes SQL

Requête attributaire par un filtrer sous QGIS

42

DOTIC - Formation ‘Comment utiliser GraceTHD ?‘ – novembre 2016

2. Quels sont les entités qui apparaissent sur la carte et dans les données attributaires de la couches –t_suf’ ?

Les requêtes SQL

Attention : Tant que la requête n'a pas été effacée, c'est le sous-ensemble contenant les entités sélectionnées qui est affiché. Cela peut conduire à des confusions, car rien n'indique a priori dans le Panneau Couches que ce qui est affiché correspond à une requête (c'est le nom de la couche qui continue d'apparaître).

En cas de doute, il ne faut pas hésiter à consulter le constructeur de requête ou l'onglet général des propriétés de la couche, pour visualiser l'expression de la requête

43

DOTIC - Formation ‘Comment utiliser GraceTHD ?‘ – novembre 2016

1. Faire une expression sur la couche ‘t_suf’ afin de ne retenir que les sites professionnels via la table attributaire

EXERCICE

F Accéder au Cadre d’expression en ouvrant la table attributaire de la couche ‘t_suf’ dans le panneau Couches

F Cliquer sur le menu déroulant ‘Sélection’F Sélectionner le champs ‘sf_type’, cliquer ‘10 valeurs’

Les requêtes SQL

Requête attributaire par une expression sous QGIS

2. Pourquoi obtenez vous ce résultat ?

F Aller sur la couche ‘t_suf’ et retirer le filtreF Retourner sur la cadre d’expression de la

couche ‘t_suf’ et ajouter la sélection : "sf_type" ='P'

F Dans le menu déroulant ‘Sélection’, choisissez ‘Ajouter la sélection’

F Regarder les entités sur la carteF Dans le menu déroulant ‘Sélection’, choisissez

‘Enlever la sélection’F Regarder de nouveau les entités sur la carte

44

DOTIC - Formation ‘Comment utiliser GraceTHD ?‘ – novembre 2016

Syntaxe générale (source http://www.geoinformations.developpement-durable.gouv.fr/dispositif-de-formation-a-qgis-a2925.html)

La requête de sélection est la base de la recherche de données en SQL.

Une requête SQL respecte une syntaxe de type :

SELECT (liste des attributs) FROM (liste des tables) WHERE (Conditions)La partie SELECT indique le sous-ensemble des attributs (les colonnes) qui doiventapparaître dans la réponse.

La partie FROM décrit les relations (les tables) qui sont utilisées dans la requête. Lesattributs de la clause SELECT doivent appartenir aux tables listées dans la clauseFROM.

La partie WHERE exprime les conditions, elle est optionnelle.Nous verrons d'autres options plus tard...

Pour notre exemple précédent cela se traduit par la requête SQL suivante :

SELECT * FROM t_suf WHERE sf_type = ‘’P’’

45

Les requêtes SQL

DOTIC - Formation ‘Comment utiliser GraceTHD ?‘ – novembre 2016

1. Faire une requête SQL sur la couche ‘t_suf’ pour obtenir comme résultat l’ensemble des entités professionnelles

EXERCICE

F Accéder à la base de données en ouvrant le gestionnaire de donnéesF Sélectionner la base de données ‘'raison sociale'.sqlite’F Cliquer sur la fenêtre SQL

Les requêtes SQL

Requête SQL sous QGIS

F Ecrire la requête SQL SELECT* FROM t_suf WHERE sf_type = ‘’P’’

F Exécuter

46

‘raison sociale

DOTIC - Formation ‘Comment utiliser GraceTHD ?‘ – novembre 2016

1. Requête SQL sur la couche ‘t_suf’ : avoir le total de professionnels et de résidentiels

EXERCICE

Les requêtes SQL

Requête SQL ‘simple’ sous QGIS

F Ecrire la requête SQL:

SELECT sf_type,COUNT(sf_type) AS "Nb. Logement"FROM t_suf GROUP BY sf_type

F ExécuterF Résultat :

47

DOTIC - Formation ‘Comment utiliser GraceTHD ?‘ – novembre 2016

2. Même demande que précédemment, mais avec en correspondance la correspondance avec la liste des valeurs.

Les requêtes SQL

Requête SQL sous QGIS

F Ecrire la requête SQL:

SELECT b.Libelle AS "Type de locataire",COUNT(a.sf_type) AS "Nb. Logement"FROM t_suf AS a ,l_suf_type AS bWHERE a.sf_type = b.codeGROUP BY sf_type

F ExécuterF Résultat :

OuSELECT b.Libelle AS "Type de locataire",COUNT(a.sf_type) AS "Nb. Logement"FROM t_suf AS a INNER JOIN l_suf_type AS bON a.sf_type = b.codeGROUP BY sf_type

48

DOTIC - Formation ‘Comment utiliser GraceTHD ?‘ – novembre 2016

4. Faire une requête pour ventiler le résultat précédent sur les différentes communes de la zone arrière

Les requêtes SQL

Requête SQL sous QGIS

F Ecrire la requête SQL:SELECTc.ad_commune AS commune,b.Libelle AS "Type de locataire",COUNT(a.sf_type) AS "Nb. Logement"FROM t_suf AS a,l_suf_type AS b, t_adresse AS cWHERE a.sf_type = b.code and c.ad_code = a.sf_ad_codeGROUP BY c.ad_commune,a.sf_type

F ExécuterRésultat :

F Ajouter ensuite à la fin de la requête ci-dessus : HAVING "Nb. Logement " > 1049

DOTIC - Formation ‘Comment utiliser GraceTHD ?‘ – novembre 2016

4. On aimerait conserver ce résultat sous forme de table

Les requêtes SQL

Requête SQL sous QGIS

F Ecrire la requête SQL:CREATE TABLE t_sp_suf_ad ASSELECTc.ad_commune AS commune,b.Libelle AS "Type de locataire",COUNT(a.sf_type) AS "Nb. Logement"FROM t_suf AS a,l_suf_type AS b, t_adresse AS cWHERE a.sf_type = b.code and c.ad_code = a.sf_ad_codeGROUP BY c.ad_commune,a.sf_typeHAVING "Nb. Logement" > 100ORDER BY "Nb. Logement" DESCLIMIT 3

F ExécuterF Résultat : ?

F Ajouter toujours à la fin de la requête ci-dessus : ORDER BY "Nb. Logement " DESCF Exécuter

F Pour finir, ajouter à la fin de la requête ci-dessus : LIMIT 3F Exécuter

50

DOTIC - Formation ‘Comment utiliser GraceTHD ?‘ – novembre 2016

Fonctions d'agrégation (avec Group by) :• count() : renvoie le nombre d'enregistrements • sum() : renvoie la somme Notions • max() : maximum • min() : minimum • avg() : moyenne

Fonctions de chaînes de caractères : • LENGTH : renvoie la longueur d'une chaîne

exemple • SUBSTR : extraction d'une sous-chaîne de

caractères • UPPER : convertit en majuscule • LOWER : convertit en minuscule • POW(champ, 2) pour élever au carré. • SQRT : pour obtenir la racine carrée. • ROUND : qui permet d'arrondir un résultat

Les principaux types de données en SQL sont • CHARACTER (ou CHAR) : valeur alpha de

longueur fixe. • CHARACTER VARYING (ou VARCHAR) : valeur

alpha de longueur maximale fixée. • TEXT : suite longue de caractères (sans limite de

taille). • NUMERIC (ou DECIMAL ou DEC) : décimal • INTEGER (ou INT) : entier long • REAL : réel à virgule flottante dont la

représentation est binaire. BOOLEAN (ou LOGICAL) : vrai/faux

• DATE : date du calendrier grégorien

Fonctions de transtypage: • cast (expr as type) : Est la fonction qui permet de convertir un type en un autre. ("Nb. Logement" as text) ou ( … as real)

Les opérateurs de comparaison (avec WHERE) :A = B A <> B (différent)A < B A > B A <= B (inférieur ou égal) A >= B (supérieur ou égal) A BETWEEN B AND C (compris entre B et C) A IN (B1, B2,...) liste de valeurs : A LIKE 'chaîne'

http://sql.sh/fonctionsAttention toutes ne sont pas

compatibles Spatialite

Les requêtes SQL

51

DOTIC - Formation ‘Comment utiliser GraceTHD ?‘ – novembre 2016

1. Comment obtenir le résultat ci-dessous ?

Les requêtes SQL

Requête SQL sous QGIS

EXERCICE

52

DOTIC - Formation ‘Comment utiliser GraceTHD ?‘ – novembre 2016

Les requêtes SQLSpatiales

53

Formation GraceTHD

DOTIC - Formation ‘Comment utiliser GraceTHD ?‘ – novembre 2016

1. Comment visualiser le type de géométrie de t_point, t_adresse, t_cheminement , ..?

Les requêtes spatiales en SQL

Accéder à l’information de géométrie

EXERCICE

F Aller sur le DbmanagerF Sur la base données ‘'raison sociale'.sqlite’, se positionner sur la couche ‘t_noeud’, et ouvrir l’onglet

‘Info’

Tablesspatiales Typedegéométrie

t_nœud Pointt_cheminement Lignet_cableline Lignet_adresse Point

t_empreinte Multi-polygonet_zcoax Multi-polygonet_zdep Multi-polygonet_znro Multi-polygonet_zpbo Multi-polygonet_zsro Multi-polygone

Point d’attention : les tables spatiales doivent être de même le système de projection pour établir des jointures spatiales.

54

DOTIC - Formation ‘Comment utiliser GraceTHD ?‘ – novembre 2016

1. Obtenir le code du système de projection de l’objet ‘t_noeud’

Les requêtes spatiales en SQL

Utiliser les fonctions Géométriques

EXERCICE

F Pour les exercices qui suivent, aller sur le DBmanager. puis Sur la base données ‘'raison sociale'.sqlite’, ouvrir l’interface SQL

F Requête SQL : SELECT ST_SRID(geom) FROM t_noeud

1. Obtenir les coordonnées X, Y de l’adresse ‘138, le chemin blanc à MéreauEXERCICE

F Requête SQL : SELECT ST_X(geom), ST_Y(geom),a.ad_x_ban,a.ad_y_ban,a.ad_numero, a.ad_nomvoie,a.ad_commune FROM t_adresse AS a WHERE a.ad_nomvoie = "LE CHEMIN BLANC" ANd a.ad_numero=138 AND a.ad_commune ="Méreau"

1. Obtenir les ligne de raccordement de longueur supérieur à 100mEXERCICE

F Requête SQL : SELECT ST_LENGTH(a.geom) FROM vs_elem_cl_cb AS a WHERE a.cb_typelog = "RA" AND ST_LENGTH (a.geom) > 100OURequête SQL : SELECT ST_LENGTH (b.geom) FROM t_cable AS a, t_cableline AS b WHERE a.cb_code = b.cl_cb_code AND a.cb_typelog = "RA" AND ST_LENGTH(b.geom) > 100

55

DOTIC - Formation ‘Comment utiliser GraceTHD ?‘ – novembre 2016

1. Comment localiser les LR > à 100m ?

Les requêtes spatiales en SQL

Créer une vueEXERCICE

F En créant des vues :• Installer le Plugin ‘Qspatialite’, Puis lancer ‘Qspatialite’ le via la barre de menu/database• Exécuter la requête SQL :

CREATE VIEW vs_lr_sup_100 ASSELECTb.ROWID AS ROWID, ST_length(b.geom), b.geom AS geom FROM t_cable AS a, t_cableline AS b where a.cb_code = b.cl_cb_code AND a.cb_typelog = "RA" AND ST_length(b.geom) > 100

• Puis executer une seconde requête pour ajouter la géométrie :

INSERT INTO views_geometry_columns VALUES('vs_lr_sup_100', 'geom', 'rowid', 't_cableline', 'geom', 1)

F Vous venez de créer une vue ou un couche virtuelle. Il faut maintenant l’ajouter dans votre projet QGIS

2. Ajouter la vue dans Qgis

F Aller dans Couche de la barre de menu et sélectionner : Ajouter une couche et Ajouter une couche spatialite

F Sélectionner 'raison sociale'.sqlite et sectionner la nouvelle vueNB : Le DB manager dans la version actuelle ne permet pas d’ajouter des couches virtuelles / vues

56

DOTIC - Formation ‘Comment utiliser GraceTHD ?‘ – novembre 2016

Les requêtes spatiales en SQL

Lecture du script de création des vues GraceTHD-layers

1. Ouvrir dans ./11_lanceurs/scriptsGraceTHD/ gracethd_61_vues_elem.sql via NotepadEXERCICE

/*vs_elem_sf_nd*/

DROP VIEW IF EXISTS vs_elem_sf_nd;

CREATE VIEW vs_elem_sf_nd AS SELECT

nd.ROWID AS ROWID, sf.sf_code AS sf_code,

nd.nd_abdsrc AS nd_abdsrc, nd.geom AS geom

FROM t_suf AS sf, t_noeud AS nd WHERE sf.sf_nd_code = nd.nd_code;

INSERT INTO views_geometry_columns VALUES('vs_elem_sf_nd', 'geom', 'rowid', 't_noeud', 'geom', 1);

3. Comment ajouter la vue précédente de manière permanente ?

57

DOTIC - Formation ‘Comment utiliser GraceTHD ?‘ – novembre 2016

1. Faire une requête pour repérer les doublons sur t_noeudEXERCICE

Requête SQL sous QGIS

CREATE TABLE ts_nd_doublon ASSELECTCOUNT(a.geom) AS doublon,a.*FROM t_noeud as aGROUP BY a.geomHAVING doublon > 1

1. Faire une requête pour compter le nombre de câble sur une portéeEXERCICE

58

Les requêtes spatiales en SQL

DOTIC - Formation ‘Comment utiliser GraceTHD ?‘ – novembre 2016

1. Faire une requête avec ST_withinEXERCICE

Requête SQL sous QGIS

1. Faire une requête avec ST_distanceEXERCICE

59

Les requêtes spatiales en SQL

DOTIC - Formation ‘Comment utiliser GraceTHD ?‘ – novembre 2016

1. Faire une requête avec ST_Buffer (Isolé)EXERCICE

Requête SQL sous QGIS

1. Faire une requête avec ST_Intersects (Cable et BPE)EXERCICE

60

Les requêtes spatiales en SQL

DOTIC - Formation ‘Comment utiliser GraceTHD ?‘ – novembre 2016

Mise en exploitation

61

Formation GraceTHD

DOTIC - Formation ‘Comment utiliser GraceTHD ?‘ – novembre 2016

Mise en exploitation

Proposition de fonctionnement :

En lecture/écriture

En lecture

Collaborateur 1

Collaborateur 2

Collaborateur 3

Administrateur

Collaborateur : Fait une copie du répertoire 'raison sociale' sur son disque dur. Administrateur : Affecte un livrable ‘Shapefile + csv’ à un collaborateurCollaborateur : Fait une copie du 'raison sociale'.sqlite dans le référentiel en le renommant selon une règle de nommageAdministrateur : Gère les évolution de GraceTHD-layers et décide des évolutions du GraceTHD-layers 'raison sociale'

Disque partagé / cloud (exemple Dropbox)

En lecture

‘raison sociale’

62

DOTIC - Formation ‘Comment utiliser GraceTHD ?‘ – novembre 2016

Bonus

63

Formation GraceTHD

DOTIC - Formation ‘Comment utiliser GraceTHD ?‘ – novembre 2016

BONUS

1. Faire un import de fichier CSV dans la base de données Spatialite

EXERCICE

F Cliquer sur ‘gestionnaire de BD) dans la barre de menu.F Se positionner sur 'raison sociale'.sqlite

‘raison sociale’

‘raison sociale’

64

DOTIC - Formation ‘Comment utiliser GraceTHD ?‘ – novembre 2016

FCliquer dans la barre de menu du Gestionnaire sur

FCliquer dans la barre de menu du Gestionnaire surFSélectionner le fichier /'raison sociale'/0_referentiel-'raison sociale'/bpu/t_reference_'rs'.csvF Cliquer sur le bouton F Et terminer en validant par

65

BONUS

DOTIC - Formation ‘Comment utiliser GraceTHD ?‘ – novembre 2016

QGIS l’interface graphiqueEXERCICE1. Dans le répertoire, renommer les fichier ‘'raison sociale'_BIS.sqlite’

2. Ouvrir de nouveau votre projet QGIS 'raison sociale'

3. La fenêtre d’erreur ci-dessous apparait, quelle peut être la cause ?

66

BONUS

DOTIC - Formation ‘Comment utiliser GraceTHD ?‘ – novembre 2016

Annexe 1Fichier de paramétrage

‘conf.bat’

67

Formation GraceTHD

DOTIC - Formation ‘Comment utiliser GraceTHD ?‘ – novembre 2016

QGIS l’interface graphiqueFichier de paramétrage GraceTHD-layers

68

Variable qui définit le nom de la base de donnée qui sera créée. Ici RAISONSOCIALE.sqlite

Variable qui définit le chemin de l’application Qgis.QGIS Lyon pour Qgis 2.12QGIS ESSEN pour Qgis 2.14

VARIABLES A MODIFIER

DOTIC - Formation ‘Comment utiliser GraceTHD ?‘ – novembre 2016

Annexe 2GraceTHD-MCD :

le modèle de données

69

Formation GraceTHD

DOTIC - Formation ‘Comment utiliser GraceTHD ?‘ – novembre 2016

GraceTHD-MCD : Le modèle de données

GraceTHD-MCD

70

DOTIC - Formation ‘Comment utiliser GraceTHD ?‘ – novembre 2016

Annexe 3

Sources et Supports

71

Formation GraceTHD

DOTIC - Formation ‘Comment utiliser GraceTHD ?‘ – novembre 2016

Support de formation QGIS (débutant et expert)• http://www.geoinformations.developpement-durable.gouv.fr/qgis-formations-et-supports-

pedagogiques-r947.html

• http://sql.sh/cours

• http://www.postgis.fr/chrome/site/docs/workshop-foss4g/doc/index.html

• https://www.gaia-gis.it/spatialite-2.3.0/spatialite-sql-2.3.0.html

Support SQL

Support Spatialite

72

Supports et Ressources

DOTIC - Formation ‘Comment utiliser GraceTHD ?‘ – novembre 2016

Ressources et support du projet GraceTHD

Une page index pour retrouver l’ensemble des éléments et de la documentation de GraceTHD : http://www.avicca.org/content/gracethd

73

Supports et Ressources