ХарківТурист тепер у Телеграмі, долучайся!

| дитячі санки |

Начать новую тему Ответить на тему На страницу 1, 2, 3, 4, 5, 6, Bce  След.
Автор Сообщение
 Заголовок сообщения: TrackProcessor
СообщениеДобавлено: 09.11.2015 16:08 
Аватара пользователя

Сообщения: 471
Город: Екатеринбург
Пол: Муж
Возраст: 59
Зарегистрирован:26.03.2012
Вот. Сваял некий инструмент для обработки gpx треков. Смотрите, может, кому пригодится.

https://drive.google.com/open?id=0B1SFdzGC9fHXelFfU0dyMllXMDQ

К сожалению, описания пока нет. Так что все вопросы, если чего непонятно, сюда.

_________________
//Cheers, Victor
//Magellan eXplorist 310, Transystem TripMate 852, Columbus V-990, Transystem PersonalMate 860Lite, Garmin Nuvi 50


Вернуться к началу
shoppage  personalpage P  
 
 Заголовок сообщения: Re: TrackProcessor
СообщениеДобавлено: 10.11.2015 01:45 
Аватара пользователя

Сообщения: 1172
Город: Харьков
Пол: Муж
Возраст: 47
Зарегистрирован:18.03.2013
Не хочет открывать ни один из моих треков, как сырых из Магеллана, так и обработанных. При попытке открыть на экране появляется следующее сообщение:


Вложения:
2015-11-10_003240.png
2015-11-10_003240.png [ 9.91 КБ | Просмотров: 5073 ]


_________________
Карти для GPS-навігаторів: де їх брати? https://encyclopedia-mandriv.blogspot.com/2013/06/karty-dlya-gps-navigatorov.html
Вернуться к началу
shoppage  personalpage P  
 
 Заголовок сообщения: Re: TrackProcessor
СообщениеДобавлено: 10.11.2015 08:52 
Аватара пользователя

Сообщения: 471
Город: Екатеринбург
Пол: Муж
Возраст: 59
Зарегистрирован:26.03.2012
Поправил

https://drive.google.com/open?id=0B1SFdzGC9fHXT0NQQi1oVHdwRUE

Опять забыл что для русского языка винда ставит разделитель целой и дробной части равный ',' А все стандарты (NMEA, GPX) подразумевают что разделитель равен '.'

У себя-то сразу после установки меняю на точку (Панель управления - Язык и региональные стандарты - Форматы - Дополнительные параметры - Разделитель целой и дробной части)...

_________________
//Cheers, Victor
//Magellan eXplorist 310, Transystem TripMate 852, Columbus V-990, Transystem PersonalMate 860Lite, Garmin Nuvi 50


Вернуться к началу
shoppage  personalpage P  
 
 Заголовок сообщения: Re: TrackProcessor
СообщениеДобавлено: 11.11.2015 01:55 
Аватара пользователя

Сообщения: 1172
Город: Харьков
Пол: Муж
Возраст: 47
Зарегистрирован:18.03.2013
Спасибо, интересная программа. Правда, у меня немного подглючивает, когда трек на фоне онлайн-карты просматриваю. Понравились фильтры "Median" и "LowPass". Если с Median всё понятно, то в чём смысл названия "LowPass" я не пойму.

_________________
Карти для GPS-навігаторів: де їх брати? https://encyclopedia-mandriv.blogspot.com/2013/06/karty-dlya-gps-navigatorov.html


Вернуться к началу
shoppage  personalpage P  
 
 Заголовок сообщения:
СообщениеДобавлено: 11.11.2015 07:04 
Аватара пользователя

Сообщения: 471
Город: Екатеринбург
Пол: Муж
Возраст: 59
Зарегистрирован:26.03.2012
В чем выражается подглючивание?

LowPass фильтр это ФНЧ. Простенький фильтр, описываемфй формулой

X[i] = a*X[i] + (1-a)*X[i-1]

_________________
//Cheers, Victor
//Magellan eXplorist 310, Transystem TripMate 852, Columbus V-990, Transystem PersonalMate 860Lite, Garmin Nuvi 50


Вернуться к началу
shoppage  personalpage P  
 
 Заголовок сообщения: Re: TrackProcessor
СообщениеДобавлено: 11.11.2015 11:17 
Аватара пользователя

Сообщения: 1172
Город: Харьков
Пол: Муж
Возраст: 47
Зарегистрирован:18.03.2013
В определённый момент карта переставала пролистываться и масштабироваться, хотя результаты применения фильтров на карте отображались.

