Tôi đang đọc tệp Dữ liệu Quan sát [RINEX-3.02] (trang 60) để thực hiện lọc ID vệ tinh dựa trên thời gian, và cuối cùng sẽ tạo lại nó. Điều này sẽ cho phép tôi kiểm soát nhiều hơn đối với việc lựa chọn các vệ tinh mà tôi cho phép đóng góp vào một giải pháp vị trí theo thời gian với xử lý bài RTK.Đọc dữ liệu GPS RINEX với Pandas
Cụ thể cho phần này mặc dù, tôi chỉ sử dụng:
- [python-3.3]
- [gấu trúc]
- [NumPy]
Dưới đây là một mẫu với ba lần quan sát được đóng dấu đầu tiên.
Lưu ý: Không cần phân tích dữ liệu từ tiêu đề.
3.02 OBSERVATION DATA M: Mixed RINEX VERSION/TYPE
CONVBIN 2.4.2 20130731 223656 UTC PGM/RUN BY/DATE
log: /home/ruffin/Documents/Data/in/FlagStaff_center/FlagStaCOMMENT
format: u-blox COMMENT
MARKER NAME
MARKER NUMBER
MARKER TYPE
OBSERVER/AGENCY
REC#/TYPE/VERS
ANT #/TYPE
808673.9171 -4086658.5368 4115497.9775 APPROX POSITION XYZ
0.0000 0.0000 0.0000 ANTENNA: DELTA H/E/N
G 4 C1C L1C D1C S1C SYS/#/OBS TYPES
R 4 C1C L1C D1C S1C SYS/#/OBS TYPES
S 4 C1C L1C D1C S1C SYS/#/OBS TYPES
2013 7 28 0 27 28.8000000 GPS TIME OF FIRST OBS
2013 7 28 0 43 43.4010000 GPS TIME OF LAST OBS
G SYS/PHASE SHIFT
R SYS/PHASE SHIFT
S SYS/PHASE SHIFT
0 GLONASS SLOT/FRQ #
C1C 0.000 C1P 0.000 C2C 0.000 C2P 0.000 GLONASS COD/PHS/BIS
END OF HEADER
> 2013 7 28 0 27 28.8000000 0 10
G10 20230413.601 76808.847 -1340.996 44.000
G 4 20838211.591 171263.904 -2966.336 41.000
G12 21468211.719 105537.443 -1832.417 43.000
S38 38213212.070 69599.2942 -1212.899 45.000
G 5 22123924.655 -106102.481 1822.942 46.000
G25 23134484.916 -38928.221 656.698 40.000
G17 23229864.981 232399.788 -4048.368 41.000
G13 23968536.158 6424.1143 -123.907 28.000
G23 24779333.279 103307.5703 -1805.165 29.000
S35 39723655.125 69125.5242 -1209.970 44.000
> 2013 7 28 0 27 29.0000000 0 10
G10 20230464.937 77077.031 -1341.254 44.000
G 2 20684692.905 35114.399 -598.536 44.000
G12 21468280.880 105903.885 -1832.592 43.000
S38 38213258.255 69841.8772 -1212.593 45.000
G 5 22123855.354 -106467.087 1823.084 46.000
G25 23134460.075 -39059.618 657.331 40.000
G17 23230018.654 233209.408 -4048.572 41.000
G13 23968535.044 6449.0633 -123.060 28.000
G23 24779402.809 103668.5933 -1804.973 29.000
S35 39723700.845 69367.3942 -1208.954 44.000
> 2013 7 28 0 27 29.2000000 0 9
G10 20230515.955 77345.295 -1341.436 44.000
G12 21468350.548 106270.372 -1832.637 43.000
S38 38213304.199 70084.4922 -1212.840 45.000
G 5 22123786.091 -106831.642 1822.784 46.000
G25 23134435.278 -39190.987 657.344 40.000
G17 23230172.406 234019.092 -4048.079 41.000
G13 23968534.775 6473.9923 -125.373 28.000
G23 24779471.004 104029.6643 -1805.983 29.000
S35 39723747.025 69609.2902 -1209.259 44.000
Nếu tôi phải thực hiện một phân tích cú pháp tùy chỉnh,
Điều khó khăn khác là ID vệ tinh đến và đi theo thời gian,
(như hình với vệ tinh "G 2" và "G 4")
(cộng với chúng cũng có khoảng trống trong các ID)
Vì vậy, khi tôi đọc chúng vào một DataFrame,
Tôi cần phải tạo nhãn cột mới (hoặc nhãn hàng cho MultiIndex?) Khi tôi tìm thấy chúng.
ban đầu tôi đã suy nghĩ điều này có thể được coi là một vấn đề MultiIndex,
nhưng tôi không như vậy chắc chắn gấu trúc read_csv có thể làm tất cả mọi thứ
Jump to Reading DataFrame objects with MultiIndex
Bất kỳ lời đề nghị?
nguồn có liên quan nếu quan tâm:
- [python-3.3]: http://www.python.org/download/releases/3.3.0/
- [NumPy]: http://www.numpy.org/
- [gấu trúc]: http://pandas.pydata.org/
- [RINEX-3,02]: http://igscb.jpl.nasa.gov/igscb/data/format/rinex302.pdf
- [ephem]: https://pypi.python.org/pypi/ephem/
- [RTKLIB]: http://www.rtklib.com/
- [NOAA CORS]: http://geodesy.noaa.gov/CORS/
bạn có thể thêm một vài dòng dữ liệu giả, khó để phỏng đoán không. :) –
Rất tiếc, đã xảy ra lỗi trong định dạng và phải tiếp tục xuất bản để gỡ lỗi định dạng. – ruffsl