ES:Osmconvert
osmconvert puede ser usado para convertir y procesar archivos de OpenStreetMap. Domina menos funciones que la comúnmente utilizada Osmosis: por ejemplo, no hay forma de acceder a una base de datos con osmconvert. Sin embargo, el programa se ejecuta más rápido y ofrece algunas funciones especiales (--all-to-nodes, --complete-multipolygons y --out-statistics).
Descargar
Como de costumbre: No hay garantía, en la medida en que lo permita la ley.
Binarios
Linux
- binario para Linux de 32 bits
- binario parad Linux de 64 bits
- paquete osmctools en Debian, para instalar ejecutar:
apt install osmctools
Windows
- binario para Windows de 32 bit (funciona con Win 64 también)
- binario para Windows de 64 bit (ver Limitaciones)
- binario para Windows de 64 bit (con soporte para archivos grandes)
Limitaciones: La versión de Windows (el binario descargado) no funciona con archivos grandes como planet.osm (mayor de 2Gb) cuando se usa la opción --complete-ways, --complete-multipolygons o --complete-boundaries. Por ejemplo, la versión de 64 bits de Windows falla con el comando "osmconvert planet.osm.pbf -b=17.7,59.15,18.4,59.5 -o=stockholm.osm --complete-ways --drop-version --verbose". El mismo comando funciona perfectamente usando la versión de Linux de 64 bits. Esto parece ser causado por un problema con la búsqueda de posiciones de archivo fuera del rango firmado de 32 bits, que es una limitación de la biblioteca zlib actualmente enlazada a los binarios de Windows.
DIY: Si quieres construir tu propio binario de 64 bits sin limitaciones, tendrás que construir el último zlib con las banderas _LARGEFILE64_SOURCE=1 y _LFS64_LARGEFILE=1. Y asegúrate de que el tipo z_off64_t esté definido como __int64 en zconf.h
Código Fuente
- código fuente (versión regular) (necesita vincular zlib (es decir,
cc osmconvert.c -lz -o osmconvert
)- (código fuente anterior)
- (próximo código fuente (si está disponible))
- Descargar y compilar en una sola ejecución:
wget -O - http://m.m.i24.cc/osmconvert.c | cc -x c - -lz -O3 -o osmconvert
- Instalar en Ubuntu y actualizar a la última versión:
sudo apt install osmctools && wget -O - http://m.m.i24.cc/osmconvert.c | sudo cc -x c - -lz -O3 -o osmconvert
- repositorio git de osmctools
En caso de error con "zlib.h" no encontrado: instalar zlib1g-dev
Iniciar el programa
Los usuarios de Windows pueden iniciar osmconvert haciendo doble clic en el ejecutable.
Los usuarios de todas las plataformas pueden iniciar osmconvert desde la línea de comandos. Simplemente ejecutando osmconvert se inicia una interfaz amigable e interactiva basada en texto que guía a los usuarios a través del proceso de uso del programa. Las capacidades completas de osmconvert no están disponibles en modo interactivo. Los usuarios avanzados pueden evitar la interfaz interactiva pasando banderas, como esta:
osmconvert --help
Descripción del programa
Para obtener una descripción detallada, por favor use la función de ayuda incorporada en el programa:
osmconvert --help
Esta llamada mostrará un breve resumen de los parámetros:
osmconvert -h
Los siguientes capítulos muestran las funciones más importantes del programa.
Convertir archivos
La conversión puede tener lugar entre estos formatos de datos:
Si desea encaminar la salida del programa a la salida estándar tendrá que decirle al programa qué formato de datos se utilizará:
--out-osm (valor por defecto), --out-osc, --out-osh, --out-o5m, --out-o5c, o --out-pbf.
Si proporciona el nombre del archivo de salida aplicando la opción -o=, osmconvert determinará el formato de los datos evaluando la extensión del nombre del archivo. Ejemplos para ambos casos:
osmconvert norway.pbf >norway.osm osmconvert region.pbf -o=region.o5m osmconvert region.o5m -o=region.pbf osmconvert 20110510_20110511.osc --out-o5c >20110510_20110511.o5c
También puede utilizar archivos de entrada comprimidos si suministra los datos a través de la entrada estándar. Ejemplos:
bzcat europe.osm.bz2 | osmconvert - -o=europe.o5m osmconvert norway.pbf | gzip -1 >norway.osm.gz
La opción "-" informa al programa de que debe esperar datos de entrada a través de la entrada estándar.
osmconvert ofrece una funcionalidad de descompresión limitada: puedes descomprimir archivos .gz. El programa reconocerá la compresión gzip por sí mismo, por lo que no es necesario preocuparse por qué archivo de entrada está comprimido con gzip y cuál no. El algoritmo de descompresión incorporado es menos poderoso que los programas de descompresión especializados, sin embargo esta característica es realmente útil si quieres actualizar un archivo OSM utilizando una serie de archivos .osc comprimidos recientemente descargados. Ejemplos:
osmconvert old.o5m daily_updates/2011*.osc.gz -o=new.o5m osmconvert daily_updates/2011*.osc.gz --merge-versions --out-osc | gzip > cumulative.osc.gz
Archivos de entrada de PBF con granularidad lon/lat no estándar
osmconvert espera que los archivos PBF usen la granularidad estándar de OpenStreetMap, que es de 100 nano grados. Es posible producir archivos PBF con diferente granularidad usando osmosis. Si se le pide que convierta un archivo con una granularidad diferente, osmconvert dará un error: "node nanodegrees must be 100: 10000". La solución para leer archivos con una granularidad no estándar es usar la opción --pbf-granularity=<val>.
Aplicando fronteras geográficas
Recorte basado en la longitud y la latitud
El suministro de coordenadas geográficas es la forma más fácil de definir una región geográfica que será extraída. Algunos mapas en línea muestran continuamente las geocoordenadas del cursor del ratón. Por ejemplo: Mapa de Osmarenderer, mapa de transporte público.
Para definir este cuasi-rectángulo limitante es necesario suministrar las coordenadas de sus esquinas suroeste y noreste (WSEN). (inferior izquierda / superior derecha) Por ejemplo:
osmconvert germany.pbf -b=10.5,49,11.5,50 -o=nuernberg.o5m osmconvert ontario.osm -b=-75.8,45.19,-75.7,45.23 -o=ott.osm
Recorte basado en un polígono
En lugar de un simple rectángulo delimitador, puedes usar un archivo de polígono de frontera. Esto permitirá una limitación más precisa de una frontera política, por ejemplo:
osmconvert germany.pbf -B=hamburg.poly -o=hamburg.pbf
El formato de un archivo de polígono de frontera se puede encontrar en el Wiki de OSM: aquí. No es necesario que se adhiera estrictamente a la descripción del formato, pero debe asegurarse de que cada línea de coordenadas comienza con espacios en blanco.
osmconvert es capaz de tratar con polígonos separados en un archivo, incluso considera "islas" en polígonos si se han definido correctamente.
Ejemplo utilizando un archivo de polígonos de polygons.openstreetmap.fr
- Obtener el ID de la relación que describe el área que desea extraer siguiendo esta guía o pulsando ctrl+i sobre la relación en JOSM.
- Inserte la identificación en polygons.openstreetmap.fr y descargue el archivo poly
- Ejecutar osmconvert:
osmconvert country-latest.osm.pbf -B="file.poly" --complete-ways --complete-multipolygons -o=extract.pbf
Los parámetros de complete-* aseguran que ningún elemento sea recortado en los límites, sino incluido en el conjunto.
Recorte de archivos de cambios de OSM?
No se recomienda aplicar límites geográficos a los archivos de cambios. Dado que solo los nodos llevan ubicaciones geográficas, el programa no sabe qué hacer con las vías y relaciones cuyos nodos relacionados no están en el mismo archivo. Como resultado, estas vías y relaciones serán excluidas del archivo. Esto no suele ser lo que se desea lograr.
Mantener completas las vías transfronterizas
Algunas aplicaciones requieren que las líneas (las llamadas vías) permanezcan intactas aunque se encuentren parcialmente fuera de la región geográfica definida. Esto puede lograrse aplicando la opción --complete-ways. Ejemplos:
osmconvert germany.o5m -b=10.5,49,11.5,50 --complete-ways -o=nuernberg.o5m osmconvert germany.o5m -B=hamburg.poly --complete-ways -o=hamburg.pbf
Esta opción, y la descrita en las dos secciones siguientes, limitará el tamaño del archivo de entrada a 2 GiB si su sistema operativo es Windows de 32 bits. Como el archivo de entrada debe ser leído dos o tres veces, el programa debe "saltar" dentro de este archivo. Desafortunadamente, la biblioteca de enlaces que se utiliza actualmente no soporta saltos largos con Windows de 32 bits. No existe tal limitación para Linux (ni para la versión de 32 bits ni para la de 64 bits).
Asimismo, para esta y las dos secciones siguientes, se recomienda utilizar .o5m como formato de datos para el archivo de entrada. La razón es que los archivos .pbf suelen estar comprimidos internamente y, por lo tanto, se leerán mucho más lentamente que los archivos .o5m.
Ninguna de las opciones --complete-... está disponible a través del comando Osmupdate.
Mantener completos los multipolígonos transfronterizos
Cada vez más zonas de ríos, bosques y lagos están rodeadas no solo por una línea cerrada sino por varias líneas concatenadas. Los llamados multipolígonos se utilizan para conectar lógicamente estas líneas físicamente conectadas. Cada línea tiene un rol dependiendo de la posición: "exterior" para la frontera circundante o "interior" para las zonas excluidas (por ejemplo, una isla dentro de un lago).
Al aplicar los límites geográficos, osmconvert puede considerar estos multipolígonos y mantenerlos intactos aunque solo haya una pequeña parte de la zona del multipolígono dentro de los límites. Para instruir al programa para que lo haga, elija la opción --complete-multipolygons. Ejemplos:
osmconvert germany.o5m -b=10.5,49,11.5,50 --complete-multipolygons -o=nuernberg.o5m osmconvert germany.o5m -B=hamburg.poly --complete-multipolygons -o=hamburg.pbf
Por favor, tome nota de las tres observaciones al final de la sección anterior.
Hasta 2016 esta opción había sido llamada --complex-ways.
Mantener completas los límites transfronterizos
Para asegurar que los límites se mantengan intactos, incluso si algunos de sus objetos vías se encuentran fuera de los límites geográficos aplicados, utilice la opción --complete-boundaries. Ejemplos:
osmconvert germany.o5m -b=10.5,49,11.5,50 --complete-boundaries -o=nuernberg.o5m osmconvert germany.o5m -B=hamburg.poly --complete-boundaries -o=hamburg.pbf
Por favor, tenga en cuenta las tres observaciones de las dos secciones anteriores.
Excluyendo las referencias a los objetos fuera de las fronteras
Si necesita eliminar las referencias a los nodos que han sido excluidos porque se encuentran fuera de los límites geográficos, utilice la opción --drop-broken-refs (podría ser útil para la importación de datos en OSM Map Composer o JOSM).
Fusionando dos o más áreas geográficas
Bajo ciertas condiciones, los archivos de datos de OSM pueden ser fusionados. Si contienen objetos (nodos, vías, relaciones) con el mismo id, deben tener el mismo contenido. Por ejemplo: Si una vía cruza la frontera geográfica entre dos archivos regionales, el conjunto de datos de la vía debe contener todas las referencias de los nodo, incluso las referencias a los nodos que no se encuentran dentro de los límites del archivo de referencia. Es decir, tal región no debe haber sido cortada usando la opción --drop-brokenrefs. Ejemplos de fusión geográfica:
osmconvert austria.o5m germany.o5m switzerland.o5m -o=dach.o5m osmconvert north_america.osm south_america.osm -o=americas.osm
Caso especial: recorte de datos de contorno
Mira aquí: Cómo renderizar las capas de contorno de Garmin sin artefactos
Excluir la información o el contenido del archivo de salida
Deshacerse de la información del autor
Para la mayoría de las aplicaciones no se necesitan las etiquetas de autor. Si usted decide excluir la información de nombre de usuario, id de usuario, conjunto de cambios y marca de tiempo del objeto, añada la opción de línea de la comandos --drop-author. Por ejemplo:
osmconvert --drop-author a.pbf -o=a.osm
Por lo general, no encontrará ningún problema al borrar la información del autor de los archivos .osm o .o5m, sin embargo, no se recomienda hacerlo con los archivos .pbf porque la mayoría de los programas no soportan este cambio de formato.
Si necesitas volver a enviar la información del autor más adelante, digamos que porque un programa posterior depende de este formato, puedes generarlos de nuevo con la opción --fake-author. Naturalmente, la nueva información de autor será solo valores de reemplazo que se adhieren a la descripción del formato, nada más.
Excluyendo ciertos tipos de objetos OSM
Si es necesario, puedes deshacerte de secciones enteras de un archivo:
--drop-nodes --drop-ways --drop-relations
El programa osmfilter ofrece una funcionalidad de filtro más granular.
Deshacerse de las vías y relaciones y convertirlas en nodos
A veces será más fácil para el procesamiento posterior si el archivo contiene solo objetos del tipo de objeto más primitivo: los nodos. osmconvert ofrece una función que borra todos las vías y todas las relaciones y crea un nodo como reemplazo de cada uno. La longitud y la latitud de cada nodo se establecen en el centro geográfico del objeto eliminado. Si el objeto eliminado era una vía no cerrada, se tomará la posición de uno de sus nodos en lugar del centro. Cada etiqueta del objeto eliminado se copia en el nodo. Como un id para el nuevo nodo el id de la vía (o relación) es tomado e incrementado por 1015 (o 2*1015). Por ejemplo:
osmconvert hamburg.pbf --all-to-nodes -o=hamburg_nodes.osm
La opción --object-type-offset= permite cambiar el desplazamiento del id, de 1015 a un valor diferente.
La opción --add-bbox-tags proporcionará un cuadro delimitador para cada vía y relación que se haya convertido en un nodo. Estos cuadros delimitadores aparecerán como etiquetas. Por ejemplo (área de Londres):
<tag k="bBox" v="-0.5000,51.0000,0.5000,52.0000"/>
Modificar etiquetas
A veces es útil cambiar ciertas etiquetas para facilitar el procesamiento de los datos.
Tenga en cuenta que "--modify-tags" se utiliza para las líneas, mientras que "--modify-node-tags" se utiliza para los nodos. En cualquier caso, tanto las claves como los valores pueden ser modificados.
Modificar valores
Puede especificar los valores a modificar. Por ejemplo:
./osmconvert a.o5m --modify-tags="highway=primary to =tertiary highway=secondary to =tertiary" -o=all_streets_are_small.o5m
Esto hará que todas las carreteras primarias y secundarias se conviertan en carreteras terciarias.
Modificar claves
Las claves también pueden ser modificadas:
./osmconvert a.o5m --modify-node-tags="amenity=fire_hydrant to emergency=fire_hydrant" -o=new_hydrant_syntax.o5m
Añadir nuevas etiquetas
Similar al filtrado del osmfilter, la modificación de la etiqueta por osmconvert permite comparaciones. Por lo tanto, puede añadir etiquetas redundantes si esto ayuda a simplificar el procesamiento posterior de sus datos:
./osmconvert a.o5m --modify-tags="maxspeed<=20 add speed_category=slow" -o=speed_categories.o5m
No se comprueba si ya hay etiquetas con el mismo nombre de la clave. Si es necesario, utilice la función de filtro de etiquetas del osmfilter para evitar posibles colisiones.
Actualización de archivos OSM
Si tienes un archivo de datos de OSM (.osm, .o5m o .pbf), puedes fusionarlo con uno o más archivos de cambios de OSM (.osc o .o5c) para actualizarlo. Por ejemplo, si tienes un archivo planet.osm o un archivo regional germany.o5m de ayer, puedes aplicar el archivo de cambios diarios de esta mañana para obtener un archivo actualizado planet.osm o germany.o5m. La sintaxis es así:
osmconvert planet_old.osm changefile.osc -o=planet_new.osm osmconvert planet_old.o5m changefile.osc.gz -o=planet_new.o5m osmconvert germany_old.o5m changefile.osc -B=germany.poly -o=germany_new.o5m
En caso de que su archivo de datos sea más antiguo, puede aplicar dos o más archivos de cambios simultáneamente:
osmconvert veryold.osm c1.osc c2.osc c3.osc -o=new.osm osmconvert day24.o5m c24_25.osc c25_26.osc -o=day26.o5m osmconvert day01.o5m november/*.osc -o=day30.o5m
Los objetos de OSM en el archivo de cambios deben ser únicos. Eso significa que solo tiene que haber una ocurrencia de cada nodo, vía o relación. Los archivos de cambio por hora y por minuto pueden contener más de una versión de los objetos OSM, por lo que recibirá mensajes de advertencia. Puedes combinar todas las versiones de cada objeto si especificas la opción --merge-versions. Entonces, solo la versión más reciente de cada objeto permanecerá en el archivo.
Para actualizar automáticamente un archivo de OSM o para crear archivos .osc acumulativos, por favor vea osmupdate.
Recuperar las diferencias entre dos archivos OSM
Puedes crear un archivo de cambios .osc o un .o5c comparando dos archivos .osm o .o5m. Por ejemplo:
osmconvert old.osm new.osm --diff -o=changefile.osc osmconvert old.o5m new.o5m --diff -o=changefile.o5c
Otras operaciones, como la aplicación de las fronteras regionales, no están permitidas en la misma ejecución. Ambos archivos deben estar ordenados por tipo de objeto e id. Los objetos creados aparecerán en el archivo de salida como "modificados", a menos que tengan el número de versión 1.
Al calcular las diferencias de los archivos, osmconvert se basa en los números de versión de los objetos que se van a comparar. Si los números de versión no están disponibles o si los objetos se compararán por contenidos, puede ordenar al programa que lo haga aplicando la opción --diff-contents (funciona solo para archivos .o5m).
Si un objeto debe ser eliminado, solo se almacena su identificación (y datos de autor). Se ha demostrado que es útil no almacenar el contenido del objeto porque se va a borrar de todos modos. Sin embargo, algunos programas esperan los valores de longitud y latitud de los nodos por razones formales, incluso si la única acción que realizan es borrar estos valores. La opción --fake-lonlat ayuda a crear tales valores de reemplazo formalmente requeridos.
Establecer la marca de tiempo del archivo
Por lo general, los archivos de OSM tienen una marca de tiempo que permite determinar la actualidad del archivo. Durante las conversiones de archivos, osmconvert mantendrá esta marca de tiempo. Sin embargo, puede ser ajustado por usted. Por ejemplo:
osmconvert hamburg.o5m --timestamp=2011-08-01T23:50:00Z -o=hamburg2.o5m
Recuperar datos estadísticos
Hay diferentes maneras de obtener metadatos o datos estadísticos de un archivo de OSM. Primero, puedes leer la marca de tiempo de un archivo con la opción --out-timestamp (la Z al final significa Zulu):
osmconvert file_with_timestamp.o5m --out-timestamp 2011-08-01T23:50:00Z osmconvert file_without_timestamp.o5m --out-timestamp (invalid timestamp)
Segundo, puedes analizar todo el archivo y crear un conjunto de datos estadísticos:
$ osmconvert germany.osm.pbf --out-statistics timestamp min: 2005-07-05T02:14:17Z timestamp max: 2011-07-31T19:59:46Z lon min: -20.0712330 lon max: 21.1441799 lat min: 47.0830289 lat max: 59.9982830 nodes: 78138447 ways: 11342322 relations: 176024 node id min: 1 node id max: 1380816490 way id min: 92 way id max: 123952798 relation id min: 159 relation id max: 1693098
Escribir archivos CSV
Para obtener listas separadas por caracteres se puede definir ".csv" como formato de salida. Esto puede hacerse utilizando la opción -o=, por ejemplo -o=my_table.csv o definiendo una de las opciones relacionadas con csv: --out-csv , --csv= , --csv-headline , --csv-separator= .
La tabla tendrá tres columnas separadas por tabulaciones: nombre del tipo de objeto, id, nombre. Para cambiar el separador de columnas o para seleccionar un conjunto diferente de columnas, utilice la opción --csv-separator= o --csv=. Utilice la opción --help para mostrar más información sobre este tema. Por ejemplo (en combinación con la opción --all-to-nodes ):
osmconvert shops.osm --all-to-nodes --csv="@id @lon @lat amenity shop name" --csv-headline @id @lon @lat amenity shop name 21548298 11.6122123 48.6884848 shop bakery Miller 21552613 9.0651970 49.9979332 shop butcher Jaeger 1000000168276611 6.6058085 51.4556093 shop drugstore AllForYou
Las columnas estarán separadas por los caracteres de tabulación del tamaño predeterminado de su sistema. Se recomienda utilizar -o=somefilename.csv si los datos se van a escribir en un archivo.
Combinando las funciones
La mayoría de las funciones introducidas anteriormente pueden combinarse. Así, por ejemplo, se puede actualizar un archivo .osm y limitar su región en una sola pasada:
osmconvert day24.osm -B=p.poly c24_25.osc -o=day25.osm
Procesamiento paralelo
osmconvert no soporta el procesamiento paralelo por sí mismo. Sin embargo, puede utilizar las capacidades de su sistema operativo e introducir tales instrucciones en la línea de comandos. Esto también puede ser útil en los casos en que quiera procesar más de un archivo .pbf, ya que actualmente osmconvert no es capaz de leer más de un archivo .pbf al mismo tiempo. Por ejemplo:
osmconvert region1.pbf --out-o5m | osmconvert - region2.pbf -o=all.pbf
En este ejemplo, el primer proceso leerá el archivo .pbf "region1.pbf" y lo emitirá en formato o5m a la salida estándar. El segundo proceso leerá estos datos de la entrada estándar, los fusionará con el otro archivo regional "region2.pbf" y los escribirá en el archivo "all.pbf". Habrá reconocido el signo menos en el segundo comando de osmconvert: aconseja al programa leer los datos de la entrada estándar. El operador tubería "|" conecta la salida estándar del primer comando con la entrada estándar del segundo comando.
También puedes usar más de una tubería creando las llamadas tuberías con nombre. Desafortunadamente esto podría no funcionar con Windows. En Linux, existe el comando mkfifo para crear tuberías. Estas tuberías pueden ser dirigidas de la misma manera que los archivos. En este ejemplo, se crearán tres procesos para fusionar tres archivos .pbf:
mkfifo p1 p2 osmconvert a.pbf --out-o5m -o=p1 & osmconvert osmconvert b.pbf --out-o5m -o=p2 & osmconvert p1 p2 c.pbf -o=all.pbf
Los operadores ampersand crearán cada uno un proceso de fondo para el comando que le corresponde. El último comando de la línea permanece en primer plano y recogerá los datos que los dos procesos de fondo produzcan.
Alternativamente, muchos shells de Unix proporcionan una técnica llamada Sustitución de Procesos, que esencialmente crea las tuberías con nombre para usted automáticamente, sin necesidad de usar mkfifo. Un equivalente al comando anterior sería:
osmconvert <(osmconvert a.pbf --out-o5m) <(osmconvert b.pbf --out-o5m) c.pbf -o=all.pbf
Archivo de parámetros
El argumento de la línea de comandos puede ser largo si se especifican operaciones complejas. Por favor, utilice un archivo de parámetros en su lugar y consulte este archivo con --parameter-file=. Por ejemplo:
osmconvert --parameter-file=my_parameters
Archivo "my_parameters":
// verbose -v // input file planet.o5m // bounding box -b=8.123,10.123,9.456,11.456 --complete-ways // output file -o=region.o5m
Las líneas vacías se utilizan para separar los parámetros. Los saltos de línea dentro de los parámetros se convertirán en espacios. Las líneas que empiezan con "// " son tratadas como comentarios y por lo tanto ignoradas por el programa.
Detalles técnicos
Archivos temporales
Para realizar ciertas operaciones osmconvert necesita crear archivos temporales. Estos archivos son pequeños - en comparación con los archivos de OSM que van a ser procesados. Cada uno de sus nombres comienza con "osmconvert_tempfile" y termina con números. Puedes cambiar la parte izquierda del nombre del fichero, incluyendo la ruta. Por ejemplo:
osmconvert germany.pbf -B=n.poly -t=/media/hd70/temp -o=nuernberg.o5m
Gestión de la memoria
Hay tres opciones que afectan a la gestión de la memoria del programa: --hash-memory=, --max-refs= y --max-objects=. Por favor, consulte la descripción detallada que se muestra en la opción de ayuda:
osmconvert --help
Salida de la prueba
A veces es agradable obtener información sobre lo que el programa está haciendo en este momento. Puedes activar el modo detallado aplicando esta opción: -v. Con -v=2 obtendrá una salida aún más detallada, sin embargo puede ser un poco confuso.
Pruebas de rendimiento
Planeta .pbf -> .o5m
Uno rápido, ya que Osmconvert no estaba solo accediendo al disco y no se me ocurrió ejecutar 'time':
16GB de RAM, disco de 7200 rpm.
./osmconvert planet-latest.osm.pbf -o=planet-latest.o5m
Approximadamente 12 minutos.
Planeta .osm -> .o5m
$ date Sat Dec 29 14:36:19 PST 2012 $ ./osmconvert planet.osm -o=planet-121207.o5m $ date Sat Dec 29 18:34:16 PST 2012 $ ls -lah ... -rw------- 1 user staff 32G Dec 29 18:34 planet-121207.o5m -rw-r--r-- 1 user staff 319G Dec 7 02:41 planet.osm ...
Entonces... alrededor de 4 horas en un i7 de 16GB con planet.osm en un disco duro externo USB 3. Resulta que era una unidad USB3 defectuosa...
Planeta .osm -> Recortado .osm
$time ./osmconvert planet-130123.osm -b=-144,20,-50,90 -o=na_subset.osm real 54m59.172s user 39m18.091s sys 5m3.111s
En un servidor de 16 núcleos con 48 GB de RAM, 12x2TB raid5. Rendimiento limitado por el uso de un solo hilo de cpu. La entrada planet.osm era de ~360GB, el subconjunto de salida era de ~112GB.
Planeta .o5m -> Alemania .o5m
Extrayendo Alemania del archivo del Planeta, usando el polígono de Alemania de Geofabrik:
./osmconvert planet.o5m -B=germany.poly -o=germany.o5m
Aproximadamente 5 minutos en una computadora con cpu i7, usando solo un núcleo.