RTKlib/постпроцессинг

Пока, к сожалению, потерял интерес к этой теме и нет времени.
Лучше сразу ставить этот форк: rtkgps+. Там больше возможностей.
Работать примерно так же, как и с rtknavi. Кнопки там все те же, только расположены иначе.
Первым делом настраиваем input streams, output streams, log streams (как в rtknavi)
В processing options выбираем positioning mode.
Включаем, смотрим, дальше по ситуации.

У Sirf4 tracker internal clock можно получить из сообщения MID64.1. Он обычно 16MHZ, да.
По докам, это частота кварца. Разные ревизизии Sirf поддерживают разные диапазоны возможных значений. Т.е. эту частоту выбирает производитель устройства. По ревизиям чипсетов Sirf:


GSC3, GSC3f:          13 - 33 MHZ
GSC3e/LP, GSC3f/LP:   13 - 33 MHZ
GSC3LTf, GSC3LTif:    13 - 40 MHZ
GSC3e/LPa:            16, 26 MHZ
GSC3e/LPx, GSC3f/LPx: 13 - 26 MHZ
GSD3tw:               16 - 40 MHZ
GSD4t:                16, 26 MHZ
GSD4e, GSD4e-T:       16, 26 MHZ

В рассылке foss-gps хвалят NV08C.

Что то я не совсем понимаю вашу логику. “Внутренняя частота” у u-blox 8: 120 MHz (u-blox 7: 96 MHz), но она относится к ARM core,
у блока же трекинга/коррелятора свой специализированный DSP для FFT и т.п.

Вроде даже у sirf2 был регистр делителя частоты, который по умолчанию равен 2, и его можно
сделать =1. Но внутренняя структура у sirf2 практически такая же как и у ublox: ARM core + 16битный DSP.
Если центральный процессор справляется с решением навигационной задачи при div=2,
то удвоение частоты только увеличит расход электроэнергии, но не точность решения
(при той же прошивке).

Там больше любители поработать языком собрались.
Хехе, globalsat TR-600glonass подорожал в рублях вдвое.
Автор RTKLIB признал баг с ANTEX и broadcast эфемеридами:


No.121 
    Antenna type "*" is not replaced by RINEX header field "ANT # / TYPE" (RTKPOST, RNX2RTKP ver.2.4.2 p10)
    Even if setting "Options" - "Antenna Type" to * (auto), the antenna type is not replaced by the RINEX header field "ANT # / TYPE".
    It's due to a bug in rtklib/src/postpos.c (L895). 
    The auto read by "*" is only valid with "Satellite Ephemeris/Clock" is set to "Precise" or "Broadcast+SSR CoM". 
    It will be fixed in next patch or release. (2015/01/28)

и это радует. Дифференциальную статику с GPS таким образом можно будет делать с чистой совестью (с калиброванной антенной).

А какую конкретно задачу вы хотите решить ?

Я из описания не понял, что именно она делает.

Как раз эта частота меня и интересует, не частота ARM core (у Sirf3 емнип ARM7 40 MHz; Sirf4 и Sirf5 не знаю).

Она может быть довольно произвольной, надо иметь полный VHDL чтобы
ее осмысленно оценить.

Разобраться с rtk для Novatel OEM-4. Для OEM-4 в rtknavi для Input streams → Receiver option мануал по rtklab отсылает к файлу
rtklab\scr\rcv\novatel, но я так и не понял какие данные надо взять из этого файла и ввести в Reсeiver option.

Описание здесь: https://play.google.com/store/apps/details?id=aero.geosystems.rv.demo

Хмм, по моему так очень понятно написано (правдо неясно что такое Galileo L2)


* notes : to specify input options for oem4, set raw->opt to the following
* option strings separated by spaces.
*
* -EPHALL : input all ephemerides
* -GL1P : select 1P for GPS L1 (default 1C)
* -GL2X : select 2X for GPS L2 (default 2W)
* -RL2C : select 2C for GLO L2 (default 2P)
* -EL2C : select 2C for GAL L2 (default 2C)

Я из него не понял, эта программа функционально аналогична rtklib (использует rtklib?) или
это только “веселые картинки”.

Написал патч для поддержки TRK-SFRB в текущей версии драйвера u-blox,
теперь будут работать все приемники с ublox5 и ublox6.
Получается, что единственное, что мы не поддерживаем из sirf и ublox
это sirf2 xtrack.


