Overpass > fusion area

Extraire des données OSM, créer sa carte, uMap, utiliser sur un GPS ou un smartphone...
Répondre
Avatar de l’utilisateur
Sylvain M.
Messages : 254
Inscription : ven. janv. 31, 2014 6:34 pm

Overpass > fusion area

Message par Sylvain M. » jeu. mai 07, 2015 4:39 pm

Bonjour,
Je progresse doucement dans mon apprentissage OSM.
A la suite de ce sujet, je réfléchis à une meilleure méthode pour gérer les périmètres basés sur des limites administratives, un peu à la manière de ComComMaker, mais juste avec Overpass Turbo + JOSM.
Je souhaiterais savoir si il est possible d'adapter une requête de ce genre :

Code : Tout sélectionner

[out:xml]
;
relation
  ["type"="boundary"]
  ["boundary"="administrative"]
  ["admin_level"="8"]
  ["ref:INSEE"~"61001|61002|61003|..."];
out meta;
>;
out meta;
Mais pour ne retourner que le périmètre de l'union des communes sélectionnées.
L'idée serait ensuite de charger le résultat de la requête dans JOSM, de créer la relation (outer) et d'y ajouter les Tags appropriés.

Pour la requête, j'ai le sentiment que les mots clés sont "union" et "area", mais j'avoue que la lecture des références ne m'a pas encore permis d'aboutir.
Est-ce que ça vous semble "jouable" ?

Un dessin serait peut-être plus parlant qu'un discours : en gros, je voudrais récupérer la ligne pointillée rouge basée sur le contour des 3 (n) communes :
Image

Merci à vous.

Sylvain

Avatar de l’utilisateur
cquest
Messages : 1929
Inscription : ven. avr. 16, 2010 12:22 am
Localisation : Val de Marne
Contact :

Re: Overpass > fusion area

Message par cquest » jeu. mai 07, 2015 7:47 pm

J'avais fait quelque chose de similaire pour les cantons départementaux...

Code : Tout sélectionner


# transforme une liste de commune en liste de way formant le périmètre
#
# exemple: sh jorf2json.sh 90 'Denney, Eloie, Evette-Salbert, Offemont, Roppe, Sermamagny, Valdoie, Vétrigne'
#
 
# transformation de la liste des communes ',' en | pour overpass
c=`echo $2 | sed 's/æ/ae/g' | sed 's/ et de /, /' | sed 's/, /$|^/g'`
 
# construction de la requête overpass
d=`echo "relation['ref:INSEE'~'^$1.*'][name~'^$c$'][admin_level=8][boundary=administrative];out;"`
 
# curl: récupération des membres des frontières des communes
# grep: extraction des N° de way triés
# uniq: décompte du nombre d'apparition de chaque way
# grep: on ne conserve que ceux présents une fois
# sed:  sortie sous la forme de 'wNNNN' pour utilisation directe dans JOSM
curl -s -G --data-urlencode "data=$d" http://overpass-api.de/api/interpreter | \
grep member.*way | grep -o ref.*role | grep -o "[0-9]*" | sort | \
uniq -c | \
grep "1 " | \
sed 's/^.*1 /w/'
En modifiant pour utiliser des codes INSEE et pas des noms de communes, ça devrait le faire...

Avatar de l’utilisateur
Sylvain M.
Messages : 254
Inscription : ven. janv. 31, 2014 6:34 pm

Re: Overpass > fusion area

Message par Sylvain M. » jeu. mai 07, 2015 9:33 pm

Merci Christian, mais j'ai un souci : je ne connais pas (encore :mrgreen: ) PHP, mais alors pas du tout ! ;)
(en espérant que ce soit bien du PHP !)
Et je n'ai pas de serveur PHP, donc je ne pourrai pas adapter le code à mes besoins.
Serait-ce possible uniquement avec une requête Overpass selon toi ?
En tout cas, merci pour ton aide, et chapeau pour ce code !
A+

Sylvain M.

the_knife
Messages : 249
Inscription : sam. nov. 24, 2012 11:30 pm
Localisation : Nancy

Re: Overpass > fusion area

Message par the_knife » sam. mai 09, 2015 7:56 pm

Sylvain M. a écrit :(en espérant que ce soit bien du PHP !)
Ce n'est pas du php mais des commandes système.

Avatar de l’utilisateur
cquest
Messages : 1929
Inscription : ven. avr. 16, 2010 12:22 am
Localisation : Val de Marne
Contact :

Re: Overpass > fusion area

Message par cquest » dim. mai 10, 2015 12:43 pm

Oui, c'est du script bash, de la ligne de commande unix/linux... utilise soit en direct ou via plein d'autre environnements (y compris PHP pour y revenir).

Avatar de l’utilisateur
Sylvain M.
Messages : 254
Inscription : ven. janv. 31, 2014 6:34 pm

Re: Overpass > fusion area

Message par Sylvain M. » mar. mai 12, 2015 10:55 am

Ok, alors je vais me pencher là dessus.
En tant que "Windowsien" ( :oops: ), j'ai déjà créé quelques batch Windows, mais je ne suis pas familier de Linux : une recherche rapide m'indique que pour executer des bash Linux sous Windows, je peux me tourner vers "Cygwin" (émulateur Unix).
Avant que je ne parte là dessus, c'est une bonne piste selon vous ?
A+

Sylvain M.

Avatar de l’utilisateur
cquest
Messages : 1929
Inscription : ven. avr. 16, 2010 12:22 am
Localisation : Val de Marne
Contact :

Re: Overpass > fusion area

Message par cquest » jeu. mai 14, 2015 7:10 pm

Aucune idée... ça fait trop longtemps que j'ai mis Windows au placard !

bibi
Messages : 29
Inscription : mer. févr. 11, 2015 10:10 pm