И не могли бы вы немного простыми словами рассказать про каждый из фильтров? А то про принцип действия LowPass я так и не понял. Median - это вычисление средней точки по нескольким соседним, правильно? Drift - это удаление пляски координат на стоянках? А какой фильтр может удалить случайные выбросы точек? Или точки, выпадающие по характеристикам из общего ряда?

_________________
Карти для GPS-навігаторів: де їх брати? https://encyclopedia-mandriv.blogspot.com/2013/06/karty-dlya-gps-navigatorov.html


Вернуться к началу
shoppage  personalpage P  
 
 Заголовок сообщения:
СообщениеДобавлено: 11.11.2015 11:51 
Аватара пользователя

Сообщения: 471
Город: Екатеринбург
Пол: Муж
Возраст: 59
Зарегистрирован:26.03.2012
Карта совсем не пролистывается, или возникает пауза?

Если пауза, то это нормально - на момент подгрузки новых тейлов операции по перетаскиванию и масштабированию блокируются. Когда тейлы уже есть в кеше все это быстрее идет.

Может потом удастся оптимизировать этот момент.

Медианный фильтр это не усреднение. Это выбор значения, занимающего среднее положение в отсортированной последовательности. Длина последовательности - ширина окна (апертура).

Например, есть последовательность значений

1 3 9 5 7

Если применить медианный фильтр к точке со значением 9 при апертуре 5, то нужно взять 5 точек (2 до, 2 после и саму точку). Затем отсортировать их значения по возрастающей:

1 3 5 7 9

И взять в качестве значения ту точку, что находится в середине последовательности (в нашем случае это точка со значением 5).

После применения фильтра последовательность проимет вид:

1 3 5 5 7

ФНЧ - фильтр, срезающий высокочастотный дребезг. Математически - взвешенное усреднение текщей точки с предыдущей, уже сглаженной. Иногда можно встретить его же под назаванием exponential smooth - экспоненциальное сглаживание. Более сложная его реализация - DES - двойное экспоненциальное сглаживание. Тоже неплохо работает.

Насчет "выпадающих из ряда" точек вопрос сложный. Нужен четкий критерий по которому опрделелять выпадание. Не так просто на самом деле. По идее, медиана должна хорошо работать.

Про остальные фильтры потом - надо самому вспомнить чего я там наворотил - там есть собственные алгоритмы, которые я писал давно и подробностей уже не помню :-)

_________________
//Cheers, Victor
//Magellan eXplorist 310, Transystem TripMate 852, Columbus V-990, Transystem PersonalMate 860Lite, Garmin Nuvi 50


Вернуться к началу
shoppage  personalpage P  
 
 Заголовок сообщения: Re: TrackProcessor
СообщениеДобавлено: 11.11.2015 12:05 
Аватара пользователя

Сообщения: 1172
Город: Харьков
Пол: Муж
Возраст: 47
Зарегистрирован:18.03.2013
А при медианном фильтре какие-то точки удаляются? Или количество точек остаётся то же, что и в исходном треке?

_________________
Карти для GPS-навігаторів: де їх брати? https://encyclopedia-mandriv.blogspot.com/2013/06/karty-dlya-gps-navigatorov.html


Вернуться к началу
shoppage  personalpage P  
 
 Заголовок сообщения: Re: TrackProcessor
СообщениеДобавлено: 11.11.2015 12:11 
Аватара пользователя

Сообщения: 1172
Город: Харьков
Пол: Муж
Возраст: 47
Зарегистрирован:18.03.2013
Карта виснет намертво неподвижным изображением. Сначала всё нормально, а потом вдруг зависла, и всё.

_________________
Карти для GPS-навігаторів: де їх брати? https://encyclopedia-mandriv.blogspot.com/2013/06/karty-dlya-gps-navigatorov.html


Вернуться к началу
shoppage  personalpage P  
 
 Заголовок сообщения:
СообщениеДобавлено: 11.11.2015 12:29 
Аватара пользователя

Сообщения: 471
Город: Екатеринбург
Пол: Муж
Возраст: 59
Зарегистрирован:26.03.2012
Странно. Насовсем виснет? Что потом? Разбираться надо, ни разу не сталкивался с таким у себя.

_________________
//Cheers, Victor
//Magellan eXplorist 310, Transystem TripMate 852, Columbus V-990, Transystem PersonalMate 860Lite, Garmin Nuvi 50


