Оффтоп (Move your mouse to the spoiler area to reveal the content) Может я неясно выразился, может Вас не понимаю... В процессе "анализа" нашего файла bolsche12-GPS.txt должны быть определены [big]все непрерывные интервалы[/big] с числом наблюдаемых спутников более 12. В результате мы получим интервалы времени, на которые нам нужно разбить исходный файл: [big]t0-t1, t1-t2,..., t(i-1)-ti[/big] Разбиваем исходный файл: [big]teqc -e t1 ***.11o > gap1***.11o teqc -st t1 -e t2 ***.11o > gap2***.11o ... teqc -st t(i-1) -e ti ***.11o > gap(i-1)***.11o teqc -st ti ***.11o > gapi***.11o[/big] и анализируем файлы ***i.11S полученные для каждого выделенного интервала (выделяем спутник с наименьшим количеством записей) .
Еще пример. Мы выделили непрерывный интервал, допусти с 00 00 00.000 до 00 15 00.000 (это просто пример, не для нашего конкретного файла) с числом наблюдаемых спутников больше 12 На этом непрерывном интервале (Т.е число спутников внутри интервала превышает 12, для каждой соседней эпохи) с 00 00 00.000 до 00 05 00.000 наблюдаются спутники G#1 G#2 G#3 ........G#12 G#13 (Общее число спутников 13) с 00 05 00.000 до 00 10 00.000 наблюдаются спутники G#1 G#2 G#3 ........G#12 G#13 G#14 (Общее число спутников 14, пришел спутник G#14) с 00 10 00.000 до 00 15 00.000 наблюдаются спутники G#1 G#2 G#3 ........G#12 G#14 (Общее число спутников 13, ушел спутник G#13) Допустим время восхода спутника G#14 00 06 00.000 (соответственно общее время его наблюдений на интервале 09 00.000) , а время захода спутника G#13 00 07 30.000 (соответственно общее время его наблюдений на интервале 07 30.000).Количество наблюдений для спутника G#13 меньше и мы его исключаем. Но на интервале с 00 07 30.00 до 00 15 00.000 количество наблюдаемых спутников остается 13. Вот такие грабли, которые надо как то обходить. Или я опять чего то не понял?
Согласен. Перед анализом файлов ***i.11S полученных для каждого выделенного интервала необходимо вычислять число удаляемых спутников. Количество наблюдаемых спутников можно взять из файла bolsche12-GPS.txt, а необходимое число задать - 12. Конкретно для Вашего примера 14-12=2, т.е. удалению подлежат 2 спутника с наименьшим количеством записей. Так... ? (Добавление) Оффтоп (Move your mouse to the spoiler area to reveal the content) Поставленную задачу можно решить при помощи функционала предоставляемого TEQC без привлечения стороннего ПО...
>Так...? <Все так. Только боюсь проверка возможных условий получится больно громоздкой для bat файла. Хотя подождем Rodik 'а. >Поставленную задачу можно решить при помощи функционала предоставляемого TEQC без привлечения стороннего ПО... < Это я уже понял. Просто картинка на выходе понравилась. Да и способ реализации забавный. /off Про teqc и структуру формата rinex я, за последнюю неделю, узнал больше, чем за всю профессиональную жизнь. :) Мы на своих каменоломнях GNSS только начинаем осваивать. Со скрипом. /оff
Ну что... все оказалось не так просто, как мне казалось... :( Накатал тут программку реализующую следующий алгоритм: На выходе получил файлы ***i.11S... Но они получаются настолько маленькие, что смотреть там просто нечего. :( Нужно что-то другое... ::yield:: Оффтоп (Move your mouse to the spoiler area to reveal the content) Программка прилагается. Запускаем 12GPS.exe, выбираем файл, например, svtl0470.11o. Жмем Ok и ждем сообщения об окончании. Все gap-файлы помещаются в папку с программой. Интервал между эпохами - 30 сек.
Есть ещё такая команда: -max_rx_SVs # set maximum # of SVs trackable (per OBS epoch) based on receiver type (default = 12 unless found by matching with IGS designation) teqc -max_rx_SVs 12 svtl0470_G.11o > svtl0470_12.11o Но странно работает эта команда, она обрезает все эпохи наблюдений, начиная с той, в которой впервые зафиксировано спутников больше 12. В нашем случае – это эпоха 11 2 16 7 31 30.0000000, после которой - всё обрезано. Зачем такая команда? Может нужно ещё какие-то ключи к ней? Сначала думал, что она вырежет из всего файла все эпохи, где встречается спутников больше 12. Получился бы обрезанный файл, где нет SV больше 12. Тогда можно было бы от исходного файла вычесть получившийся и на выходе иметь файл с эпохами, где встречаются только больше 12 SV. Но, увы. Тогда нужно выполнять по такой схеме: Анализировать появившиеся спутники в эпохе больше 12. Например: В эпоху 11 2 16 7 31 30.0000000 было 11 2 16 7 31 0.0000000 0 12G03G06G08G14G15G16G18G19G21G22G27G28 Далее: 11 2 16 7 31 30.0000000 0 13G03G06G08G11G14G15G16G18G19G21G22G27 G28 11 2 16 7 32 0.0000000 0 13G03G06G08G11G14G15G16G18G19G21G22G27 G28 11 2 16 7 32 30.0000000 0 13G03G06G08G11G14G15G16G18G19G21G22G27 G28 И в эпоху 11 2 16 7 33 00.0000000 стало 11 2 16 7 33 0.0000000 0 12G03G06G08G11G14G15G18G19G21G22G27G28 Очевидно, что появляется над горизонтом спутник G11 и заходит за горизонт спутник G16. Таким образом, вначале интервала необходимо отключать спутник G11 и, начиная с середины интервала, отключать спутник G16. Для этого нужно будет делать выборку таких спутников из двух соседних эпох вначале интервала и двух соседних эпох в конце интервала. Интервал для сравнения между эпохами следует задать 1 секунду, так как файл может быть с частотой регистрации не 30 сек, а чаще. А как это запрограммировать? ::what::
Для нахождения самых низких спутников и разделения их на "заходящий" и "восходящий" достаточно файла ***.ele: Код: 15 G03 G06 G08 G11 G14 G15 G16 G18 G19 G21 G22 G24 G26 G27 G28 56.860 53.375 8.785 4.486 9.064 25.349 3.561 56.223 56.130 18.263 65.097 0.230 3.400 6.766 6.759 15 G03 G06 G08 G11 G14 G15 G16 G18 G19 G21 G22 G24 G26 G27 G28 56.701 53.167 8.673 4.681 9.272 25.248 3.363 56.073 56.284 18.056 65.253 0.421 3.230 6.901 6.909 15 G03 G06 G08 G11 G14 G15 G16 G18 G19 G21 G22 G24 G26 G27 G28 56.541 52.958 8.561 4.875 9.480 25.147 3.166 55.921 56.436 17.850 65.406 0.612 3.060 7.036 7.058 В принципе из этого же файла (***.ele) можно брать и эпоху, по которой делить исходный интервал на несколько, внутри которых удалять необходимые спутники. Вроде все и не так сложно, как могло показаться. Посмотрим что получится... Оффтоп (Move your mouse to the spoiler area to reveal the content) Путь к файлу 12GPS.exe не должен содержать пробелов. Спасибо В.Шуфотинскому за выявленный баг.
Блин, мало ли кто не заметил. Строка findstr /b /r ..............................1[3456789] svtl0470_8.11o выдает неполный список спутников. в RINEX, в заголовке эпохи, если число спутников больше 12, список продолжается на следующей за заголовком строке.
Выкладываю очередную версию программы. Она выполняет "отсечку тех спутников, которые имеют низкое возвышение над горизонтом, чтобы общее число наблюдаемых GPS спутников на эпоху регистрации было не более 12 штук". Порядок работы с программой прежний. Интервал эпох - 30 сек1. Teqc не удаляет спутник №322 и программа, соответственно, тоже это не делает. В результате обработки исходного файла получаем конечный файл 12GPS.obs. Полученный файл можно посмотреть в Pinnacle - эпохи не потеряны и единственный интервал с наблюдаемым числом GPS спутников более 12 с 8:25:00 до 8:33:00 (самый низкий спутник - 32). 1 При необходимости можно предоставить пользователю возможность менять интервал. 2 В списке спутников он и так в конце, поэтому будет отсечен самой TTC.
Очередной релиз TEQC. Код: * fix of the +/-G, +/-R, +/-E, +/-S, +/-ch, and +/-NaN_obs options when values are >= 32 (esp. useful for GIOVE PRN values > 32; see http://facility.unavco.org/general-info/gnss-modernization/gnss-modernization.html#Galileo or GPS PRN 32 filtering with '-G32' or '+G32'
Спасибо за помощь! Попробую просмотреть результы))))))) У меня к Вам еще просьба, подскажите пожалуйста как конвертировать файлы используя teqc.
teqc -O.obs [1] [2] > [3] Вместо [1] вставляется выбор параметров Вместо [2] вставляется конвертируемый файл Вместо [3] вставляется получаемый файл
Не могли бы Вы по подробней рассказать о данной процедуре, желательно с картинками....Не доходит что то))))))