Routes manquantes des données OpenStreetMap avec osmose

9

J'essaie actuellement d'extraire les réseaux routiers des décharges d'OpenStreetMap téléchargées sur Geofabrik . J'utilise la commande d'osmose suivante (version 0.45) pour extraire les routes:

osmosis \
--rbf input.osm.pbf \
--tf reject-relations \
--tf accept-ways highway=motorway,motorway_link,trunk,trunk_link,primary,primary_link,secondary,secondary_link,tertiary,tertiary_link,unclassified,residential \
--tf reject-ways highway=construction \
--lp --wb output_roads.osm.pbf

Cela devrait renvoyer un fichier contenant toutes les routes automobiles, à l'exception des routes de service.

Cependant, certaines routes (et parfois beaucoup) manquent. J'ai essayé cette commande sur 3 fichiers d'entrée:

  • Région "Midi-Pyrénées": le réseau routier semble presque achevé. La table attributaire contient 72010 éléments.
  • toute la France: il manque beaucoup de routes. La table attributaire ne contient que 65803 éléments (moins d'une seule région). Tous les types d'autoroutes sont touchés: du primaire au résidentiel. Il n'y a aucun modèle évident pour les routes manquantes.
  • toute l'Europe: presque toutes les routes manquent. La table attributaire contient 62092 éléments (moins que toute la France ...).

Je suppose qu'il y a une limitation que je ne connais pas, que ce soit sur la commande d'osmose ou sur le fichier de sortie. Qu'est-ce que je fais mal ici?

Cela peut ne pas être lié, mais j'ai essayé d'utiliser l' --used-nodeoption afin de réduire la taille des fichiers de sortie, mais cela génère toujours une erreur ( org.openstreetmap.osmosis.core.OsmosisRuntimeException: Unable to create object stream writing to temporary file null.). Je ne sais pas pourquoi.

Mise à jour 29/08/2018: J'ai également essayé d'utiliser osmfilter( input.o5m --keep="highway=" > output_roads.osm), avec les mêmes résultats. J'ai essayé l'osmose et osmfilter sur Windows 7 et Debian 9.5 (les deux 64 bits).

ArMoraer
la source
Pensez donc à utiliser `--tf accept -ways Highway = * \`, dans votre exemple, vous ne prenez pas en compte tous les types de routes.
obchardon
1
Utilisez-vous une version récente de l'osmose? Et avez-vous suffisamment d'espace libre sur le disque?
AndreJ
1
Sonne bien. as-tu essayé --rb?
AndreJ
2
your suggestion gives almost the sames results (65356 elements for France): Cela a attiré mon attention: 65356 est exactement une limitation de valeur de 16 bits (2 ^ 16), comme une valeur max Int16. Je suppose que cela doit être la limitation que vous recherchez. Peut-être que vous ne pouvez pas obtenir plus de 2 ^ 16 fonctionnalités maximum.
gisnside
2
65356 est un hareng rouge, 2 ^ 16 est 65536.
bugmenot123

Réponses:

1

Je vous recommande d'utiliser le site HOT pour télécharger les données OSM. Vous pouvez télécharger des données pour un emplacement spécifique ou même dessiner une limite pour une zone. et téléchargez uniquement la route.

https://export.hotosm.org/en/v3/exports/new/describe

yvvazsua
la source
Je ne sais pas si cela répond à la question de savoir comment faire cela en osmose, mais si la réponse est que vous ne pouvez pas le faire en osmose et pouvez le faire en CHAUD, alors je pense que vous devez au moins montrer comment faire des requêtes comparables à ceux de la question avec nombre de résultats retournés.
nmtoken