ES:Osmupdate
osmupdate descarga y acumula archivos de cambios de OSM en diferentes categorías (cada minuto, cada hora, diariemente). Esto le permite crear nuevos archivos de cambios para cada período de tiempo que necesite y actualizar sus archivos de datos de OSM en intervalos regulares o irregulares, como usted quiera.
Tenga en cuenta que este no es el único mecanismo para la actualización automática de los datos de OSM, también puede utilizar otros programas para este fin, por ejemplo Osmosis. osmupdate es un pequeño y rápido programa que ha sido desarrollado sólo para esta tarea. Puede que ofrezca algunas funciones que Osmosis no ofrece, pero también hay funciones que pueden faltar en osmupdate.
Casos de uso
- Quiere mantener su base de datos local PostgreSQL actualizada y minuciosamente sincronizada con los servidores de openstreetmap.org.
- Puede utilizar osmupdate. osmupdate no puede actualizar las bases de datos por sí mismo, pero puede hacerlo junto con otras herramientas. Para la base de datos de osm2pgsql, ver el actualizador furry-sansa.
- Necesita actualizar el archivo OSM de una pequeña región geográfica cada dos semanas.
- No utilice osmupdate. Vuelva a descargar el archivo desde uno de los servicios de archivos de OSM, por ejemplo, geofabrik.de.
- Acaba de encontrar un viejo archivo del planeta OSM de hace un año y quiere actualizarlo.
- No utilice osmupdate. Vuelva a descargar todo el archivo del planeta.
- Tiene un archivo de datos de OSM de una región geográfica más grande y necesita actualizarlo cada pocas horas, cada día o cada semana.
- Se recomienda utilizar osmupdate para este propósito.
Descargar
Estas descargas están disponibles:
- binario para Linux de 32 bits
- binario para Windows de 32 bits (en Vista, Win7, Win8 y win10 renombrar el archivo a, por ejemplo, osmup.exe después de la descarga, de lo contrario Windows puede asumir que el programa es un archivo de configuración)
- paquete
osmctools
en Debian, para instalar ejecutar:apt install osmctools
- código fuente (versión más reciente)
- (código fuente anterior)
- Descargar y compilar en una sola ejecución:
wget -O - http://m.m.i24.cc/osmupdate.c | cc -x c - -o osmupdate
Como de costumbre: No hay garantía, en la medida en que lo permita la ley.
Requisitos previos
osmupdate llamará a los subprogramas que deben estar disponibles en su sistema:
- osmconvert (también incluido en el paquete
osmctools
en Debian) - wget
- gzip (si quiere escribir archivos comprimidos en gzip)
Por favor, asegúrese de que estos programas han sido descargados e instalados.
Descripción del programa
Este programa se preocupa por actualizar un archivo .osm, .o5m o .pbf. Descargará y aplicará los archivos de cambios de OSM (.osc) de los servidores de "planet.openstreetmap.org". También puede ensamblar un nuevo archivo .osc o .o5c que puede ser usado para actualizar su archivo de datos de OSM en un momento posterior.
Dos argumentos de la línea de comandos son obligatorios: el nombre del antiguo y el nombre del nuevo archivo de datos de OSM. Si el archivo de datos antiguo no tiene una marca de tiempo del archivo, puede especificar esta marca de tiempo manualmente en la línea de comandos o el propio programa lo analizará con el programa osmconvert.
En lugar del segundo nombre de archivo de OSM, también puede especificar el nombre de un archivo de cambios (.osc o .o5c). En este caso, también puede reemplazar el nombre del antiguo archivo de datos de OSM por una marca de tiempo. Los argumentos de la línea de comandos que no sean reconocidos por osmupdate se pasarán a osmconvert. Aproveche esta oportunidad para proporcionar un cuadro delimitador o un polígono delimitador si va a actualizar un archivo de cambios regionales.
Para obtener una descripción detallada, por favor use la función de ayuda incorporada en el programa:
./osmupdate --help
En los capítulos siguientes se muestran algunos ejemplos de uso.
Actualización de archivos de OSM
Los archivos de datos de OSM desactualizados pueden actualizarse y escribirse como nuevos archivos (.o5m, .o5m.gz, .osm, .osm.gz o .pbf). Por razones de seguridad, osmupdate no borrará el archivo antiguo. Si no lo necesita como archivo de respaldo, por favor, elimínelo usted mismo. Ejemplos:
./osmupdate old_file.o5m new_file.o5m
./osmupdate old_file.o5m.gz new_file.o5m.gz
./osmupdate old_file.osm new_file.osm
./osmupdate old_file.osm.gz new_file.osm.gz
./osmupdate old_file.pbf new_file.pbf
Si su antiguo archivo de datos de OSM no contiene una marca de tiempo de archivo, esta marca de tiempo puede ser especificada manualmente
./osmupdate old_file.o5m 2012-03-15T23:30:00Z new_file.o5m
de lo contrario el programa intentará extraer la marca de tiempo del viejo archivo automáticamente.
Nota: No se recomienda actualizar los grandes archivos con formato .osm ya que esto puede llevar horas o incluso días. Por favor, usa .pbf o .o5m (un poco más rápido) para este propósito.
Ensamblando un archivo de cambios de OSM
Aquí, el antiguo archivo de datos de OSM no se actualiza directamente. En su lugar se escribe un archivo de cambios de OSM. Este archivo de cambios se puede utilizar para actualizar el archivo de datos de OSM después. También puedes usar el archivo de cambios para actualizar una base de datos con Osmosis o osm2pgsql. Ejemplos de montaje de archivos de cambios:
./osmupdate old_file.o5m change_file.o5c
./osmupdate old_file.osm change_file.osc
./osmupdate 2011-02-15T23:30:00Z change_file.o5c
./osmupdate 2011-02-15T23:30:00Z change_file.osc.gz
Aplicando fronteras geográficas
En el siguiente ejemplo, queremos actualizar un archivo de OSM que contiene
sólo datos europeos de OSM. Por lo tanto, los archivos de cambios del planeta descargados contienen
no sólo Londres, sino todo el planeta, muchos datos innecesarios se
añadirían a este archivo regional.
El argumento -B=
recortará estos datos superfluos.
./osmupdate europe_old.o5m europe_new.o5m -B=europe.poly
También puede usar la opción -b=
de osmconvert para especificar un cuadro delimitador.
Por favor, consulte la descripción del programa osmconvert para
más información.
No es posible utilizar la opción --complete-ways
de osmconvert (utilizada para retener todos los nodos pertenecientes a una vía, incluso cuando se encuentran fuera del cuadro delimitador o polígono) al actualizar.
Una forma más efectiva de actualizar un archivo regional de OSM es usar una fuente de actualización regional en lugar de un polígono fronterizo. Para ello, cambie la URL base (vea algunas secciones a continuación).
Limitar las categorías de los archivos de cambios
Si necesita actualizar su archivo OSM sólo una vez al día o una vez a la semana, puede considerar la limitación de la categoría del archivo de cambios a diario. Esto evitará que se descarguen los archivos de cambios por minutos y por horas y, por lo tanto, ahorrará mucho tráfico de datos. Utilice esta opción:
--day
Para las actualizaciones cada pocas horas, normalmente no se necesitarían archivos de cambio minuciosos. Así que por favor considere aplicar esta opción:
--hour --day
Mantener los archivos temporales
Otra forma de minimizar el tráfico de datos es mantener copias locales de cada archivo descargado. Esto es especialmente recomendable si va a montar archivos de cambios que se superponen cronológicamente. La opción de línea de comandos:
--keep-tempfiles
Salida detallada
osmupdate funciona muy silenciosamente. Si tiene sospechas de que algo puede salir mal, o si sólo tiene curiosidad, entonces active el modo detallado:
-v
Fuente de datos
Normalmente, osmupdate descarga los datos del archivo de cambios de https://planet.openstreetmap.org/replication. Si desea utilizar una fuente diferente, por ejemplo el Fork Project FOSM, un repositorio regional de actualizaciones, o los datos disponibles durante el período de cambio de licencia, puede especificarlo mediante la opción --base-url=
. Algunas fuentes requieren definir un sufijo, por ejemplo --base-url-suffix=-replicate
. Ejemplos:
--base-url=mirror
--base-url=http://planet.fosm.org/planet/ --base-url-suffix=-replicate
--base-url=https://planet.openstreetmap.org/ --base-url-suffix=-replicate
--base-url=https://planet.openstreetmap.org/redaction-period/ --base-url-suffix=-replicate
--base-url=download.geofabrik.de/europe/germany/bremen-updates
Pruebas de rendimiento
- actualizando todo el planeta
hardware: 16GB de ram, disco de 7200rpm, archivo fuente: No hay marcas de tiempo, planeta de 14 días de antigüedad.
time ./osmupdate planet-latest.o5m new-planet-latest.o5m --planet-url=https://planet.openstreetmap.org/redaction-period/
real 31m12.246s
user 13m45.716s
sys 0m57.056s
Hardware: Core i7 2600, 16GB de RAM, RAID6, archivo fuente: pbf, sin marcas de tiempo, archivo planeta de 5 días de antigüedad. .
time ./osmupdate32 -v planet-latest.osm.pbf planet-latest2.osm.pbf
real 52m52.208s
user 43m39.028s
sys 0m43.891s
Hardware: Phenom II x6 1090T, 32GB de RAM, RAID1, 160MB/s por unidad secuencial, archivo fuente: planet-130515.osm.pbf, archivo planeta de 15 días de antigüedad.
time osmupdate --day planet-130515.osm.pbf planet-new.osm.pbf
osmupdate: Aging the timestamp by 4 hours for safety reasons.
real 67m30.271s
user 53m33.933s
sys 2m12.440s
Hardware: PC de gama baja: Pentium G630T, 4GB de RAM, 7200 RPM 2,5" HDD, archivo fuente: planet.pbf, archivo planeta de 3 días de antigüedad. Windows 7.
osmupdate planet.pbf planet.o5m
osmupdate: Aging the timestamp by 4 hours for safety reasons.
Time spent: 50 minutes
Hardware: E3-1231 v3 @ 3.40GHz, 32GB de RAM, HDD + SSD ZFS array, FreeBSD, todos menos dos días en caché
osmupdate --max-merge=25 --day -v --keep-tempfiles planet-150413.osm.pbf planet-150824.osm.pbf
Time spent: 1h18m
Si descarga diffs, el tiempo de ejecución es de 2h42m.
Por favor, añada los resultados de sus pruebas de rendimiento.
Problemas conocidos
Osmupdate actualmente (a partir de 2014-01-24) no funciona con conexiones de Internet a través de servidores proxy.