Вернуться к началу
shoppage  personalpage P  
 
 Заголовок сообщения: Re: TrackProcessor
СообщениеДобавлено: 11.11.2015 14:08 
Аватара пользователя

Сообщения: 471
Город: Екатеринбург
Пол: Муж
Возраст: 59
Зарегистрирован:26.03.2012
Андрей Лунячек писал(а):
А при медианном фильтре какие-то точки удаляются? Или количество точек остаётся то же, что и в исходном треке?


Количество точек сохраняется. Просто значения меняются на отфильтрованные.

Во всех фильтрах отдельно фильтруется каждая из координат и опционально высота, курс и скорость.

Плюс можно руками удалять точки. Наводите на точку в треке, двойной клик и она покажется в списке точек. Там ее можно открыжить. И потом удалить (del или меню по правой кнопке "удалить открыженные точки").

_________________
//Cheers, Victor
//Magellan eXplorist 310, Transystem TripMate 852, Columbus V-990, Transystem PersonalMate 860Lite, Garmin Nuvi 50


Вернуться к началу
shoppage  personalpage P  
 
 Заголовок сообщения: Re: TrackProcessor
СообщениеДобавлено: 12.11.2015 03:44 
Аватара пользователя

Сообщения: 1172
Город: Харьков
Пол: Муж
Возраст: 47
Зарегистрирован:18.03.2013
Сейчас ещё раз опробовал программу. Карта уже не виснет. Но всё же несколько раз зависала. Один раз когда я сохранял отредактированный трек, и не дождавшись окончания, хотел сдвинуть карту на экране немного в сторону. Остальные разы зависала без видимой причины. Выводилось сообщение, фотку прилагаю. Но, повторюсь, это было очень редко.

С фильтрами нужно разбираться, какой от каждого получается эффект и при каких настройках. Пока что неплохой эффект получился при сочетании двух фильтров: сначала LowPass, затем Speed (минимальное значение выставил 1 км/ч, максимальное - 8 км/ч). Трек использовал от пешего похода по пересечённой местности, писалась 1 точка в секунду, всего в треке чуть более 19000 точек.

Было бы неплохо, если бы удалять точку можно было бы не из списка, а прямо из окна карты. Либо клик + Del, либо клик правой кнопкой и в контекстном меню выбрать "Удалить".


Вложения:
2015-11-12_014747.png
2015-11-12_014747.png [ 16.22 КБ | Просмотров: 4966 ]


_________________
Карти для GPS-навігаторів: де їх брати? https://encyclopedia-mandriv.blogspot.com/2013/06/karty-dlya-gps-navigatorov.html
Вернуться к началу
shoppage  personalpage P  
 
 Заголовок сообщения: Re: TrackProcessor
СообщениеДобавлено: 12.11.2015 11:17 
Аватара пользователя

Сообщения: 471
Город: Екатеринбург
Пол: Муж
Возраст: 59
Зарегистрирован:26.03.2012
Андрей Лунячек писал(а):
Сейчас ещё раз опробовал программу. Карта уже не виснет. Но всё же несколько раз зависала. Один раз когда я сохранял отредактированный трек, и не дождавшись окончания, хотел сдвинуть карту на экране немного в сторону. Остальные разы зависала без видимой причины. Выводилось сообщение, фотку прилагаю. Но, повторюсь, это было очень редко.


Ну все равно разбираться надо... Можете выслать трек?

Андрей Лунячек писал(а):
С фильтрами нужно разбираться, какой от каждого получается эффект и при каких настройках. Пока что неплохой эффект получился при сочетании двух фильтров: сначала LowPass, затем Speed (минимальное значение выставил 1 км/ч, максимальное - 8 км/ч). Трек использовал от пешего похода по пересечённой местности, писалась 1 точка в секунду, всего в треке чуть более 19000 точек.


Фильтр скорости работает так - все точки, в которых скорость выше верхнего предела, просто удаляются. Для точек, у которых скорость ниже нижнего предела, скорость ставится в ноль. Если есть цепочки точек с нулевой скоростью и длиной более одной точки, то координаты этих точек усредняются и оставляются только две точки - первая и последняя. Т.е. имитируется ситуация "шли-шли, остановились, постояли на месте, дальше пошли".

Если понравился LowPass, то может и DES неплохо сработать. Или Spline Smooth. См. картинку - синий оригинальный трек, зеленый - LowPath, красный - DES, желтый - Spline Smooth.

