Archives par mot-clé : PostGIS

Compte-rendu : goûter de la géomatique du 6 mars 2014

Géomatique, gâteaux et boissons : début du goûter

C’est sous un magnifique soleil rayonnant que cette nouvelle séance a réuni Ludovic, Maxime, Delphine, Luc, Thomas et Justin.

Classifier des données non paramétriques : le test de Dunn

Le goûter s’ouvre sur une présentation de Thomas. Il propose d’approfondir le test de Dunn, utilisé lors de sa thèse (voir la présentation ici). Nous y reviendrons avec plus de détails dans un prochain post.

 

Géographie des transports à Dijon et impact sur la qualité de l’air : un exemple de modèle multi-agent

Justin présente ensuite ses travaux de doctorat, toujours en cours, sur l’étude du trafic routier dijonnais et la pollution de proximité (oxydes d’azotes). Il utilise à cet effet une plateforme de Simulation Multi-Agent (SMA).

La pollution azotée est un phénomène spatio-temporel tenant compte de facteurs multiples comme les conditions météorologiques, ou l’intensité des sources d’émission, qui font fortement varier les niveaux de la qualité de l’air urbaine au cours de la journée.

 

Pic de pollution routière
Pic de pollution routière
D’après Roussel 2006.

Le travail se concentre à une échelle fine : de temps avec des données au 1/4h, et spatiale, en étudiant le bord des route. Il se concentre sur la reconstruction de la variabilité intra journalière du trafic routier et des hot-spot de la pollution atmosphérique.

La première partie de son travail consiste à modéliser le trafic dijonnais. Ce dernier est surveillé par des capteurs électromagnétiques placés sous la chaussée aux abords des principaux axes routiers. En lien avec les feux tricolores, ils permettent la régulation et la gestion du trafic routier en milieu urbain via le réglage des cycles de signalisation.

 

Localisation des capteurs électromagnétiques. Copyright J.
Localisation des capteurs électromagnétiques. Copyright J. Emery

Ces données sur la circulation, enregistrées avec une précision au quart d’heure, sont des données accessibles et peu mobilisées par les acteurs du transport routier. Elles permettent de mesurer 12,5% du réseau dijonnais. Leur usage permet de se détacher des modèles déterministes (dit classique à quatre étapes) et offre l’opportunité de développer un modèle d’affectation du trafic.

Pour rendre compte du trafic, Justin a modélisé un graphe théorique orienté avec des éléments temporels basé sur l’organisation/sur l’algorithme des colonies de fourmis.

Après des prétraitements (valeurs manquantes, aberrantes…) sur Matlab afin de calculer ce modèle, le choix s’est porté sur la plateforme de simulation open-source GAMA. Elle permet d’intégrer plus facilement un shapefile et de générer des populations synthétiques plus importantes. Le modèle multi-agent permet de mieux rendre compte des interactions agents/agents et agents/environnement soit l’action d’un agent vers un autre agent et de l’interaction de ses agents avec son environnement.

 

Modélisation SMA : environnement (graphe orienté) et situation des stations de comptages routiers. J.
Modélisation SMA : environnement (graphe orienté) et situation des stations de comptages routiers. Copyright : J. Emery.

Une vidéo proposée lors du goûter complète la présentation en exposant la méthodologie, le modèle puis le fonctionnement du modèle multi-agent.

La suite des travaux de thèse permettra d’améliorer le modèle et de mieux percevoir les incidences de la circulation routière en termes de qualité de l’air.

Quelques ressources pour approfondir :

Le mémoire de Master 2 « La qualité de l’air liée au transport routier en milieu urbain » dont la thèse de Justin est la suite.

Le modèle des colonies de fourmis

L’explication avec un exemple détaillé sur le site Développez

La plateforme GAMA

Un article sur la plate-forme GAMA et les données géographiques sur Cybergeo

Un TPE présentant un comparatif de plateforme de simulation, dont GAMA.

 

ArcGIS, PostgreSQL, GRASS, MySQL, PostGIS, ACCESS, QGIS… Quelles différences?

L’importance numérique des données traitées par Justin soulève des interrogations sur le choix de la base de données et des outils permettant les analyses. D’autant que le doctorat ne suppose pas de connaître l’ensemble des possibilités des logiciels traitant de l’information géographique.

