-
Notifications
You must be signed in to change notification settings - Fork 5
/
Copy pathreadme.txt
216 lines (155 loc) · 7.6 KB
/
readme.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
August 26, 2022
Allow up to 25 observable types
Allow up to 72 satellites per epoch
August 17, 2020
Check for really big (> 999 dB-Hz) nonsense SNR values. They are now set to zero because
they would otherwise overrun the formatted write statement.
September 10, 2019
Adding static compile statement
March 1, 2019
Now allow up to 20 observable types in a RINEX file
February 24, 2018
Fixed a bug in a format statement that made the code crash when there
were < 5 observables.
Warning - if you want to use the moving site file (i.e. your GPS site is on a
glacier or a ice sheet), the station name in the RINEX file has to agree
with the name in the knut.txt file. I do not change the case of either.
The knut.txt file is current hardwired into the moving_sites.f file and will
only work for my machine. Please make sure you change the
path for your machine.
Reminder of the output format:
Column 1 satellite number
Column 2 elevation angle
Column 3 azimuth angle
Column 4 second of the day, GPS time (i.e. no leap seconds)
Column 7 S1
Column 8 S2
Column 9 S5
Reminder on some output choices (elevation angles):
99 - data from 5-30 degrees
77 - all data > 5, L2C satellites only
88 - all data > 5
66 - all data < 30
50 - all data < 10, useful for tall high-rate sites where you only want the lowest elevation data
Look at the shellscript testit to see how to call the code. In short:
gnssSNR.e RINEX output navfile option
If you are unfamiliar with nav files and don't know how to find them,
I encourage you to contact [email protected]
You can also try some scripts listed here: https://www.kristinelarson.net/orbits/
Kristine
------------------------------------------------
January 15, 2018
I have added the ability to have moving sites, i.e. if you put
epoch (Cartesian) positions and velocities in the file called
knut.txt, it will use those positions rather than the position
in the RINEX file, which is usually wrong for glacier sites.
(i.e. UNAVCO uses the same position for all time). If the knut.txt
file does not exist, it does not crash. Please change the location
of the knut.txt file to where you want it to be (I have it defined
for my file system).
NOTE: the positions/velocities of your receiver do not have to be very good. You are
just trying to get within 100 meters of the correct value. these values
are only used to calculate an elevation angle and an azimuth angle.
January 10, 2018
This is a new version of RinexSNR that reads RINEX version 2.*
files. It strips out SNR data and writes out an external column
file with S1, S2, and S5. It includes a crude elevation and azimuth
angle usable for GPS-IR. It uses the station receiver coordinates
in the header for these calculations. Satellite orbits are based
on the broadcast navigation file.
It skips over other GNSS signals.
Kristine M. Larson
--------------------------------------------------------------------
June 5, 2015
RinexSNRv2 extracts SNR data from RINEX files (version 2.11)
It computes a simple azimuth and elevation angle
for easy reading into other programs, i.e. Matlab.
Output format:
satellite number, elevation angle, azimuth angle, secondsOfday
east and north multipath reflection points (in meters) for a
2 meter antenna and S1 S2 values in the original RINEX units, usually db-Hz
The options are easy to see in the code. Option 77 is all data for L2C only satellites.
As new satellites are launched, you need to add their names to the code.
Option 99 is for all satellites, but only below 30 degrees. Option 88 is all
satellites, all data.
I cut off at 5 degrees because I have found the data can have
large outliers below this value, but you are welcome to modify the
code for your own interests.
To run:
RinexSNRv2.e inputRinex outputSNRfileName navfile program-option
----
1. This version replaces the previous one that had a bug in the
ephemeris calculation. In fixing that, I took the opportunity to rewrite the code
in a more modular form. I hope this makes it easier for others to
understand.
2. This code ignores everything except GPS data. If someone is willing
to give me fortran code that will calculate the orbit for a GLONASS
satellite, I am willing to modify it.
3. I do not think this code allows more than 24 satellites at a
given epoch. I don't think that will be hard to fix, but currently the
program exits if it finds more than 24 satellites.
4. There is a limit to the number of observables. You can use teqc
to reduce the number of observations if you run into that limitation.
5. I'm sorry but I do not speak PC. I cannot make a PC executable for you.
I would be very grateful for bug reports.
Sincerely
Kristine M. Larson
University of Colorado
January 15, 2018
I have added the ability to have moving sites, i.e. if you put
epoch (Cartesian) positions and velocities in the file called
knut.txt, it will use those positions rather than the position
in the RINEX file, which is usually wrong for glacier sites.
(i.e. UNAVCO uses the same position for all time). If the knut.txt
file does not exist, it does not crash. Please change the location
of the knut.txt file to where you want it to be (I have it defined
for my file system).
NOTE: the positions/velocities of your receiver do not have to be very good. You are
just trying to get within 100 meters of the correct value. these values
are only used to calculate an elevation angle and an azimuth angle.
January 10, 2018
This is a new version of RinexSNR that reads RINEX version 2.*
files. It strips out SNR data and writes out an external column
file with S1, S2, and S5. It includes a crude elevation and azimuth
angle usable for GPS-IR. It uses the station receiver coordinates
in the header for these calculations. Satellite orbits are based
on the broadcast navigation file.
It skips over other GNSS signals.
Kristine M. Larson
--------------------------------------------------------------------
June 5, 2015
RinexSNRv2 extracts SNR data from RINEX files (version 2.11)
It computes a simple azimuth and elevation angle
for easy reading into other programs, i.e. Matlab.
Output format:
satellite number, elevation angle, azimuth angle, secondsOfday
east and north multipath reflection points (in meters) for a
2 meter antenna and S1 S2 values in the original RINEX units, usually db-Hz
The options are easy to see in the code. Option 77 is all data for L2C only satellites.
As new satellites are launched, you need to add their names to the code.
Option 99 is for all satellites, but only below 30 degrees. Option 88 is all
satellites, all data.
I cut off at 5 degrees because I have found the data can have
large outliers below this value, but you are welcome to modify the
code for your own interests.
To run:
RinexSNRv2.e inputRinex outputSNRfileName navfile program-option
----
1. This version replaces the previous one that had a bug in the
ephemeris calculation. In fixing that, I took the opportunity to rewrite the code
in a more modular form. I hope this makes it easier for others to
understand.
2. This code ignores everything except GPS data. If someone is willing
to give me fortran code that will calculate the orbit for a GLONASS
satellite, I am willing to modify it.
3. I do not think this code allows more than 24 satellites at a
given epoch. I don't think that will be hard to fix, but currently the
program exits if it finds more than 24 satellites.
4. There is a limit to the number of observables. You can use teqc
to reduce the number of observations if you run into that limitation.
5. I'm sorry but I do not speak PC. I cannot make a PC executable for you.
I would be very grateful for bug reports.
Sincerely
Kristine M. Larson
University of Colorado