Actualmente estoy tratando de extraer redes de carreteras de los vertederos de OpenStreetMap descargados en Geofabrik . Estoy usando el siguiente comando de ósmosis (versión 0.45) para extraer carreteras:
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
Esto debería devolver un archivo que contiene todas las carreteras del automóvil, excepto las carreteras de servicio.
Sin embargo, faltan algunos (y a veces muchos) caminos. He intentado este comando en 3 archivos de entrada:
- Región francesa "Midi-Pyrénées": la red de carreteras parece casi completa. La tabla de atributos contiene 72010 elementos.
- toda Francia: faltan muchos caminos. La tabla de atributos contiene solo 65803 elementos (menos de una sola región). Todos los tipos de carreteras se ven afectados: primarios a residenciales. No hay ningún patrón obvio para las carreteras que faltan.
- toda Europa: casi todas las carreteras faltan. La tabla de atributos contiene 62092 elementos (menos que toda Francia ...).
Supongo que hay alguna limitación que no conozco, ya sea en el comando de ósmosis o en el archivo de salida. ¿Qué estoy haciendo mal aquí?
Esto puede no estar relacionado, pero he intentado usar la --used-node
opción para reducir el tamaño de los archivos de salida, pero esto siempre genera un error ( org.openstreetmap.osmosis.core.OsmosisRuntimeException: Unable to create object stream writing to temporary file null.
). No tengo ni idea de porqué.
Actualización 29/08/2018: también intenté usar osmfilter
( input.o5m --keep="highway=" > output_roads.osm
), con los mismos resultados. Probé osmosis y osmfilter tanto en Windows 7 como en Debian 9.5 (ambos de 64 bits).
--rb
?
your suggestion gives almost the sames results (65356 elements for France)
: Esto me llamó la atención: 65356 es exactamente una limitación de valor de 16 bits (2 ^ 16), como un valor máximo de Int16. Supongo que esa debe ser la limitación que estás buscando. Tal vez no pueda obtener más de 2 ^ 16 características máximas.