ObservationType.java
/* Copyright 2002-2018 CS Systèmes d'Information
* Licensed to CS Systèmes d'Information (CS) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* CS licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.orekit.gnss;
import java.util.HashMap;
import java.util.Map;
/** Enumerate for all the Observation Types for Rinex 2 and 3.
* For Rinex 2, there is an two-character enumerate composed of the Observation
* Code (C,P,L,D,S) and the Frequency code (1,2,5,6,7,8).
* For Rinex 3 there is a three-character enumerate composed of the Observation
* Code (C,L,D,S), the frequency code (1,2,5,6,7,8) and a final attribute depending
* on the tracking mode or channel.
*
*/
public enum ObservationType {
/** Pseudorange GPS L1 / GLONASS G1 / Galileo E2-L1-E1 / SBAS L1 for Rinex2. */
C1(MeasurementType.PSEUDO_RANGE, Frequency.G01, Frequency.R01, Frequency.C01, Frequency.S01),
/** Pseudorange GPS L2 / GLONASS G2 for Rinex2. */
C2(MeasurementType.PSEUDO_RANGE, Frequency.G02, Frequency.R02),
/** Pseudorange GPS L5 / Galileo E5a / SBAS L5 for Rinex2. */
C5(MeasurementType.PSEUDO_RANGE, Frequency.G05, Frequency.E05, Frequency.S05),
/** Pseudorange Galileo E6 for Rinex2. */
C6(MeasurementType.PSEUDO_RANGE, Frequency.E06),
/** Pseudorange Galileo E5b for Rinex2. */
C7(MeasurementType.PSEUDO_RANGE, Frequency.E07),
/** Pseudorange Galileo E5a+b for Rinex2. */
C8(MeasurementType.PSEUDO_RANGE, Frequency.E08),
/** Pseudorange GPS L1 / GLONASS G1 for Rinex2. */
P1(MeasurementType.PSEUDO_RANGE, Frequency.G01, Frequency.R01),
/** Pseudorange GPS L2 / GLONASS G2 for Rinex2. */
P2(MeasurementType.PSEUDO_RANGE, Frequency.G02, Frequency.R02),
/** Carrier-phase GPS L1 / GLONASS G1 / Galileo E2-L1-E1 / SBAS L1 for Rinex2. */
L1(MeasurementType.CARRIER_PHASE, Frequency.G01, Frequency.R01, Frequency.C01, Frequency.S01),
/** Carrier-phase GPS L2 / GLONASS G2 for Rinex2. */
L2(MeasurementType.CARRIER_PHASE, Frequency.G02, Frequency.R02),
/** Carrier-phase GPS L5 / Galileo E5a / SBAS L5 for Rinex2. */
L5(MeasurementType.CARRIER_PHASE, Frequency.G05, Frequency.E05, Frequency.S05),
/** Carrier-phase Galileo E6 for Rinex2. */
L6(MeasurementType.CARRIER_PHASE, Frequency.E06),
/** Carrier-phase Galileo E5b for Rinex2. */
L7(MeasurementType.CARRIER_PHASE, Frequency.E07),
/** Carrier-phase Galileo E5a+b for Rinex2. */
L8(MeasurementType.CARRIER_PHASE, Frequency.E08),
/** Doppler GPS L1 / GLONASS G1 / Galileo E2-L1-E1 / SBAS L1 for Rinex2. */
D1(MeasurementType.DOPPLER, Frequency.G01, Frequency.R01, Frequency.C01, Frequency.S01),
/** Doppler GPS L2 / GLONASS G2 for Rinex2. */
D2(MeasurementType.DOPPLER, Frequency.G02, Frequency.R02),
/** Doppler GPS L5 / Galileo E5a / SBAS L5 for Rinex2. */
D5(MeasurementType.DOPPLER, Frequency.G05, Frequency.E05, Frequency.S05),
/** Doppler Galileo E6 for Rinex2. */
D6(MeasurementType.DOPPLER, Frequency.E06),
/** Doppler Galileo E5b for Rinex2. */
D7(MeasurementType.DOPPLER, Frequency.E07),
/** Doppler Galileo E5a+b for Rinex2. */
D8(MeasurementType.DOPPLER, Frequency.E08),
/** Doppler GPS L1 / GLONASS G1 / Galileo E2-L1-E1 / SBAS L1 for Rinex2. */
S1(MeasurementType.SIGNAL_STRENGTH, Frequency.G01, Frequency.R01, Frequency.C01, Frequency.S01),
/** Signal Strength GPS L2 / GLONASS G2 for Rinex2. */
S2(MeasurementType.SIGNAL_STRENGTH, Frequency.G02, Frequency.R02),
/** Signal Strength GPS L5 / Galileo E5a / SBAS L5 for Rinex2. */
S5(MeasurementType.SIGNAL_STRENGTH, Frequency.G05, Frequency.E05, Frequency.S05),
/** Signal Strength Galileo E6 for Rinex2. */
S6(MeasurementType.SIGNAL_STRENGTH, Frequency.E06),
/** Signal Strength Galileo E5b for Rinex2. */
S7(MeasurementType.SIGNAL_STRENGTH, Frequency.E07),
/** Signal Strength Galileo E5a+b for Rinex2. */
S8(MeasurementType.SIGNAL_STRENGTH, Frequency.E08),
/** Pseudorange Galileo E1 A for Rinex3. */
C1A(MeasurementType.PSEUDO_RANGE, Frequency.E01),
/** Pseudorange Galileo E1 I/NAV OS/CS/SoL for Rinex3. */
C1B(MeasurementType.PSEUDO_RANGE, Frequency.E01),
/** Pseudorange GPS L1 C/A / GLONASS G1 C/A / Galileo E1 C / SBAS L1 C/A / QZSS L1 C/A for Rinex3. */
C1C(MeasurementType.PSEUDO_RANGE, Frequency.G01, Frequency.R01, Frequency.E01, Frequency.S01, Frequency.J01),
/** Pseudorange Beidou B1 I for Rinex3.02. */
C1I(MeasurementType.PSEUDO_RANGE, Frequency.B01),
/** Pseudorange GPS L1 L1C(P) / QZSS L1 L1C(P) for Rinex3. */
C1L(MeasurementType.PSEUDO_RANGE, Frequency.G01, Frequency.J01),
/** Pseudorange GPS L1 M for Rinex3. */
C1M(MeasurementType.PSEUDO_RANGE, Frequency.G01),
/** Pseudorange GPS L1 P(AS off) / GLONASS G1 P for Rinex3. */
C1P(MeasurementType.PSEUDO_RANGE, Frequency.G01, Frequency.R01),
/** Pseudorange Beidou B1 Q for Rinex3.02. */
C1Q(MeasurementType.PSEUDO_RANGE, Frequency.B01),
/** Pseudorange GPS L1 L1C(D) / QZSS L1 L1C(D) for Rinex3. */
C1S(MeasurementType.PSEUDO_RANGE, Frequency.G01, Frequency.J01),
/** Pseudorange GPS L1 Z-tracking and similar (AS on) for Rinex3. */
C1W(MeasurementType.PSEUDO_RANGE, Frequency.G01),
/** Pseudorange GPS L1 L1C (D+P) / Galileo E1 B+C / QZSS L1 L1C(D+P) for Rinex3. */
C1X(MeasurementType.PSEUDO_RANGE, Frequency.G01, Frequency.E01, Frequency.J01),
/** Pseudorange GPS L1 Y for Rinex3. */
C1Y(MeasurementType.PSEUDO_RANGE, Frequency.G01),
/** Pseudorange Galileo E1 C1Z A+B+C / QZSS L1 L1-SAIF for Rinex3. */
C1Z(MeasurementType.PSEUDO_RANGE, Frequency.E01, Frequency.J01),
/** Pseudorange GPS L2 C/A / GLONASS G2 C/A for Rinex3. */
C2C(MeasurementType.PSEUDO_RANGE, Frequency.G02, Frequency.R02),
/** Pseudorange GPS L1(C/A)+(P2-P1) (semi-codeless) for Rinex3. */
C2D(MeasurementType.PSEUDO_RANGE, Frequency.G01),
/** Pseudorange Beidou B1 I for Rinex3.03. */
C2I(MeasurementType.PSEUDO_RANGE, Frequency.B01),
/** Pseudorange GPS L2 L2C(L) / QZSS L2 L2C(2) for Rinex3. */
C2L(MeasurementType.PSEUDO_RANGE, Frequency.G02, Frequency.J02),
/** Pseudorange GPS L2 M for Rinex3. */
C2M(MeasurementType.PSEUDO_RANGE, Frequency.G02),
/** Pseudorange GPS L2 P(AS off) / GLONASS G2 P for Rinex3. */
C2P(MeasurementType.PSEUDO_RANGE, Frequency.G02, Frequency.R02),
/** Pseudorange Beidou B1 Q for Rinex3.03. */
C2Q(MeasurementType.PSEUDO_RANGE, Frequency.B01),
/** Pseudorange GPS L2 L2C(M) / QZSS L2 L2C(M) for Rinex3. */
C2S(MeasurementType.PSEUDO_RANGE, Frequency.G02, Frequency.J02),
/** Pseudorange GPS L2 Z-tracking and similar (AS on) for Rinex3. */
C2W(MeasurementType.PSEUDO_RANGE, Frequency.G02),
/** Pseudorange GPS L2 L2C (M+L) / QZSS L2 L2C(M+L) for Rinex3. */
C2X(MeasurementType.PSEUDO_RANGE, Frequency.G02, Frequency.J02),
/** Pseudorange GPS L2 Y for Rinex3. */
C2Y(MeasurementType.PSEUDO_RANGE, Frequency.G02),
/** Pseudorange GPS L5 I/ Galileo E5a F/NAV OS / SBAS L5 I / QZSS L5 I for Rinex3. */
C5I(MeasurementType.PSEUDO_RANGE, Frequency.G05, Frequency.E05, Frequency.S05, Frequency.J05),
/** Pseudorange GPS L5 Q/ Galileo E5a Q / SBAS L5 Q / QZSS L5 Q for Rinex3. */
C5Q(MeasurementType.PSEUDO_RANGE, Frequency.G05, Frequency.E05, Frequency.S05, Frequency.J05),
/** Pseudorange GPS L5 I+Q/ Galileo E5a I+Q / SBAS L5 I+Q / QZSS L5 I+Q for Rinex3. */
C5X(MeasurementType.PSEUDO_RANGE, Frequency.G05, Frequency.E05, Frequency.S05, Frequency.J05),
/** Pseudorange Galileo E6 A PRS for Rinex3. */
C6A(MeasurementType.PSEUDO_RANGE, Frequency.E06),
/** Pseudorange Galileo E6 B C/NAV CS for Rinex3. */
C6B(MeasurementType.PSEUDO_RANGE, Frequency.E06),
/** Pseudorange Galileo E6 C no data for Rinex3. */
C6C(MeasurementType.PSEUDO_RANGE, Frequency.E06),
/** Pseudorange Beidou B3 I for Rinex3. */
C6I(MeasurementType.PSEUDO_RANGE, Frequency.B03),
/** Pseudorange Beidou B3 Q for Rinex3. */
C6Q(MeasurementType.PSEUDO_RANGE, Frequency.B03),
/** Pseudorange Galileo E6 B+C / QZSS LEX(6) S+L / Beidou B3 I+Q for Rinex3. */
C6X(MeasurementType.PSEUDO_RANGE, Frequency.E06, Frequency.J06, Frequency.B03),
/** Pseudorange Galileo E6 A+B+C for Rinex3. */
C6Z(MeasurementType.PSEUDO_RANGE, Frequency.E06),
/** Pseudorange Galileo E5b I I/NAV OS/CS/SoL / Beidou B2 I for Rinex3. */
C7I(MeasurementType.PSEUDO_RANGE, Frequency.E07, Frequency.B02),
/** Pseudorange Galileo Q no data / Beidou B2 Q for Rinex3. */
C7Q(MeasurementType.PSEUDO_RANGE, Frequency.E07, Frequency.B02),
/** Pseudorange Galileo E5b I+Q / Beidou B2 I+Q for Rinex3. */
C7X(MeasurementType.PSEUDO_RANGE, Frequency.E07, Frequency.B02),
/** Pseudorange Galileo E5(E5a+E5b) I for Rinex3. */
C8I(MeasurementType.PSEUDO_RANGE, Frequency.E08),
/** Pseudorange Galileo E5(E5a+E5b) Q for Rinex3. */
C8Q(MeasurementType.PSEUDO_RANGE, Frequency.E08),
/** Pseudorange Galileo E5(E5a+E5b) I+Q for Rinex3. */
C8X(MeasurementType.PSEUDO_RANGE, Frequency.E08),
/** Doppler Galileo E1 A for Rinex3. */
D1A(MeasurementType.DOPPLER, Frequency.E01),
/** Doppler Galileo E1 I/NAV OS/CS/SoL for Rinex3. */
D1B(MeasurementType.DOPPLER, Frequency.E01),
/** Doppler GPS L1 C/A / GLONASS G1 C/A / Galileo E1 C / SBAS L1 C/A / QZSS L1 C/A for Rinex3. */
D1C(MeasurementType.DOPPLER, Frequency.G01, Frequency.R01, Frequency.E01, Frequency.S01, Frequency.J01),
/** Doppler Beidou B1 I for Rinex3. */
D1I(MeasurementType.DOPPLER, Frequency.B01),
/** Doppler GPS L1 L1C(P) / QZSS L1 L1C(P) for Rinex3. */
D1L(MeasurementType.DOPPLER, Frequency.G01, Frequency.J01),
/** Doppler GPS L2 M for Rinex3. */
D1M(MeasurementType.DOPPLER, Frequency.G02),
/** Doppler GPS L1 codeless for Rinex3. */
D1N(MeasurementType.DOPPLER, Frequency.G01),
/** Doppler GPS L2 P(AS off) / GLONASS G2 P for Rinex3. */
D1P(MeasurementType.DOPPLER, Frequency.G02, Frequency.R02),
/** Doppler GPS L1 L1C(D) / QZSS L1 L1C(D) for Rinex3. */
D1S(MeasurementType.DOPPLER, Frequency.G01, Frequency.J01),
/** Doppler GPS L1 Z-tracking and similar (AS on) for Rinex3. */
D1W(MeasurementType.DOPPLER, Frequency.G01),
/** Doppler GPS L1 L1C (D+P) / Galileo E1 B+C / QZSS L1 L1C(D+P) for Rinex3. */
D1X(MeasurementType.DOPPLER, Frequency.G01, Frequency.E01, Frequency.J01),
/** Doppler GPS L1 Y for Rinex3. */
D1Y(MeasurementType.DOPPLER, Frequency.G01),
/** Doppler Galileo E1 C1Z A+B+C / QZSS L1 L1-SAIF for Rinex3. */
D1Z(MeasurementType.DOPPLER, Frequency.E01, Frequency.J01),
/** Doppler GPS L2 C/A / GLONASS G2 C/A for Rinex3. */
D2C(MeasurementType.DOPPLER, Frequency.G02, Frequency.R02),
/** Doppler GPS L1(C/A)+(P2-P1) (semi-codeless) for Rinex3. */
D2D(MeasurementType.DOPPLER, Frequency.G01),
/** Doppler Beidou B1 I for Rinex3.03. */
D2I(MeasurementType.DOPPLER, Frequency.B01),
/** Doppler GPS L2 L2C(L) / QZSS L2 L2C(2) for Rinex3. */
D2L(MeasurementType.DOPPLER, Frequency.G02, Frequency.J02),
/** Doppler GPS L2 M for Rinex3. */
D2M(MeasurementType.DOPPLER, Frequency.G02),
/** Doppler GPS L2 codeless for Rinex3. */
D2N(MeasurementType.DOPPLER, Frequency.G02),
/** Doppler GPS L2 P(AS off) / GLONASS G2 P for Rinex3. */
D2P(MeasurementType.DOPPLER, Frequency.G02, Frequency.R02),
/** Doppler Beidou B1 Q for Rinex3.03. */
D2Q(MeasurementType.DOPPLER, Frequency.B01),
/** Doppler GPS L2 L2C(M) / QZSS L2 L2C(M) for Rinex3. */
D2S(MeasurementType.DOPPLER, Frequency.G02, Frequency.J02),
/** Doppler GPS L2 Z-tracking and similar (AS on) for Rinex3. */
D2W(MeasurementType.DOPPLER, Frequency.G02),
/** Doppler GPS L2 L2C (M+L) / QZSS L2 L2C(M+L) for Rinex3. */
D2X(MeasurementType.DOPPLER, Frequency.G02, Frequency.J02),
/** Doppler GPS L2 Y for Rinex3. */
D2Y(MeasurementType.DOPPLER, Frequency.G02),
/** Doppler GPS L5 I/ Galileo E5a F/NAV OS / SBAS L5 I / QZSS L5 I for Rinex3. */
D5I(MeasurementType.DOPPLER, Frequency.G05, Frequency.E05, Frequency.S05, Frequency.J05),
/** Doppler GPS L5 Q/ Galileo E5a Q / SBAS L5 Q / QZSS L5 Q for Rinex3. */
D5Q(MeasurementType.DOPPLER, Frequency.G05, Frequency.E05, Frequency.S05, Frequency.J05),
/** Doppler GPS L5 I+Q/ Galileo E5a I+Q / SBAS L5 I+Q / QZSS L5 I+Q for Rinex3. */
D5X(MeasurementType.DOPPLER, Frequency.G05, Frequency.E05, Frequency.S05, Frequency.J05),
/** Doppler Galileo E6 A PRS for Rinex3. */
D6A(MeasurementType.DOPPLER, Frequency.E06),
/** Doppler Galileo E6 B C/NAV CS for Rinex3. */
D6B(MeasurementType.DOPPLER, Frequency.E06),
/** Doppler Galileo E6 C no data for Rinex3. */
D6C(MeasurementType.DOPPLER, Frequency.E06),
/** Doppler Beidou B3 I for Rinex3. */
D6I(MeasurementType.DOPPLER, Frequency.B03),
/** Doppler Beidou B3 Q for Rinex3. */
D6Q(MeasurementType.DOPPLER, Frequency.B03),
/** Doppler Galileo E6 B+C / QZSS LEX(6) S+L / Beidou B3 I+Q for Rinex3. */
D6X(MeasurementType.DOPPLER, Frequency.E06, Frequency.J06, Frequency.B03),
/** Doppler Galileo E6 A+B+C for Rinex3. */
D6Z(MeasurementType.DOPPLER, Frequency.E06),
/** Doppler Galileo E5b I I/NAV OS/CS/SoL / Beidou B2 I for Rinex3. */
D7I(MeasurementType.DOPPLER, Frequency.E07, Frequency.B02),
/** Doppler Galileo Q no data / Beidou B2 Q for Rinex3. */
D7Q(MeasurementType.DOPPLER, Frequency.E07, Frequency.B02),
/** Doppler Galileo E5b I+Q / Beidou B2 I+Q for Rinex3. */
D7X(MeasurementType.DOPPLER, Frequency.E07, Frequency.B02),
/** Doppler Galileo E5(E5a+E5b) I for Rinex3. */
D8I(MeasurementType.DOPPLER, Frequency.E08),
/** Doppler Galileo E5(E5a+E5b) Q for Rinex3. */
D8Q(MeasurementType.DOPPLER, Frequency.E08),
/** Doppler Galileo E5(E5a+E5b) I+Q for Rinex3. */
D8X(MeasurementType.DOPPLER, Frequency.E08),
/** Carrier-phase Galileo E1 A for Rinex3. */
L1A(MeasurementType.CARRIER_PHASE, Frequency.E01),
/** Carrier-phase Galileo E1 I/NAV OS/CS/SoL for Rinex3. */
L1B(MeasurementType.CARRIER_PHASE, Frequency.E01),
/** Carrier-phase GPS L1 C/A / GLONASS G1 C/A / Galileo E1 C / SBAS L1 C/A / QZSS L1 C/A for Rinex3. */
L1C(MeasurementType.CARRIER_PHASE, Frequency.G01, Frequency.R01, Frequency.E01, Frequency.S01, Frequency.J01),
/** Carrier-phase Beidou B1 I for Rinex3. */
L1I(MeasurementType.CARRIER_PHASE, Frequency.B01),
/** Carrier-phase GPS L1 L1C(P) / QZSS L1 L1C(P) for Rinex3. */
L1L(MeasurementType.CARRIER_PHASE, Frequency.G01, Frequency.J01),
/** Carrier-phase GPS L2 M for Rinex3. */
L1M(MeasurementType.CARRIER_PHASE, Frequency.G02),
/** Carrier-phase GPS L1 codeless for Rinex3. */
L1N(MeasurementType.CARRIER_PHASE, Frequency.G01),
/** Carrier-phase GPS L2 P(AS off) / GLONASS G2 P for Rinex3. */
L1P(MeasurementType.CARRIER_PHASE, Frequency.G02, Frequency.R02),
/** Carrier-phase GPS L1 L1C(D) / QZSS L1 L1C(D) for Rinex3. */
L1S(MeasurementType.CARRIER_PHASE, Frequency.G01, Frequency.J01),
/** Carrier-phase GPS L1 Z-tracking and similar (AS on) for Rinex3. */
L1W(MeasurementType.CARRIER_PHASE, Frequency.G01),
/** Carrier-phase GPS L1 L1C (D+P) / Galileo E1 B+C / QZSS L1 L1C(D+P) for Rinex3. */
L1X(MeasurementType.CARRIER_PHASE, Frequency.G01, Frequency.E01, Frequency.J01),
/** Carrier-phase GPS L1 Y for Rinex3. */
L1Y(MeasurementType.CARRIER_PHASE, Frequency.G01),
/** Carrier-phase Galileo E1 C1Z A+B+C / QZSS L1 L1-SAIF for Rinex3. */
L1Z(MeasurementType.CARRIER_PHASE, Frequency.E01, Frequency.J01),
/** Carrier-phase GPS L2 C/A / GLONASS G2 C/A for Rinex3. */
L2C(MeasurementType.CARRIER_PHASE, Frequency.G02, Frequency.R02),
/** Carrier-phase GPS L1(C/A)+(P2-P1) (semi-codeless) for Rinex3. */
L2D(MeasurementType.CARRIER_PHASE, Frequency.G01),
/** Carrier-phase Beidou B1 I for Rinex3.03. */
L2I(MeasurementType.CARRIER_PHASE, Frequency.B01),
/** Carrier-phase GPS L2 L2C(L) / QZSS L2 L2C(2) for Rinex3. */
L2L(MeasurementType.CARRIER_PHASE, Frequency.G02, Frequency.J02),
/** Carrier-phase GPS L2 M for Rinex3. */
L2M(MeasurementType.CARRIER_PHASE, Frequency.G02),
/** Carrier-phase GPS L2 codeless for Rinex3. */
L2N(MeasurementType.CARRIER_PHASE, Frequency.G02),
/** Carrier-phase GPS L2 P(AS off) / GLONASS G2 P for Rinex3. */
L2P(MeasurementType.CARRIER_PHASE, Frequency.G02, Frequency.R02),
/** Carrier-phase Beidou B1 Q for Rinex3.03. */
L2Q(MeasurementType.CARRIER_PHASE, Frequency.B01),
/** Carrier-phase GPS L2 L2C(M) / QZSS L2 L2C(M) for Rinex3. */
L2S(MeasurementType.CARRIER_PHASE, Frequency.G02, Frequency.J02),
/** Carrier-phase GPS L2 Z-tracking and similar (AS on) for Rinex3. */
L2W(MeasurementType.CARRIER_PHASE, Frequency.G02),
/** Carrier-phase GPS L2 L2C (M+L) / QZSS L2 L2C(M+L) for Rinex3. */
L2X(MeasurementType.CARRIER_PHASE, Frequency.G02, Frequency.J02),
/** Carrier-phase GPS L2 Y for Rinex3. */
L2Y(MeasurementType.CARRIER_PHASE, Frequency.G02),
/** Carrier-phase GPS L5 I/ Galileo E5a F/NAV OS / SBAS L5 I / QZSS L5 I for Rinex3. */
L5I(MeasurementType.CARRIER_PHASE, Frequency.G05, Frequency.E05, Frequency.S05, Frequency.J05),
/** Carrier-phase GPS L5 Q/ Galileo E5a Q / SBAS L5 Q / QZSS L5 Q for Rinex3. */
L5Q(MeasurementType.CARRIER_PHASE, Frequency.G05, Frequency.E05, Frequency.S05, Frequency.J05),
/** Carrier-phase GPS L5 I+Q/ Galileo E5a I+Q / SBAS L5 I+Q / QZSS L5 I+Q for Rinex3. */
L5X(MeasurementType.CARRIER_PHASE, Frequency.G05, Frequency.E05, Frequency.S05, Frequency.J05),
/** Carrier-phase Galileo E6 A PRS for Rinex3. */
L6A(MeasurementType.CARRIER_PHASE, Frequency.E06),
/** Carrier-phase Galileo E6 B C/NAV CS for Rinex3. */
L6B(MeasurementType.CARRIER_PHASE, Frequency.E06),
/** Carrier-phase Galileo E6 C no data for Rinex3. */
L6C(MeasurementType.CARRIER_PHASE, Frequency.E06),
/** Carrier-phase Beidou B3 I for Rinex3. */
L6I(MeasurementType.CARRIER_PHASE, Frequency.B03),
/** Carrier-phase Beidou B3 Q for Rinex3. */
L6Q(MeasurementType.CARRIER_PHASE, Frequency.B03),
/** Carrier-phase Galileo E6 B+C / QZSS LEX(6) S+L / Beidou B3 I+Q for Rinex3. */
L6X(MeasurementType.CARRIER_PHASE, Frequency.E06, Frequency.J06, Frequency.B03),
/** Carrier-phase Galileo E6 A+B+C for Rinex3. */
L6Z(MeasurementType.CARRIER_PHASE, Frequency.E06),
/** Carrier-phase Galileo E5b I I/NAV OS/CS/SoL / Beidou B2 I for Rinex3. */
L7I(MeasurementType.CARRIER_PHASE, Frequency.E07, Frequency.B02),
/** Carrier-phase Galileo Q no data / Beidou B2 Q for Rinex3. */
L7Q(MeasurementType.CARRIER_PHASE, Frequency.E07, Frequency.B02),
/** Carrier-phase Galileo E5b I+Q / Beidou B2 I+Q for Rinex3. */
L7X(MeasurementType.CARRIER_PHASE, Frequency.E07, Frequency.B02),
/** Carrier-phase Galileo E5(E5a+E5b) I for Rinex3. */
L8I(MeasurementType.CARRIER_PHASE, Frequency.E08),
/** Carrier-phase Galileo E5(E5a+E5b) Q for Rinex3. */
L8Q(MeasurementType.CARRIER_PHASE, Frequency.E08),
/** Carrier-phase Galileo E5(E5a+E5b) I+Q for Rinex3. */
L8X(MeasurementType.CARRIER_PHASE, Frequency.E08),
/** Signal-strength Galileo E1 A for Rinex3. */
S1A(MeasurementType.SIGNAL_STRENGTH, Frequency.E01),
/** Signal-strength Galileo E1 I/NAV OS/CS/SoL for Rinex3. */
S1B(MeasurementType.SIGNAL_STRENGTH, Frequency.E01),
/** Signal-strength GPS L1 C/A / GLONASS G1 C/A / Galileo E1 C / SBAS L1 C/A / QZSS L1 C/A for Rinex3. */
S1C(MeasurementType.SIGNAL_STRENGTH, Frequency.G01, Frequency.R01, Frequency.E01, Frequency.S01, Frequency.J01),
/** Signal-strength Beidou B1 I for Rinex3. */
S1I(MeasurementType.SIGNAL_STRENGTH, Frequency.B01),
/** Signal-strength GPS L1 L1C(P) / QZSS L1 L1C(P) for Rinex3. */
S1L(MeasurementType.SIGNAL_STRENGTH, Frequency.G01, Frequency.J01),
/** Signal-strength GPS L2 M for Rinex3. */
S1M(MeasurementType.SIGNAL_STRENGTH, Frequency.G02),
/** Signal-strength GPS L1 codeless for Rinex3. */
S1N(MeasurementType.SIGNAL_STRENGTH, Frequency.G01),
/** Signal-strength GPS L2 P(AS off) / GLONASS G2 P for Rinex3. */
S1P(MeasurementType.SIGNAL_STRENGTH, Frequency.G02, Frequency.R02),
/** Signal-strength GPS L1 L1C(D) / QZSS L1 L1C(D) for Rinex3. */
S1S(MeasurementType.SIGNAL_STRENGTH, Frequency.G01, Frequency.J01),
/** Signal-strength GPS L1 Z-tracking and similar (AS on) for Rinex3. */
S1W(MeasurementType.SIGNAL_STRENGTH, Frequency.G01),
/** Signal-strength GPS L1 L1C (D+P) / Galileo E1 B+C / QZSS L1 L1C(D+P) for Rinex3. */
S1X(MeasurementType.SIGNAL_STRENGTH, Frequency.G01, Frequency.E01, Frequency.J01),
/** Signal-strength GPS L1 Y for Rinex3. */
S1Y(MeasurementType.SIGNAL_STRENGTH, Frequency.G01),
/** Signal-strength Galileo E1 C1Z A+B+C / QZSS L1 L1-SAIF for Rinex3. */
S1Z(MeasurementType.SIGNAL_STRENGTH, Frequency.E01, Frequency.J01),
/** Signal-strength GPS L2 C/A / GLONASS G2 C/A for Rinex3. */
S2C(MeasurementType.SIGNAL_STRENGTH, Frequency.G02, Frequency.R02),
/** Signal-strength GPS L1(C/A)+(P2-P1) (semi-codeless) for Rinex3. */
S2D(MeasurementType.SIGNAL_STRENGTH, Frequency.G01),
/** Signal-strength Beidou B1 I for Rinex3.03. */
S2I(MeasurementType.SIGNAL_STRENGTH, Frequency.B01),
/** Signal-strength GPS L2 L2C(L) / QZSS L2 L2C(2) for Rinex3. */
S2L(MeasurementType.SIGNAL_STRENGTH, Frequency.G02, Frequency.J02),
/** Signal-strength GPS L2 M for Rinex3. */
S2M(MeasurementType.SIGNAL_STRENGTH, Frequency.G02),
/** Signal-strength GPS L2 codeless for Rinex3. */
S2N(MeasurementType.SIGNAL_STRENGTH, Frequency.G02),
/** Signal-strength GPS L2 P(AS off) / GLONASS G2 P for Rinex3. */
S2P(MeasurementType.SIGNAL_STRENGTH, Frequency.G02, Frequency.R02),
/** Signal-strength Beidou B1 Q for Rinex3.03. */
S2Q(MeasurementType.SIGNAL_STRENGTH, Frequency.B01),
/** Signal-strength GPS L2 L2C(M) / QZSS L2 L2C(M) for Rinex3. */
S2S(MeasurementType.SIGNAL_STRENGTH, Frequency.G02, Frequency.J02),
/** Signal-strength GPS L2 Z-tracking and similar (AS on) for Rinex3. */
S2W(MeasurementType.SIGNAL_STRENGTH, Frequency.G02),
/** Signal-strength GPS L2 L2C (M+L) / QZSS L2 L2C(M+L) for Rinex3. */
S2X(MeasurementType.SIGNAL_STRENGTH, Frequency.G02, Frequency.J02),
/** Signal-strength GPS L2 Y for Rinex3. */
S2Y(MeasurementType.SIGNAL_STRENGTH, Frequency.G02),
/** Signal-strength GPS L5 I/ Galileo E5a F/NAV OS / SBAS L5 I / QZSS L5 I for Rinex3. */
S5I(MeasurementType.SIGNAL_STRENGTH, Frequency.G05, Frequency.E05, Frequency.S05, Frequency.J05),
/** Signal-strength GPS L5 Q/ Galileo E5a Q / SBAS L5 Q / QZSS L5 Q for Rinex3. */
S5Q(MeasurementType.SIGNAL_STRENGTH, Frequency.G05, Frequency.E05, Frequency.S05, Frequency.J05),
/** Signal-strength GPS L5 I+Q/ Galileo E5a I+Q / SBAS L5 I+Q / QZSS L5 I+Q for Rinex3. */
S5X(MeasurementType.SIGNAL_STRENGTH, Frequency.G05, Frequency.E05, Frequency.S05, Frequency.J05),
/** Signal-strength Galileo E6 A PRS for Rinex3. */
S6A(MeasurementType.SIGNAL_STRENGTH, Frequency.E06),
/** Signal-strength Galileo E6 B C/NAV CS for Rinex3. */
S6B(MeasurementType.SIGNAL_STRENGTH, Frequency.E06),
/** Signal-strength Galileo E6 C no data for Rinex3. */
S6C(MeasurementType.SIGNAL_STRENGTH, Frequency.E06),
/** Signal-strength Beidou B3 I for Rinex3. */
S6I(MeasurementType.SIGNAL_STRENGTH, Frequency.B03),
/** Signal-strength Beidou B3 Q for Rinex3. */
S6Q(MeasurementType.SIGNAL_STRENGTH, Frequency.B03),
/** Signal-strength Galileo E6 B+C / QZSS LEX(6) S+L / Beidou B3 I+Q for Rinex3. */
S6X(MeasurementType.SIGNAL_STRENGTH, Frequency.E06, Frequency.J06, Frequency.B03),
/** Signal-strength Galileo E6 A+B+C for Rinex3. */
S6Z(MeasurementType.SIGNAL_STRENGTH, Frequency.E06),
/** Signal-strength Galileo E5b I I/NAV OS/CS/SoL / Beidou B2 I for Rinex3. */
S7I(MeasurementType.SIGNAL_STRENGTH, Frequency.E07, Frequency.B02),
/** Signal-strength Galileo Q no data / Beidou B2 Q for Rinex3. */
S7Q(MeasurementType.SIGNAL_STRENGTH, Frequency.E07, Frequency.B02),
/** Signal-strength Galileo E5b I+Q / Beidou B2 I+Q for Rinex3. */
S7X(MeasurementType.SIGNAL_STRENGTH, Frequency.E07, Frequency.B02),
/** Signal-strength Galileo E5(E5a+E5b) I for Rinex3. */
S8I(MeasurementType.SIGNAL_STRENGTH, Frequency.E08),
/** Signal-strength Galileo E5(E5a+E5b) Q for Rinex3. */
S8Q(MeasurementType.SIGNAL_STRENGTH, Frequency.E08),
/** Signal-strength Galileo E5(E5a+E5b) I+Q for Rinex3. */
S8X(MeasurementType.SIGNAL_STRENGTH, Frequency.E08);
/** Measurement type. */
private final MeasurementType type;
/** Map of ferquencies. */
private final Map<SatelliteSystem, Frequency> frequencies;
/** Simple constructor.
* @param type measurement type
* @param frequencies compatible frequencies
*/
ObservationType(final MeasurementType type, final Frequency... frequencies) {
this.type = type;
this.frequencies = new HashMap<>(frequencies.length);
for (final Frequency f : frequencies) {
this.frequencies.put(f.getSatelliteSystem(), f);
}
}
/** Get the measurement type.
* @return measurement type
*/
public MeasurementType getMeasurementType() {
return type;
}
/** Get the frequency for a specified satellite system.
* @param system satellite system
* @return frequency for the satellite system, or null if satellite system not compatible
*/
public Frequency getFrequency(final SatelliteSystem system) {
return frequencies.get(system);
}
}