1 votos

¿Cómo crear un .osm filtrado adecuado para osm2po utilizando la API de paso de OpenStreetMap?

He creado con éxito un conjunto (.osm) adecuado para el enrutamiento en un SIG de escritorio sobre una gran área personalizada, manteniendo así sólo la red primaria (objeto de camino) utilizando la API de paso (ver más abajo).

Intento este enfoque porque mi área de estudio cruza las fronteras nacionales y locales, por lo que otro enfoque para analizar un archivo planetario completo podría requerir muchos recursos... que no tengo...

Sin embargo, el XML OSM resultante fue rechazado por osm2po porque falta el archivo tr_raw.2po después de la primera fase de lectura (ver el registro más abajo).

¿Hay alguna manera de producir a través de la API de Overpass un archivo adecuado (¡pero no demasiado pesado!) para utilizarlo junto con osm2po?

¿O podemos modificar el comportamiento de osm2po para que funcione sin relaciones y no se lance ningún error?

Gracias y perdón por mi pobre inglés ;)

Aquí está la solicitud de paso elevado:

<osm-script>
  <query type="way">
    <has-kv k="highway" regv="junction|motorway|motorway_junction|motorway_link|primary|primary_link|secondary|secondary_link|tertiary|tertiary_link|trunk|trunk_link"/>
    <bbox-query e="8.1024169921875" n="48.34529727896014" s="47.331377157798244" w="6.8060302734375"/>
  </query>
  <union>
    <item/>
    <recurse type="down"/>
  </union>
  <print/>
</osm-script>

Y aquí está el registro:

LOG    Opened at Thu Apr 25 11:59:14 CEST 2013
INFO   Running osm2po 4.7.7 with cmd=tjsp
       SingleTileMode Uncompressed - 1 359M
INFO   Starting Tiler at Thu Apr 25 11:59:14 CEST 2013
INFO   Reading from
       mypath\extract.osm
INFO   Using parser de.cm.osm2po.converter.OsmXmlParser
INFO   166 865 of 166 865 nodes extracted - 1 354M
INFO   0 of 0 relations extracted - 1 354M
DEBUG  Writing TileFile:tm_info.2po
DEBUG  Prefix:extract Ways:0 Relations:0
       Tiles[1] SingleTileMode
       [0] Id:0 (s090-w180) Coords:166 520 Complex:345
INFO   Tiler finished at Thu Apr 25 11:59:16 CEST 2013
INFO   Starting Joiner at Thu Apr 25 11:59:16 CEST 2013
DEBUG  Reading TileFile tm_info.2po
DEBUG  Prefix:extract Ways:0 Relations:0
       Tiles[1] SingleTileMode
       [0] Id:0 (s090-w180) Coords:166 520 Complex:345
DEBUG  Capacity for Shared Ids is 3
INFO   Caching relations from tr_raw.2po - 1 358M
FATAL  Exception at Thu Apr 25 11:59:16 CEST 2013
       Message: java.io.FileNotFoundException: extract\tr_raw.2po (Le fichier spécifié est introuvable)
       Class: java.lang.RuntimeException
       Stacktrace:
       de.cm.osm2po.primitives.InStreamDisk.<init>(InStreamDisk.java:30)
       de.cm.osm2po.converter.Joiner.cacheOsmRelations(Joiner.java:106)
       de.cm.osm2po.converter.Joiner.run(Joiner.java:171)
       de.cm.osm2po.Main.runJoiner(Main.java:191)
       de.cm.osm2po.Main.main(Main.java:126)
INFO   ------------------------------------------------------------------

       For more help enter
       java -jar osm2po-core-4.7.7-signed.jar -h

LOG    Closed at Thu Apr 25 11:59:16 CEST 2013

1voto

Sanket Gupta Puntos 21

Bien, la respuesta era sencilla, la sintaxis correcta para el API Overpass es la siguiente. Sólo tienes que añadir esta línea <recurse type="up"/> para que también se incluyan las relaciones superiores.

<osm-script>
  <query type="way">
    <has-kv k="highway" regv="junction|motorway|motorway_junction|motorway_link|primary|primary_link|secondary|secondary_link|tertiary|tertiary_link|trunk|trunk_link"/>
    <bbox-query e="8.1024169921875" n="48.34529727896014" s="47.331377157798244" w="6.8060302734375"/>
  </query>
  <union>
    <item/>
    <recurse type="down"/>
    <recurse type="up"/>
  </union>
  <print/>
</osm-script>

Lo he intentado antes y ha fallado, pero esto se debió a un error por mi parte (coordenada bbox errónea después de copiar/pasar causando que el archivo fuera demasiado pesado).

Esta sintaxis funciona y he conseguido tanto lanzar el servidor osm2po como copiar el SQL a mi servidor Postgres/Postgis/PgRouting. ¡Las primeras pruebas con PgRouting están concluyendo!

¡Por cierto muchas gracias a osm2po este programa es bastante mágico!

0voto

Fh. Puntos 225

El registro informa Prefix:extract Ways:0 Relations:0 así que debe haber algo mal. No me preguntes cuándo, pero en una de las versiones anteriores arreglé el caso de que no existieran relaciones. Pero una fuente sin vías no puede ser válida. Parece que tu extracto no es tan grande, ¿podrías comprimirlo y enviarlo a mi email-addi?

De todos modos, ¿por qué no descargas france.osm.pbf? Incluso en un viejo ordenador con 1Gig de RAM osm2po es capaz de traducirlo.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X