45
Une ressource pour les géomaticiens

OpenStreetMap pour les géomaticiens

Embed Size (px)

Citation preview

Page 1: OpenStreetMap pour les géomaticiens

Une ressource pour

les géomaticiens

Page 2: OpenStreetMap 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 ...

Page 3: OpenStreetMap pour les géomaticiens

Modèle de données

Une seule couche topologique ... mais tout n'est pas connecté !

Un modèle simple et extensible à volonté

Page 4: OpenStreetMap pour les géomaticiens

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

Page 5: OpenStreetMap pour les géomaticiens

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

Page 6: OpenStreetMap pour les géomaticiens

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

Page 7: OpenStreetMap pour les géomaticiens

Wiki : Map Features

Page 8: OpenStreetMap pour les géomaticiens

Wiki : Map Features

Page 9: OpenStreetMap pour les géomaticiens
Page 10: OpenStreetMap pour les géomaticiens

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

Page 11: OpenStreetMap pour les géomaticiens

Et les polygones ?

Way fermé

Relation type=multipolygon

Eléments :role=outerrole=inner

[tag area=yes]

Page 12: OpenStreetMap pour les géomaticiens

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

Page 13: OpenStreetMap pour les géomaticiens

Une relation dans JOSM

Page 14: OpenStreetMap pour les géomaticiens

On assemble le tout ...

Page 15: OpenStreetMap pour les géomaticiens

Hétérogénéité des géométries

Page 16: OpenStreetMap pour les géomaticiens

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”

Page 17: OpenStreetMap 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 ...

Page 18: OpenStreetMap pour les géomaticiens

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

Page 19: OpenStreetMap pour les géomaticiens

Format .osm : export d'une piscine

Page 20: OpenStreetMap pour les géomaticiens

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

Page 21: OpenStreetMap pour les géomaticiens

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

Page 22: OpenStreetMap pour les géomaticiens

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

Page 23: OpenStreetMap pour les géomaticiens

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

Page 24: OpenStreetMap pour les géomaticiens

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

Page 25: OpenStreetMap pour les géomaticiens

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

Page 26: OpenStreetMap pour les géomaticiens

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

Page 27: OpenStreetMap 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 ...

Page 28: OpenStreetMap pour les géomaticiens

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

Page 29: OpenStreetMap pour les géomaticiens

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)

Page 30: OpenStreetMap pour les géomaticiens

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

Page 31: OpenStreetMap pour les géomaticiens

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

Page 32: OpenStreetMap pour les géomaticiens

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

Page 33: OpenStreetMap 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 ...

Page 34: OpenStreetMap pour les géomaticiens

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

Page 35: OpenStreetMap pour les géomaticiens

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)

Page 36: OpenStreetMap pour les géomaticiens

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

Page 37: OpenStreetMap pour les géomaticiens

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

Page 38: OpenStreetMap pour les géomaticiens

Overpass Turbo

Page 39: OpenStreetMap pour les géomaticiens

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

Page 40: OpenStreetMap pour les géomaticiens

Plugin QuickOSM pour QGis

Page 41: OpenStreetMap 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 ...

Page 42: OpenStreetMap pour les géomaticiens

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

Page 43: OpenStreetMap pour les géomaticiens

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

Page 44: OpenStreetMap pour les géomaticiens

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

Page 45: OpenStreetMap pour les géomaticiens

Antoine Riche06 76 88 13 49

[email protected]

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