Оптом дешевле

Oct 03, 2012 02:39

После покупки минувшей зимой китайфона с встроенным GPS-приёмником, количество сохранённых треков резко выросло: во-первых, телефон я беру с собой гораздо чаще, чем старый потрёпанный навигатор, во-вторых, все программы, которыми я пробовал пользоваться (Navitel Navigator, OsmAnd, OSMTracker) создают кучу файлов: по файлу на каждый запуск программы, в то же время при сливании трека любой длины с железного навигатора получается всего один файл. Если в прошлые годы набиралось около 40 файлов в год, то за 9 месяцев текущего года набралось уже почти 200 файлов.

OpenStreetMap позволяет передавать файлы не по одному, а пачкой - в виде зип-архива, однако перед тем, как отправить файлы на сервер, надо бы их слегка почистить - например, убрать скопления точек возле мест, где часто бываю. Делать такое с каждым файлом - неправильно, правильнее будет объединить файлы, а лишние точки удалять из уже объединённого.

Объединять можно разными путями. Для любителей консоли - gpsbabel, тот самый, который позволяет преобразовывать треки и сливать их с навигатора: gpsbabel -i gpx -f one.gpx -f two.gpx -f n.gpx -o gpx -F sum.gpx
Понятно, что можно использовать его совместно с другими программами - например, слить воедино все GPX-файлы текущего каталога можно так: perl -e '@f = <*gpx>; $cmd = "gpsbabel -i gpx -f " . join(" -f ", @f) . " -o gpx -F sum/2012.gpx"; print `$cmd`'
Можно попробовать поискать файлы и с обходом подкаталогов: find . -type f -name '*gpx' | perl -nle 'push @f, $_; END{$cmd = "gpsbabel -i gpx -f \"" . join("\" -f \"", @f) . "\" -o gpx -F sum/2012-summer.gpx"; print `$cmd`}'
Если в именах файлов есть специальные символы (например, точка с запятой - такое попадается в треках OSMTracker), то имена таких файлов должны быть в кавычках, что и видно на примере.

Для любителей рисовать карты OpenStreetMap - JOSM: им можно открыть несколько треков и объединить (Merge) слои с этими треками.

JOSM можно использовать и для очистки треков от мусора: трек может быть преобразовать в слой данных, после чего становится доступным его редактирование - краткую инструкцию по очистке треков можно найти на http://wiki.openstreetmap.org/wiki/RU:Editing_GPX_Tracks. Viking, хоть и позволяет удалять точки трека, делает сей процесс весьма неудобным: приходится либо удалять точки по одной, либо разбивать трек на мелкие кусочки и удалять те куски, что не нужны. Чистить треки другими программами я не пробовал - мне вполне хватило JOSM.

P. S. Слил треки, почистил - получил 376 тысяч точек общим весом в 33 мегабайта несжатого GPX-файла (меньше 3 МБ в виде зип-архива), залил на сервер - сервер уже больше часа пытается всё это обработать. На трек в 10 тысяч точек обычно хватало одной минуты.

zip, osm, gps, linux, viking, josm, perl

Previous post Next post
Up