Pour ces interrogations, Ludovic conseille aux doctorants des laboratoires associés à la MSH de solliciter l’expertise de la plateforme : conseil, aide technique ponctuelle… Vous trouverez sur la page de la plateforme les heures d’ouverture.

Les logiciels cités dans le titre permettent visualiser, manipuler et analyser l’information géographique.

ACCESS reprend les possibilités des bases de données mais avec les limites déjà énoncées dans un dernier post.

PostgreSQL et MySQL sont des bases de données relationnelles qui mettent en forme les données au sein de tables reliées entre elles.

PostGIS est la cartouche spatiale de PostgreSQL : elle propose de nombreuses possibilités d’analyses dans ce domaine. Ces fonctions commencent par « ST_ » pour Spatial Type, comme ST_distance pour obtenir la distance entre deux géométries.

On interroge PostgreSQL/GIS et MySQL en SQL afin de sélectionner les données et effectuer certains calculs statistiques.

ArcGIS (propriétaire) et QGIS (libre) sont des logiciels SIG. Ils permettent de visualiser les données géographiques et de les analyser.

GRASS GIS est un logiciel libre très utilisé pour les analyses de données raster. Quelques références permettent d’en saisir les subtilités. Notons que QGIS propose une extension GRASS et l’accès, grâce à la boîte à outils de traitement, aux géoalgorithmes de GRASS.

 

Fin du goûter et date de la prochaine séance

Les discussions se prolongent autour du buffet composé d’un énorme fondant au chocolat et d’un gâteau noisettes-amandes-pruneaux. Prochain rendez-vous le jeudi 3 avril 2014 à 15h, salle 214 !

La topologie, une recette…

Comme indiqué dans notre dernier compte-rendu, nous revenons avec un exemple sur la topologie. La documentation en français étant parfois difficile à réunir, nous vous proposons une recette pas à pas.

La topologie en quelques mots…

La topologie fournit un cadre pour traiter des notions de continuité et de voisinage.

En géomatique, la topologie permet de réduire la taille du stockage (deux pays limitrophes partagent nécessairement la même frontière), de « nettoyer » des shapefiles etc. En sciences humaines, la topologie et les graphes permettent de modéliser des relations (qualitatives) quand les mesures (spatiales, quantitatives) son mal approchées.

Graphe du moulon A (ensemble de structures urbaines contigües, limité par des rues) de Saint-Antonin-Noble-Val (82), d’après le terrier de 1397 (crédit : Albane Rossi, Cécile Rivals)
Graphe du moulon (ensemble de structures urbaines contigües, limitées par des rues) de Saint-Antonin-Noble-Val (82), d’après le terrier de 1397
Copyright : Albane Rossi, Cécile Rivals

La topologie en pratique…

En nous servant de PostGIS, une base de données spatiale qui fournit des outils de topologie, nous présentons l’intégration d’un shapefile (géographique) dans un schéma topologique.

Début – Importer le shapefile test.shp dans PostGIS (avec le plugin PostGIS Shapefile and DBF loader). Dans l’interface graphique du plugin, lors de l’import du shapefile, définir son SRID comme 2154 (projection RGF93 / Lambert-93).

test.shp
Visuel du shapefile test.

1– Sous PostGIS,  dans l’onglet SQL, lancer :

CREATE EXTENSION postgis_topology;

Cette commande créée :

– l’extension topologique de PostGIS (postgis_topology) ;

– un  nouveau schéma (topology) ;

– dans ce schéma, deux tables : layer et topology ;

2– Sous PostGIS, dans l’onglet SQL, lancer :

SELECT topology.CreateTopology(‘ma_topo’, 2154, 0.5);

Où :

‘ma_topo’ est le nom du nouveau schéma topologique ;

2154 est la référence spatiale de ‘ma_topo’ elle doit être identique à celle de la colonne ‘geom’ (lors de l’import su shapefile);

0.5 est la tolérance de la topologie (voir ci-dessous) ;

Cette commande créée :

–  un  nouveau schéma topologique (‘ma_topo’) ;

–  quatre tables dans ce schéma : edge_data, face, node, relation ;

3– Sous PostGIS, dans l’onglet SQL, lancer :

