Uk:Анімація історії правок
Дана стаття описує алгоритм створення анімаційної картинки історії правок OSM-даних.
Скрипт
Актуальна версія скрипта зберігається на GitHub
Необхідні компоненти
- wget для завантаження даних
- bzip2 для розархівації даних
- Osmconvert для конвертації даних
- Maperitive для генерації картинок
- ImageMagick для склейки картинок в gif-файл
Для коректного виконання скрипта усі зазначені компоненти повинні знаходитись в папці binaries. В разі виникнення проблем з налаштуванням компонент використовуйте готову збірку binaries.zip
Підготовка даних
Підготовлені дані для України доступні за посиланням https://mega.co.nz/#F!tIpDnZbB!rl5uA-2vtUyRlc9eBDhCFg
Якщо вам потрібні дані для іншої країни або дані для України стали недоступні - виконайте наступні кроки:
- Запустіть download.osm.history.bat щоб завантажити історію правок.
- Обробка даних до 31 березня 2012 вимагає окремого кроку для розбивки на щоденні набори змін. Запустіть split.history.2012.bat. В результаті виконання буде створено папку osc_2012_day з окремим набором змін кожного дня від 2 серпня 2005 до 1 квітня 2012.
- Сконвертуйте *.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=
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=