--- a/src/rcv/ublox.c
+++ b/src/rcv/ublox.c
@@ -49,6 +49,7 @@
 #define ID_RXMSFRB  0x0211      /* ubx message id: subframe buffer */
 #define ID_RXMSFRBX 0x0213      /* ubx message id: raw subframe data */
 #define ID_RXMRAWX  0x0215      /* ubx message id: multi-gnss raw meas data */
+#define ID_TRKSFRB  0x0302      /* ubx message id: trace subframe buffer */
 #define ID_TRKD5    0x030A      /* ubx message id: trace mesurement data */
 #define ID_TRKMEAS  0x0310      /* ubx message id: trace mesurement data */
 #define ID_TRKSFRBX 0x030F      /* ubx message id: trace subframe buffer */
@@ -874,6 +875,32 @@ static int decode_trksfrbx(raw_t *raw)
     }
     return 0;
 }
+/* decode ubx-trk-sfrb : subframe buffer ---------------------------*/
+static int decode_trksfrb (raw_t *raw)
+{
+    int prn,sat,sys;
+    unsigned char *p=raw->buff+6;
+    
+    trace(4,"decode_trksfrb : len=%d\n",raw->len);
+    
+    prn=U1(p+1);
+
+    if (raw->outtype) {
+        sprintf(raw->msgtype,"UBX TRK-SFRB  (%4d): prn=%3d",raw->len,
+                prn);
+    }
+    if (!(sat=satno(MINPRNSBS<=prn?SYS_SBS:SYS_GPS,prn))) {
+        trace(2,"ubx trksfrb satellite number error: prn=%d\n",prn);
+        return -1;
+    }
+    sys=satsys(sat,&prn);
+
+    switch (sys) {
+        case SYS_GPS: return decode_nav (raw,sat,2);
+        case SYS_SBS: return decode_snav(raw,sat,2);
+    }
+    return 0;
+}
 /* decode ublox raw message --------------------------------------------------*/
 static int decode_ubx(raw_t *raw)
 {
@@ -895,6 +922,7 @@ static int decode_ubx(raw_t *raw)
         case ID_NAVTIME : return decode_navtime (raw);
         case ID_TRKMEAS : return decode_trkmeas (raw);
         case ID_TRKD5   : return decode_trkd5   (raw);
+        case ID_TRKSFRB : return decode_trksfrb (raw);
         case ID_TRKSFRBX: return decode_trksfrbx(raw);
     }
     if (raw->outtype) {


umot, как специалист по Pinnacle, не знаете ли откуда растут уши у следующего
преобразования пулково->wgs84 ? Есть такая программа archaeoSYS,
она говорит в файле DATUMsToWGS84.ini,
что это якобы


[CK-42 ГОСТ P 51794-2001]
scale=-0.12000
DX=26.3
DY=-132.6
DZ=-76.3
Rx=-0.220
Ry=-0.400
Rz=-0.900

в то время как все остальные ссылки указывают на Pinnacle как источник.
Параметры эти совершенно неприемлимы для СПб, так как по ним получается
что WGS84 уровень Финского залива в Кронштадте находится на высоте 21 метра.
При этом как раз именно эти параметры использованы в большинстве документов
комитета по культуре правительства Ленинградской области
для координат в WGS84.

usm78-gis Ну сколько можно тереть про эти параметры? Параметры связи с WGS-84, которые приведены в ГОСТ-е посчитаны на территорию всей страны, их точность составляет около 5-ти метров, о чем в ГОСТ-е 2001 года было написано, однако сведения о точности из ГОСТ-а 2008 года почему-то благополучно исчезли. Эти параметры годятся для навигации. Если требуется решать задачи для геодезии, картографии, кадастра, ГИС в конце концов, то в каждом конкретном месте эти параметры будут свои и посчитать их можно выполнив спутниковые измерения на пунктах существующих геодезических сетей. То что касается высот, то по этим параметрам получаются высоты отсчитываемые от математической поверхности, в частности эллипсоида отсчетной системы, а именно эллипсоида Красовского 1940 года. Для того чтобы получить высоты уровненной поверхности, необходимо применить к геодезическим высотам модель аномалий высот квазигеоида, как минимум EGM 2008, её точность составляет с среднем около 20-30 см, в отдельных местах есть отклонения до 50 см. Собственно об этом написано в любом учебнике по геодезии.

usm78-gis, shteyn во всем прав. В результате преобразования из WGS84-ск42 по данным Гостов,
вы получаете высоты над референц элипсоидом Красовского, а не в Балтийской системе высот.
Для того чтобы, получить координаты базовой станции ее необходимо привязть к местной сети(к пунктам
триангуляции 1,2,3 классов)-не менее 5 пунтов в координатах ск42 или мск. Это согласно пункта 6.2.4
в ГКИНП 02-262-02. Но это важно для геодезии. У вас свои задачи.

Оставлю здесь ссылки для архивов

  1. Координаты базовых станций в WGS-84
    в теме обсуждается эволюция WGS-84 разных эпох и переход между ними и ITRF.

  2. Замечательная книга Кашин Л.А. Построение классической астрономо-геодезической сети Росии и СССР (1816-1991)
    В ней рассказывается о первых измерениях эллипсоидов, а также как десятилетиями гнали полигонометрию на всю страну и столько же обсчитывали. Титаническая работа, вызывает только уважение. Объяснены причины больших невязок при продвижении на Дальний Восток (переход через тектонические разломы).

Вы меня несколько спешите обвинить в незнании элементарных вещей :roll_eyes:
в то время как я говорю о несколько другом.
Естественно, самый технически разумный в долговременной перспективе способ пересчета,
это используя ту же самую сеть “Геоспайдер” составить “grid shift” файл для proj4 в NTv2 формате
(+nadgrids=…) и опубликовать его под открытой лицензией.
Но 7 параметрическое преобразование широко применяется на практике
не только в наборах ГОСТ-2001 и ГОСТ-2008, но и в том о котором я написал.
Первое упоминание о нем, которое я нашел, относится к сентябрю 2001 года ( http://wenku.baidu.com/view/1fa97ade5022aaea998f0f1e.html?pn=227 ):


GPS Receiver Interface Language (GRIL)
Firmware
Version 2.2 
September 7,2001 

GPS Receiver Interface Language (GRIL)

List of Datums supported by TPS receivers
Relationships between local datums and WGS84

100 S-42 (PULKOVO1942) SPK-0 (former Soviet Union (not standard designation) 
                       dX dY dZ  scale(ppm) rx ry rz
Krassovsky1940 26.3 -132.6 -76.3 -0.12 -0.22 -0.4 -0.9

т.е. +ellps=krass +towgs84=26.3,-132.6,-76.3,0.22,0.4,0.9,-0.12
В этом тикете http://trac.osgeo.org/gdal/ticket/3176
приводится современное значение в GDAL
+ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-0.12
оно же используется согласно EPSG и в CK-63 C-2 http://epsg.io/3352 ( http://epsg.io/3352.prettywkt ),
т.е. в Аркгис, т.е. и в ПКК Росреестра.
Обратите внимание на разницу в высоте “пулковской” точки 30°E 60°N 0m:


$ echo "30 60 0" | cs2cs +proj=latlong +ellps=krass +towgs84=26.3,-132.6,-76.3,0.22,0.4,0.9,-0.12 +to +proj=latlong +ellps=WGS84 +towgs84=0,0,0,0,0,0,0
29d59'51.971"E  59d59'59.825"N 21.404
$ echo "30 60 0" | cs2cs +proj=latlong +ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-0.12 +to +proj=latlong +ellps=WGS84 +towgs84=0,0,0,0,0,0,0
29d59'51.854"E  59d59'59.864"N 14.216

Тут я однозначный сторонник ETRS89, уж больно быстро все эти системы двигаются,
хотя плохо представляю какие
последствия это будет иметь “восточнее Новгородской области”
(Альтамими пишет, что должно работать до Урала)

usm78-gis, я посмотрел ГОСТ51794-2008, такие должны быть параметры +23.9, -141.3, -80.9, 0, -0.35, -0.86, -0.12 , при СК42->WGS84.
И не сравнивайте между собой ГОСТЫ 2001г и 2008г это не корректно.
По ссылке http://epsg.io/3352 ( http://epsg.io/3352.prettywkt ) здесь два преобразования СК42->WGS84 и СК42->СК63, каждый по отдельности.

ГОСТ 51794-2008, увы, уже не действует.
А действующий ГОСТ 32453-13 понимает под WGS-84 реализацию G1150. Причем текущая реализация уже давно другая.
Нечто прописано в последней реализации ПЗ-90.11 . Но насколько оно реально - маленький вопрос.
Вот такое реалити шоу …

Да какая разница, действует, не действует, все равно они все определяют связь с СК-42 с точностью пяти метров, смысл тут это обсуждать?

Да собственного говоря, никакого. За исключением нашей Российской действительности, когда ну очень точные ГНСС технологии используются для натягивания полученных результатов на древние СК-42 и БС77.
Извините, гланды через живете …

Обсуждать надо, так как геодезические фирмы и росреестр трактуют эту тему кто в лес, кто по дрова,
а 7 параметрическое преобразование является стандартом OGC http://portal.opengeospatial.org/files/?artifact_id=999 и никуда в ближайшее время не исчезнет.
Берем например вот этот госконтракт http://stroytenders.ru/content/files/tenders/No_0145200002813000022___ot_11.10.2013._d4b53772.doc
со следующими требованиями:


5.Требования к разработке проекта
Координаты поворотных точек определяются во Всемирной геодезической системе координат 1984 года (WGS-84), 
соответствующей местной системе координат (МСК), в системе координат, установленной для кадастрового района 
(приложение №2 к техническому заданию).

8.2. Разработку вести в программе «MapInfo». В подтверждение выполнения требований п. 6.12. 
настоящего технического задания предоставляется кадастровая выписка/кадастровый паспорт.

WGS-84 стоит на первом месте, но что это такое, не уточняется.
Фирма, которая этот контракт выполняла (и использовала кстати ОСМ в качестве ситуационного плана),
может и брала для разработки “программу «MapInfo»”, но
для пересчета пулково->wgs84
использовала не обычный для mapinfo
+ellps=krass +towgs84=24,-123,-94,0.02,-0.25,-0.13,1.1
и не использующийся в аркгис
+ellps=krass +towgs84=23.92,-141.27,-80.9,-0,0.35,0.82,-0.12
а именно тот старый
+ellps=krass +towgs84=26.3,-132.6,-76.3,0.22,0.4,0.9,-0.12
Характерным внешним признаком этого является “точность” в 5 знаков после запятой
в секундах по широте и долготе.
Пример: http://culture.lenobl.ru/Files/dbelectron/1414584007prikaz_85.pdf
Некая другая фирма работавшая над похожими контрактами,
дает “точность” в 4 знака после запятой в секундах по широте и долготе,
и использует какой-то другой набор параметров: какой именно я еще не понял.
Пример: http://culture.lenobl.ru/Files/dbelectron/141571678801-0314-104_11.11.2014.pdf
Но ГОСТами тут никакими (плохими или хорошими) никто не пользовался :rage:

Еще один патч к драйверу ublox для более точной обработки флага LLI в декодере TRK-TRKD5.
Также выяснилось, что баг в драйвере, который не дает обрабатывать сырые измерения TRK-TRKD5 или TRK-MEAS
с частотой > 10Hz проявляется и для частоты 4Hz (так как T=250ms не кратно 100 ms),
т.е. 4Hz тоже не работает.


+
+#if 0        
         if (snr<=10.0) raw->lockt[sat-1][1]=1.0;
+#else
+        {
+        int lock1, lock2;
+        lock1=U2(p+28);   /* code lock count */
+        lock2=U2(p+30);   /* phase lock count */
+        /* set slip flag */
+        if (lock2==0||lock2<raw->lockt[sat-1][0]) raw->lockt[sat-1][1]=1.0;
+        raw->lockt[sat-1][0]=lock2;
+        }
+#endif


Navilock начал продавать приемники с ublox-M8 ( http://www.navilock.de/files/21416.download ) , и при этом наконец обещает “в 2015 году” поддержку Галилео,
который будет обрабатываться совместно с GPS на одном частотном канале. Второй канал при этом остается
свободным, так что теоретически на нем можно обрабатывать L2C (если конечно разобраться с управлением
синтезатора частоты).

Хороший пример. Реальный WGS улютает. СК-64 падает на место.
Не знаю, как насчет ГОСТов, но кадастр на ПублКадКарте РОСРЕЕСТРа по Борисовой Гриве (а возможно и не только) горбатый метров на 30.
http://dropmefiles.com/2wD0w
Многослойный геоPDF.