RU:Osmupdate

From OpenStreetMap Wiki
Jump to navigation Jump to search

broom

Help (89606) - The Noun Project.svg

osmupdate выкачивает и накапливает OSM изменения деференцированные по времени (минутные, часовые и дневные). Это позволяет Вам создавать новые изменения(дифы) на любой период который необходим и обновлять Ваш файл с OSM данными регулярно или не регулярно, как Вам захочется.

Но это не единственный способ автоматически обновлять OSM данные, Вы так же можете использовать Osmosis для этих целей. OsmUpdate маленький и специально заточенный для этого. Имеет несколько функций отсутствующих в Osmosis, но так же не повторяет весь его функционал.

Варианты использования

  • Вы хотите сохранить изменения на своей локальной базе PostgreSQL и ежеминутно синхронизироваться с серверами openstreetmap.org.
    • Не используйте osmupdate. Используйте Osmosis или osm2pgsql или любой другой инструмент. osmupdate не обновляет базы данных.
  • Вы хотите обновлять OSM файл маленького географического региона раз в неделю.
    • Не используйте osmupdate. Перекачайте этот файл с одного из OSM сервисов, например geofabrik.de.
  • Вы только что нашли протухший OSM файл планеты годичной давности и хотите его обновить.
    • Не используйте osmupdate. Скачайте файл планеты заново.
  • У Вас есть OSM файл большой территории и Вам нужно обновлять его каждый несколько часов, дней или недель.
    • Вот для этого предназначен osmupdate.

Загрузка

Доступные места загрузки:

Как обычно: Используйте на свой страх и риск.

Необходимые требования

osmupdate использует другие программы которые должны быть доступны в Вашей системе:

  • osmconvert
  • wget
  • gzip (если вы хотите записывать сжатые gzip файлы)

Пожалуйста удостоверить, что эти программы загружены и установлены.

Описание программы

Эта программа заботится об обновлении .osm, .o5m или .pbf файлов за счёт загрузки и применения OSM Change file (.osc) с серверов "planet.openstreetmap.org".

Она так же соберет новые .osc или .o5c файлы которые могут быть использованы для обновления Ваших файлов OSM данных позже.

Два аргумента в командной строке являются обязательными: имена старого и нового файлов OSM данных. Если старый файл данных не имел временной метки, Вы можете задать её в командной строке или программа назначит его сама. analyzes it with the program osmconvert.

Вместо имени второго OSM файла Вы можете указать имя файла изменений (.osc). В этом случае Вы так же можете заменить имя старого файла OSM данных на временную метку. Аргументы из командной строки которые не обрабатывает osmupdate будут переданы в osmconvert. Используйте эту особенность чтобы задать зону обработки или ограничивающий полигон если Вы обновляете файл региона.

Чтобы получить детальное описание используйте встроенную помощь:

./osmupdate --help

В следующей главе будут представлены примеры использоания.

Обновление OSM файлов

Устаревшие OSM-данные в файлах могут быть обновлены и сохранены как новые файлы (.o5m, .o5m.gz, .osm, .osm.gz or .pbf). В целях сохранности osmupdate не удаляет старые файлы. Если Вам не нужные резервные копии удалите их сами. Например:

./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

Если Ваш файл OSM-данных не содержит метку времени, то его можно задать вручную:

./osmupdate old_file.osm 2011-02-15T23:30:00Z new_file.osm

Иначе программа попытается извлечь временную метку из старого файла автоматически.

Assembling an OSM Change file

Here, the old OSM data file is not updated directly. An OSM changefile is written instead. This changefile can be used to update the OSM data file afterwards. You also can use the changefile to update a database with Osmosis or osm2pgsql. Examples for assembling changefiles:

./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

Applying Geographical Borders

In the following example, we want to update an OSM file which contains only European OSM data. Hence the downloaded OSM changefiles contain not only London, but the whole planet, a lot of unneeded data would be added to this regional file. The -B= argument will clip these superfluous data.

./osmupdate europe_old.o5m europe_new.o5m -B=europe.poly

You also may use -b= option of osmconvert to specify a bounding box. Please refer to osmconvert program description for further information.

It is not possible to use the --complete-ways option from osmconvert (used to retain all the nodes belonging to a way, even when they lie outside of the bounding box or polygon) when updating.

Limit Changefile Categories

If you need to update your OSM file only once a day or once a week, you may want to consider the limitation of changefile category to daily. This will prevent minutely and hourly changefiles from being downloaded and therefore save a lot of data traffic. Use this option:

--day

For updates every few hours, you usually would not need minutely changefiles. So please consider applying this option:

--hour --day

Keep Temporary Files

Another way to minimize data traffic is to keep local copies of every downloaded file. This is especially recommended if you are going assemble chronologically overlapping changefiles. The command line option:

--keep-tempfiles

Verbose Output

osmupdate works very quietly. If you have suspicions that something might go wrong, or if you are just curious, then activate the verbose mode:

 v

Data Source

Usually, osmupdate downloads the changefile data from https://planet.openstreetmap.org/replication. If you want to use a different source, for example the Fork Project FOSM, a regional update repository, or the data available during the license-change period, you may specify this by the --base-url= option. Some sources require to define a suffix, for example --base-url-suffix=-replicate. Examples:

--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

Benchmarks

updating the whole planet

hardware: 16GB ram, 7200rpm disk, source file: No timestamp, 14 days old planet.

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 RAM, RAID6, source file: pbf, no timestamp, 5 days old planet file.

time ./osmupdate32 -v planet-latest.osm.pbf planet-latest2.osm.pbf
real    52m52.208s
user    43m39.028s
sys     0m43.891s

Please add your benchmark results.