Suite

Extraire l'agrément du fichier pbf en utilisant osmose


Je souhaite extraire des équipements (atm) d'un fichier pbf. Voici ce que j'ai trouvé.

osmose --read-pbf monfichier.pbf --tf accept-nodes amenity=atm --write-xml atm.osm

Monfichier.pbf est un fichier pour la région parisienne (France). C'est 211Mo.
Le fichier atm.osm fait 1.8Go je pense que c'est vraiment gros pour seulement ATM de Paris. Alors, est-ce le bon moyen d'extraire l'atm ?
J'ai aussi essayé avec rarement d'aménité et c'est toujours un fichier 1.8Go.
Existe-t-il un moyen de lire atm.osm pour savoir si les données sont bonnes ?
Si je ne suis pas sur la bonne voie, je souhaite extraire ATM des données pour l'insérer à l'avenir dans une base de données.


J'ai trouvé une requête différente :

osmose --read-pbf myfile.pbf --node-key-value keyValueList="amenity.atm" --write-xml atm.osm

J'ai un fichier xml de 250ko avec tout l'atm. J'espère que ça pourra aider d'autres personnes


Essayez les requêtes suivantes :

# lire tous les nœuds avec amenity=atm ou atm=yes, ignorer les voies et les relations osmose --read-xml data.osm --tf accept-nodes amenity=atm --tf rejeter-voies --tf rejeter-relations --écrire -xml amenity_atm_nodes.osm osmosis --read-xml data.osm --tf accept-nodes atm=yes --tf rejet-ways --tf rejet-relations --write-xml atm_yes_nodes.osm # lire de toutes les manières avec amenity= atm ou atm=yes, ne garder que les nœuds liés, ignorer les relations osmose --read-xml data.osm --tf accept-ways amenity=atm --used-node --tf rejet-relations --write-xml amenity_atm_ways.osm osmosis --read-xml data.osm --tf accept-ways atm=yes --used-node --tf rejet-relations --write-xml atm_yes_ways.osm # lit toutes les relations avec amenity=atm ou atm=yes, ne gardez que les chemins et les nœuds liés osmose --read-xml data.osm --tf accept-relations amenity=atm --used-way --tf accept-relations atm=yes --used-node --write-xml amenity_atm_relations. osm osmose --read-xml data.osm --tf accept-relations atm=yes --used-way --tf accept-relations atm=yes --used-node --write-xml atm_yes_relations.osm # fusionner tous les fichiers osmose --rx amenity_atm_nodes.osm --rx atm_yes_nodes.osm  --rx amenity_atm_ways.osm --rx atm_yes_ways.osm  --rx amenity_atm_yes_relations.osm .osm  --merge --merge --merge --merge --merge --wx atm.osm

Cependant, le deuxième bloc (la partie avec les chemins) semble tirer un peu trop de données. Aucune idée de ce que je fais mal, peut-être que quelqu'un peut le réparer. Et la syntaxe est tout simplement horrible. De plus, vous pouvez probablement accélérer considérablement les choses en utilisant des tuyaux au lieu d'appeler osmose encore et encore pour chaque sous-tâche.

Alternativement, vous pouvez également penser à utiliser simplement l'API Overpass. La construction de filtres de balises avec l'API Overpass est un peu plus simple et vous n'avez même pas besoin de télécharger toute la zone au préalable. Voici un exemple de requête sur overpass turbo :

/* Ceci a été généré par l'assistant overpass-turbo. La recherche originale était : « amenity=atm or atm=yes in Paris » */ [out:json][timeout:25]; // récupère la zone "Paris" à rechercher dans {{geocodeArea:Paris}}->.searchArea; // rassembler les résultats ( // partie de requête pour : "amenity=atm" node["amenity"="atm"](area.searchArea); way["amenity"="atm"](area.searchArea); relation[ "amenity"="atm"](area.searchArea); // partie de requête pour : "atm=yes" node["atm"="yes"](area.searchArea); way["atm"="yes" ](area.searchArea); relation["atm"="yes"](area.searchArea); ); // affiche les résultats dans le corps ; > ; sur qt skel;


Voir la vidéo: 39 - Importer des données dun fichier txt ou csv (Octobre 2021).