Upload
antoine-riche
View
708
Download
9
Embed Size (px)
Citation preview
Une ressource pour
les géomaticiens
Modèle de données
Utiliser des données brutes
Utiliser des données formatées
Requêtes directes sur la base
Pour aller plus loin ...
Modèle de données
Une seule couche topologique ... mais tout n'est pas connecté !
Un modèle simple et extensible à volonté
Eléments du modèle de données
Node : id, lon, lat (WGS84)Avec ou sans tag
Way : 2 à 2000 nodes
Au moins 1 tag
Relation : liste ordonnée d'éléments
Chaque élément peut avoir un rôle
Les tags décrivent les éléments
Tag : clef = valeur● Clef et valeur sont des chaînes
de caractères libres (max. 255)● Chaque élément peut porter
plusieurs tags qui le décrivent● exemple : highway=primary
ref=N10name=Nationale 10maxspeed=90lanes=2
Les tags sont libres mais ...
Tags principaux et secondaires :
Conventions documentées sur le Wiki :http://wiki.openstreetmap.org/wiki/FR:Map_Features
amenity=bicyle_parkingbicycle_parking=stands
name=Nantesname:br=Naoned
Namespace :cycleway:right=buswayparking:condition=ticket
Wiki : Map Features
Wiki : Map Features
Quelques tags fréquentsTag Utilisation Exemple
name Affiché sur la carte Château des Ducs de Bretagne
source Origine de la donnée cadastre-dgi-fr source : Direction Générale des Impôts - Cadastre. Mise à jour : 2009
ref:FR:* Numéro externe ref:FR:FANTOIR = 910450022G
addr:* Adresse addr:housenumber = 4addr:postcode = 44000addr:street = Place Marc Elder
website Lien vers site Web www.chateau-nantes.fr
wikipedia Nom article Wikipédia fr:Château des ducs de Bretagne
opening_hours Horaires d'ouverture Mo-Sa 10:00-20:00; Tu off
heritage Lieux classés heritage=2heritage:operator=mhsmhs:inscription_date=1840
wheelchair Accès en fauteuil yes / no / limited
layer Pour superposer de -5 à +5
note Pour les mappeurs Piste cyclable à cartographier
Et les polygones ?
Way fermé
Relation type=multipolygon
Eléments :role=outerrole=inner
[tag area=yes]
Les relations
Pour associer logiquement des objets proches● polygones, limites administratives, cours d'eau● rue : sections + adresses● restrictions à un carrefour (ex. tourne à gauche)● itinéraires de bus, parcours balisé
PAS pour grouper des objets par catégories :● tous les sentiers de Bretagne● tous les restaurants d'une chaîne
Une relation dans JOSM
On assemble le tout ...
Hétérogénéité des géométries
Historique
Toutes les versions de chaque élément sont conservées.
Chaque node, way et relation porte ces attributs :
version=”3”user=”BrunoC”uid=”125252”changeset=”6421205”timestamp="2010-11-21T10:45:10Z"visible=”true”
Modèle de données
Utiliser des données brutes
Utiliser des données formatées
Requêtes directes sur la base
Pour aller plus loin ...
Principaux formats de fichiers
.osm : format XML Lisible et éditable mais volumineux
.pbf : Protocolbuffer Binary Format Binaire et rapide mais illisible
.o5m : un compromis entre .osm et .pbf Binaire, + rapide mais + vol. que .pbf
.osc : OsmChange Proche de .osm + create/modify/delete
Format .osm : export d'une piscine
Utiliser des données brutes
Fichiers aux formats .osm et .pbf
Où trouver des données brutes :● fichier planet (27Gb au format .pbf)● fichiers préparés par GeoFabrik, Mapzen, etc.● Exporter depuis www.openstreetmap.org
Comment les utiliser :● import dans PostGIS avec osm2pgsql● import dans QGis via SpatiaLite● utilitaires pour convertir en d'autres formats
Données brutes → PostGis
Utilitaire osm2pgsql :➔ accepte les formats .osm, .pbf, .o5m, .bz2 …➔ peut charger les fichiers diffs pout tenir la base à jour➔ création de 4 tables par défaut :
Table Description Colonnes
planet_osm_point tous les points 70 colonnes
planet_osm_line toutes les lignes 69 colonnes
planet_osm_polygon toutes les surfaces 69 colonnes
planet_osm_roads routes principales 69 colonnes
Conçu pour créer un serveur de tuiles avec Mapnik
http://wiki.openstreetmap.org/wiki/Osm2pgsql
Données brutes → QGisMenu Vecteur > OpenStreetMap en 3 étapes :● export d'un fichier .osm depuis le serveur (cette étape
peut être remplacée pour tout autre export)
● import du fichier dans une base SpatiaLite
● accès au fichier pour chaque type de géométrie
3 tables, possibilité de sélectionner les colonnes
OK pour de petits volumes de données
2 feuilles de styles disponibles :https://github.com/anitagraser/QGIS-resources
Style “googlemaps” Style “tonerlite”
Utilisables pour un import PostGis (osm2pgsql)
Données brutes → QGis
Deux utilitaires simplesosmconvert➔ conversion entre les différents formats OSM➔ filtre spatial par bounding_box ou polygone➔ conversion de polygones en point
osmfilter➔ filtre sur les type d'objets (nodes, ways, relations)➔ filtre sur les clefs et valeurs
osmconvert normandie.pbf -B=orne.poly -o=orne.osm
osmfilter orne.osm --keep="shop=bakery" -o=pain.osm
http://wiki.openstreetmap.org/wiki/Osmconvert
http://wiki.openstreetmap.org/wiki/Osmfilter
Un utilitaire complet mais complexe
osmosis➔ conçu pour enchaîner plusieurs opérations➔ lecture et écriture dans une base de données➔ peut déduire les différences entre deux versions des
données, ou les appliquer à un fichier ou une BD➔ extrait sur une zone, filtrage par clefs-valeurs➔ concaténation de fichiers ...
osmosis --read-xml file="planet.osm" –write-pgsqlhost="x" database="x" user="x" password="x"
http://wiki.openstreetmap.org/wiki/FR:Osmosis
La librairie GDAL
ogr2ogr➔ inclut un pilote pour les formats .osm et .pbf➔ inclut la librarie SQLite qui fournit une interface
SQL aux données OSM➔ conversion en formats SIG: SHP, Mapinfo, ...➔ changement de projection➔ filtrage et sélection des tags, etc.
Excellent tutoriel sur http://www.portailsig.org/
http://www.gdal.org/ogr2ogr.htmlhttp://www.gdal.org/drv_osm.html
Modèle de données
Utiliser des données brutes
Utiliser des données formatées
Requêtes directes sur la base
Pour aller plus loin ...
Utiliser des données préparées
Fournisseur Zones courvertes Mise à jour Formats
Geofabrik.de Continents, pays et régions
Quotidienne .pbf, .shp
Mapzen.commetro extracts
+400 grandes villes Hebdomadaire .osm, .pbf, .shp, .geojson
Bbike.org +200 grandes villesou zone à définir
Hebdomadaire .osm, .pbf, .shp
Fichiers SIG : SHP, GeoJSON ...
Principaux fournisseurs :
Données structurées en tables et colonnes
Exports GeoFabrik – format SHP
Exports par continents, pays, régions Données structurées en 7 tables :
Table Description Colonnes
landuse occupation du sol osm_id, name, type
natural terrains naturels osm_id, name, type
waterways cours d'eau osm_id, name, type, width
railways réseau ferroviaire osm_id, name, type
roads réseau routier osm_id, name, type, ref, oneway,bridge, tunnel, maxspeed
places villes, villages, hameaux osm_id, name, type, population
points un peu de tout ... osm_id, name, type
Pas de bâtiments et peu d'équipements (amenity)
Import GeoFabrik SHP → QGis
Feuilles de styles pour QGis partagées par 3Liz : https://github.com/3liz/osm-in-qgis
Echelle 1:100 000 Echelle 1:10 000
… mais pas de pictogramme
Exports Mapzen
+400 villes dans le monde
Mise à jour hebdomadaire
6 formats pour chaque export :● données OSM : .osm et .pbf● osm2pgsql : formats SHP et GeoJSON● imposm : formats SHP et GeoJSON
… mais pas de feuille de styles disponible
Mapzen – format IMPOSM SHP
Table Description Colonnes
admin zones administratives osm_id, name, type, admin_leve
aeroways pistes d'aéroports osm_id, name, type
landusages occupation du sol osm_id, name, type, area, z_order
waterareas plans d'eau osm_id, name, type, area
waterways cours d'eau linéaires osm_id, name, type
roads réseau routier osm_id, name, type, ref, class, oneway, tunnel, bridge, access, service, z_order
places lieux : villages etc. osm_id, name, type, population, z_order
buildings bâtiments osm_id, name, type
transport_areas gares, aéroports osm_id, name, type
transport_points arrêts de bus osm_id, name, type, ref
amenities équipements : écoles etc. osm_id, name, type
Données structurées en 11 tables + 7 généralisées
Modèle de données
Utiliser des données brutes
Utiliser des données formatées
Requêtes directes sur la base
Pour aller plus loin ...
Requêtes sur la base
Avantages● données à jour● sélection sur bounding box et tags
Plusieurs APIs● API v0.6 : API pour l'édition des données Ne pas utiliser pour les requêtes ● XAPI : OSM Extended API Accès direct et prédicats● Overpass API : langage de requête complet
L'API Overpass
Optimisé pour les requêtes● rapide et puissant● nombreux filtres pouvant être combinés
Plusieurs serveurs (capacité: 1 M requêtes/jour)● http://overpass-api.de/api/● http://overpass.osm.rambler.ru/cgi/● http://api.openstreetmap.fr/oapi/
Nombreuses utilisations dont 2 IDEs :● http://overpass-turbo.eu/● plugin Quick OSM pour QGis (par 3Liz)
2 syntaxes pour un même langage
<osm-script> <query type="node"> <has-kv k="name" v="Toulouse"/> </query> <print/></osm-script>
node["name"="Toulouse"];out;
http://overpass-api.de/api/interpreter?data=node["name"="Toulouse"];out;
Requête XML Overpass QL
RequêteHTTP GET
API Overpass : fonctionnalitésSélection par type (node, way, relation) ou id
Filtres : ● spatial : bbox, polygon, distance● tags : k=v, k~v, k!=v, k!~v (regex)
Opérations ensemblistes : union, difference
Récursion : node ↔ way ↔ relation
Résultat :● format : XML, JSON, HTML, carte● contenu : ids, geoms avec/sans tags, historique
http://wiki.openstreetmap.org/wiki/Overpass_API
Overpass Turbo
Wizard pour générer facilement des requêtes amenity=restaurant in Toulouse amenity=bar or amenity=cafe around Auch boundary=administrative and admin_level=8 in Gers
Carte interactive avec le résultat de la requête
Export des données en GeoJSON, GPX, KML …
Sauvegarde et partage de requêtes (permalien)
Possibilité de définir des styles en MapCSS
http://overpass-turbo.eu/
http://wiki.openstreetmap.org/wiki/Overpass_turbo
Plugin QuickOSM pour QGis
Modèle de données
Utiliser des données brutes
Utiliser des données formatées
Requêtes directes sur la base
Pour aller plus loin ...
Autres outils
Géocodage avec Nominatim● Service en ligne :
https://nominatim.openstreetmap.org/● Intégration possible dans PostgreSQL
http://wiki.openstreetmap.org/wiki/Nominatim/
Calcul d'itinéraires● Service en ligne : http://project-osrm.org/● pgRouting dans PostgreSQL : pgrouting.org
http://wiki.openstreetmap.org/wiki/Routing
Sources d'information
Manuels en ligne➔ Learn OSM : http://learnosm.org/ ➔ Switch2OSM : http://switch2osm.org/➔ FLOSS : http://fr.flossmanuals.net/openstreetmap/
Forum ➔ français : http://forum.openstreetmap.fr/➔ anglais : http://forum.openstreetmap.org/
Mailing lists➔ https://lists.openstreetmap.org/listinfo➔ http://listes.openstreetmap.fr/wws/lists
Remerciements
Geofabrik [www.geofabrik.de], Mapzen [mapzen.com], Bbbike [www.bbbike.org] ➔ Exports formatés de données OSM
Maxime Résibois [http://www.portailsig.org/]➔ Tutoriel "Récupérer des données OpenStreetMap via
GDAL:OGR"
Martin Raifer➔ Overpass Turbo
3Liz [www.3liz.com] ➔ Feuilles de styles et plugin QuickOSM pour QGis
... et les dizaines de milliers de contributeurs OpenStreetMap
Antoine Riche06 76 88 13 49
Carto'CITÉAgence de géomatiquewww.cartocite.fr
Vous pouvez partager et adapter cette présentationà condition de l'attribuer à son auteur et de partagervos adaptations dans les mêmes conditions.
http://creativecommons.fr