Разбор tcx файла с Garmin навигатора для построения на основе данных графиков через WEB-интерфейс.
Модератор: Модераторы разделов
-
- Сообщения: 1030
- ОС: Debian9
Разбор tcx файла с Garmin навигатора для построения на основе данных графиков через WEB-интерфейс.
Доброго времени суток! Столкнулся с неприятной штуковиной...
Открываю файл формата xml - там данные о моей тренировки с GPS GARMIN EDGE705. Размер файла 2,5 мб. Файл открываю в Kwrite он его открывает, но из за размера мне его совсем не удобно читать... в результате я его преобразую, так чтобы он перемещал по словам на следующую строчку... и он подвисает... висит висит... и комп отправляется в перезагрузку. Не приятно в общем то, и такого никогда не было...
Файл прикладываю сюда.
Необходимость - изучить формат файла и понять как он устроен, с целью отредактировать его так, чтобы он был корректным. Дело в том, что из за ошибок сигнала он записал в некоторых местах очень высокую скорость... а как следствие не чиатается нормально график моего прохождения по дистанции...
Буду рад любой помощи в вопросе открытия файла и изучения его формата... маленькие файлы открываются нормально. Но мне надо открыть именно этот файл и именно его отредактировать...
ОС: Debian6.0.4
UPD1. 31.03.2012 - Тема переименована из "Вылет операционной системы на перезагрузку в результате открытия xml на 2,5мб в Kwrite" в "Разбор tcx файла с Garmin навигатора для построения на основе данных графиков через WEB-интерфейс." Так как такое название больше соответствует содержанию темы.
Открываю файл формата xml - там данные о моей тренировки с GPS GARMIN EDGE705. Размер файла 2,5 мб. Файл открываю в Kwrite он его открывает, но из за размера мне его совсем не удобно читать... в результате я его преобразую, так чтобы он перемещал по словам на следующую строчку... и он подвисает... висит висит... и комп отправляется в перезагрузку. Не приятно в общем то, и такого никогда не было...
Файл прикладываю сюда.
Необходимость - изучить формат файла и понять как он устроен, с целью отредактировать его так, чтобы он был корректным. Дело в том, что из за ошибок сигнала он записал в некоторых местах очень высокую скорость... а как следствие не чиатается нормально график моего прохождения по дистанции...
Буду рад любой помощи в вопросе открытия файла и изучения его формата... маленькие файлы открываются нормально. Но мне надо открыть именно этот файл и именно его отредактировать...
ОС: Debian6.0.4
UPD1. 31.03.2012 - Тема переименована из "Вылет операционной системы на перезагрузку в результате открытия xml на 2,5мб в Kwrite" в "Разбор tcx файла с Garmin навигатора для построения на основе данных графиков через WEB-интерфейс." Так как такое название больше соответствует содержанию темы.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
-
- Администратор
- Сообщения: 13939
- Статус: oel ngati kameie
- ОС: GNU
Re: Разбор tcx файла с Garmin навигатора для построения на основе данных графиков через WEB-интерфейс.
одна десятая секунды:
Код: Выделить всё
$ time sed -i 's/></>\n</g' 2012.tcx
real 0m0.100s
user 0m0.048s
sys 0m0.052s
$ head -n 10 2012.tcx
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<TrainingCenterDatabase xmlns="http://www.garmin.com/xmlschemas/TrainingCenterDatabase/v2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/TrainingCenterDatabase/v2 http://www.garmin.com/xmlschemas/TrainingCenterDatabasev2.xsd">
<Activities>
<Activity Sport="Biking">
<Id>2012-03-22T08:28:04Z</Id>
<Lap StartTime="2012-03-22T08:28:04Z">
<TotalTimeSeconds>9206.87</TotalTimeSeconds>
<DistanceMeters>10615.707031</DistanceMeters>
<MaximumSpeed>111.007004</MaximumSpeed>
<Calories>1147</Calories>
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
при сбоях форума см.блог
-
- Администратор
- Сообщения: 13939
- Статус: oel ngati kameie
- ОС: GNU
Re: Разбор tcx файла с Garmin навигатора для построения на основе данных графиков через WEB-интерфейс.
а с помощью двух sed-скриптов:этот файл можно превратить в красивое дерево:
получается примерно такая картина:
Код: Выделить всё
$ cat format1
1d
s/</\n</g
s/>/>\n/g
s/\n\n/\n/g
s/^\n//
$ cat format2
/^<\// b min
H
x
s/^-//
h
s/\n.*$/\t/
x
s/\n//
b out
: min
H
x
s/^\t//
s/\t//
h
s/\n.*//
s/^\t/-\t/
x
s/\n//
s/^-//
: out
Код: Выделить всё
cat этот-самый-файл | sed -f format1 | sed -f format2 | less -S
получается примерно такая картина:
Код: Выделить всё
<TrainingCenterDatabase xmlns="http://www.garmin.com/xmlschemas/TrainingCenterDatabase/v2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/TrainingCenterDatabase/v2 http://www.garmin.com/xmlschemas/TrainingCenterDatabasev2.xsd">
<Activities>
<Activity Sport="Biking">
<Id>
2012-03-22T08:28:04Z
</Id>
<Lap StartTime="2012-03-22T08:28:04Z">
<TotalTimeSeconds>
9206.87
</TotalTimeSeconds>
<DistanceMeters>
10615.707031
</DistanceMeters>
<MaximumSpeed>
111.007004
</MaximumSpeed>
<Calories>
1147
</Calories>
<AverageHeartRateBpm>
<Value>
118
</Value>
</AverageHeartRateBpm>
<MaximumHeartRateBpm>
<Value>
192
</Value>
</MaximumHeartRateBpm>
<Intensity>
Active
</Intensity>
<TriggerMethod>
Manual
</TriggerMethod>
<Track>
<Trackpoint>
<Time>
2012-03-22T08:28:05Z
</Time>
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
при сбоях форума см.блог
-
- Бывший модератор
- Сообщения: 4038
- Статус: Искусственный интеллект (pre-alpha)
- ОС: Debian GNU/Linux
Re: Разбор tcx файла с Garmin навигатора для построения на основе данных графиков через WEB-интерфейс.
tidy -xml -utf8 -indent <вход >выход
Мои розовые очки
-
- Администратор
- Сообщения: 13939
- Статус: oel ngati kameie
- ОС: GNU
Re: Разбор tcx файла с Garmin навигатора для построения на основе данных графиков через WEB-интерфейс.
watashiwa_darede...
а получить что-то аналогичное с помощью tidy можно?
с указанными тобой параметрами получается каша:
а получить что-то аналогичное с помощью tidy можно?
с указанными тобой параметрами получается каша:
Код: Выделить всё
<Activities>
<Activity Sport="Biking">
<Id>2012-03-22T08:28:04Z</Id>
<Lap StartTime="2012-03-22T08:28:04Z">
<TotalTimeSeconds>9206.87</TotalTimeSeconds>
<DistanceMeters>10615.707031</DistanceMeters>
<MaximumSpeed>111.007004</MaximumSpeed>
<Calories>1147</Calories>
<AverageHeartRateBpm>
<Value>118</Value>
</AverageHeartRateBpm>
<MaximumHeartRateBpm>
<Value>192</Value>
</MaximumHeartRateBpm>
<Intensity>Active</Intensity>
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
при сбоях форума см.блог
-
- Бывший модератор
- Сообщения: 4038
- Статус: Искусственный интеллект (pre-alpha)
- ОС: Debian GNU/Linux
Re: Разбор tcx файла с Garmin навигатора для построения на основе данных графиков через WEB-интерфейс.
С указанными мной параметрами получается не каша, а правильно. То, что делают твои sed-скрипты — не совсем правильно, ибо они изменяют содержимое тегов с character data (leading & trailing spaces). За подробностями — в спеки XML.
Мои розовые очки
-
- Администратор
- Сообщения: 13939
- Статус: oel ngati kameie
- ОС: GNU
Re: Разбор tcx файла с Garmin навигатора для построения на основе данных графиков через WEB-интерфейс.
watashiwa_darede...
затогораздо читабельнее, чем
зато
Код: Выделить всё
<TotalTimeSeconds>
9206.87
</TotalTimeSeconds>
Код: Выделить всё
<TotalTimeSeconds>9206.87</TotalTimeSeconds>
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
при сбоях форума см.блог
-
- Модератор
- Сообщения: 1786
- Статус: Матёрый линуксоид
- ОС: Debian testing/unstable
Re: Разбор tcx файла с Garmin навигатора для построения на основе данных графиков через WEB-интерфейс.
xmllint --format же.
Ну и если машина перезагружается — то проблема, скорее всего, в битой памяти. Или в перегреве чего-нибудь, но это менее вероятно, имхо.
Ну и если машина перезагружается — то проблема, скорее всего, в битой памяти. Или в перегреве чего-нибудь, но это менее вероятно, имхо.
Работа: Ubuntu 9.10
Дом: Debian testing/unstable и на всякий случай winxp в virtualbox.
Для разнообразия: моя домашняя страница -http://iportnov.ru
Дом: Debian testing/unstable и на всякий случай winxp в virtualbox.
Для разнообразия: моя домашняя страница -http://iportnov.ru
-
- Администратор
- Сообщения: 13939
- Статус: oel ngati kameie
- ОС: GNU
Re: Разбор tcx файла с Garmin навигатора для построения на основе данных графиков через WEB-интерфейс.
то же самое:
Код: Выделить всё
<TotalTimeSeconds>9206.87</TotalTimeSeconds>
кстати, в данном файле таковые отсутствуют·
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
при сбоях форума см.блог
-
- Бывший модератор
- Сообщения: 4038
- Статус: Искусственный интеллект (pre-alpha)
- ОС: Debian GNU/Linux
Re: Разбор tcx файла с Garmin навигатора для построения на основе данных графиков через WEB-интерфейс.
Да, а после твоего sed появляются:
пробелы между ">" и 9206.87 и "<" — лишние и потенциально могут повлиять на обработку. Насчет читабельности готов поспорить: to whom how, как говорится.sash-kan писал(а): ↑23.03.2012 11:44гораздо читабельнееКод: Выделить всё
<TotalTimeSeconds> 9206.87 </TotalTimeSeconds>
Мои розовые очки
-
- Администратор
- Сообщения: 13939
- Статус: oel ngati kameie
- ОС: GNU
Re: Разбор tcx файла с Garmin навигатора для построения на основе данных графиков через WEB-интерфейс.
согласен, лишние·
ибо их там нет·
есть \t и \n·
которые после редактирования лёгким движением руки можно убрать·
нда·watashiwa_darede... писал(а): ↑23.03.2012 16:42Насчет читабельности готов поспорить: to whom how, как говорится.
забавный мог бы быть опрос: в какой строке цифры легче воспринимаются —
Код: Выделить всё
9206.87
<TotalTimeSeconds>9206.87</TotalTimeSeconds>
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
при сбоях форума см.блог
-
- Сообщения: 8735
- Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
- ОС: Slackware-current
Re: Разбор tcx файла с Garmin навигатора для построения на основе данных графиков через WEB-интерфейс.
sash-kan писал(а): ↑23.03.2012 11:44гораздо читабельнее, чем
Код: Выделить всё
<TotalTimeSeconds>9206.87</TotalTimeSeconds>
читабельнее. Но вот распарсить уже будет сложнее...
-
- Модератор
- Сообщения: 4824
- Статус: фанат консоли (=
- ОС: GNU/Debian, RHEL
Re: Разбор tcx файла с Garmin навигатора для построения на основе данных графиков через WEB-интерфейс.
всё зависит от того, кто принимает участие в опросе: парсеры однозначно выбрали бы второй вариант (:
UNIX is basically a simple operating system, but you have to be a genius to understand the simplicity. © Dennis Ritchie
The more you believe you don't do mistakes, the more bugs are in your code.
The more you believe you don't do mistakes, the more bugs are in your code.
-
- Сообщения: 8735
- Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
- ОС: Slackware-current
Re: Разбор tcx файла с Garmin навигатора для построения на основе данных графиков через WEB-интерфейс.
ковырять файл в 3 миллиона символов без поиска по регуляркам - удовольствие не из лучших. А вот файл в 100 байт и так можно прочитать...
-
- Сообщения: 1030
- ОС: Debian9
Re: Разбор tcx файла с Garmin навигатора для построения на основе данных графиков через WEB-интерфейс.
Нет проблемы с памятью скорее всего исключены тест проходит при включении, правда он простенький как я понимаю. Температура... нет тоже нет. Нехватка памяти? врядли, ее на момент запуска программы занятно 550-600Мб и еще свободно почти 1,5Гб... Нигде в других местах комп (ноутбук) не вылетает на перезагрузку!
Вижу что тема вызвала живой интерес по части разбора файла. Я к сожалению в этом не секу, надеюсь что разберусь.
Как вы можете догадаться - это файл с записью моей тренировки. Такие файлы я получаю со своего устройства каждый день по несколько рас. Периодически бывают проблемы с некорректными данными.
Программа которой я пользуюсь для просмотра тренировок: GarminTrainingCentr Она работает только под виндой и макос. По этой причине приходиться поднимать виртуалку с тяжелой виндой и там смотреть графики, как мне кажется та программа отображает не всю информацию которую прибор записал в память в такого рода файл, а как бы делает выборку. ... Я хочу разобрать файл так и отпарсить его таким образом, чтобы остались только данные о пульсе и скорости (скорость определяется как я понимаю исходя из координат и времени) далее хочу обработанный файл разбить и данные занести в БД (MySQL). Потом данные из БД брать для анализа и построения графика например через вэбинтерфейс... Таким образом хочу избавиться от ненужной программы от гармина. Правда эта программа еще и задания на тренировку формирует... тоже xml как я понимаю...
Т.е. глобально я хочу сделать обмен и загрузку данных на устройство доступными из вэбинтерфейса сайта основанного например на Drupal6/7. Я просто хорошо знаком с этой CMS.
К тому же часто бывает что мой тренер бывает далеко от меня географически и нужно с ним посоветоваться, он не может объективно что либо сказать без видио и этих графиков сопоставленных с видеорядом. Видеоряд решаемо, а вот с графиками и парсиногом а так же удаленным(через сайт) составлением задания на тренировку я слаб как новорожденный младенец.
Как думаете, сколько может стоить подобного рода разработка? Сориентируйте. К справке, я занимаюсь греблей на каноэ. Мастер спорта.
Было бы совсем здорово если бы можно было организовать такого рода проект и потихоньку реализовывать его. Может кому будет интересно и кто то решит принять участие в таком проекте...
Буду рад выслушать предложения, критику и вопросы.
С уважением, Станислав. Мастер спорта по гребле на каноэ.
Вижу что тема вызвала живой интерес по части разбора файла. Я к сожалению в этом не секу, надеюсь что разберусь.
Как вы можете догадаться - это файл с записью моей тренировки. Такие файлы я получаю со своего устройства каждый день по несколько рас. Периодически бывают проблемы с некорректными данными.
Программа которой я пользуюсь для просмотра тренировок: GarminTrainingCentr Она работает только под виндой и макос. По этой причине приходиться поднимать виртуалку с тяжелой виндой и там смотреть графики, как мне кажется та программа отображает не всю информацию которую прибор записал в память в такого рода файл, а как бы делает выборку. ... Я хочу разобрать файл так и отпарсить его таким образом, чтобы остались только данные о пульсе и скорости (скорость определяется как я понимаю исходя из координат и времени) далее хочу обработанный файл разбить и данные занести в БД (MySQL). Потом данные из БД брать для анализа и построения графика например через вэбинтерфейс... Таким образом хочу избавиться от ненужной программы от гармина. Правда эта программа еще и задания на тренировку формирует... тоже xml как я понимаю...
Т.е. глобально я хочу сделать обмен и загрузку данных на устройство доступными из вэбинтерфейса сайта основанного например на Drupal6/7. Я просто хорошо знаком с этой CMS.
К тому же часто бывает что мой тренер бывает далеко от меня географически и нужно с ним посоветоваться, он не может объективно что либо сказать без видио и этих графиков сопоставленных с видеорядом. Видеоряд решаемо, а вот с графиками и парсиногом а так же удаленным(через сайт) составлением задания на тренировку я слаб как новорожденный младенец.
Как думаете, сколько может стоить подобного рода разработка? Сориентируйте. К справке, я занимаюсь греблей на каноэ. Мастер спорта.
Было бы совсем здорово если бы можно было организовать такого рода проект и потихоньку реализовывать его. Может кому будет интересно и кто то решит принять участие в таком проекте...
Буду рад выслушать предложения, критику и вопросы.
С уважением, Станислав. Мастер спорта по гребле на каноэ.
-
- Сообщения: 8735
- Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
- ОС: Slackware-current
Re: Разбор tcx файла с Garmin навигатора для построения на основе данных графиков через WEB-интерфейс.
Stasroot1 писал(а): ↑24.03.2012 10:08Я хочу разобрать файл так и отпарсить его таким образом, чтобы остались только данные о пульсе и скорости (скорость определяется как я понимаю исходя из координат и времени) далее хочу обработанный файл разбить и данные занести в БД (MySQL). Потом данные из БД брать для анализа и построения графика например через вэбинтерфейс...
ну можно напрямую парсить и сразу в gnuplot, получится полный аналог вендовых прог. Можно и через СУБД. Могу только подсказать как парсить - в подписи.
Писать про СУБД лень, без меня Over9000 мануалов по-русски.
эх... в след. абзаце будет облачные вычисления?
вы там палку не перегнули? Какой друпал?! Там код строчек на 30 на быдлопхп.
ну и что?
$20 я-бы взял...
PS
э... наверное $20 за 30 строчек пхп это грабёж...
-
- Сообщения: 1030
- ОС: Debian9
Re: Разбор tcx файла с Garmin навигатора для построения на основе данных графиков через WEB-интерфейс.
sash-kan писал(а): ↑22.03.2012 22:42одна десятая секунды:Код: Выделить всё
$ time sed -i 's/></>\n</g' 2012.tcx real 0m0.100s user 0m0.048s sys 0m0.052s $ head -n 10 2012.tcx <?xml version="1.0" encoding="UTF-8" standalone="no" ?> <TrainingCenterDatabase xmlns="http://www.garmin.com/xmlschemas/TrainingCenterDatabase/v2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/TrainingCenterDatabase/v2 http://www.garmin.com/xmlschemas/TrainingCenterDatabasev2.xsd"> <Activities> <Activity Sport="Biking"> <Id>2012-03-22T08:28:04Z</Id> <Lap StartTime="2012-03-22T08:28:04Z"> <TotalTimeSeconds>9206.87</TotalTimeSeconds> <DistanceMeters>10615.707031</DistanceMeters> <MaximumSpeed>111.007004</MaximumSpeed> <Calories>1147</Calories>
Спасибо, после файл стал структурированным и понятным по структуре. Отображается все в столбик и формат очень понятный.
Теперь думаю попробовать самостоятельно его отпарсить и положить в БД... тем самым быдлокодом на php... попытка то не пытка!
drBatty, относительно облачных вычислений... ну да, без облачных вычислений это НЕ РЕАЛИЗУЕМО! поэтому облака в студию! Шучу.
Почему мне понадобился друпал6/7? По той причине, что на нем у меня уже работает проект (пока не очень популярный и совсем не коммерческий), ссылку не даю в открытом форуме. Проект этот сводится к спортивному профессиональному дневнику с вытекающими, вот функций по обработке треков с навигаторов (разных) и не хватает этому проекту. Приходиться грузить картинку в png к примеру с графиком из GarminTreningCentr... а это не удобно. И не очень информативно. Сначала естественно надо реализовать простенько чтобы работало вне проекта, а потом внести этот функционал в существующий проект.
С огромным уважением к выше отписавшимся участникам форума,
-
- Администратор
- Сообщения: 13939
- Статус: oel ngati kameie
- ОС: GNU
Re: Разбор tcx файла с Garmin навигатора для построения на основе данных графиков через WEB-интерфейс.
как я понял, ключевая и атомарная информация — это записи <trackpoint>...</trackpoint>·
вот такой конструкцией с ними будет, мне кажется, удобнее работать:
будут присутствовать только эти записи, по одной записи на строку·
остаётся преобразовать эти строки в конструкцию "insert into"·
пример не привожу, ибо это зависит от того, какие именно данные и под какими именами вы будете сохранять в базе данных·
вот такой конструкцией с ними будет, мне кажется, удобнее работать:
Код: Выделить всё
$ cat файл.с.информацией | sed -r 's!(<Trackpoint>)!\n\1!g;s!(</Trackpoint>)([^\n])!\1\n\2!g' | grep Trackpoint > файл.только.с.трекпойнтами
будут присутствовать только эти записи, по одной записи на строку·
остаётся преобразовать эти строки в конструкцию "insert into"·
пример не привожу, ибо это зависит от того, какие именно данные и под какими именами вы будете сохранять в базе данных·
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
при сбоях форума см.блог
-
- Администратор
- Сообщения: 13939
- Статус: oel ngati kameie
- ОС: GNU
Re: Разбор tcx файла с Garmin навигатора для построения на основе данных графиков через WEB-интерфейс.
а distancemeters — это разве не готовое расстояние (от старта, видимо)?
ну, чтоб с координатами не возиться·
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
при сбоях форума см.блог
-
- Сообщения: 8735
- Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
- ОС: Slackware-current
Re: Разбор tcx файла с Garmin навигатора для построения на основе данных графиков через WEB-интерфейс.
ну кодом на php вы можете добиться двух вещей:
1. считать датчики и загрузить их показания в БД.
2. Сделать выборку из БД, и отобразить её в виде гламурного графика в виде картинки (например png).
Как эту картинку показать в друпале - не помню, это не ко мне.
как-то так, но раз это всё в друпале надо по ТЗ, то следовательно sed 's///' следует заменить на <?php preg_replace() ?>
-
- Сообщения: 1030
- ОС: Debian9
Re: Разбор tcx файла с Garmin навигатора для построения на основе данных графиков через WEB-интерфейс.
Да судя по всему вы правы, а координаты по всей видимости используются в GarminTreaningCentr для отрисовки прохождения тренировки на карте встроенной в интерфейс программы. Если выделить задачу - только скорость и пульс, тогда данные о координатах судя по всему можно было бы выкинуть и не засорять этой информацией БД. Но в перспективе эти данные могут понадобиться как рас для анализа прямолинейности хождения во время тренировок, но это далекая перспектива, но все же эти данные не стоит удалять.
Соответственно скорость надо будет вычислять так: расстояние в точке с временем t+1 (сек) минус расстояние в точке с временем t и делить на время равное 1сек, получиться скорость метров/секунду. И для каждой секунды в БД занести эту скорость. Далее можно будет с этими данными делать что угодно.
А то, что я писал, что скорость определяется исходя из координат со временем, ну вообще было излишне получается, думаю вы правы.
-
- Сообщения: 1030
- ОС: Debian9
Re: Разбор tcx файла с Garmin навигатора для построения на основе данных графиков через WEB-интерфейс.
sash-kan писал(а): ↑26.03.2012 14:50как я понял, ключевая и атомарная информация — это записи <trackpoint>...</trackpoint>·
вот такой конструкцией с ними будет, мне кажется, удобнее работать:
Код: Выделить всё
$ cat файл.с.информацией | sed -r 's!(<Trackpoint>)!\n\1!g;s!(</Trackpoint>)([^\n])!\1\n\2!g' | grep Trackpoint > файл.только.с.трекпойнтами
будут присутствовать только эти записи, по одной записи на строку·
остаётся преобразовать эти строки в конструкцию "insert into"·
пример не привожу, ибо это зависит от того, какие именно данные и под какими именами вы будете сохранять в базе данных·
Да это именно так, но остальные данные тоже важны так как в целом надо будет в не отдаленном будущем избегать загрузки одного и того же файла разными пользователями, Так как у некоторых бывает соблазн обмануть тренера предоставив информацию с одного устройства якобы как с разных... но грубо говоря пока это могло бы оставаться на совести пользователей системы.
Поэтому данные ID и другие, делающие запись уникальной, например устройств с одинаковым <UnitId>3803286278</UnitId>
<ProductID>625</ProductID> не встречаются. должны быть тоже сохранены.
-
- Сообщения: 1030
- ОС: Debian9
Re: Разбор tcx файла с Garmin навигатора для построения на основе данных графиков через WEB-интерфейс.
drBatty писал(а): ↑26.03.2012 16:34
ну кодом на php вы можете добиться двух вещей:
1. считать датчики и загрузить их показания в БД.
2. Сделать выборку из БД, и отобразить её в виде гламурного графика в виде картинки (например png).
Как эту картинку показать в друпале - не помню, это не ко мне.
как-то так, но раз это всё в друпале надо по ТЗ, то следовательно sed 's///' следует заменить на <?php preg_replace() ?>
Кодом на PHP мы должны данные занести в БД и это реализуемо как мне кажется довольно не сложно - да ваш пункт 1.
Пункт2. скорее всего очень не оптимален. Думаю график надо отрисовывать на стороне клиента, т.е. данные отдать клиенту (в браузер) и там в зависимости от требований отрисовывать нужные графики, так как требуется просмотреть весь график, часть графика, приблизить участок графика, и все в таком роде... боюсь если отдать это все на PHP, т.е. на серверную сторону, то как минимум будет пораждено большое количество паразитного, если можно так сказать, трафика на отдачу сформированных картинок, а может еще и на само формирование, по этой причине мне кажется что оптимальнее делать отрисовку графика на стороне клиента, могу и ошибаться, поправьте тогда меня.
Учитывая, что на вэбхостинге скорее всего нет доступа на консоль, то обработку файлов правильнее делать через php, или я ошибаюсь?
На данный момент создал темму с моей проблеммой в части PHP тут: http://www.php.ru/forum/viewtopic.php?f=13...=317503#p317503, и там, сделал ссылку на это обсуждение. Надеюсь привлечь опытных разработчиков к этой вроде не очень сложной работе для профессионалов.
На счет Drupal... думаю потом можно будет переработать проект и адаптировать его к Drupal6/7 для этого надеюсь привелечь разработчиков с drupal.ru и drupal.org
Если кому интересно, то тут: http://www.php.ru/forum/viewtopic.php?t=7939 я впервые задумался о создании сайта для спортсменов. Увы много времени с того момента (5 лет) ушло и не все делалось так как там писалось, в частности я ушел в сторону не полного самостоятельно написания а в сторону использования CMS Drupal... она со своими модулями предоставляет очень широкие возможности и многое использую, но есть специфические задачи... Собственно проект у меня сейчас в стадии возрождения так как я им почти 1,5 года совсем не занимался.
-
- Сообщения: 1030
- ОС: Debian9
Re: Разбор tcx файла с Garmin навигатора для построения на основе данных графиков через WEB-интерфейс.
Может быть перенести тему в "Проекты нашего форума", безусловно если она может там находиться и если админы форума сочтут такой перенос своевременным/уместным/достойным.
С соответствующим переименовыванием и изменением целепостановки.
С соответствующим переименовыванием и изменением целепостановки.
-
- Сообщения: 1030
- ОС: Debian9
Re: Разбор tcx файла с Garmin навигатора для построения на основе данных графиков через WEB-интерфейс.
http://www.drupal.ru/node/54023 тема на Drupal.ru по модулю для импорта xml.
-
- Администратор
- Сообщения: 13939
- Статус: oel ngati kameie
- ОС: GNU
Re: Разбор tcx файла с Garmin навигатора для построения на основе данных графиков через WEB-интерфейс.
перенести тему — дело простое·
вот только тут переносить-то нечего: обсуждения того, как можно просматривать xml, как-то не вяжутся с «проектами нашего форума»·
вот только тут переносить-то нечего: обсуждения того, как можно просматривать xml, как-то не вяжутся с «проектами нашего форума»·
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
при сбоях форума см.блог
-
- Сообщения: 1030
- ОС: Debian9
Re: Разбор tcx файла с Garmin навигатора для построения на основе данных графиков через WEB-интерфейс.
Да пожалуй до уровня проекта пока очень далеко. Думаю надо сначала самостоятельно потрудиться поработать, а потом что то работающее уже выкладывать в общий доступ для развития и оптимизации. Надеюсь найдуться люди которые смогут помочь в этом. Спортсмены в этом помочь не смогут увы.
sash-kan, как лучше делать разбор xml? загрузка-обработка исключительно через php? И как лучше строить график на стороне сервера через php, gdimage. Или на стороне клиента? В браузере? Более широко описывал эти вопросы чуть чуть выше.
-
- Администратор
- Сообщения: 13939
- Статус: oel ngati kameie
- ОС: GNU
Re: Разбор tcx файла с Garmin навигатора для построения на основе данных графиков через WEB-интерфейс.
прототип можно делать любыми средствами·
а вот когда вы начнёте ваш код оформлять в виде плагина (?) для drupal-а, логичным будет реализовать логику именно на php·
(upd. вам сначала, imho, лучше бы определиться со структурой той информации, которую вы собираетесь импортировать-хранить-обрабатывать, а потом уже вдаваться в детали реализации алгоритмов)
это как? (я не настоящий сварщик^w веб-разработчик)
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
при сбоях форума см.блог
-
- Сообщения: 1030
- ОС: Debian9
Re: Разбор tcx файла с Garmin навигатора для построения на основе данных графиков через WEB-интерфейс.
sash-kan писал(а): ↑28.03.2012 11:04прототип можно делать любыми средствами·
а вот когда вы начнёте ваш код оформлять в виде плагина (?) для drupal-а, логичным будет реализовать логику именно на php·
(upd. вам сначала, imho, лучше бы определиться со структурой той информации, которую вы собираетесь импортировать-хранить-обрабатывать, а потом уже вдаваться в детали реализации алгоритмов)
это как? (я не настоящий сварщик^w веб-разработчик)
Я вовсе не сварщик. :-( Предполагаю что то типа вот такого: http://ru.wikipedia.org/wiki/%D0%92%D0%B5%...%BD%D0%B8%D0%B5
Там особенно интересно по части "Устройство веб-приложений" т.е. с сервера грузим данные, а на стороне клиента в браузере через что то из этого:
Для формирования и обработки запросов, создания интерактивного и независимого от браузера интерфейса:
ActiveX
Adobe Flash, Adobe Flex
Java
JavaScript
Silverlight
И все. Основные данные это те самые трэкпоинты, их хранить в обязательном порядке, эти данные и только эти будут отправляться клиенту для дальнейшей обработки на его стороне.
На его стороне требуется: Построить график всей тренировки. Построить график произвольной части тренировки, Приблизить (повысить атомарность отображаемых на графике данных) график, выделить особоважные для анализа части, Особоважные части отправить на сервер для хранения. Остатки данных (не важные части) удалять из БД по мере их ненадобности, например через год после загрузки.
Как то так.
На днях спроектирую БД и то что в нее писать.
-
- Сообщения: 8735
- Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
- ОС: Slackware-current
Re: Разбор tcx файла с Garmin навигатора для построения на основе данных графиков через WEB-интерфейс.
это плохо. Клиенты взвоют, особенно те из них, у которых обычные компьютеры, а не навороченные игровые этого года выпуска.
одно дело - выделить и вставить цитату, как я только-что сделал JavaScript'ом, совсем другое - нарисовать график.
Учтите также тот факт, что программа на стороне пользователя является потенциально опасной, и потому всегда огорожена и сильно ограничена в возможностях, это тоже не добавляет производительности, а как раз наоборот. На стороне сервера никаких ограничений нет. Ну и наконец, не забудьте о мобильных устройствах - моя мобила не всякую страничку осилит, а уж такое...