Удаление заголовка и повторяющейся информации о времени из файла GPS TEC rinex

У меня есть файл Rinex и показано здесь.. изображение, показывающее первую часть файла Rinex

http://imageshack.us/photo/my-images/593/65961409.jpg

Данные (файл AOPR Rinex) загружаются с сайта после ввода года и дня.

http://www.naic.edu/aisr/GPSTEC/gpstec.html

Я хочу открыть этот файл как матрицу в Matlab для дальнейшей обработки. После окончания заголовка на 42-й строке информация о времени находится на 43-й строке. Затем данные начинаются. Но информация о времени приходит снова после того, как некоторые строки говорят 64 строку, которая должна быть отброшена. Заголовок также должен быть удален. Также последний столбец идет ниже первого столбца как вторая строка, которую следует перенести в последний столбец. Всего 55700 строк. Пожалуйста, помогите мне с этим.

2 ответа

Я подозреваю, что последний столбец в строке ниже - это просто артефакт того, насколько велико окно вашего текстового ридера...

В остальном, я думаю, что здесь используется метод проб и ошибок:

fid = fopen('test.txt','r');
C = {};
while ~feof(fid)
    % read lines with dictated format.
    D = textscan(fid, '%d %d %d %d');

    % this will fail on headerlines, empty lines, etc.
    if isempty(D{1})
        % in those cases, advance the file pointer by one line
        fgetl(fid);
    else
        % if that's not the case, save the lines thus read 
        C = [C;D]; %#ok
    end
end
fclose(fid);

% Post-process: concatenate all sub-arrays into one
C = arrayfun(@(ii) cat(1, C{:,ii}), 1:size(C,2), 'UniformOutput', false);

Это работает, по крайней мере, с моим test.txt:

header 
random 
garbage
1 2 3 4
4 5 6 7
4 6 7 8
more random garbage
2 5 6 7
5 6 7 8
8 6 3 7

Я подозреваю, что последний столбец в строке ниже - это просто артефакт того, насколько велико> окно вашего текстового ридера...

В остальном, я думаю, что здесь есть метод проб и ошибок

Дорогой Роди, у меня нет опыта работы с Matlab, и я только начинающий. На самом деле это файл Rinex... с 2780 эпохами и 6 наблюдаемыми с 30 значениями спутников... Декодировать его в Matlab сложно. Это проблема. Вы можете прочитать пример кода на

http://web.ics.purdue.edu/~tdauterm/EAS591/Lab7/read_rinexo.m

Но проблема в том, что наблюдаемых значений шесть, а в m-файле их всего 5, что также не в правильном порядке. Мне нужен C1 P2 L1 L2 S1 S2... но код по ссылке дает L1 L2 C1 P1 P2.:(Можете ли вы просто исправить это.. Тогда это будет большая помощь..

Другие вопросы по тегам