Extraire les nœuds intermédiaire à partir de way

Extraire des données OSM, créer sa carte, uMap, utiliser sur un GPS ou un smartphone...
concalite

Extraire les nœuds intermédiaire à partir de way

Message par concalite » mer. oct. 01, 2014 8:27 pm

Bonjour,
je suis débutant avec les données OSM, ma question est : comment récupérer à partir d'un fichier .osm une liste de way avec les nœuds qui les composent.
Pour donner une idée de la structure de données que j'aimerai obtenir voici un example :

way nodes
583176 269521911, 269521912, 269521913
583178 269521915, 269521916, 269521917, 269521918, 269521919
68748 26952, 26959, 269521919
.....

(pour chaque way tous les nodes qui le composent)

dois-je m'orienter vers des outils de types : osmosis, ou osmfilter.
ou sinon attaquer directement le fichier osm et extraire avec un script maison ?

Je vous remercie par avance.
Respectueusement
Concalite

vdct
Messages : 225
Inscription : mar. janv. 22, 2013 10:16 pm

Re: Extraire les nœuds intermédiaire à partir de way

Message par vdct » mer. oct. 01, 2014 10:18 pm

Bonsoir,
Ce que tu recherches reprend fidèlement la structure des données OSM, où un way n'a pas de géométrie en tant que tel mais est une suite de références à des points. Si tu parses un fichier OSM (en fait un fichier xml), tu verras en début de fichier tous les points, puis seulement ensuite les ways ave des tags "nd" suivis des IDs des noeuds.

Après, la manière de procéder va dépendre du volume que tu veux brasser : le XML pour quelques Mo, et assez vite un chargement en BD sinon.

vincent

sly
Messages : 489
Inscription : sam. févr. 07, 2009 6:33 pm
Localisation : Chambéry - savoie

Re: Extraire les nœuds intermédiaire à partir de way

Message par sly » mer. oct. 01, 2014 11:41 pm

Comme le dit vdct, les infos que tu cherches, c'est exactement ce que contient un fichier osm sans transformations spéciales. Ce qu'il te faut donc, c'est "juste" passer d'un format xml vers ton format.
Je pense que tous les autres programmes dont osmconvert qui est bien pour manipuler des fichiers osm ne te permettrons pas une opération à la foi "simple" et "spécifique"
concalite a écrit : ou sinon attaquer directement le fichier osm et extraire avec un script maison ?
C'est ce que je pense qui a le plus de chance d'aboutir, un langage qui propose un parseur xml et à mon avis en 10 lignes de code c'est fait.

Mais je m'étonne quand même du format que tu souhaites obtenir, à quoi peut-t-il te servir ? Si ce n'est qu'un format intermédiaire pour ensuite re-traiter ce fichier, il y a peut-être des chances qu'il existe cette fois un outil pour arriver à ton objectif final ;-)

concalite

Re: Extraire les nœuds intermédiaire à partir de way

Message par concalite » jeu. oct. 02, 2014 12:08 am

Bonsoir,

D'abord merci pour votre réactivité, l'objectif de ce projet est de construire un graphe routier (sommet arc : théorie des graphe) avec un coût spécifique pour les arcs (qui seront représenté par les way) mais j'ai besoin des points intermédiaire.
Le soucis c'est que je veux le faire sur un bloc de données de taille importante (la taille d'une région, ex : ile de france).
le bloc de données fait 6 giga :s
Donc la meilleure option c'est un script fait maison c'est bien ça ?

sinon c'est quoi cette approche de base de donnée ??

sly
Messages : 489
Inscription : sam. févr. 07, 2009 6:33 pm
Localisation : Chambéry - savoie

Re: Extraire les nœuds intermédiaire à partir de way

Message par sly » jeu. oct. 02, 2014 1:15 am

concalite a écrit :avec un coût spécifique pour les arcs (qui seront représenté par les way) mais j'ai besoin des points intermédiaire.
Et comment vas-tu calculer le coût des arcs si tu n'as pas les coordonnées des noeuds ? A un moment donné, il te les faudra forcément non ?
En même temps, j'imagine qu'il te faudra d'abord découper tous tes ways en arcs, et pour ça, tu peux te passer pour l'instant des coordonnées, mais tu en aura besoin pour calculer tes coûts.
concalite a écrit : Le soucis c'est que je veux le faire sur un bloc de données de taille importante (la taille d'une région, ex : ile de france).
le bloc de données fait 6 giga :s
Donc la meilleure option c'est un script fait maison c'est bien ça ?
Si plus tard tu as besoin des coordonnées, perso, je tenterais sans doute d'abord quelque chose avec osmosis. Sachant en plus que tu vas manipuler des grosses données, osmosis te mettra tout ça dans une base postgresql et ça sera peut-être plus performant que de bosser avec 2 énormes fichiers (un qui contient id ways->ids nodes et l'autre id node -> coordonnées)

Et si jamais une base de données ne t'apporte pas assez de performance, il sera toujours temps de faire des requêtes SQL pour tout charger en RAM et de faire ton routage là dessus.

Bon, je propose ça, mais j'ai jamais fais, donc c'est un peu doigt mouillé pour savoir quelle est la meilleure route à prendre ( haha ;-) )

Répondre

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 1 invité