Вложение:
1.gif
1.gif [ 226.03 КБ | Просмотров: 4958 ]


Математику сглаживания сплайном так просто не объяснить, посему попробую на пальцах. Не вдаваясь в подробности типов сплайнов (обычный кубический, Акимы, Эрмита и еще многих других), сплайн принято иллюстрировать на примере гибкой металлической линейки, положенной ребром на плоскость и жестко закрепленной в базовых точках. При этом, если прочертить по этой линейке линию, то она точно пройдет через все точки, а между ними будет плавно изгибаться.

Сглаживающий сплайн - та же линейка, но к точкам она крепится не жестко, а притягивается к ним пружинками. Жесткость каждой пружинки индивидуальна. Чем жестче - тем сильнее линейка притягивается к точке и тем ближе к точке пойдет сплайн.

Жесткость пружинки (точнее, ее обратная величина) - коэффициент сглаживания. Чем выше коэффициент сглаживания для данной точки, тем мягче пружинка.

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

Таких критериев 4:

1. По значению HDOP (если есть такие данные в треке). Тут задается шаг увеличения значения коэффициента сглаживания при превышении указанного порогового значения HDOP и пропорциональнсть увеличения этого коэффициента.

Например, "увеличивать на 2.5 на каждые 0.2 при превышении значения 1.5" будет означать что при HDOP <= 1.5 коэффициент сглаживания не меняется, а дальше линейно увеличивается - при 1.7 на 2.5, при 1.9 на 5, при 2.1 на 7.5 и т.д.

2. По значению скорости. Этот критерий служит для сглаживания "пилы", характерной для движения на малых скоростях. Смысл параметров точно такой же, как в предыдущем случае, но тут речь идет не об увеличении, а об уменьшении скорости - чем меньше скорость, тем выше коэффициент сглаживания для данной точки.

3 и 4 - "динамические" критерии, привязанные к изменению скорости и направления движения. Предназначены для сглаживания резких бросков. Смысл параметров аналогичен п.1. Тут еще можно указать каким образом считать скорость и направление - брать то, что записано в соответсвующих точках трека (а это или измеренные прибором значения, например, для треков из NMEA файлов, или посчитанные с некоторым усреднением по координатам из GPX файлов где эти данные отсутствуют) или же считать их по координатам безо всякого сглаживания (в этом случае "выбросы" координат будут влиять намногосильнее и фильтр будет работать "резче").

Андрей Лунячек писал(а):
Было бы неплохо, если бы удалять точку можно было бы не из списка, а прямо из окна карты. Либо клик + Del, либо клик правой кнопкой и в контекстном меню выбрать "Удалить".


Сделать несложно. Но есть один момент. Каждая операция с треком приводит к созданию нового, "дочернего" трека. Это сделано чтобы не мучатся с реализацией многоуровневых Undo и иметь возможность визуально оценивать результаты своих действий, выбирая тот, который подходит наилучшим образом.

В данной ситуации получится так - удалили точку - получили новый трек. Еще одна точка - еще один трек. Десять точек - десять новых треков. Если это не напрягает - сделаю.

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

_________________
//Cheers, Victor
//Magellan eXplorist 310, Transystem TripMate 852, Columbus V-990, Transystem PersonalMate 860Lite, Garmin Nuvi 50


Вернуться к началу
shoppage  personalpage P  
 
 Заголовок сообщения: Re: TrackProcessor
СообщениеДобавлено: 13.11.2015 02:35 
Аватара пользователя

Сообщения: 1172
Город: Харьков
Пол: Муж
Возраст: 47
Зарегистрирован:18.03.2013
Victor Pomortseff писал(а):
Математику сглаживания сплайном так просто не объяснить, посему попробую на пальцах. Не вдаваясь в подробности типов сплайнов (обычный кубический, Акимы, Эрмита и еще многих других), сплайн принято иллюстрировать на примере гибкой металлической линейки, положенной ребром на плоскость и жестко закрепленной в базовых точках. При этом, если прочертить по этой линейке линию, то она точно пройдет через все точки, а между ними будет плавно изгибаться.

Сглаживающий сплайн - та же линейка, но к точкам она крепится не жестко, а притягивается к ним пружинками. Жесткость каждой пружинки индивидуальна. Чем жестче - тем сильнее линейка притягивается к точке и тем ближе к точке пойдет сплайн.