SELECT topology.AddTopoGeometryColumn(‘ma_topo’, ‘public’, ‘test’, ‘topo’, ‘POLYGON’);

Où :

‘ma_topo’ est le nom du schéma topologique ;

‘public’ est le schéma géométrique ;

‘test’ est la table où sera enregistrée la colonne ‘topo’ ;

‘topo’ est la nouvelle colonne topologique dans la table ‘test’ ;

‘POLYGON’ est le type de données qui y sera enregistré ;

Cette commande créée :

– une colonne topologique dans la table ‘test’;

– une ligne dans la table ‘layer’;

4– Sous PostGIS,  dans l’onglet SQL, lancer :

UPDATE test SET topo = topology.toTopoGeom(geom, ‘ma_topo’, 1, 0.5);

Où :

‘test’ est la table qui va être modifiée ;

‘topo’ est la colonne qui va être modifiée ;

‘geom’ la colonne géométrique qui va être lue ;

‘ma_topo’ est le nom du schéma topologique ;

1 fait référence à l’identifiant enregistré dans la table layer ;

0.5 est la tolérance de la transformation topologique ‘geom’ -> ‘topo’ ;

La commande :

– remplit la colonne topo avec les données géométriques transformées (geom -> topo) ;

– remplit les quatre tables (edge_data, face, node, relation) du schéma ‘ma_topo’;

table edge_data
Aperçu de la table edge_data.

C’est la table edge_data qui contient l’information sur les relations de voisinage…

 panneau_attention A ce niveau des erreurs peuvent survenir.

Par exemple : « la fonction st_changeedgegeom(character varying, integer, geometry) n’existe pas ». Ceci est dû à un problème de search_path. Dans ce cas, fermer et relancer pgAdmin III.

Ou par exemple : « ERREUR:  Geometry SRID (un_nombre) does not match column SRID (un_autre_nombre)) ». Le SRID de la colonne ‘geometry’ ne correspond pas à celui de la colonne ‘topo’.

Fin– Importer dans un SIG (par exemple QGIS).

Topologie de test.shp
Résultat de l’opération de topologie sur le shapefile test.

La tolérance (une vertu)

Pour le shapefile test_1.shp (1), il peut y avoir des vides (gaps) et des superpositions (overlaps). L’outil Vérification de topologie de QGIS permet de les mettre en évidence (2).

shapefile test_1 avant (1) et après  (2) la vérification de sa topologie
Shapefile test_1 avant (1) et après (2) la vérification de sa topologie.

On peut savoir quelle est la distance maximale (entre deux points) de ces vides et de ces superpositions avec l’outil Mesurer une longueur de QGIS. Ici, la distance maximale est ≤ 5 m (on est en RGF93). C’est ce paramètre que l’on va rentrer dans les requêtes SQL : CreateTopology et toTopoGeom (voir ci-dessus).

SELECT topology.CreateTopology(‘ma_topo’, 0, 5);
SELECT topology.AddTopoGeometryColumn(‘ma_topo’, ‘public’, ‘test’, ‘topo’, ‘POLYGON’);
UPDATE test SET topo = topology.toTopoGeom(geom, ‘ma_topo’, 1, 5);

Il pourra encore apparaitre des erreurs qu’il faudra chercher à identifier de manière ad hoc, par exemple en levant des exceptions (voir les liens ci-dessous).

Résultat :

topologie de test_1.shp avec une tolérance de 5 degrés
Topologie de test_1.shp avec une tolérance de 5 m.

Si la tolérance avait été nulle :

SELECT topology.CreateTopology(‘ma_topo’, 0, 0);
SELECT topology.AddTopoGeometryColumn(‘ma_topo’, ‘public’, ‘test’, ‘topo’, ‘POLYGON’) As new_layer_id;
UPDATE test SET topo = topology.toTopoGeom(geom, ‘ma_topo’, 1, 0);
topologie de test_1.shp sans tolérance (tolérance=0)
Topologie de test_1.shp sans tolérance (tolérance=0).

Liens sur la topologie dans PostGIS :

simplifier un ensemble de polygones limitrophes (départements)

nettoyer un ensemble de lignes (réseau routier)

Une excellente manière de continuer à ‘topologiser’ en bandes dessinées  :

le Topologicon.pdf