Хочу поделиться информацией, которую наскреб за последние несколько лет. Пишу из головы, извините за огрехи если что.
На e-bay очень небольшой выбор одночастотных приемников, отдающих сырые данные. Это приемники Trimble Placer - очень старая модель, некоторые экземпляры могут иметь проблему 2000-го года, а также не поддерживать PRN32; Trimble Lassen SQ/IQ - модули посовременнее, но они не имеют обвязки, надо докупать разъемы, делать развязку RS232(5V) на обычный RS232; (исправлено 17-11-2010: не годятся т.к. не отдают полные псевдодальности).
Всё остальное выходит за рамки бюджетных моделей, т.е. цены от 500$ и выше.
В свое время я купил Bluetooth GPS приемник на чипе SiRF Star III, т.к. в спецификациях была указана поддержка сырых данных. Какого же было разочарование, когда я узнал что по маркетинговым соображениям в протоколе Sirf Binary отключен вывод фазовых данных: глупо было ожидать чуда от приемника за 70$.
Однако он по-прежнему способен отдавать кодовые измерения, что оставляет шанс на режим DGPS в постобработке для динамических объектов, и режим Static Survey (code only) для неподвижных измерений. Сырые данные по протоколу Sirf Binary практически никем не поддерживаются, долгие поиски привели только к нескольким коммерческим программам, перекодирующим Sirf Binary RAW в RINEX (стандартный формат обмена сырыми данными GPS). Мне повезло, несколько учаcтников форума gps-passion также интересовались подобной затеей, и один из них даже представил свой проект Kinematic. Впоследствии автор утратил к нему интерес по причине отсутствия тех самых фазовых измерений, сайт http://www.precision-gps.org/ сейчас пуст. У меня сохранилось немного информации о проекте и сама программа.
Скажу сразу, для обработки данных эту программу я не использовал ни разу, зато она умеет две вещи:
- открывать порт и принимать поток данных в формате Sirf Binary RAW (вариант - брать эти данные из файла, собранными любым терминалом RS232);
- экспортировать данные о псевдодальностях в RINEX.
А дальше можно обрабатывать эти файлы любым cофтом:
3.1. бесплатным, например RTKLib в первом посте;
3.2. коммерческим, например Trimble Business Center, Trimble Geomatics Office, Leica Geo Office, Ashtech GNSS Solutions, Waypoint GrafNav/GrafNet;
3.3. коммерческим-demo, например Ashtech GNSS Solutions;
Мне очень нравится последний, т.к. это профессиональный софт, по истечении trial-периода он отключает возможность обработки по фазе L2, а её у нас и так нет (собственно, у нас и фазы L1 нет :))
Вкратце последовательность действий такая.
4. Конфигурируем приемник утилитой SirfDemo, переключаем формат в Sirf Binary, обязательно включаем сообщение Message ID 28 (Navigation Library Measurement Data);
5. Собираем двоичный поток в файл любой терминальной программой;
6. Конвертируем полученные данные в RINEX при помощи бесплатной Kinematic;
7. Обрабатываем RINEX в любой вышеприведенной программе.
Сюрпризы могут поджидать на каждом этапе.
п.6 может случится, что Kinematic отказывается понимать двоичный файл, такое бывает если запись в терминале началась с середины пакета;
п.7 программы обработки могут отказаться импортировать файл RINEX без измерений фазы;
п.7 файл RINEX может иметь слегка нестандартный заголовок. В этом случае надо править заголовок вручную, взяв за образец правильный RINEX;
п.7 программы обработки могут отказаться импортировать файл RINEX без навигационных данных. Тут необходимо отметить, что данные RINEX - это несколько файлов: обсервации (файл *.??o, в нем хранятся сырые измерения), навигационный данные (параметры спутников, файл *.??n). Программа Kinematic по какой-то причине не скачивает эфемериды из чипа и не создает файл *.??n, его можно скопировать из данных базовой станции (эфемериды-то одинаковые);
По поводу данных базовой станции. По всему миру есть сеть IGS-станций, ведущих постоянную запись GPS/GLONASS данных и бесплатно предоставляющих их в формате RINEX. Есть вариации - обычные данные (запись каждые 30 секунд), fast rate (запись 1 раз в секунду), файлы могут хранить данные за сутки (стандарт) или за 15мин-1час (встречается гораздо реже).
8.1 Т.к. у нас нет фазовых измерений, для дифф.режима следует отдать предпочтение данным с частотой 1сек.
8.2 Для дифф.режима критично расстояние до базовой станции. Если станция находится на расстоянии > 300-500км, вы можете не улучшить, а ухудшить позицию по сравнению с оригинальной.
8.3 Можно делать уравнивание по нескольким базовым станциям, тогда следует выбрать ближайшие к приемнику, желательно со всех сторон (станций немного, так что выбор небольшой в любом случае).
8.4 Можно сделать привязку своей базовой точки в режиме Static Survey (code range) в течение нескольких часов, затем использовать два приемника - один на базе (master, base), второй перемещается (rover). В этом случае вы будете гарантированно иметь данные раз в секунду, и станция будет очень близко к роверу;
8.5 В файлах RINEX со станций IGS координаты базовой станции частенько смещены, причем сознательно и значительно. По этой причине при использовании IGS данных надо либо найти точные координаты, либо воспользоваться профессиональной программмой из п.3.3, в ней уже есть база с координатами IGS. Если честно мне не очень понятен смысл, т.к. пункты IGS по-моему не являются пунктами государственной геодезической сети и не должны являться секретными.
Результат. После долгих экспериментов мне удалось сделать примитивный Static Survey (code range).
Приемник: GlobalSat BT-359, SiRF Star III, Bluetooth
Базовые станции: Звенигород + Менделеево
Продолжительность записи: 4 часа
Условия приема: half semisphere (вид с подоконника :))
Fast ephemeris
Precise ephemeris
Скачать SirfDemo
Скачать Kinematic
IGS STATIONS MAP on Google
IGS data Daily (30sec, 24hr files)
IGS data Highrate (1sec, 15min files)
IGS Links