Спасибо за подробное объяснение. Мне всё же кажется, что лучше, если точки не пересчитываются и перезаписываются, а просто удаляются "неправильные". Это лучше с той точки зрения, что трек (и его точки) - это некий документ, а пересчитанная и перезаписанная точка - это не точка, снятая на местности. Ну а если я шёл и резко повернул под прямым углом, то сглаживание по принципу "гибкой металлической линейки" не сможет корректно обработать этот поворот.

Ранее вы советовали программу GPS Track Editor (http://www.gpstrackeditor.com). Там есть фильтр "Локальные несоответствия" (если я правильно перевёл на русский язык). То есть, как я понимаю, удаляются точки, по ряду параметров отличающиеся от соседних. В дополнение там есть фильтр, удаляющий точки, где скорость или ускорение превышают указанный порог. По моим наблюдениям, эти два фильтра в той программе позволяют удалить до двух третей неправильных точек. Оставшаяся треть - вручную.

Victor Pomortseff писал(а):
Андрей Лунячек писал(а):
Было бы неплохо, если бы удалять точку можно было бы не из списка, а прямо из окна карты. Либо клик + Del, либо клик правой кнопкой и в контекстном меню выбрать "Удалить".


Сделать несложно. Но есть один момент. Каждая операция с треком приводит к созданию нового, "дочернего" трека. Это сделано чтобы не мучатся с реализацией многоуровневых Undo и иметь возможность визуально оценивать результаты своих действий, выбирая тот, который подходит наилучшим образом.

В данной ситуации получится так - удалили точку - получили новый трек. Еще одна точка - еще один трек. Десять точек - десять новых треков. Если это не напрягает - сделаю.

Раз такая ситуация - делать не надо.
Для того, чтобы программа была хороша в ручной обработке треков, нужно несколько условий:
1. Трек должен обрабатываться, как обычный документ или фотография, когда вы выполняете ряд действий, но они сохраняются только тогда, когда вы нажмёте кнопку "Сохранить" после того, как закончили редактировать файл.
2. Должна быть возможность удалять точки не только по одной, но ещё и выделить мышкой область (прямоугольным выделением) и одним нажатием кнопки удалить все точки, попавшие в эту область.
3. В качестве подложки должна быть возможность использовать разные виды онлайн-карт (чем больше, тем лучше), обязательно включая спутниковые снимки. Или дать возможность загружать свои оффлайн-карты. Это позволит лучше оценивать правильность тех или иных точек, собираясь удалять какие-то из них. Я, например, свои треки вручную редактирую в VantagePoint, используя в качестве подложки карты, которыми я пользовался в походе.

Поэтому я думаю, что лучше вашей программе оставаться удобным инструментом автоматической обработки, а ручную обработку проводить в другой программе.

Трек, с которым я экспериментировал в вашей программе, прилагаю.


Вложения:
2_ynigr2hu.zip [190.21 КБ]
Скачиваний: 252


_________________
Карти для GPS-навігаторів: де їх брати? https://encyclopedia-mandriv.blogspot.com/2013/06/karty-dlya-gps-navigatorov.html
Вернуться к началу
shoppage  personalpage P  
 
 Заголовок сообщения:
СообщениеДобавлено: 13.11.2015 05:10 
Аватара пользователя

Сообщения: 471
Город: Екатеринбург
Пол: Муж
Возраст: 59
Зарегистрирован:26.03.2012
За трек спасибо, посмотрю, может что накопаю.

Насчет точек. Тут все не так просто. Ни одна из тоек трека не является абсолютно "правильной" с математической точки зрения. Каждая из них лежит в определенной окрестности от истинного вашего положения в данный момент времени. Т.е. содержт определенную погрешность. Причем погрешность эта строго говоря неизвестна. Посему задача любого фильтра состоит в минимизации суммарной погрешности, выявлении общей закономерности на основе всего массива точек. Так в определенных условиях вы будете двигаться прямо, а трек запишется в виде зигзага ("пилы"). И фильтры типа сплайна как раз нужны для удаления такой пилы и восстановления общей траектории.

_________________
//Cheers, Victor
//Magellan eXplorist 310, Transystem TripMate 852, Columbus V-990, Transystem PersonalMate 860Lite, Garmin Nuvi 50


Вернуться к началу
shoppage  personalpage P  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему На страницу 1, 2, 3, 4, 5, 6, Bce  След.


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
  © Mishael 2003-2024
Наши друзья: Телеграм-канал про SEO | Рыбалка в Полтаве
Мобильный вид

[ Time : 0.144s | 34 Queries | GZIP : On ]
Reputation System ©'