Uk:Анімація історії правок

From OpenStreetMap Wiki
Jump to: navigation, search
Dnipropetrovsk.gif

Дана стаття описує алгоритм створення анімаційної картинки історії правок OSM-даних.

Скрипт

Актуальна версія скрипта зберігається на GitHub

Необхідні компоненти

  • wget для завантаження даних
  • bzip2 для розархівації даних
  • Osmconvert для конвертації даних
  • Maperitive для генерації картинок
  • ImageMagick для склейки картинок в gif-файл

Для коректного виконання скрипта усі зазначені компоненти повинні знаходитись в папці binaries. В разі виникнення проблем з налаштуванням компонент використовуйте готову збірку binaries.zip

Підготовка даних

Підготовлені дані для України доступні за посиланням https://mega.co.nz/#F!tIpDnZbB!rl5uA-2vtUyRlc9eBDhCFg

Якщо вам потрібні дані для іншої країни або дані для України стали недоступні - виконайте наступні кроки:

  1. Запустіть download.osm.history.bat щоб завантажити історію правок.
  2. Обробка даних до 31 березня 2012 вимагає окремого кроку для розбивки на щоденні набори змін. Запустіть split.history.2012.bat. В результаті виконання буде створено папку osc_2012_day з окремим набором змін кожного дня від 2 серпня 2005 до 1 квітня 2012.
  3. Сконвертуйте *.osc файли у формат *.o5m запустивши generate.o5c.files.full.bat. Відредагуйте generate.o5c.files.full.bat якщо вам потрібні тільки денні, десятиденні, місячні, річні набори змін, а не усі з них. В результаті виконання будуть створені папки o5c_day, o5c_10days, o5c_month, o5c_year, o5c_2012_day, o5c_2012_10days, o5c_2012_month, o5c_2012_year.

Конфігурація скрипта

Перед запуском основного скрипта створіть в папці config файл з розширенням .bat наступними параметрами(використовуйте dnipropetrovsk.bat як приклад):

  • boundary - координати необхідної області, що будуть використовуватися для обрізання файлу з даними. Координати можна отримати наприклад на openstreetmap.org/export.
  • x, y - координати центру картинки
  • zoom - рівень масштабування, може бути дробовим числом
  • width - ширина результуючої картинки
  • height - висота результуючої картинки

Відредактуйте файли generate.osm.before.2012.bat і generate.osm.since.2013.bat щоб використовувати новий config-файл.

В generate.osm.before.2012.bat і generate.osm.since.2013.bat додатково можуть бути змінені наступні параметри:

  • osc_folder - папка, що містить файли змін: o5c_day, o5c_10days, o5c_month, o5c_year, o5c_2012_day, o5c_2012_10days, o5c_2012_month, o5c_2012_year
  • png_folder - папка в яку зберігатимуться png-картинки.
  • gif_delay - затримка між кадрами, 100 відповідає 1с
  • result_file - назва результуючого файлу
  • initial_pbf - початковий дамп для обробки. Файл повинен бути доступним на http://be.gis-lab.info/data/osm_dump/dump/UA/
  • start_update - назва файлу змін відповідно до initial_pbf
  • start_maperitive - назва файлу починаючи з якого будуть генеруватися png-картинки
  • stop_processing - назва файлу після якого припиниться робота скрипта

Запуск і результат скрипта

Скрипт запускається почерговим викликом generate.osm.before.2012.bat і generate.osm.since.2013.bat.

  • завантажує(якщо відсутній) дамп України з http://be.gis-lab.info/data/osm_dump/dump/UA (~200МБ)
  • генерує картинку у форматі png станом на заданий перший день
  • оновлює дамп використовуючи відповідний файл історії правок
  • генерує картинку станом на наступний день
  • повторює попередні два кроки для усіх наступних файлів історії правок
  • склеює отримані png-файли в один gif-файл

Для того, щоб склеїти result_2012.gif і result.gif використовуйте команду:

 binaries\imagemagick\convert.exe -delay 100 -loop 0 result_2012.gif result.gif merged.gif

Приклад роботи

Кременчук 21 серпня 2014 - 22 вересня 2014

  osc_folder=o5c_day
  initial_pbf=UA-140801.osm.pbf
  start_update=UA-140801.o5c
  start_maperitive=UA-140821.o5c
  stop_processing=

Дніпропетровськ 2007 - 2014

  osc_folder=o5c_2012_month
  initial_pbf=empty.osm
  start_update=UA-0508.o5c
  start_maperitive=UA-0508.o5c
  stop_processing=
  osc_folder=o5c_month
  initial_pbf=UA-130301.osm.pbf
  start_update=UA-1303.o5c
  start_maperitive=UA-130301.osm.pbf
  stop_processing=