Re: Overpass > fusion area

Message par bibi » dim. mai 17, 2015 6:11 pm

Sylvain M. a écrit : je peux me tourner vers "Cygwin" (émulateur Unix).
Avant que je ne parte là dessus, c'est une bonne piste selon vous ?
A+

Sylvain M.
Avec Cygwin ça marchera. C'est un peu utiliser un marteau-pilon pour écraser la mouche. Tu peux aussi récupérer tes données brutes sous Windows (ou les récupérer directement sous Linux) et démarrer une machine virtuelle Linux pour exécuter les commandes de Christian. Côté machine virtuelle, tu peux partir d'Oracle VirtualBox, http://fr.wikipedia.org/wiki/Oracle_VM_VirtualBox ou de son équivalent chez VMWare http://fr.wikipedia.org/wiki/VMware (les deux ont leurs défauts) et côté Linux je te conseille [url]http://www.toutoulinux.fr/[url].
Voir même plus simplement tu mets une image de Toutou Linux sur une clé USB ou un CD et tu démarres du CD.
Toutou est si léger qu'ils conseillent de ne pas l'installer mais de repartir du disque à chaque fois (il sauve juste ta configuration : écran, disposition clavier...). Ma femme a redonné vie à un vieux PC ainsi et ne s'en plaint pas. Attention, le retour aux lenteurs de Windows peut être traumatisant :D.

À Brest peut-être

Avatar de l’utilisateur
Sylvain M.
Messages : 254
Inscription : ven. janv. 31, 2014 6:34 pm

Re: Overpass > fusion area

Message par Sylvain M. » mar. mai 19, 2015 11:43 am

Merci pour ces conseils éclairés !
Je garde ça pour quand j'aurai un peu plus de temps !
A+

Sylvain M.

Gustry
Messages : 135
Inscription : mer. nov. 23, 2011 2:30 pm

Re: Overpass > fusion area

Message par Gustry » sam. mai 23, 2015 3:28 pm

Et si on résolvait ce problème à l'aide d'un logiciel géomatique tel que QGIS ?
Cela me parait plus simple que de sortir Virtualbox et ce logiciel est fait pour çà : http://qgis.org

Avec le plugin QuickOSM dans QGIS, tu peux effectuer ta requête Overpass :

Code : Tout sélectionner

[out:xml]
;
relation
  ["type"="boundary"]
  ["boundary"="administrative"]
  ["admin_level"="8"]
  ["ref:INSEE"~"61001|61002|61003"];
>>;
out meta;
Puis tu vas dans "vecteur" -> "outils de géotraitement" -> "regrouper". Comme champ de regroupement, tu peux prendre "osm_type". Et c'est tout.

Avatar de l’utilisateur
Sylvain M.
Messages : 254
Inscription : ven. janv. 31, 2014 6:34 pm

Re: Overpass > fusion area

Message par Sylvain M. » jeu. juin 04, 2015 3:39 pm

Salut,

Excusez ma réponse tardive.
Je connais bien QGis en tant que géomaticien, et je pratique régulièrement les regroupement (fusion) de données sous SIG.
Donc pas de souci, dans QGis, pour générer le périmètre de l'intercommunalité (ici un PNR).
Le souci, c'est comment ensuite taguer les données depuis QGis, pour les renvoyer vers OSM. Est-ce que QGis permet d'éditer OSM ?
Je ne connais personnellement pas encore de plugin permettant cela... (je suis peut-être passé à côté ?)
J'ai enfin trouvé le temps d'installer une VM (machine virtuelle) Ubuntu sur mon PC (via VirtualBox). Reste plus qu'à comprendre comment lancer un script sous Ubuntu (désolé, je n'ai pas les fondamentaux de Linux !!!).
A suivre !

Sylvain M.

Avatar de l’utilisateur
Sylvain M.
Messages : 254
Inscription : ven. janv. 31, 2014 6:34 pm

Re: Overpass > fusion area

Message par Sylvain M. » jeu. juin 04, 2015 4:00 pm

Reste plus qu'à comprendre comment lancer un script sous Ubuntu (désolé, je n'ai pas les fondamentaux de Linux !!!).
Bon, pour ça j'ai trouvé le terminal :mrgreen: .
J'ai préalablement installé JOSM sur la machine.
Je lance le script depuis le terminal.
J'attends quelques secondes (2 ou 3 - ce qui laisse à penser que ça "tourne"), puis je retrouve la ligne "sylvain@sylvain-VirtualBox:~$ "
Si ça a marché, où suis-je sensé retrouver le fichier OSM en sortie ?
(d'ailleurs, que veut dire "sortie sous la forme de 'wNNNN' ")
Désolé pour ces question de neuneu linux !

Merci à vous.

Sylvain M.

JB

Re: Overpass > fusion area

Message par JB » jeu. juin 04, 2015 5:19 pm

En fait, c'est ça que tu cherches, non ?
http://comcommaker.openstreetmap.fr/

Avatar de l’utilisateur
Sylvain M.
Messages : 254
Inscription : ven. janv. 31, 2014 6:34 pm

Re: Overpass > fusion area

Message par Sylvain M. » jeu. juin 04, 2015 5:38 pm

:oops:
Je connaissais l'outil, mais j'étais resté au fait que les Parcs naturels régionaux n'étaient pas présents dans la liste des Collectivités/Tags proposés.
Mais je n'avais pas compris qu'il permettait de créer directement la relation et de l'importer dans JOSM. Il est donc ensuite facile d'adapter les Tags au type d'intercommunalité souhaité !
MERCI !!!
A+

Sylvain M.

(bon, par contre, la solution de Christian est sympa, et je vais quand même essayer de la mettre en pratique !)

Répondre

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 8 invités