Сбор данных из внешних источников и внутренних сенсоров с помощью NextGIS Logger

Материал из GIS-Lab
(перенаправлено с «NextGIS Logger»)
Перейти к навигации Перейти к поиску
Эта страница опубликована в основном списке статей сайта
по адресу http://gis-lab.info/qa/nextgis-logger.html


Описание инструмента для сбора данных с сенсоров мобильного устройства

NextGIS Logger - приложение для сбора данных с окружающих источников информации (базовые станции сотовой сети, GPS) и внутренних сенсоров (акселерометр, магнетометр, ориентация, гироскоп, микрофон) для устройств с операционной системой Android 3.0+ (Honeycomb). Установить через Google Play.

NextGIS Logger может собирать данные в двух режимах:

  • Логгер - сервис, который собирает данные постоянно, независимо от пользователя, сохраняет их в Логе 1.
  • Метки - данные собираются дискретно, по запросу пользователя, сохраняются в Логе 2.

Приложение может работать в двух режимах по-отдельности или параллельно. Данные логов связаны друг с другом временными метками.

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

Результаты

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

Создано в Nextgis.png Веб ГИС для вашей организации по доступной цене

Почему NextGIS Logger

Существует много приложений позволяющих посмотреть информацию о базовых станциях сотовой сети, информацию с внутренних сенсоров и внешних источников информации и записать её в каком-то виде. Перед тем, как начать создавать NextGIS Logger мы проанализировали основные аналоги (Field Test-SignalSitemap, GSM signal monitoring, Gsm Signal Monitor, GSM Monitor, GSM Field Test, OpenSignal, inViu OpenCellID, Netmonitor, G-MON, G-NetTrack, NetMon, Network Monitor) и обнаружили, что все они не удовлетворяют одному или нескольким из следующих условий:

  • Запись лога в удобном человеко- и машиночитаемом формате;
  • Запись лога с минимальным интервалом (минимум 1 сек);
  • Параллельная логу расстановка пользовательских отметок с теми же данными, связанных с логом временными метками;
  • Подгрузка пользовательского списка меток из внешнего файла
  • Выбор, что логгировать, а что не логгировать

Где взять

Программу можно скачать с Google Play (предпочтительный способ) или в виде APK (скачать). Если вы устанавливаете из APK, нужно разрешить установку из "Unknown sources" в настройках системы, секция "Security". Официальная страница программы - на сайте разработчика - NextGIS.

NextGIS Logger это программное обеспечение с открытым исходным кодом. Лицензия - GPL v2. Код можно получить на Github.

Интерфейс и использование

После установки найдите иконку приложения в списке программ.

Nextgislogger-logo.svg

В приложении 4 основных экрана:

Основной экран

  • Сессии
    • Кнопка "Открыть/Закрыть" - открывают новую или закрывают открытую сессию и сохраняют все данные. Для каждой сессии создается папка с набором файлов на диске. Текущая сессия не может быть быть закрыта пока не остановлен логгер.
  • Режимы
    • Кнопка "Запустить логгер/Остановить логгер" - запускает или останавливает запись лога 1. Пока не создана сессия логгер запустить нельзя.
    • Кнопка "Метки" - открывает окно с перечнем маркеров. Пока не создана сессия маркеры ставить нельзя.
  • Текстовые поля показывающие полезную информацию о сессии.
Основной экран приложения

Метки

Метки - это такие же точки лога, но расставляемые не автоматически, а когда скажет пользователь. Меткам можно задавать свои имена. Список меток может быть пустой или его можно предварительно заполнить, указав в настройках приложения файл с метками. Он имеет очень простую структуру:

ID,NAME
1,marker1
2,marker2
3,marker3

Расставленные метки попадают в свой собственный лог.

Чтобы поставить метку нужно:

  1. Открыть сессию (если она еще не открыта)
  2. Выбрать "Метки"
  3. Если список меток пуст - нажать на + и ввести имя метки, после чего нажать ОК. Метка с введенным названием будет автоматически добавлена в лог. Если в процессе создании метки включить галку "Сохранить в список", то название метки (категория) будет сохранено в список для дальнейшего использования.
  4. Если список заполнен - выбрать одну из них или нажать на лупу и ввести часть имени метки, после чего выбрать одну из отфильтрованных.

На экране меток так же можно в течение 4 секунд отменять поставленные метки, для этого, после того как вы выбрали метку, нужно нажать на стрелку отменить в ФАБе.

Метки

Сессии

Что бы ограничить один лог от другого используются сессии.

Сессия можно управлять на экране сессий. На нем можно:

  • Увидеть список сессий записанных на устройстве
  • Выбрать все сессии
  • Поделиться выбранными сессиями стандартными методами (Dropbox, Gmail и т.д.)
  • Удалить выбранные сессии
Сессии

Данные в реальном времени

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

Данные собраны в два экрана: всё по базовым станциям сотовой сети и данные по сенсорам (включая GPS).

Данные по базовым станциям сотовой сети
Данные по сенсорам


Внешние сенсоры

NextGIS Logger умеет собирать данные с подключаемых сенсоров. На данный момент поддерживаются сенсоры на платформе Arduino.

Все что вам нужно, чтобы начать собирать данные это сам Arduino, Bluetooth модуль и собственно сами сенсоры. После этого:

  1. Соберите схему
  2. Создайте скетч и загрузите его в Arduino
  3. Определите все ваши сенсоры в файле JSON
  4. Подключитесь к Bluetooth устройству в приложении.

Подробности:

Данные с подключенных сенсоров газового анализа.

Настройки

