1   /* Copyright 2002-2019 CS Systèmes d'Information
2    * Licensed to CS Systèmes d'Information (CS) under one or more
3    * contributor license agreements.  See the NOTICE file distributed with
4    * this work for additional information regarding copyright ownership.
5    * CS licenses this file to You under the Apache License, Version 2.0
6    * (the "License"); you may not use this file except in compliance with
7    * the License.  You may obtain a copy of the License at
8    *
9    *   http://www.apache.org/licenses/LICENSE-2.0
10   *
11   * Unless required by applicable law or agreed to in writing, software
12   * distributed under the License is distributed on an "AS IS" BASIS,
13   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14   * See the License for the specific language governing permissions and
15   * limitations under the License.
16   */
17  package org.orekit.gnss;
18  
19  import java.util.HashMap;
20  import java.util.Map;
21  
22  /** Enumerate for all the Observation Types for Rinex 2 and 3.
23   * For Rinex 2, there is an two-character enumerate composed of the Observation
24   * Code (C,P,L,D,S) and the Frequency code (1,2,5,6,7,8).
25   * For Rinex 3 there is a three-character enumerate composed of the Observation
26   * Code (C,L,D,S), the frequency code (1,2,5,6,7,8) and a final attribute depending
27   * on the tracking mode or channel.
28   *
29   */
30  public enum ObservationType {
31  
32      /** Pseudorange GPS L1 / GLONASS G1 / Galileo E2-L1-E1 / SBAS L1 for Rinex2. */
33      C1(MeasurementType.PSEUDO_RANGE, Frequency.G01, Frequency.R01, Frequency.E01, Frequency.S01),
34  
35      /** Pseudorange GPS L2 / GLONASS G2 / Beidou B02 for Rinex2. */
36      C2(MeasurementType.PSEUDO_RANGE, Frequency.G02, Frequency.R02, Frequency.B02),
37  
38      /** Pseudorange GPS L5 / Galileo E5a / SBAS L5 for Rinex2. */
39      C5(MeasurementType.PSEUDO_RANGE, Frequency.G05, Frequency.E05, Frequency.S05),
40  
41      /** Pseudorange Galileo E6 / Beidou B03 for Rinex2. */
42      C6(MeasurementType.PSEUDO_RANGE, Frequency.E06, Frequency.B03),
43  
44      /** Pseudorange Galileo E5b / Beidou B02 for Rinex2. */
45      C7(MeasurementType.PSEUDO_RANGE, Frequency.E07, Frequency.B02),
46  
47      /** Pseudorange Galileo E5a+b for Rinex2. */
48      C8(MeasurementType.PSEUDO_RANGE, Frequency.E08),
49  
50      /** Pseudorange GPS L1 / GLONASS G1 for Rinex2. */
51      P1(MeasurementType.PSEUDO_RANGE, Frequency.G01, Frequency.R01),
52  
53      /** Pseudorange GPS L2 / GLONASS G2 for Rinex2. */
54      P2(MeasurementType.PSEUDO_RANGE, Frequency.G02, Frequency.R02),
55  
56      /** Carrier-phase GPS L1 / GLONASS G1 / Galileo E2-L1-E1 / SBAS L1 for Rinex2. */
57      L1(MeasurementType.CARRIER_PHASE, Frequency.G01, Frequency.R01, Frequency.E01, Frequency.S01),
58  
59      /** Carrier-phase GPS L2 / GLONASS G2 / Beidou B02 for Rinex2. */
60      L2(MeasurementType.CARRIER_PHASE, Frequency.G02, Frequency.R02, Frequency.B02),
61  
62      /** Carrier-phase GPS L5 / Galileo E5a / SBAS L5 for Rinex2. */
63      L5(MeasurementType.CARRIER_PHASE, Frequency.G05, Frequency.E05, Frequency.S05),
64  
65      /** Carrier-phase Galileo E6 / Beidou B03 for Rinex2. */
66      L6(MeasurementType.CARRIER_PHASE, Frequency.E06, Frequency.C07),
67  
68      /** Carrier-phase Galileo E5b / Beidou B02 for Rinex2. */
69      L7(MeasurementType.CARRIER_PHASE, Frequency.E07, Frequency.B02),
70  
71      /** Carrier-phase Galileo E5a+b for Rinex2. */
72      L8(MeasurementType.CARRIER_PHASE, Frequency.E08),
73  
74      /** Carrier-phase GPS L1 C/A / GLONASS G1 C/A for Rinex2. */
75      LA(MeasurementType.CARRIER_PHASE, Frequency.G01, Frequency.R01),
76  
77      /** Carrier-phase GPS L1C for Rinex2. */
78      LB(MeasurementType.CARRIER_PHASE, Frequency.G01),
79  
80      /** Carrier-phase GPS L2C for Rinex2. */
81      LC(MeasurementType.CARRIER_PHASE, Frequency.G02),
82  
83      /** Carrier-phase GLONASS G2 for Rinex2. */
84      LD(MeasurementType.CARRIER_PHASE, Frequency.R02),
85  
86      /** Doppler GPS L1 / GLONASS G1 / Galileo E2-L1-E1 / SBAS L1 for Rinex2. */
87      D1(MeasurementType.DOPPLER, Frequency.G01, Frequency.R01, Frequency.E01, Frequency.S01),
88  
89      /** Doppler GPS L2 / GLONASS G2 / Beidou BO2 for Rinex2. */
90      D2(MeasurementType.DOPPLER, Frequency.G02, Frequency.R02, Frequency.B02),
91  
92      /** Doppler GPS L5 / Galileo E5a / SBAS L5 for Rinex2. */
93      D5(MeasurementType.DOPPLER, Frequency.G05, Frequency.E05, Frequency.S05),
94  
95      /** Doppler Galileo E6 / Beidou B03 for Rinex2. */
96      D6(MeasurementType.DOPPLER, Frequency.E06, Frequency.C07),
97  
98      /** Doppler Galileo E5b / Beidou B02 for Rinex2. */
99      D7(MeasurementType.DOPPLER, Frequency.E07, Frequency.B02),
100 
101     /** Doppler Galileo E5a+b for Rinex2. */
102     D8(MeasurementType.DOPPLER, Frequency.E08),
103 
104     /** Doppler GPS L1 / GLONASS G1 / Galileo E2-L1-E1 / SBAS L1 for Rinex2. */
105     S1(MeasurementType.SIGNAL_STRENGTH, Frequency.G01, Frequency.R01, Frequency.E01, Frequency.S01),
106 
107     /** Signal Strength GPS L2 / GLONASS G2 / Beidou B02 for Rinex2. */
108     S2(MeasurementType.SIGNAL_STRENGTH, Frequency.G02, Frequency.R02, Frequency.B02),
109 
110     /** Signal Strength GPS L5 / Galileo E5a / SBAS L5 for Rinex2. */
111     S5(MeasurementType.SIGNAL_STRENGTH, Frequency.G05, Frequency.E05, Frequency.S05),
112 
113     /** Signal Strength Galileo E6 / Beidou B03 for Rinex2. */
114     S6(MeasurementType.SIGNAL_STRENGTH, Frequency.E06, Frequency.C07),
115 
116     /** Signal Strength Galileo E5b / Beidou B02 for Rinex2. */
117     S7(MeasurementType.SIGNAL_STRENGTH, Frequency.E07, Frequency.B02),
118 
119     /** Signal Strength Galileo E5a+b for Rinex2. */
120     S8(MeasurementType.SIGNAL_STRENGTH, Frequency.E08),
121 
122     /** Pseudorange Galileo E1 A for Rinex3. */
123     C1A(MeasurementType.PSEUDO_RANGE, Frequency.E01),
124 
125     /** Pseudorange Galileo E1 I/NAV OS/CS/SoL for Rinex3. */
126     C1B(MeasurementType.PSEUDO_RANGE, Frequency.E01),
127 
128     /** Pseudorange GPS L1 C/A / GLONASS G1 C/A / Galileo E1 C / SBAS L1 C/A / QZSS L1 C/A for Rinex3. */
129     C1C(MeasurementType.PSEUDO_RANGE, Frequency.G01, Frequency.R01, Frequency.E01, Frequency.S01, Frequency.J01),
130 
131     /** Pseudorange Beidou B1 I for Rinex3.02. */
132     C1I(MeasurementType.PSEUDO_RANGE, Frequency.B01),
133 
134     /** Pseudorange GPS L1 L1C(P) / QZSS L1 L1C(P) for Rinex3. */
135     C1L(MeasurementType.PSEUDO_RANGE, Frequency.G01, Frequency.J01),
136 
137     /** Pseudorange GPS L1 M for Rinex3. */
138     C1M(MeasurementType.PSEUDO_RANGE, Frequency.G01),
139 
140     /** Pseudorange GPS L1 P(AS off) / GLONASS G1 P for Rinex3. */
141     C1P(MeasurementType.PSEUDO_RANGE, Frequency.G01, Frequency.R01),
142 
143     /** Pseudorange Beidou B1 Q for Rinex3.02. */
144     C1Q(MeasurementType.PSEUDO_RANGE, Frequency.B01),
145 
146     /** Pseudorange GPS L1 L1C(D) / QZSS L1 L1C(D) for Rinex3. */
147     C1S(MeasurementType.PSEUDO_RANGE, Frequency.G01, Frequency.J01),
148 
149     /** Pseudorange GPS L1 Z-tracking and similar (AS on) for Rinex3. */
150     C1W(MeasurementType.PSEUDO_RANGE, Frequency.G01),
151 
152     /** Pseudorange GPS L1 L1C (D+P) / Galileo E1 B+C / QZSS L1 L1C(D+P) for Rinex3. */
153     C1X(MeasurementType.PSEUDO_RANGE, Frequency.G01, Frequency.E01, Frequency.J01),
154 
155     /** Pseudorange GPS L1 Y for Rinex3. */
156     C1Y(MeasurementType.PSEUDO_RANGE, Frequency.G01),
157 
158     /** Pseudorange Galileo E1 C1Z A+B+C / QZSS L1 L1-SAIF for Rinex3. */
159     C1Z(MeasurementType.PSEUDO_RANGE, Frequency.E01, Frequency.J01),
160 
161     /** Pseudorange GPS L2 C/A / GLONASS G2 C/A for Rinex3. */
162     C2C(MeasurementType.PSEUDO_RANGE, Frequency.G02, Frequency.R02),
163 
164     /** Pseudorange GPS L1(C/A)+(P2-P1) (semi-codeless) for Rinex3. */
165     C2D(MeasurementType.PSEUDO_RANGE, Frequency.G01),
166 
167     /** Pseudorange Beidou B1 I for Rinex3.03. */
168     C2I(MeasurementType.PSEUDO_RANGE, Frequency.B01),
169 
170     /** Pseudorange GPS L2 L2C(L) / QZSS L2 L2C(2) for Rinex3. */
171     C2L(MeasurementType.PSEUDO_RANGE, Frequency.G02, Frequency.J02),
172 
173     /** Pseudorange GPS L2 M for Rinex3. */
174     C2M(MeasurementType.PSEUDO_RANGE, Frequency.G02),
175 
176     /** Pseudorange GPS L2 P(AS off) / GLONASS G2 P for Rinex3. */
177     C2P(MeasurementType.PSEUDO_RANGE, Frequency.G02, Frequency.R02),
178 
179     /** Pseudorange Beidou B1 Q for Rinex3.03. */
180     C2Q(MeasurementType.PSEUDO_RANGE, Frequency.B01),
181 
182     /** Pseudorange GPS L2 L2C(M) / QZSS L2 L2C(M) for Rinex3. */
183     C2S(MeasurementType.PSEUDO_RANGE, Frequency.G02, Frequency.J02),
184 
185     /** Pseudorange GPS L2 Z-tracking and similar (AS on) for Rinex3. */
186     C2W(MeasurementType.PSEUDO_RANGE, Frequency.G02),
187 
188     /** Pseudorange GPS L2 L2C (M+L) / QZSS L2 L2C(M+L) for Rinex3. */
189     C2X(MeasurementType.PSEUDO_RANGE, Frequency.G02, Frequency.J02),
190 
191     /** Pseudorange GPS L2 Y for Rinex3. */
192     C2Y(MeasurementType.PSEUDO_RANGE, Frequency.G02),
193 
194     /** Pseudorange GLONASS G3 I for Rinex3. */
195     C3I(MeasurementType.PSEUDO_RANGE, Frequency.R03),
196 
197     /** Pseudorange GLONASS G3 Q for Rinex3. */
198     C3Q(MeasurementType.PSEUDO_RANGE, Frequency.R03),
199 
200     /** Pseudorange GLONASS G3 I+Q for Rinex3. */
201     C3X(MeasurementType.PSEUDO_RANGE, Frequency.R03),
202 
203     /** Pseudorange IRNSS L5 A for Rinex3. */
204     C5A(MeasurementType.PSEUDO_RANGE, Frequency.I05),
205 
206     /** Pseudorange IRNSS L5 B for Rinex3. */
207     C5B(MeasurementType.PSEUDO_RANGE, Frequency.I05),
208 
209     /** Pseudorange IRNSS L5 C for Rinex3. */
210     C5C(MeasurementType.PSEUDO_RANGE, Frequency.I05),
211 
212     /** Pseudorange GPS L5 I/ Galileo E5a F/NAV OS / SBAS L5 I / QZSS L5 I for Rinex3. */
213     C5I(MeasurementType.PSEUDO_RANGE, Frequency.G05, Frequency.E05, Frequency.S05, Frequency.J05),
214 
215     /** Pseudorange GPS L5 Q/ Galileo E5a Q / SBAS L5 Q / QZSS L5 Q for Rinex3. */
216     C5Q(MeasurementType.PSEUDO_RANGE, Frequency.G05, Frequency.E05, Frequency.S05, Frequency.J05),
217 
218     /** Pseudorange GPS L5 I+Q/ Galileo E5a I+Q / SBAS L5 I+Q / QZSS L5 I+Q / IRNSS L5 B+C for Rinex3. */
219     C5X(MeasurementType.PSEUDO_RANGE, Frequency.G05, Frequency.E05, Frequency.S05, Frequency.J05, Frequency.I05),
220 
221     /** Pseudorange Galileo E6 A PRS for Rinex3. */
222     C6A(MeasurementType.PSEUDO_RANGE, Frequency.E06),
223 
224     /** Pseudorange Galileo E6 B C/NAV CS for Rinex3. */
225     C6B(MeasurementType.PSEUDO_RANGE, Frequency.E06),
226 
227     /** Pseudorange Galileo E6 C no data for Rinex3. */
228     C6C(MeasurementType.PSEUDO_RANGE, Frequency.E06),
229 
230     /** Pseudorange Beidou B3 I for Rinex3. */
231     C6I(MeasurementType.PSEUDO_RANGE, Frequency.B03),
232 
233     /** Pseudorange Beidou B3 Q for Rinex3. */
234     C6Q(MeasurementType.PSEUDO_RANGE, Frequency.B03),
235 
236     /** Pseudorange QZSS LEX(6) L for Rinex3. */
237     C6L(MeasurementType.PSEUDO_RANGE, Frequency.J06),
238 
239     /** Pseudorange QZSS LEX(6) S for Rinex3. */
240     C6S(MeasurementType.PSEUDO_RANGE, Frequency.J06),
241 
242     /** Pseudorange Galileo E6 B+C / QZSS LEX(6) S+L / Beidou B3 I+Q for Rinex3. */
243     C6X(MeasurementType.PSEUDO_RANGE, Frequency.E06, Frequency.J06, Frequency.B03),
244 
245     /** Pseudorange Galileo E6 A+B+C for Rinex3. */
246     C6Z(MeasurementType.PSEUDO_RANGE, Frequency.E06),
247 
248     /** Pseudorange Galileo E5b I I/NAV OS/CS/SoL / Beidou B2 I for Rinex3. */
249     C7I(MeasurementType.PSEUDO_RANGE, Frequency.E07, Frequency.B02),
250 
251     /** Pseudorange Galileo Q no data / Beidou B2 Q for Rinex3. */
252     C7Q(MeasurementType.PSEUDO_RANGE, Frequency.E07, Frequency.B02),
253 
254     /** Pseudorange Galileo E5b I+Q / Beidou B2 I+Q for Rinex3. */
255     C7X(MeasurementType.PSEUDO_RANGE, Frequency.E07, Frequency.B02),
256 
257     /** Pseudorange Galileo E5(E5a+E5b) I for Rinex3. */
258     C8I(MeasurementType.PSEUDO_RANGE, Frequency.E08),
259 
260     /** Pseudorange Galileo E5(E5a+E5b) Q for Rinex3. */
261     C8Q(MeasurementType.PSEUDO_RANGE, Frequency.E08),
262 
263     /** Pseudorange Galileo E5(E5a+E5b) I+Q for Rinex3. */
264     C8X(MeasurementType.PSEUDO_RANGE, Frequency.E08),
265 
266     /** Pseudorange IRNSS S A for Rinex3. */
267     C9A(MeasurementType.PSEUDO_RANGE, Frequency.I09),
268 
269     /** Pseudorange IRNSS S B for Rinex3. */
270     C9B(MeasurementType.PSEUDO_RANGE, Frequency.I09),
271 
272     /** Pseudorange IRNSS S C for Rinex3. */
273     C9C(MeasurementType.PSEUDO_RANGE, Frequency.I09),
274 
275     /** Pseudorange IRNSS S B+C for Rinex3. */
276     C9X(MeasurementType.PSEUDO_RANGE, Frequency.I09),
277 
278     /** Pseudorange GPS L1 C/A / GLONASS G1 C/A for Rinex2. */
279     CA(MeasurementType.PSEUDO_RANGE, Frequency.G01, Frequency.R01),
280 
281     /** Pseudorange GPS L1C for Rinex2. */
282     CB(MeasurementType.PSEUDO_RANGE, Frequency.G01),
283 
284     /** Pseudorange GPS L2C for Rinex2. */
285     CC(MeasurementType.PSEUDO_RANGE, Frequency.G02),
286 
287     /** Pseudorange GLONASS G2 for Rinex2. */
288     CD(MeasurementType.PSEUDO_RANGE, Frequency.R02),
289 
290     /** Doppler Galileo E1 A for Rinex3. */
291     D1A(MeasurementType.DOPPLER, Frequency.E01),
292 
293     /** Doppler Galileo E1 I/NAV OS/CS/SoL for Rinex3. */
294     D1B(MeasurementType.DOPPLER, Frequency.E01),
295 
296     /** Doppler GPS L1 C/A / GLONASS G1 C/A / Galileo E1 C / SBAS L1 C/A / QZSS L1 C/A for Rinex3. */
297     D1C(MeasurementType.DOPPLER, Frequency.G01, Frequency.R01, Frequency.E01, Frequency.S01, Frequency.J01),
298 
299     /** Doppler Beidou B1 I for Rinex3. */
300     D1I(MeasurementType.DOPPLER, Frequency.B01),
301 
302     /** Doppler GPS L1 L1C(P) / QZSS L1 L1C(P) for Rinex3. */
303     D1L(MeasurementType.DOPPLER, Frequency.G01, Frequency.J01),
304 
305     /** Doppler GPS L2 M for Rinex3. */
306     D1M(MeasurementType.DOPPLER, Frequency.G02),
307 
308     /** Doppler GPS L1 codeless for Rinex3. */
309     D1N(MeasurementType.DOPPLER, Frequency.G01),
310 
311     /** Doppler GPS L2 P(AS off) / GLONASS G2 P for Rinex3. */
312     D1P(MeasurementType.DOPPLER, Frequency.G02, Frequency.R02),
313 
314     /** Doppler GPS L1 L1C(D) / QZSS L1 L1C(D) for Rinex3. */
315     D1S(MeasurementType.DOPPLER, Frequency.G01, Frequency.J01),
316 
317     /** Doppler GPS L1 Z-tracking and similar (AS on) for Rinex3. */
318     D1W(MeasurementType.DOPPLER, Frequency.G01),
319 
320     /** Doppler GPS L1 L1C (D+P) / Galileo E1 B+C / QZSS L1 L1C(D+P) for Rinex3. */
321     D1X(MeasurementType.DOPPLER, Frequency.G01, Frequency.E01, Frequency.J01),
322 
323     /** Doppler GPS L1 Y for Rinex3. */
324     D1Y(MeasurementType.DOPPLER, Frequency.G01),
325 
326     /** Doppler Galileo E1 C1Z A+B+C / QZSS L1 L1-SAIF for Rinex3. */
327     D1Z(MeasurementType.DOPPLER, Frequency.E01, Frequency.J01),
328 
329     /** Doppler GPS L2 C/A / GLONASS G2 C/A for Rinex3. */
330     D2C(MeasurementType.DOPPLER, Frequency.G02, Frequency.R02),
331 
332     /** Doppler GPS L1(C/A)+(P2-P1) (semi-codeless) for Rinex3. */
333     D2D(MeasurementType.DOPPLER, Frequency.G01),
334 
335     /** Doppler Beidou B1 I for Rinex3.03. */
336     D2I(MeasurementType.DOPPLER, Frequency.B01),
337 
338     /** Doppler GPS L2 L2C(L) / QZSS L2 L2C(2) for Rinex3. */
339     D2L(MeasurementType.DOPPLER, Frequency.G02, Frequency.J02),
340 
341     /** Doppler GPS L2 M for Rinex3. */
342     D2M(MeasurementType.DOPPLER, Frequency.G02),
343 
344     /** Doppler GPS L2 codeless for Rinex3. */
345     D2N(MeasurementType.DOPPLER, Frequency.G02),
346 
347     /** Doppler GPS L2 P(AS off) / GLONASS G2 P for Rinex3. */
348     D2P(MeasurementType.DOPPLER, Frequency.G02, Frequency.R02),
349 
350     /** Doppler Beidou B1 Q for Rinex3.03. */
351     D2Q(MeasurementType.DOPPLER, Frequency.B01),
352 
353     /** Doppler GPS L2 L2C(M) / QZSS L2 L2C(M) for Rinex3. */
354     D2S(MeasurementType.DOPPLER, Frequency.G02, Frequency.J02),
355 
356     /** Doppler GPS L2 Z-tracking and similar (AS on) for Rinex3. */
357     D2W(MeasurementType.DOPPLER, Frequency.G02),
358 
359     /** Doppler GPS L2 L2C (M+L) / QZSS L2 L2C(M+L) for Rinex3. */
360     D2X(MeasurementType.DOPPLER, Frequency.G02, Frequency.J02),
361 
362     /** Doppler GPS L2 Y for Rinex3. */
363     D2Y(MeasurementType.DOPPLER, Frequency.G02),
364 
365     /** Doppler GLONASS G3 I for Rinex3. */
366     D3I(MeasurementType.DOPPLER, Frequency.R03),
367 
368     /** Doppler GLONASS G3 Q for Rinex3. */
369     D3Q(MeasurementType.DOPPLER, Frequency.R03),
370 
371     /** Doppler GLONASS G3 I+Q for Rinex3. */
372     D3X(MeasurementType.DOPPLER, Frequency.R03),
373 
374     /** Doppler IRNSS L5 A for Rinex3. */
375     D5A(MeasurementType.DOPPLER, Frequency.I05),
376 
377     /** Doppler IRNSS L5 B for Rinex3. */
378     D5B(MeasurementType.DOPPLER, Frequency.I05),
379 
380     /** Doppler IRNSS L5 C for Rinex3. */
381     D5C(MeasurementType.DOPPLER, Frequency.I05),
382 
383     /** Doppler GPS L5 I/ Galileo E5a F/NAV OS / SBAS L5 I / QZSS L5 I for Rinex3. */
384     D5I(MeasurementType.DOPPLER, Frequency.G05, Frequency.E05, Frequency.S05, Frequency.J05),
385 
386     /** Doppler GPS L5 Q/ Galileo E5a Q / SBAS L5 Q / QZSS L5 Q for Rinex3. */
387     D5Q(MeasurementType.DOPPLER, Frequency.G05, Frequency.E05, Frequency.S05, Frequency.J05),
388 
389     /** Doppler GPS L5 I+Q/ Galileo E5a I+Q / SBAS L5 I+Q / QZSS L5 I+Q / IRNSS L5 B+C for Rinex3. */
390     D5X(MeasurementType.DOPPLER, Frequency.G05, Frequency.E05, Frequency.S05, Frequency.J05, Frequency.I05),
391 
392     /** Doppler Galileo E6 A PRS for Rinex3. */
393     D6A(MeasurementType.DOPPLER, Frequency.E06),
394 
395     /** Doppler Galileo E6 B C/NAV CS for Rinex3. */
396     D6B(MeasurementType.DOPPLER, Frequency.E06),
397 
398     /** Doppler Galileo E6 C no data for Rinex3. */
399     D6C(MeasurementType.DOPPLER, Frequency.E06),
400 
401     /** Doppler Beidou B3 I for Rinex3. */
402     D6I(MeasurementType.DOPPLER, Frequency.B03),
403 
404     /** Doppler Beidou B3 Q for Rinex3. */
405     D6Q(MeasurementType.DOPPLER, Frequency.B03),
406 
407     /** Doppler QZSS LEX(6) L for Rinex3. */
408     D6L(MeasurementType.DOPPLER, Frequency.J06),
409 
410     /** Doppler QZSS LEX(6) S for Rinex3. */
411     D6S(MeasurementType.DOPPLER, Frequency.J06),
412 
413     /** Doppler Galileo E6 B+C / QZSS LEX(6) S+L / Beidou B3 I+Q for Rinex3. */
414     D6X(MeasurementType.DOPPLER, Frequency.E06, Frequency.J06, Frequency.B03),
415 
416     /** Doppler Galileo E6 A+B+C for Rinex3. */
417     D6Z(MeasurementType.DOPPLER, Frequency.E06),
418 
419     /** Doppler Galileo E5b I I/NAV OS/CS/SoL / Beidou B2 I for Rinex3. */
420     D7I(MeasurementType.DOPPLER, Frequency.E07, Frequency.B02),
421 
422     /** Doppler Galileo Q no data / Beidou B2 Q for Rinex3. */
423     D7Q(MeasurementType.DOPPLER, Frequency.E07, Frequency.B02),
424 
425     /** Doppler Galileo E5b I+Q / Beidou B2 I+Q for Rinex3. */
426     D7X(MeasurementType.DOPPLER, Frequency.E07, Frequency.B02),
427 
428     /** Doppler Galileo E5(E5a+E5b) I for Rinex3. */
429     D8I(MeasurementType.DOPPLER, Frequency.E08),
430 
431     /** Doppler Galileo E5(E5a+E5b) Q for Rinex3. */
432     D8Q(MeasurementType.DOPPLER, Frequency.E08),
433 
434     /** Doppler Galileo E5(E5a+E5b) I+Q for Rinex3. */
435     D8X(MeasurementType.DOPPLER, Frequency.E08),
436 
437     /** Doppler IRNSS S A for Rinex3. */
438     D9A(MeasurementType.DOPPLER, Frequency.I09),
439 
440     /** Doppler IRNSS S B for Rinex3. */
441     D9B(MeasurementType.DOPPLER, Frequency.I09),
442 
443     /** Doppler IRNSS S C for Rinex3. */
444     D9C(MeasurementType.DOPPLER, Frequency.I09),
445 
446     /** Doppler IRNSS S B+C for Rinex3. */
447     D9X(MeasurementType.DOPPLER, Frequency.I09),
448 
449     /** Doppler GPS L1 C/A / GLONASS G1 C/A for Rinex2. */
450     DA(MeasurementType.DOPPLER, Frequency.G01, Frequency.R01),
451 
452     /** Doppler GPS L1C for Rinex2. */
453     DB(MeasurementType.DOPPLER, Frequency.G01),
454 
455     /** Doppler GPS L2C for Rinex2. */
456     DC(MeasurementType.DOPPLER, Frequency.G02),
457 
458     /** Doppler GLONASS G2 for Rinex2. */
459     DD(MeasurementType.DOPPLER, Frequency.R02),
460 
461     /** Carrier-phase Galileo E1 A for Rinex3. */
462     L1A(MeasurementType.CARRIER_PHASE, Frequency.E01),
463 
464     /** Carrier-phase Galileo E1 I/NAV OS/CS/SoL for Rinex3. */
465     L1B(MeasurementType.CARRIER_PHASE, Frequency.E01),
466 
467     /** Carrier-phase GPS L1 C/A / GLONASS G1 C/A / Galileo E1 C / SBAS L1 C/A / QZSS L1 C/A for Rinex3. */
468     L1C(MeasurementType.CARRIER_PHASE, Frequency.G01, Frequency.R01, Frequency.E01, Frequency.S01, Frequency.J01),
469 
470     /** Carrier-phase Beidou B1 I for Rinex3. */
471     L1I(MeasurementType.CARRIER_PHASE, Frequency.B01),
472 
473     /** Carrier-phase GPS L1 L1C(P) / QZSS L1 L1C(P) for Rinex3. */
474     L1L(MeasurementType.CARRIER_PHASE, Frequency.G01, Frequency.J01),
475 
476     /** Carrier-phase GPS L2 M for Rinex3. */
477     L1M(MeasurementType.CARRIER_PHASE, Frequency.G02),
478 
479     /** Carrier-phase GPS L1 codeless for Rinex3. */
480     L1N(MeasurementType.CARRIER_PHASE, Frequency.G01),
481 
482     /** Carrier-phase GPS L2 P(AS off) / GLONASS G2 P for Rinex3. */
483     L1P(MeasurementType.CARRIER_PHASE, Frequency.G02, Frequency.R02),
484 
485     /** Carrier-phase GPS L1 L1C(D) / QZSS L1 L1C(D) for Rinex3. */
486     L1S(MeasurementType.CARRIER_PHASE, Frequency.G01, Frequency.J01),
487 
488     /** Carrier-phase GPS L1 Z-tracking and similar (AS on) for Rinex3. */
489     L1W(MeasurementType.CARRIER_PHASE, Frequency.G01),
490 
491     /** Carrier-phase GPS L1 L1C (D+P) / Galileo E1 B+C / QZSS L1 L1C(D+P) for Rinex3. */
492     L1X(MeasurementType.CARRIER_PHASE, Frequency.G01, Frequency.E01, Frequency.J01),
493 
494     /** Carrier-phase GPS L1 Y for Rinex3. */
495     L1Y(MeasurementType.CARRIER_PHASE, Frequency.G01),
496 
497     /** Carrier-phase Galileo E1 C1Z A+B+C / QZSS L1 L1-SAIF for Rinex3. */
498     L1Z(MeasurementType.CARRIER_PHASE, Frequency.E01, Frequency.J01),
499 
500     /** Carrier-phase GPS L2 C/A / GLONASS G2 C/A for Rinex3. */
501     L2C(MeasurementType.CARRIER_PHASE, Frequency.G02, Frequency.R02),
502 
503     /** Carrier-phase GPS L1(C/A)+(P2-P1) (semi-codeless) for Rinex3. */
504     L2D(MeasurementType.CARRIER_PHASE, Frequency.G01),
505 
506     /** Carrier-phase Beidou B1 I for Rinex3.03. */
507     L2I(MeasurementType.CARRIER_PHASE, Frequency.B01),
508 
509     /** Carrier-phase GPS L2 L2C(L) / QZSS L2 L2C(2) for Rinex3. */
510     L2L(MeasurementType.CARRIER_PHASE, Frequency.G02, Frequency.J02),
511 
512     /** Carrier-phase GPS L2 M for Rinex3. */
513     L2M(MeasurementType.CARRIER_PHASE, Frequency.G02),
514 
515     /** Carrier-phase GPS L2 codeless for Rinex3. */
516     L2N(MeasurementType.CARRIER_PHASE, Frequency.G02),
517 
518     /** Carrier-phase GPS L2 P(AS off) / GLONASS G2 P for Rinex3. */
519     L2P(MeasurementType.CARRIER_PHASE, Frequency.G02, Frequency.R02),
520 
521     /** Carrier-phase Beidou B1 Q for Rinex3.03. */
522     L2Q(MeasurementType.CARRIER_PHASE, Frequency.B01),
523 
524     /** Carrier-phase GPS L2 L2C(M) / QZSS L2 L2C(M) for Rinex3. */
525     L2S(MeasurementType.CARRIER_PHASE, Frequency.G02, Frequency.J02),
526 
527     /** Carrier-phase GPS L2 Z-tracking and similar (AS on) for Rinex3. */
528     L2W(MeasurementType.CARRIER_PHASE, Frequency.G02),
529 
530     /** Carrier-phase GPS L2 L2C (M+L) / QZSS L2 L2C(M+L) for Rinex3. */
531     L2X(MeasurementType.CARRIER_PHASE, Frequency.G02, Frequency.J02),
532 
533     /** Carrier-phase GPS L2 Y for Rinex3. */
534     L2Y(MeasurementType.CARRIER_PHASE, Frequency.G02),
535 
536     /** Carrier-phase GLONASS G3 I for Rinex3. */
537     L3I(MeasurementType.CARRIER_PHASE, Frequency.R03),
538 
539     /** Carrier-phase GLONASS G3 Q for Rinex3. */
540     L3Q(MeasurementType.CARRIER_PHASE, Frequency.R03),
541 
542     /** Carrier-phase GLONASS G3 I+Q for Rinex3. */
543     L3X(MeasurementType.CARRIER_PHASE, Frequency.R03),
544 
545     /** Carrier-phase IRNSS L5 A for Rinex3. */
546     L5A(MeasurementType.CARRIER_PHASE, Frequency.I05),
547 
548     /** Carrier-phase IRNSS L5 B for Rinex3. */
549     L5B(MeasurementType.CARRIER_PHASE, Frequency.I05),
550 
551     /** Carrier-phase IRNSS L5 C for Rinex3. */
552     L5C(MeasurementType.CARRIER_PHASE, Frequency.I05),
553 
554     /** Carrier-phase GPS L5 I/ Galileo E5a F/NAV OS / SBAS L5 I / QZSS L5 I for Rinex3. */
555     L5I(MeasurementType.CARRIER_PHASE, Frequency.G05, Frequency.E05, Frequency.S05, Frequency.J05),
556 
557     /** Carrier-phase GPS L5 Q/ Galileo E5a Q / SBAS L5 Q / QZSS L5 Q for Rinex3. */
558     L5Q(MeasurementType.CARRIER_PHASE, Frequency.G05, Frequency.E05, Frequency.S05, Frequency.J05),
559 
560     /** Carrier-phase GPS L5 I+Q/ Galileo E5a I+Q / SBAS L5 I+Q / QZSS L5 I+Q / IRNSS L5 B+C for Rinex3. */
561     L5X(MeasurementType.CARRIER_PHASE, Frequency.G05, Frequency.E05, Frequency.S05, Frequency.J05, Frequency.I05),
562 
563     /** Carrier-phase Galileo E6 A PRS for Rinex3. */
564     L6A(MeasurementType.CARRIER_PHASE, Frequency.E06),
565 
566     /** Carrier-phase Galileo E6 B C/NAV CS for Rinex3. */
567     L6B(MeasurementType.CARRIER_PHASE, Frequency.E06),
568 
569     /** Carrier-phase Galileo E6 C no data for Rinex3. */
570     L6C(MeasurementType.CARRIER_PHASE, Frequency.E06),
571 
572     /** Carrier-phase Beidou B3 I for Rinex3. */
573     L6I(MeasurementType.CARRIER_PHASE, Frequency.B03),
574 
575     /** Carrier-phase Beidou B3 Q for Rinex3. */
576     L6Q(MeasurementType.CARRIER_PHASE, Frequency.B03),
577 
578     /** Carrier-phase QZSS LEX(6) L for Rinex3. */
579     L6L(MeasurementType.CARRIER_PHASE, Frequency.J06),
580 
581     /** Carrier-phase QZSS LEX(6) S for Rinex3. */
582     L6S(MeasurementType.CARRIER_PHASE, Frequency.J06),
583 
584     /** Carrier-phase Galileo E6 B+C / QZSS LEX(6) S+L / Beidou B3 I+Q for Rinex3. */
585     L6X(MeasurementType.CARRIER_PHASE, Frequency.E06, Frequency.J06, Frequency.B03),
586 
587     /** Carrier-phase Galileo E6 A+B+C for Rinex3. */
588     L6Z(MeasurementType.CARRIER_PHASE, Frequency.E06),
589 
590     /** Carrier-phase Galileo E5b I I/NAV OS/CS/SoL / Beidou B2 I for Rinex3. */
591     L7I(MeasurementType.CARRIER_PHASE, Frequency.E07, Frequency.B02),
592 
593     /** Carrier-phase Galileo Q no data / Beidou B2 Q for Rinex3. */
594     L7Q(MeasurementType.CARRIER_PHASE, Frequency.E07, Frequency.B02),
595 
596     /** Carrier-phase Galileo E5b I+Q / Beidou B2 I+Q for Rinex3. */
597     L7X(MeasurementType.CARRIER_PHASE, Frequency.E07, Frequency.B02),
598 
599     /** Carrier-phase Galileo E5(E5a+E5b) I for Rinex3. */
600     L8I(MeasurementType.CARRIER_PHASE, Frequency.E08),
601 
602     /** Carrier-phase Galileo E5(E5a+E5b) Q for Rinex3. */
603     L8Q(MeasurementType.CARRIER_PHASE, Frequency.E08),
604 
605     /** Carrier-phase Galileo E5(E5a+E5b) I+Q for Rinex3. */
606     L8X(MeasurementType.CARRIER_PHASE, Frequency.E08),
607 
608     /** Carrier-phase IRNSS S A for Rinex3. */
609     L9A(MeasurementType.CARRIER_PHASE, Frequency.I09),
610 
611     /** Carrier-phase IRNSS S B for Rinex3. */
612     L9B(MeasurementType.CARRIER_PHASE, Frequency.I09),
613 
614     /** Carrier-phase IRNSS S C for Rinex3. */
615     L9C(MeasurementType.CARRIER_PHASE, Frequency.I09),
616 
617     /** Carrier-phase IRNSS S B+C for Rinex3. */
618     L9X(MeasurementType.CARRIER_PHASE, Frequency.I09),
619 
620     /** Signal-strength Galileo E1 A for Rinex3. */
621     S1A(MeasurementType.SIGNAL_STRENGTH, Frequency.E01),
622 
623     /** Signal-strength Galileo E1 I/NAV OS/CS/SoL for Rinex3. */
624     S1B(MeasurementType.SIGNAL_STRENGTH, Frequency.E01),
625 
626     /** Signal-strength GPS L1 C/A / GLONASS G1 C/A / Galileo E1 C / SBAS L1 C/A / QZSS L1 C/A for Rinex3. */
627     S1C(MeasurementType.SIGNAL_STRENGTH, Frequency.G01, Frequency.R01, Frequency.E01, Frequency.S01, Frequency.J01),
628 
629     /** Signal-strength Beidou B1 I for Rinex3. */
630     S1I(MeasurementType.SIGNAL_STRENGTH, Frequency.B01),
631 
632     /** Signal-strength GPS L1 L1C(P) / QZSS L1 L1C(P) for Rinex3. */
633     S1L(MeasurementType.SIGNAL_STRENGTH, Frequency.G01, Frequency.J01),
634 
635     /** Signal-strength GPS L2 M for Rinex3. */
636     S1M(MeasurementType.SIGNAL_STRENGTH, Frequency.G02),
637 
638     /** Signal-strength GPS L1 codeless for Rinex3. */
639     S1N(MeasurementType.SIGNAL_STRENGTH, Frequency.G01),
640 
641     /** Signal-strength GPS L2 P(AS off) / GLONASS G2 P for Rinex3. */
642     S1P(MeasurementType.SIGNAL_STRENGTH, Frequency.G02, Frequency.R02),
643 
644     /** Signal-strength GPS L1 L1C(D) / QZSS L1 L1C(D) for Rinex3. */
645     S1S(MeasurementType.SIGNAL_STRENGTH, Frequency.G01, Frequency.J01),
646 
647     /** Signal-strength GPS L1 Z-tracking and similar (AS on) for Rinex3. */
648     S1W(MeasurementType.SIGNAL_STRENGTH, Frequency.G01),
649 
650     /** Signal-strength GPS L1 L1C (D+P) / Galileo E1 B+C / QZSS L1 L1C(D+P) for Rinex3. */
651     S1X(MeasurementType.SIGNAL_STRENGTH, Frequency.G01, Frequency.E01, Frequency.J01),
652 
653     /** Signal-strength GPS L1 Y for Rinex3. */
654     S1Y(MeasurementType.SIGNAL_STRENGTH, Frequency.G01),
655 
656     /** Signal-strength Galileo E1 C1Z A+B+C / QZSS L1 L1-SAIF for Rinex3. */
657     S1Z(MeasurementType.SIGNAL_STRENGTH, Frequency.E01, Frequency.J01),
658 
659     /** Signal-strength GPS L2 C/A / GLONASS G2 C/A for Rinex3. */
660     S2C(MeasurementType.SIGNAL_STRENGTH, Frequency.G02, Frequency.R02),
661 
662     /** Signal-strength GPS L1(C/A)+(P2-P1) (semi-codeless) for Rinex3. */
663     S2D(MeasurementType.SIGNAL_STRENGTH, Frequency.G01),
664 
665     /** Signal-strength Beidou B1 I for Rinex3.03. */
666     S2I(MeasurementType.SIGNAL_STRENGTH, Frequency.B01),
667 
668     /** Signal-strength GPS L2 L2C(L) / QZSS L2 L2C(2) for Rinex3. */
669     S2L(MeasurementType.SIGNAL_STRENGTH, Frequency.G02, Frequency.J02),
670 
671     /** Signal-strength GPS L2 M for Rinex3. */
672     S2M(MeasurementType.SIGNAL_STRENGTH, Frequency.G02),
673 
674     /** Signal-strength GPS L2 codeless for Rinex3. */
675     S2N(MeasurementType.SIGNAL_STRENGTH, Frequency.G02),
676 
677     /** Signal-strength GPS L2 P(AS off) / GLONASS G2 P for Rinex3. */
678     S2P(MeasurementType.SIGNAL_STRENGTH, Frequency.G02, Frequency.R02),
679 
680     /** Signal-strength Beidou B1 Q for Rinex3.03. */
681     S2Q(MeasurementType.SIGNAL_STRENGTH, Frequency.B01),
682 
683     /** Signal-strength GPS L2 L2C(M) / QZSS L2 L2C(M) for Rinex3. */
684     S2S(MeasurementType.SIGNAL_STRENGTH, Frequency.G02, Frequency.J02),
685 
686     /** Signal-strength GPS L2 Z-tracking and similar (AS on) for Rinex3. */
687     S2W(MeasurementType.SIGNAL_STRENGTH, Frequency.G02),
688 
689     /** Signal-strength GPS L2 L2C (M+L) / QZSS L2 L2C(M+L) for Rinex3. */
690     S2X(MeasurementType.SIGNAL_STRENGTH, Frequency.G02, Frequency.J02),
691 
692     /** Signal-strength GPS L2 Y for Rinex3. */
693     S2Y(MeasurementType.SIGNAL_STRENGTH, Frequency.G02),
694 
695     /** Signal-strength GLONASS G3 I for Rinex3. */
696     S3I(MeasurementType.SIGNAL_STRENGTH, Frequency.R03),
697 
698     /** Signal-strength GLONASS G3 Q for Rinex3. */
699     S3Q(MeasurementType.SIGNAL_STRENGTH, Frequency.R03),
700 
701     /** Signal-strength GLONASS G3 I+Q for Rinex3. */
702     S3X(MeasurementType.SIGNAL_STRENGTH, Frequency.R03),
703 
704     /** Signal-strength IRNSS L5 A for Rinex3. */
705     S5A(MeasurementType.SIGNAL_STRENGTH, Frequency.I05),
706 
707     /** Signal-strength IRNSS L5 B for Rinex3. */
708     S5B(MeasurementType.SIGNAL_STRENGTH, Frequency.I05),
709 
710     /** Signal-strength IRNSS L5 C for Rinex3. */
711     S5C(MeasurementType.SIGNAL_STRENGTH, Frequency.I05),
712 
713     /** Signal-strength GPS L5 I/ Galileo E5a F/NAV OS / SBAS L5 I / QZSS L5 I for Rinex3. */
714     S5I(MeasurementType.SIGNAL_STRENGTH, Frequency.G05, Frequency.E05, Frequency.S05, Frequency.J05),
715 
716     /** Signal-strength GPS L5 Q/ Galileo E5a Q / SBAS L5 Q / QZSS L5 Q for Rinex3. */
717     S5Q(MeasurementType.SIGNAL_STRENGTH, Frequency.G05, Frequency.E05, Frequency.S05, Frequency.J05),
718 
719     /** Signal-strength GPS L5 I+Q/ Galileo E5a I+Q / SBAS L5 I+Q / QZSS L5 I+Q / IRNSS L5 B+C for Rinex3. */
720     S5X(MeasurementType.SIGNAL_STRENGTH, Frequency.G05, Frequency.E05, Frequency.S05, Frequency.J05, Frequency.I05),
721 
722     /** Signal-strength Galileo E6 A PRS for Rinex3. */
723     S6A(MeasurementType.SIGNAL_STRENGTH, Frequency.E06),
724 
725     /** Signal-strength Galileo E6 B C/NAV CS for Rinex3. */
726     S6B(MeasurementType.SIGNAL_STRENGTH, Frequency.E06),
727 
728     /** Signal-strength Galileo E6 C no data for Rinex3. */
729     S6C(MeasurementType.SIGNAL_STRENGTH, Frequency.E06),
730 
731     /** Signal-strength Beidou B3 I for Rinex3. */
732     S6I(MeasurementType.SIGNAL_STRENGTH, Frequency.B03),
733 
734     /** Signal-strength Beidou B3 Q for Rinex3. */
735     S6Q(MeasurementType.SIGNAL_STRENGTH, Frequency.B03),
736 
737     /** Signal-strength QZSS LEX(6) L for Rinex3. */
738     S6L(MeasurementType.SIGNAL_STRENGTH, Frequency.J06),
739 
740     /** Signal-strength QZSS LEX(6) S for Rinex3. */
741     S6S(MeasurementType.SIGNAL_STRENGTH, Frequency.J06),
742 
743     /** Signal-strength Galileo E6 B+C / QZSS LEX(6) S+L / Beidou B3 I+Q for Rinex3. */
744     S6X(MeasurementType.SIGNAL_STRENGTH, Frequency.E06, Frequency.J06, Frequency.B03),
745 
746     /** Signal-strength Galileo E6 A+B+C for Rinex3. */
747     S6Z(MeasurementType.SIGNAL_STRENGTH, Frequency.E06),
748 
749     /** Signal-strength Galileo E5b I I/NAV OS/CS/SoL / Beidou B2 I for Rinex3. */
750     S7I(MeasurementType.SIGNAL_STRENGTH, Frequency.E07, Frequency.B02),
751 
752     /** Signal-strength Galileo Q no data / Beidou B2 Q for Rinex3. */
753     S7Q(MeasurementType.SIGNAL_STRENGTH, Frequency.E07, Frequency.B02),
754 
755     /** Signal-strength Galileo E5b I+Q / Beidou B2 I+Q for Rinex3. */
756     S7X(MeasurementType.SIGNAL_STRENGTH, Frequency.E07, Frequency.B02),
757 
758     /** Signal-strength Galileo E5(E5a+E5b) I for Rinex3. */
759     S8I(MeasurementType.SIGNAL_STRENGTH, Frequency.E08),
760 
761     /** Signal-strength Galileo E5(E5a+E5b) Q for Rinex3. */
762     S8Q(MeasurementType.SIGNAL_STRENGTH, Frequency.E08),
763 
764     /** Signal-strength Galileo E5(E5a+E5b) I+Q for Rinex3. */
765     S8X(MeasurementType.SIGNAL_STRENGTH, Frequency.E08),
766 
767     /** Signal-strength IRNSS S A for Rinex3. */
768     S9A(MeasurementType.SIGNAL_STRENGTH, Frequency.I09),
769 
770     /** Signal-strength IRNSS S B for Rinex3. */
771     S9B(MeasurementType.SIGNAL_STRENGTH, Frequency.I09),
772 
773     /** Signal-strength IRNSS S C for Rinex3. */
774     S9C(MeasurementType.SIGNAL_STRENGTH, Frequency.I09),
775 
776     /** Signal-strength IRNSS S B+C for Rinex3. */
777     S9X(MeasurementType.SIGNAL_STRENGTH, Frequency.I09),
778 
779     /** Signal-strength GPS L1 C/A / GLONASS G1 C/A for Rinex2. */
780     SA(MeasurementType.SIGNAL_STRENGTH, Frequency.G01, Frequency.R01),
781 
782     /** Signal-strength GPS L1C for Rinex2. */
783     SB(MeasurementType.SIGNAL_STRENGTH, Frequency.G01),
784 
785     /** Signal-strength GPS L2C for Rinex2. */
786     SC(MeasurementType.SIGNAL_STRENGTH, Frequency.G02),
787 
788     /** Signal-strength GLONASS G2 for Rinex2. */
789     SD(MeasurementType.SIGNAL_STRENGTH, Frequency.R02);
790 
791     /** Measurement type. */
792     private final MeasurementType type;
793 
794     /** Map of ferquencies. */
795     private final Map<SatelliteSystem, Frequency> frequencies;
796 
797     /** Simple  constructor.
798      * @param type measurement type
799      * @param frequencies compatible frequencies
800      */
801     ObservationType(final MeasurementType type, final Frequency... frequencies) {
802         this.type = type;
803         this.frequencies = new HashMap<>(frequencies.length);
804         for (final Frequency f : frequencies) {
805             this.frequencies.put(f.getSatelliteSystem(), f);
806         }
807     }
808 
809     /** Get the measurement type.
810      * @return measurement type
811      */
812     public MeasurementType getMeasurementType() {
813         return type;
814     }
815 
816     /** Get the frequency for a specified satellite system.
817      * @param system satellite system
818      * @return frequency for the satellite system, or null if satellite system not compatible
819      */
820     public Frequency getFrequency(final SatelliteSystem system) {
821         return frequencies.get(system);
822     }
823 
824 }