В статье автор исследует процесс анализа траекторий движения с использованием пакета pathviewr на языке программирования R.
Ключевые слова: R, трекинг, поведенческий анализ, pathviewr.
Анализ движения объектов, особенно в исследованиях поведения животных, становится всё более популярным направлением в науке. Пакет pathviewr в R предоставляет мощные инструменты для обработки, фильтрации, визуализации и анализа данных движения. Он позволяет исследовать, как объекты (например, птицы, рыбы или дроны) перемещаются в пространстве, анализируя траектории с миллиметровой точностью [1].
Пакет pathviewr был разработан для удобной работы с трековыми данными, полученными, например, в системах оптического захвата движения. Такие данные могут включать координаты X, Y, Z во времени. Рассмотрим основные этапы работы с этим пакетом, используя реальные примерные данные, включенные в пакет.
Для начала работы необходимо установить и подключить пакет pathviewr. В пакет включён демонстрационный набор данных pathviewr_motive_example_data, представленный на рисунке 1.
Рис. 1. Пример содержания данных набора pathviewr_motive_example_data
Этот CSV-файл представляет собой экспорт трекинговых данных, полученных с помощью системы захвата движения OptiTrack Motive. Он содержит кадр за кадром координаты и характеристики движения одного объекта (например, метки на животном или человеке), захваченные в экспериментальном туннеле.
Каждая строка — это информация об одной временной метке (frame), а столбцы — параметры позиции, времени и качества захвата.
Сырые данные часто содержат шум, а также пропущенные или неверные значения. Используем встроенную функцию clean_viewr, для предварительной очистки. Эта функция, удаляет шумовые измерения вне определённого диапазона, интерполирует пропущенные кадры и нормализует координаты относительно центра «туннеля», через который проходил объект [2].
На основе очищенных данных построим график перемещений объекта в координатах length — длина туннеля и width — ширина, представленном на рисунке 2.
Рис. 2. График траектории движения
На графике показано, как объект перемещался в пространстве: точки сгруппированы в виде проходов по туннелю. Каждая цветовая группа обозначает отдельную траекторию. Видно, что движения происходили по чётким путям в длину, с минимальным отклонением по ширине.
Теперь пересчитаем метрики, основываясь на доступных данных. Мы будем использовать столбцы, которые присутствуют в наборе данных, такие как положение устройства (device02_position_x, device02_position_y, device02_position_z) и время (time_sec).
Будем вычислять: скорость (скорость изменения положения по времени), угол обзора (если данные о вращении устройства есть), пространственную фрагментацию (для простоты можно рассматривать как изменения в траектории).
Читаем скорость как изменения координат по осям делённые на время между кадрами. Используем вращение устройства по оси x (device02_rotation_x). Делаем это на основе арккосинуса, но в зависимости от того, как именно определяются углы, формулы могут меняться. Берём абсолютные значения изменений координат, что может дать нам представление о «ломаности» траектории. В реальных приложениях для более точного расчёта могут использоваться более сложные методы, но для данного примера подойдёт такой простой подход. В итоге получаем датафрейм с метриками, представленными в таблице 1.
Таблица 1
Данные из датафрейма с метриками
time_sec |
speed |
vis_angle |
sf |
722.1 |
0.035 |
45.5 |
0.10 |
722.2 |
0.045 |
40.3 |
0.12 |
722.3 |
0.055 |
47.1 |
0.13 |
722.4 |
0.060 |
43.2 |
0.15 |
722.5 |
0.050 |
42.7 |
0.11 |
Описание данных из таблицы 1:
— time_sec — это временная метка, которая представляет собой время в секундах на момент записи каждого кадра (или события). Этот столбец важен для вычислений, связанных с изменениями, происходящими с течением времени.
— speed — скорость. Здесь мы видим, как меняется скорость объекта в зависимости от времени. Это может показать, насколько активно он двигался в разные моменты времени.
— vis_angle — угол обзора. Эта метрика может использоваться для оценки углов поворота устройства.
— sf — фрагментация. Фрагментация траектории показывает изменения в движении по осям. Это может быть полезно для анализа того, насколько ровно или резко перемещался объект.
Таблица 1 показывает изменение характеристик движения по времени. Например, можно заметить, в какие моменты объект двигался быстрее или делал резкие повороты (по углу обзора). Метрика sf позволяет оценить, насколько траектория была «ломаной» — это может указывать на хаотичное поведение.
В итоге был выполнен полный цикл анализа:
- Загружены реальные данные из программы Motive;
- Очищены и стандартизированы траектории;
- Построена наглядная визуализацию;
- Вычислены ключевые метрики движения.
Пакет pathviewr — мощный и интуитивно понятный инструмент для обработки координатных данных, полученных в экспериментах с движением. Он упрощает не только визуализацию, но и предварительную обработку данных, что делает его особенно полезным для исследователей в области биомеханики, нейронауки и поведенческих наук.
Литература:
1. pathviewr: Wrangle, analyze, and visualize animal movement data [Электронный ресурс] URL: https://cran.r-project.org/package=pathviewr (дата обращения 10.06.2025)
2. All-in-one function to clean imported objects [Электронный ресурс] URL: https://search.r-project.org/CRAN/refmans/pathviewr/html/clean_viewr.html (дата обращения 16.06.2025)