Вам наверняка нужно собирать что-то конкретное и список меток у вас свой, всё это можно настроить.

  • Основные настройки:
    • Строка идентификации - здесь можно указать имя или инициалы или что-то еще, эта строка будет использоваться для названия сессий и для точек лога
    • Период сбора информации в секундах (от 1 секунды)
    • Использование файла меток - здесь можно указать файл с метками (он создается отдельно), если его не указать, можно вводить названия меток в процессе сбора данных.
    • Пытаться использовать API 17+ для поиска соседних базовых станций.
    • Держать экран включенным - для списка меток.
  • Сенсоры:
    • Акселерометр - включить в лог данные с акселерометра
    • Линейный акселерометр - использовать линейный акселерометр (если он есть)
    • Магнетометр - включить в лог данные с магнетометра
    • Ориентация - писать лог ориентации
    • Гироскоп - включить в лог данные с гироскопа
    • Микрофон - отслеживать уровень шума (дБ)

Структура результатов

Логи сессий сохраняются каждый в свою папку, имя которых запрашивается при старте сессии. Все папки сессий хранятся на внешнем носителе в папке "nextgis_logger".

Базовые станции сотовой сети

Логгер создаёт файл "cell_time_log.csv" где сохраняется информация с базовых станций GSM/3G.

Логгер также создаёт файл "cell_time_mark.csv" где сохраняется информация с базовых станций GSM/3G по пользовательским меткам.

Структура данных:

  • ID - идентификатор из файла меток (еще). Логгер в качестве ID использует пустую строку "".
  • Name - имя метки из файла меток (еще) или введенное вручную. Логгер в качестве имени использует строку "ServiceLog".
  • User - строка идентификации пользователя из настроек (еще).
  • TimeStamp - временная метка. Не уникальна. См. раздел ниже про конвертацию в человекочитаемый вид. Пример: 1409513090236
  • NetworkGen - текущее поколениеи сети (2G/3G/4G) (еще)
  • NetworkType - текущий тип сети (EDGE/GPRS/UMTS/HSPA...)
  • Active - 1 если это базовая станция, иначе - комбинация MCC-MNC-LAC-CID активной базовой станции если это станция-сосед.
  • MCC - Mobile Country Code (еще). Пример: 284
  • MNC - Mobile Network Code (еще). Пример: 5
  • LAC - Location Area Code (еще). Пример: 380433
  • CID - Cell ID (еще). Пример: 5599
  • PSC - Primary Scrambling Code для сети 3G. Диапазон значений: 0..511. Пример: 145
  • Power - сила сигнала - RSSI для 2G и RSCP для 3G. Пример: -93

Сенсоры

Логгер создаёт файл "sensor_time_log.csv" где сохраняется информация с сенсоров.

Логгер также создаёт файл "sensor_time_mark.csv" где сохраняется информация с сенсоров по пользовательским меткам.

Структура данных:

  • ID - см. аналогично выше;
  • Name - см. аналогично выше;
  • User - см. аналогично выше;
  • TimeStamp - см. аналогично выше;
  • Type - "Raw" если используется просто акселерометр, "Linear" если акселерометр линейный;
  • Accel_X - ускорение по оси X в м/с^2;
  • Accel_Y - ускорение по оси Y в м/с^2;
  • Accel_Z - ускорение по оси Z в м/с^2;
  • Azimuth - угол между направлением на магнитный полюс и осью Y, вокруг оси Z (0..359). 0=Север, 90=Восток, 180=Юг, 270=Запад;
  • Pitch - вращение по оси X (-180..180), значения положительные когда ось Z движется по направлнию к оси Y;
  • Roll - вращение по оси Y (-90..90) возрастает по мере движения устройства по часовой стрелке;
  • Magnetic - measure the ambient magnetic field in the X, Y and Z axis. Value in micro-Tesla (uT);
  • Gyro_X - угловая скорость по оси X, радиан/сек;
  • Gyro_Y - угловая скорость по оси Y, радиан/сек;
  • Gyro_Z - угловая скорость по оси Z, радиан/сек;
  • GPS_Lat - широта, десятичные градусы;
  • GPS_Lon - долгота, десятичные градусы;
  • GPS_Alt - Высота над уровнем море относительно эллипсоида WGS 84, метры;
  • GPS_Accuracy - точность засечки GPS в радиусе 68%, метры;
  • GPS_Speed - скорость, в метрах/секунду;
  • GPS_Bearing - горизонтальное направление движения устройства, не связано с ориентацией устройства, градусы;
  • Audio - уровень шума, дБ.

Информация об устройстве

При открытии сессии создаётся файл "device_info.txt", он содержит информацию об устройстве.

  • Manufacturer - производитель
  • Brand - марка
  • Model - модель
  • Product - продукт
  • Android version - версия андроид
  • API version - версия API
  • Kernel version - версия ядра
  • Radio firmware version - версия прошивки
  • Logger version name - версия приложения
  • Logger version code - версия кодовой базы приложения

Полезное в тему

Временные метки

Программа пишет временные метки в двух видах - машиночитаемом и человекочитаемом.

Человекочитаемые метки пишутся в следующем формате, например: July 19, 2015 7:43:56 PM.

Машиночитаемые временные метки (timestamp) можно сконвертировать в привычное время этим инструментом или следующей формулой в Excel/Calc (в последнем нужно заменить запятые на точку с запятой в функции DATE()):

=(((A1/60)/60)/24)+DATE(1970,1,1)

Например для 1428953886:

=(((1428953886/60)/60)/24)+DATE(1970,1,1)
42380,818125
После форматирования (DD.MM.YY HH:MM:SS):
11.01.16 19:38:06

Время в UTC, чтобы прибавить местное, нужно к формуле добавить +(3/24) (UTC+3).

Контакты

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

Дополнительно