[OSM-talk-fr] astuce - récupération en nombre par overpass API
Ab_fab
gamma.gts at gmail.com
Dim 4 Déc 19:31:49 UTC 2011
Suite (et fin) des essais
Récupérer les 223 communes de Loire-Atlantique est possible par ce moyen
Il faut ajuster la valeur de timeout car la requête est exécutée en 4'30
Il y a une option permettant de ne pas indiquer les métadonnées (version de
l'objet, contributeur) dans le fichier retourné. La requête est un peu plus
courte (4'00) mais surtout le fichier récupéré est pratiquement 2 fois plus
mince (8.5 MO contre 15.4 au format XML non compressé).
Intéressant si le but n'est pas de travailler sur les données pour les
renvoyer vers la base.
Le 4 décembre 2011 14:48, Ab_fab <gamma.gts at gmail.com> a écrit :
> Bonjour,
>
> Un petit retour d'expérience sur un exercice pratique auquel je me suis
> livré :
> Récupérer les limites des 24 communes de l'agglomération nantaise le plus
> _ rapidement,
> _ proprement (pas de noeuds ni de limites importées deux fois)
> _ et simplement (pas de recours à une base postgis perso par ex.) possible.
>
> Je me suis tourné vers l'Overpass API [1] qui a pour avantage d'être
> rapide, à jour et qui ne craint pas les requêtes lourdes.
> Il y a un minuteur de sécurité sur les requêtes qui satureraient le
> système. Un script qui prend plus de 3 minutes est stoppé.
>
> On peut l'interroger par le biais d'un script, même assez long,ce qui
> s'est révélé très pratique.
> Le script peut être collé dans une interface sur le web [2] ou bien
> enregistré dans un fichier texte (portant l'extension .osm3s) dont le
> contenu sera envoyé vers le serveur par une ligne de commande [3]
>
> Pour mon exercice, je me suis orienté sur une recherche des limites en
> ciblant la référence insee incluse dans chacune des relations [4], et en
> indiquant une bbox pour préciser un peu la zone géographique de la
> recherche.
>
> Pour une commune seule (ici Nantes), la requête est comme suit :
>
> <union>
> * <query type="relation">
> * <bbox-query s="47.0" n="47.5" w="-2.0" e="-1.5"/>
> * <has-kv k="ref:INSEE" v="44109"/>
> * </query>
> * <recurse type="relation-node" into="nodes"/>
> * <recurse type="relation-way"/>
> * <recurse type="way-node"/>
> </union>
> <print mode="meta"/>
>
> Il est possible de faire soi-même la longue requête en faisant des copier
> coller des lignes marquées d'un * et en y modifiant pour chaque bloc le
> code insee. C'est jouable, mais pas vraiment top.
>
> J'ai demandé à Roland Ollbricht (qui développe l'outil) s'il y avait moyen
> de faire plus simple. Il m'a proposé de faire un script bash. [N'étant pas
> un dieu sous linux, je ne savais pas que l'on pouvait y faire des boucles]
> Résultat, le fichier .sh en pièce jointe, où l'on retrouve en bloc tous
> les codes INSEE.
> Une fois exécuté, il renvoie le fichier insee.osm3s (pièce jointe)
>
> Ne reste plus qu'à faire la requête en [3] et on obtient le fichier .osm
> qui s'ouvre nickel dans JOSM
>
> Le fichier .sh est à ajuster pour changer les bbox si l'on s'intéresse à
> une autre zone.
> On peut aussi changer la formulation de la boucle.
> Par exemple, pour un département qui est au complet niveau des limites
> administratives on peut faire incrémenter le code insee par pas de 1 du
> premier au dernier code commune du département et récupérer les limites
> d'un département au grand complet.
>
> Comme je trouve la démarche assez sympathique, je me permets de la
> partager ici !
>
> -------------
> [1] http://wiki.openstreetmap.org/wiki/Overpass_API
>
> [2] http://www.overpass-api.de/query_form.html
> http://overpass.osm.rambler.ru/query_form.html
>
> [3] Pour un script dans le fichier insee.osm3s & une sortie dans le
> fichier insee.osm.xml
> wget --post-file=insee.osm3s -O insee.osm.xml "
> http://overpass-api.de/api/interpreter"
>
> [4] les codes INSEE des 24 communes de Nantes Métropole sont
> 44009 44018 44020 44024 44026 44047 44074 44035 44101 44120 44198 44094
> 44109 44114 44143 44150 44172 44166 44171 44194 44162 44190 44204 44215
>
> --
> ab_fab <http://wiki.openstreetmap.org/wiki/User:Ab_fab>
> "Il n'y a pas de pas perdus"
>
--
ab_fab <http://wiki.openstreetmap.org/wiki/User:Ab_fab>
"Il n'y a pas de pas perdus"
-------------- section suivante --------------
Une pièce jointe HTML a été nettoyée...
URL: <http://lists.openstreetmap.org/pipermail/talk-fr/attachments/20111204/8e5f8e3d/attachment.htm>
Plus d'informations sur la liste de diffusion Talk-fr