ObservationType.java

  1. /* Copyright 2002-2024 CS GROUP
  2.  * Licensed to CS GROUP (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. import java.util.HashMap;
  19. import java.util.Map;

  20. /** Enumerate for all the Observation Types for Rinex 2 and 3.
  21.  * For Rinex 2, there is an two-character enumerate composed of the Observation
  22.  * Code (C,P,L,D,S) and the Frequency code (1,2,5,6,7,8).
  23.  * For Rinex 3 there is a three-character enumerate composed of the Observation
  24.  * Code (C,L,D,S), the frequency code (1,2,5,6,7,8) and a final attribute depending
  25.  * on the tracking mode or channel.
  26.  *
  27.  */
  28. public enum ObservationType {

  29.     /** Pseudorange GPS L1 / GLONASS G1 / Galileo E2-L1-E1 / SBAS L1 for Rinex2. */
  30.     C1(MeasurementType.PSEUDO_RANGE, SignalCode.C, Frequency.G01, Frequency.R01, Frequency.E01, Frequency.S01),

  31.     /** Pseudorange GPS L2 / GLONASS G2 / Beidou B02 for Rinex2. */
  32.     C2(MeasurementType.PSEUDO_RANGE, SignalCode.C, Frequency.G02, Frequency.R02, Frequency.B02),

  33.     /** Pseudorange GPS L5 / Galileo E5a / SBAS L5 for Rinex2. */
  34.     C5(MeasurementType.PSEUDO_RANGE, SignalCode.C, Frequency.G05, Frequency.E05, Frequency.S05),

  35.     /** Pseudorange Galileo E6 / Beidou B03 for Rinex2. */
  36.     C6(MeasurementType.PSEUDO_RANGE, SignalCode.C, Frequency.E06, Frequency.B03),

  37.     /** Pseudorange Galileo E5b / Beidou B02 for Rinex2. */
  38.     C7(MeasurementType.PSEUDO_RANGE, SignalCode.C, Frequency.E07, Frequency.B02),

  39.     /** Pseudorange Galileo E5a+b for Rinex2. */
  40.     C8(MeasurementType.PSEUDO_RANGE, SignalCode.C, Frequency.E08),

  41.     /** Pseudorange GPS L1 / GLONASS G1 for Rinex2. */
  42.     P1(MeasurementType.PSEUDO_RANGE, SignalCode.P, Frequency.G01, Frequency.R01),

  43.     /** Pseudorange GPS L2 / GLONASS G2 for Rinex2. */
  44.     P2(MeasurementType.PSEUDO_RANGE, SignalCode.P, Frequency.G02, Frequency.R02),

  45.     /** Carrier-phase GPS L1 / GLONASS G1 / Galileo E2-L1-E1 / SBAS L1 for Rinex2. */
  46.     L1(MeasurementType.CARRIER_PHASE, SignalCode.P, Frequency.G01, Frequency.R01, Frequency.E01, Frequency.S01),

  47.     /** Carrier-phase GPS L2 / GLONASS G2 / Beidou B02 for Rinex2. */
  48.     L2(MeasurementType.CARRIER_PHASE, SignalCode.P, Frequency.G02, Frequency.R02, Frequency.B02),

  49.     /** Carrier-phase GPS L5 / Galileo E5a / SBAS L5 for Rinex2. */
  50.     L5(MeasurementType.CARRIER_PHASE, SignalCode.P, Frequency.G05, Frequency.E05, Frequency.S05),

  51.     /** Carrier-phase Galileo E6 / Beidou B03 for Rinex2. */
  52.     L6(MeasurementType.CARRIER_PHASE, SignalCode.P, Frequency.E06, Frequency.C07),

  53.     /** Carrier-phase Galileo E5b / Beidou B02 for Rinex2. */
  54.     L7(MeasurementType.CARRIER_PHASE, SignalCode.P, Frequency.E07, Frequency.B02),

  55.     /** Carrier-phase Galileo E5a+b for Rinex2. */
  56.     L8(MeasurementType.CARRIER_PHASE, SignalCode.P, Frequency.E08),

  57.     /** Carrier-phase GPS L1 C/A / GLONASS G1 C/A for Rinex2. */
  58.     LA(MeasurementType.CARRIER_PHASE, SignalCode.C, Frequency.G01, Frequency.R01),

  59.     /** Carrier-phase GPS L1C for Rinex2. */
  60.     LB(MeasurementType.CARRIER_PHASE, SignalCode.L, Frequency.G01),

  61.     /** Carrier-phase GPS L2C for Rinex2. */
  62.     LC(MeasurementType.CARRIER_PHASE, SignalCode.L, Frequency.G02),

  63.     /** Carrier-phase GLONASS G2 for Rinex2. */
  64.     LD(MeasurementType.CARRIER_PHASE, SignalCode.C, Frequency.R02),

  65.     /** Doppler GPS L1 / GLONASS G1 / Galileo E2-L1-E1 / SBAS L1 for Rinex2. */
  66.     D1(MeasurementType.DOPPLER, SignalCode.P, Frequency.G01, Frequency.R01, Frequency.E01, Frequency.S01),

  67.     /** Doppler GPS L2 / GLONASS G2 / Beidou BO2 for Rinex2. */
  68.     D2(MeasurementType.DOPPLER, SignalCode.P, Frequency.G02, Frequency.R02, Frequency.B02),

  69.     /** Doppler GPS L5 / Galileo E5a / SBAS L5 for Rinex2. */
  70.     D5(MeasurementType.DOPPLER, SignalCode.P, Frequency.G05, Frequency.E05, Frequency.S05),

  71.     /** Doppler Galileo E6 / Beidou B03 for Rinex2. */
  72.     D6(MeasurementType.DOPPLER, SignalCode.P, Frequency.E06, Frequency.C07),

  73.     /** Doppler Galileo E5b / Beidou B02 for Rinex2. */
  74.     D7(MeasurementType.DOPPLER, SignalCode.P, Frequency.E07, Frequency.B02),

  75.     /** Doppler Galileo E5a+b for Rinex2. */
  76.     D8(MeasurementType.DOPPLER, SignalCode.P, Frequency.E08),

  77.     /** Doppler GPS L1 / GLONASS G1 / Galileo E2-L1-E1 / SBAS L1 for Rinex2. */
  78.     S1(MeasurementType.SIGNAL_STRENGTH, SignalCode.P, Frequency.G01, Frequency.R01, Frequency.E01, Frequency.S01),

  79.     /** Signal Strength GPS L2 / GLONASS G2 / Beidou B02 for Rinex2. */
  80.     S2(MeasurementType.SIGNAL_STRENGTH, SignalCode.P, Frequency.G02, Frequency.R02, Frequency.B02),

  81.     /** Signal Strength GPS L5 / Galileo E5a / SBAS L5 for Rinex2. */
  82.     S5(MeasurementType.SIGNAL_STRENGTH, SignalCode.P, Frequency.G05, Frequency.E05, Frequency.S05),

  83.     /** Signal Strength Galileo E6 / Beidou B03 for Rinex2. */
  84.     S6(MeasurementType.SIGNAL_STRENGTH, SignalCode.P, Frequency.E06, Frequency.C07),

  85.     /** Signal Strength Galileo E5b / Beidou B02 for Rinex2. */
  86.     S7(MeasurementType.SIGNAL_STRENGTH, SignalCode.P, Frequency.E07, Frequency.B02),

  87.     /** Signal Strength Galileo E5a+b for Rinex2. */
  88.     S8(MeasurementType.SIGNAL_STRENGTH, SignalCode.P, Frequency.E08),

  89.     /** Pseudorange Galileo E1 A / Beidou B1A for Rinex3. */
  90.     C1A(MeasurementType.PSEUDO_RANGE, SignalCode.A, Frequency.E01, Frequency.B1A),

  91.     /** Pseudorange Galileo E1 I/NAV OS/CS/SoL / QZSS geo signal for Rinex3. */
  92.     C1B(MeasurementType.PSEUDO_RANGE, SignalCode.B, Frequency.E01, Frequency.J01),

  93.     /** Pseudorange GPS L1 C/A / GLONASS G1 C/A / Galileo E1 C / SBAS L1 C/A / QZSS L1 C/A for Rinex3. */
  94.     C1C(MeasurementType.PSEUDO_RANGE, SignalCode.C, Frequency.G01, Frequency.R01, Frequency.E01, Frequency.S01, Frequency.J01),

  95.     /** Pseudorange Beidou B1 Data for Rinex3. */
  96.     C1D(MeasurementType.PSEUDO_RANGE, SignalCode.D, Frequency.B1A),

  97.     /** Pseudorange QZSS L1 C/B for Rinex4. */
  98.     C1E(MeasurementType.PSEUDO_RANGE, SignalCode.C, Frequency.J01),

  99.     /** Pseudorange Beidou B1 I for Rinex3.02. */
  100.     C1I(MeasurementType.PSEUDO_RANGE, SignalCode.I, Frequency.B01),

  101.     /** Pseudorange GPS L1 L1C(P) / QZSS L1 L1C(P) for Rinex3, Beidou B1A for Rinex3.03. */
  102.     C1L(MeasurementType.PSEUDO_RANGE, SignalCode.L, Frequency.G01, Frequency.J01, Frequency.B1A),

  103.     /** Pseudorange GPS L1 M for Rinex3. */
  104.     C1M(MeasurementType.PSEUDO_RANGE, SignalCode.M, Frequency.G01),

  105.     /** Pseudorange GPS L1 P(AS off) / GLONASS G1 P / Beidou C1 Pilot for Rinex3. */
  106.     C1P(MeasurementType.PSEUDO_RANGE, SignalCode.P, Frequency.G01, Frequency.R01, Frequency.B1A),

  107.     /** Pseudorange Beidou B1 Q for Rinex3.02. */
  108.     C1Q(MeasurementType.PSEUDO_RANGE, SignalCode.Q, Frequency.B01),

  109.     /** Pseudorange GPS L1 L1C(D) / QZSS L1 L1C(D) for Rinex3, Beidou B1A for Rinex3.03. */
  110.     C1S(MeasurementType.PSEUDO_RANGE, SignalCode.S, Frequency.G01, Frequency.J01, Frequency.B1A),

  111.     /** Pseudorange GPS L1 Z-tracking and similar (AS on) for Rinex3. */
  112.     C1W(MeasurementType.PSEUDO_RANGE, SignalCode.W, Frequency.G01),

  113.     /** Pseudorange GPS L1 L1C (D+P) / Galileo E1 B+C / QZSS L1 L1C(D+P) / Beidou B1 Data+Pilot for Rinex3. */
  114.     C1X(MeasurementType.PSEUDO_RANGE, SignalCode.X, Frequency.G01, Frequency.E01, Frequency.J01, Frequency.B1A),

  115.     /** Pseudorange GPS L1 Y for Rinex3. */
  116.     C1Y(MeasurementType.PSEUDO_RANGE, SignalCode.Y, Frequency.G01),

  117.     /** Pseudorange Galileo E1 C1Z A+B+C / QZSS L1 L1-SAIF for Rinex3, Beidou B1A for Rinex3.03. */
  118.     C1Z(MeasurementType.PSEUDO_RANGE, SignalCode.Z, Frequency.E01, Frequency.J01, Frequency.B1A),

  119.     /** Pseudorange GPS L2 C/A / GLONASS G2 C/A for Rinex3. */
  120.     C2C(MeasurementType.PSEUDO_RANGE, SignalCode.C, Frequency.G02, Frequency.R02),

  121.     /** Pseudorange GPS L1(C/A)+(P2-P1) (semi-codeless) for Rinex3. */
  122.     C2D(MeasurementType.PSEUDO_RANGE, SignalCode.D, Frequency.G02),

  123.     /** Pseudorange Beidou B1 I for Rinex3.03. */
  124.     C2I(MeasurementType.PSEUDO_RANGE, SignalCode.I, Frequency.B01),

  125.     /** Pseudorange GPS L2 L2C(L) / QZSS L2 L2C(2) for Rinex3. */
  126.     C2L(MeasurementType.PSEUDO_RANGE, SignalCode.L, Frequency.G02, Frequency.J02),

  127.     /** Pseudorange GPS L2 M for Rinex3. */
  128.     C2M(MeasurementType.PSEUDO_RANGE, SignalCode.M, Frequency.G02),

  129.     /** Pseudorange GPS L2 P(AS off) / GLONASS G2 P for Rinex3. */
  130.     C2P(MeasurementType.PSEUDO_RANGE, SignalCode.P, Frequency.G02, Frequency.R02),

  131.     /** Pseudorange Beidou B1 Q for Rinex3.03. */
  132.     C2Q(MeasurementType.PSEUDO_RANGE, SignalCode.Q, Frequency.B01),

  133.     /** Pseudorange GPS L2 L2C(M) / QZSS L2 L2C(M) for Rinex3. */
  134.     C2S(MeasurementType.PSEUDO_RANGE, SignalCode.S, Frequency.G02, Frequency.J02),

  135.     /** Pseudorange GPS L2 Z-tracking and similar (AS on) for Rinex3. */
  136.     C2W(MeasurementType.PSEUDO_RANGE, SignalCode.W, Frequency.G02),

  137.     /** Pseudorange GPS L2 L2C (M+L) / QZSS L2 L2C(M+L) for Rinex3, Beidou B1 I+Q for Rinex3.03. */
  138.     C2X(MeasurementType.PSEUDO_RANGE, SignalCode.X, Frequency.G02, Frequency.J02, Frequency.B01),

  139.     /** Pseudorange GPS L2 Y for Rinex3. */
  140.     C2Y(MeasurementType.PSEUDO_RANGE, SignalCode.Y, Frequency.G02),

  141.     /** Pseudorange GLONASS G3 I for Rinex3. */
  142.     C3I(MeasurementType.PSEUDO_RANGE, SignalCode.I, Frequency.R03),

  143.     /** Pseudorange GLONASS G3 Q for Rinex3. */
  144.     C3Q(MeasurementType.PSEUDO_RANGE, SignalCode.Q, Frequency.R03),

  145.     /** Pseudorange GLONASS G3 I+Q for Rinex3. */
  146.     C3X(MeasurementType.PSEUDO_RANGE, SignalCode.X, Frequency.R03),

  147.     /** Pseudorange GLONASS G1a L1OCd for Rinex3. */
  148.     C4A(MeasurementType.PSEUDO_RANGE, SignalCode.A, Frequency.R04),

  149.     /** Pseudorange GLONASS G1a L1OCp for Rinex3. */
  150.     C4B(MeasurementType.PSEUDO_RANGE, SignalCode.B, Frequency.R04),

  151.     /** Pseudorange GLONASS G1a L1OCd+L1OCd for Rinex3. */
  152.     C4X(MeasurementType.PSEUDO_RANGE, SignalCode.X, Frequency.R04),

  153.     /** Pseudorange IRNSS L5 A for Rinex3. */
  154.     C5A(MeasurementType.PSEUDO_RANGE, SignalCode.A, Frequency.I05),

  155.     /** Pseudorange IRNSS L5 B for Rinex3. */
  156.     C5B(MeasurementType.PSEUDO_RANGE, SignalCode.B, Frequency.I05),

  157.     /** Pseudorange IRNSS L5 C for Rinex3. */
  158.     C5C(MeasurementType.PSEUDO_RANGE, SignalCode.C, Frequency.I05),

  159.     /** Pseudorange QZSS L5 D / Beidou B2a Data for Rinex3. */
  160.     C5D(MeasurementType.PSEUDO_RANGE, SignalCode.D, Frequency.J05, Frequency.B2A),

  161.     /** Pseudorange GPS L5 I/ Galileo E5a F/NAV OS / SBAS L5 I / QZSS L5 I for Rinex3. */
  162.     C5I(MeasurementType.PSEUDO_RANGE, SignalCode.I, Frequency.G05, Frequency.E05, Frequency.S05, Frequency.J05),

  163.     /** Pseudorange QZSS L5 P / Beidou B2a Pilot for Rinex3. */
  164.     C5P(MeasurementType.PSEUDO_RANGE, SignalCode.P, Frequency.J05, Frequency.B2A),

  165.     /** Pseudorange GPS L5 Q/ Galileo E5a Q / SBAS L5 Q / QZSS L5 Q for Rinex3. */
  166.     C5Q(MeasurementType.PSEUDO_RANGE, SignalCode.Q, Frequency.G05, Frequency.E05, Frequency.S05, Frequency.J05),

  167.     /** Pseudorange GPS L5 I+Q/ Galileo E5a I+Q / SBAS L5 I+Q / QZSS L5 I+Q / IRNSS L5 B+C / Beidou B2a Data+Pilot for Rinex3. */
  168.     C5X(MeasurementType.PSEUDO_RANGE, SignalCode.X, Frequency.G05, Frequency.E05, Frequency.S05, Frequency.J05, Frequency.I05, Frequency.B2A),

  169.     /** Pseudorange QZSS L5 D+P for Rinex3. */
  170.     C5Z(MeasurementType.PSEUDO_RANGE, SignalCode.Z, Frequency.J05),

  171.     /** Pseudorange Galileo E6 A PRS / GLONASS G2a L2CSI / Beidou B3A for Rinex3. */
  172.     C6A(MeasurementType.PSEUDO_RANGE, SignalCode.A, Frequency.E06, Frequency.R06, Frequency.B03),

  173.     /** Pseudorange Galileo E6 B C/NAV CS / GLONASS G2a L2OCp for Rinex3. */
  174.     C6B(MeasurementType.PSEUDO_RANGE, SignalCode.B, Frequency.E06, Frequency.R06),

  175.     /** Pseudorange Galileo E6 C no data for Rinex3. */
  176.     C6C(MeasurementType.PSEUDO_RANGE, SignalCode.C, Frequency.E06),

  177.     /** Pseudorange Beidou B3A for Rinex3. */
  178.     C6D(MeasurementType.PSEUDO_RANGE, SignalCode.D, Frequency.B3A),

  179.     /** Pseudorange QZSS L6E for Rinex3. */
  180.     C6E(MeasurementType.PSEUDO_RANGE, SignalCode.E, Frequency.J06),

  181.     /** Pseudorange Beidou B3 I for Rinex3. */
  182.     C6I(MeasurementType.PSEUDO_RANGE, SignalCode.I, Frequency.B03),

  183.     /** Pseudorange QZSS LEX(6) L for Rinex3. */
  184.     C6L(MeasurementType.PSEUDO_RANGE, SignalCode.L, Frequency.J06),

  185.     /** Pseudorange Beidou B3A for Rinex3. */
  186.     C6P(MeasurementType.PSEUDO_RANGE, SignalCode.P, Frequency.B3A),

  187.     /** Pseudorange Beidou B3 Q for Rinex3. */
  188.     C6Q(MeasurementType.PSEUDO_RANGE, SignalCode.Q, Frequency.B03),

  189.     /** Pseudorange QZSS LEX(6) S for Rinex3. */
  190.     C6S(MeasurementType.PSEUDO_RANGE, SignalCode.S, Frequency.J06),

  191.     /** Pseudorange Galileo E6 B+C / QZSS LEX(6) S+L / Beidou B3 I+Q / GLONASS G2a L2CSI+L2OCp for Rinex3. */
  192.     C6X(MeasurementType.PSEUDO_RANGE, SignalCode.X, Frequency.E06, Frequency.J06, Frequency.B03, Frequency.R06),

  193.     /** Pseudorange Galileo E6 A+B+C / QZSS L6(D+E) / Beidou B3A for Rinex3. */
  194.     C6Z(MeasurementType.PSEUDO_RANGE, SignalCode.Z, Frequency.E06, Frequency.J06, Frequency.B3A),

  195.     /** Pseudorange Beidou B2b Data for Rinex3. */
  196.     C7D(MeasurementType.PSEUDO_RANGE, SignalCode.D, Frequency.B02, Frequency.B2B),

  197.     /** Pseudorange Galileo E5b I I/NAV OS/CS/SoL / Beidou B2 I for Rinex3. */
  198.     C7I(MeasurementType.PSEUDO_RANGE, SignalCode.I, Frequency.E07, Frequency.B02),

  199.     /** Pseudorange Beidou B2b Pilot for Rinex3. */
  200.     C7P(MeasurementType.PSEUDO_RANGE, SignalCode.P, Frequency.B02, Frequency.B2B),

  201.     /** Pseudorange Galileo Q no data / Beidou B2 Q for Rinex3. */
  202.     C7Q(MeasurementType.PSEUDO_RANGE, SignalCode.Q, Frequency.E07, Frequency.B02),

  203.     /** Pseudorange Galileo E5b I+Q / Beidou B2 I+Q for Rinex3. */
  204.     C7X(MeasurementType.PSEUDO_RANGE, SignalCode.X, Frequency.E07, Frequency.B02),

  205.     /** Pseudorange Beidou B2b Data+Pilot for Rinex3. */
  206.     C7Z(MeasurementType.PSEUDO_RANGE, SignalCode.Z, Frequency.B02, Frequency.B2B),

  207.     /** Pseudorange Beidou B2(B2a+B2b) Data for Rinex3. */
  208.     C8D(MeasurementType.PSEUDO_RANGE, SignalCode.D, Frequency.B08),

  209.     /** Pseudorange Galileo E5(E5a+E5b) I for Rinex3. */
  210.     C8I(MeasurementType.PSEUDO_RANGE, SignalCode.I, Frequency.E08),

  211.     /** Pseudorange Beidou B2(B2a+B2b) Pilot for Rinex3. */
  212.     C8P(MeasurementType.PSEUDO_RANGE, SignalCode.P, Frequency.B08),

  213.     /** Pseudorange Galileo E5(E5a+E5b) Q for Rinex3. */
  214.     C8Q(MeasurementType.PSEUDO_RANGE, SignalCode.Q, Frequency.E08),

  215.     /** Pseudorange Galileo E5(E5a+E5b) I+Q / Beidou B2(B2a+B2b) Data+Pilot for Rinex3. */
  216.     C8X(MeasurementType.PSEUDO_RANGE, SignalCode.X, Frequency.E08, Frequency.B08),

  217.     /** Pseudorange IRNSS S A for Rinex3. */
  218.     C9A(MeasurementType.PSEUDO_RANGE, SignalCode.A, Frequency.I09),

  219.     /** Pseudorange IRNSS S B for Rinex3. */
  220.     C9B(MeasurementType.PSEUDO_RANGE, SignalCode.B, Frequency.I09),

  221.     /** Pseudorange IRNSS S C for Rinex3. */
  222.     C9C(MeasurementType.PSEUDO_RANGE, SignalCode.C, Frequency.I09),

  223.     /** Pseudorange IRNSS S B+C for Rinex3. */
  224.     C9X(MeasurementType.PSEUDO_RANGE, SignalCode.X, Frequency.I09),

  225.     /** Pseudorange for Rinex3. */
  226.     C0(MeasurementType.PSEUDO_RANGE, SignalCode.CODELESS),

  227.     /** Pseudorange GPS L1 C/A / GLONASS G1 C/A for Rinex2. */
  228.     CA(MeasurementType.PSEUDO_RANGE, SignalCode.C, Frequency.G01, Frequency.R01),

  229.     /** Pseudorange GPS L1C for Rinex2. */
  230.     CB(MeasurementType.PSEUDO_RANGE, SignalCode.L, Frequency.G01),

  231.     /** Pseudorange GPS L2C for Rinex2. */
  232.     CC(MeasurementType.PSEUDO_RANGE, SignalCode.L, Frequency.G02),

  233.     /** Pseudorange GLONASS G2 for Rinex2. */
  234.     CD(MeasurementType.PSEUDO_RANGE, SignalCode.C, Frequency.R02),

  235.     /** Doppler Galileo E1 A / Beidou B1 B1A for Rinex3. */
  236.     D1A(MeasurementType.DOPPLER, SignalCode.A, Frequency.E01, Frequency.B1A),

  237.     /** Doppler Galileo E1 I/NAV OS/CS/SoL / QZSS geo signal for Rinex3. */
  238.     D1B(MeasurementType.DOPPLER, SignalCode.B, Frequency.E01, Frequency.J01),

  239.     /** Doppler GPS L1 C/A / GLONASS G1 C/A / Galileo E1 C / SBAS L1 C/A / QZSS L1 C/A for Rinex3. */
  240.     D1C(MeasurementType.DOPPLER, SignalCode.C, Frequency.G01, Frequency.R01, Frequency.E01, Frequency.S01, Frequency.J01),

  241.     /** Doppler Beidou B1 Data for Rinex3. */
  242.     D1D(MeasurementType.DOPPLER, SignalCode.D, Frequency.B1A),

  243.     /** Doppler QZSS L1 C/B for Rinex4. */
  244.     D1E(MeasurementType.DOPPLER, SignalCode.C, Frequency.J01),

  245.     /** Doppler Beidou B1 I for Rinex3. */
  246.     D1I(MeasurementType.DOPPLER, SignalCode.I, Frequency.B01),

  247.     /** Doppler GPS L1 L1C(P) / QZSS L1 L1C(P) for Rinex3, Beidou B1A for Rinex3.03. */
  248.     D1L(MeasurementType.DOPPLER, SignalCode.L, Frequency.G01, Frequency.J01, Frequency.B1A),

  249.     /** Doppler GPS L2 M for Rinex3. */
  250.     D1M(MeasurementType.DOPPLER, SignalCode.M, Frequency.G02),

  251.     /** Doppler GPS L1 codeless / Beidou B1 codeless for Rinex3. */
  252.     D1N(MeasurementType.DOPPLER, SignalCode.CODELESS, Frequency.G01, Frequency.B1A),

  253.     /** Doppler GPS L2 P(AS off) / GLONASS G2 P / Beidou B1 Pilot for Rinex3. */
  254.     D1P(MeasurementType.DOPPLER, SignalCode.P, Frequency.G02, Frequency.R02, Frequency.B1A),

  255.     /** Doppler GPS L1 L1C(D) / QZSS L1 L1C(D) for Rinex3, Beidou B1A for Rinex3.03. */
  256.     D1S(MeasurementType.DOPPLER, SignalCode.S, Frequency.G01, Frequency.J01, Frequency.B1A),

  257.     /** Doppler GPS L1 Z-tracking and similar (AS on) for Rinex3. */
  258.     D1W(MeasurementType.DOPPLER, SignalCode.W, Frequency.G01),

  259.     /** Doppler GPS L1 L1C (D+P) / Galileo E1 B+C / QZSS L1 L1C(D+P) / Beidou B1 Data+Pilot for Rinex3. */
  260.     D1X(MeasurementType.DOPPLER, SignalCode.X, Frequency.G01, Frequency.E01, Frequency.J01, Frequency.B1A),

  261.     /** Doppler GPS L1 Y for Rinex3. */
  262.     D1Y(MeasurementType.DOPPLER, SignalCode.Y, Frequency.G01),

  263.     /** Doppler Galileo E1 C1Z A+B+C / QZSS L1 L1-SAIF for Rinex3, Beidou B1A for Rinex3.03. */
  264.     D1Z(MeasurementType.DOPPLER, SignalCode.Z, Frequency.E01, Frequency.J01, Frequency.B1A),

  265.     /** Doppler GPS L2 C/A / GLONASS G2 C/A for Rinex3. */
  266.     D2C(MeasurementType.DOPPLER, SignalCode.C,  Frequency.G02, Frequency.R02),

  267.     /** Doppler GPS L1(C/A)+(P2-P1) (semi-codeless) for Rinex3. */
  268.     D2D(MeasurementType.DOPPLER, SignalCode.D, Frequency.G02),

  269.     /** Doppler Beidou B1 I for Rinex3.03. */
  270.     D2I(MeasurementType.DOPPLER, SignalCode.I, Frequency.B01),

  271.     /** Doppler GPS L2 L2C(L) / QZSS L2 L2C(2) for Rinex3. */
  272.     D2L(MeasurementType.DOPPLER, SignalCode.L, Frequency.G02, Frequency.J02),

  273.     /** Doppler GPS L2 M for Rinex3. */
  274.     D2M(MeasurementType.DOPPLER, SignalCode.M, Frequency.G02),

  275.     /** Doppler GPS L2 codeless for Rinex3. */
  276.     D2N(MeasurementType.DOPPLER, SignalCode.CODELESS, Frequency.G02),

  277.     /** Doppler GPS L2 P(AS off) / GLONASS G2 P for Rinex3. */
  278.     D2P(MeasurementType.DOPPLER, SignalCode.P, Frequency.G02, Frequency.R02),

  279.     /** Doppler Beidou B1 Q for Rinex3.03. */
  280.     D2Q(MeasurementType.DOPPLER, SignalCode.Q, Frequency.B01),

  281.     /** Doppler GPS L2 L2C(M) / QZSS L2 L2C(M) for Rinex3. */
  282.     D2S(MeasurementType.DOPPLER, SignalCode.S, Frequency.G02, Frequency.J02),

  283.     /** Doppler GPS L2 Z-tracking and similar (AS on) for Rinex3. */
  284.     D2W(MeasurementType.DOPPLER, SignalCode.W, Frequency.G02),

  285.     /** Doppler GPS L2 L2C (M+L) / QZSS L2 L2C(M+L) for Rinex3, Beidou B1 I+Q for Rinex3.03. */
  286.     D2X(MeasurementType.DOPPLER, SignalCode.X, Frequency.G02, Frequency.J02, Frequency.B01),

  287.     /** Doppler GPS L2 Y for Rinex3. */
  288.     D2Y(MeasurementType.DOPPLER, SignalCode.Y, Frequency.G02),

  289.     /** Doppler GLONASS G3 I for Rinex3. */
  290.     D3I(MeasurementType.DOPPLER, SignalCode.I, Frequency.R03),

  291.     /** Doppler GLONASS G3 Q for Rinex3. */
  292.     D3Q(MeasurementType.DOPPLER, SignalCode.Q, Frequency.R03),

  293.     /** Doppler GLONASS G3 I+Q for Rinex3. */
  294.     D3X(MeasurementType.DOPPLER, SignalCode.X, Frequency.R03),

  295.     /** Doppler GLONASS G1a L1OCd for Rinex3. */
  296.     D4A(MeasurementType.DOPPLER, SignalCode.A, Frequency.R04),

  297.     /** Doppler GLONASS G1a L1OCp for Rinex3. */
  298.     D4B(MeasurementType.DOPPLER, SignalCode.B, Frequency.R04),

  299.     /** Doppler GLONASS G1a L1OCd+L1OCd for Rinex3. */
  300.     D4X(MeasurementType.DOPPLER, SignalCode.X, Frequency.R04),

  301.     /** Doppler IRNSS L5 A for Rinex3. */
  302.     D5A(MeasurementType.DOPPLER, SignalCode.A, Frequency.I05),

  303.     /** Doppler IRNSS L5 B for Rinex3. */
  304.     D5B(MeasurementType.DOPPLER, SignalCode.B, Frequency.I05),

  305.     /** Doppler IRNSS L5 C for Rinex3. */
  306.     D5C(MeasurementType.DOPPLER, SignalCode.C, Frequency.I05),

  307.     /** Doppler QZSS L5 D / Beidou B2a Data for Rinex3. */
  308.     D5D(MeasurementType.DOPPLER, SignalCode.D, Frequency.J05, Frequency.B2A),

  309.     /** Doppler GPS L5 I/ Galileo E5a F/NAV OS / SBAS L5 I / QZSS L5 I for Rinex3. */
  310.     D5I(MeasurementType.DOPPLER, SignalCode.I, Frequency.G05, Frequency.E05, Frequency.S05, Frequency.J05),

  311.     /** Doppler QZSS L5 P / Beidou B2a Pilot for Rinex3. */
  312.     D5P(MeasurementType.DOPPLER, SignalCode.P, Frequency.J05, Frequency.B2A),

  313.     /** Doppler GPS L5 Q/ Galileo E5a Q / SBAS L5 Q / QZSS L5 Q for Rinex3. */
  314.     D5Q(MeasurementType.DOPPLER, SignalCode.Q, Frequency.G05, Frequency.E05, Frequency.S05, Frequency.J05),

  315.     /** Doppler GPS L5 I+Q/ Galileo E5a I+Q / SBAS L5 I+Q / QZSS L5 I+Q / IRNSS L5 B+C / Beidou B2a Data+Pilot for Rinex3. */
  316.     D5X(MeasurementType.DOPPLER, SignalCode.X, Frequency.G05, Frequency.E05, Frequency.S05, Frequency.J05, Frequency.I05, Frequency.B2A),

  317.     /** Doppler QZSS L5 D+P for Rinex3. */
  318.     D5Z(MeasurementType.DOPPLER, SignalCode.Z, Frequency.J05),

  319.     /** Doppler Galileo E6 A PRS / GLONASS L2CSI / Beidou B3A for Rinex3. */
  320.     D6A(MeasurementType.DOPPLER, SignalCode.A, Frequency.E06, Frequency.R06, Frequency.B03),

  321.     /** Doppler Galileo E6 B C/NAV CS / GLONASS L2OCp for Rinex3. */
  322.     D6B(MeasurementType.DOPPLER, SignalCode.B, Frequency.E06, Frequency.R06),

  323.     /** Doppler Galileo E6 C no data for Rinex3. */
  324.     D6C(MeasurementType.DOPPLER, SignalCode.C, Frequency.E06),

  325.     /** Doppler Beidou B3A for Rinex3. */
  326.     D6D(MeasurementType.DOPPLER, SignalCode.D, Frequency.B3A),

  327.     /** Doppler QZSS L6E for Rinex3. */
  328.     D6E(MeasurementType.DOPPLER, SignalCode.E, Frequency.J06),

  329.     /** Doppler Beidou B3 I for Rinex3. */
  330.     D6I(MeasurementType.DOPPLER, SignalCode.I, Frequency.B03),

  331.     /** Doppler QZSS LEX(6) L for Rinex3. */
  332.     D6L(MeasurementType.DOPPLER, SignalCode.L, Frequency.J06),

  333.     /** Doppler Beidou B3A for Rinex3. */
  334.     D6P(MeasurementType.DOPPLER, SignalCode.P, Frequency.B3A),

  335.     /** Doppler Beidou B3 Q for Rinex3. */
  336.     D6Q(MeasurementType.DOPPLER, SignalCode.Q, Frequency.B03),

  337.     /** Doppler QZSS LEX(6) S for Rinex3. */
  338.     D6S(MeasurementType.DOPPLER, SignalCode.S, Frequency.J06),

  339.     /** Doppler Galileo E6 B+C / QZSS LEX(6) S+L / Beidou B3 I+Q / GLONASS G2a L2CSI+L2OCp for Rinex3. */
  340.     D6X(MeasurementType.DOPPLER, SignalCode.X, Frequency.E06, Frequency.J06, Frequency.B03, Frequency.R06),

  341.     /** Doppler Galileo E6 A+B+C / QZSS L6(D+E) / Beidou B3A for Rinex3. */
  342.     D6Z(MeasurementType.DOPPLER, SignalCode.Z, Frequency.E06, Frequency.J06, Frequency.B3A),

  343.     /** Doppler Beidou B2b Data for Rinex3. */
  344.     D7D(MeasurementType.DOPPLER, SignalCode.D, Frequency.B02, Frequency.B2B),

  345.     /** Doppler Galileo E5b I I/NAV OS/CS/SoL / Beidou B2 I for Rinex3. */
  346.     D7I(MeasurementType.DOPPLER, SignalCode.I, Frequency.E07, Frequency.B02),

  347.     /** Doppler Beidou B2b Pilot for Rinex3. */
  348.     D7P(MeasurementType.DOPPLER, SignalCode.P, Frequency.B02, Frequency.B2B),

  349.     /** Doppler Galileo Q no data / Beidou B2 Q for Rinex3. */
  350.     D7Q(MeasurementType.DOPPLER, SignalCode.Q, Frequency.E07, Frequency.B02),

  351.     /** Doppler Galileo E5b I+Q / Beidou B2 I+Q for Rinex3. */
  352.     D7X(MeasurementType.DOPPLER, SignalCode.X, Frequency.E07, Frequency.B02),

  353.     /** Doppler Beidou B2b Data+Pilot for Rinex3. */
  354.     D7Z(MeasurementType.DOPPLER, SignalCode.Z, Frequency.B02, Frequency.B2B),

  355.     /** Doppler Beidou B2(B2a+B2b) Data for Rinex3. */
  356.     D8D(MeasurementType.DOPPLER, SignalCode.D, Frequency.B08),

  357.     /** Doppler Galileo E5(E5a+E5b) I for Rinex3. */
  358.     D8I(MeasurementType.DOPPLER, SignalCode.I, Frequency.E08),

  359.     /** Doppler Beidou B2(B2a+B2b) Pilot for Rinex3. */
  360.     D8P(MeasurementType.DOPPLER, SignalCode.P, Frequency.B08),

  361.     /** Doppler Galileo E5(E5a+E5b) Q for Rinex3. */
  362.     D8Q(MeasurementType.DOPPLER, SignalCode.Q, Frequency.E08),

  363.     /** Doppler Galileo E5(E5a+E5b) I+Q / B2(B2a+B2b) Data+Pilot for Rinex3. */
  364.     D8X(MeasurementType.DOPPLER, SignalCode.X, Frequency.E08, Frequency.B08),

  365.     /** Doppler IRNSS S A for Rinex3. */
  366.     D9A(MeasurementType.DOPPLER, SignalCode.A, Frequency.I09),

  367.     /** Doppler IRNSS S B for Rinex3. */
  368.     D9B(MeasurementType.DOPPLER, SignalCode.B, Frequency.I09),

  369.     /** Doppler IRNSS S C for Rinex3. */
  370.     D9C(MeasurementType.DOPPLER, SignalCode.C, Frequency.I09),

  371.     /** Doppler IRNSS S B+C for Rinex3. */
  372.     D9X(MeasurementType.DOPPLER, SignalCode.X, Frequency.I09),

  373.     /** Doppler for Rinex3. */
  374.     D0(MeasurementType.DOPPLER, SignalCode.CODELESS),

  375.     /** Doppler GPS L1 C/A / GLONASS G1 C/A for Rinex2. */
  376.     DA(MeasurementType.DOPPLER, SignalCode.C, Frequency.G01, Frequency.R01),

  377.     /** Doppler GPS L1C for Rinex2. */
  378.     DB(MeasurementType.DOPPLER, SignalCode.L, Frequency.G01),

  379.     /** Doppler GPS L2C for Rinex2. */
  380.     DC(MeasurementType.DOPPLER, SignalCode.L, Frequency.G02),

  381.     /** Doppler GLONASS G2 for Rinex2. */
  382.     DD(MeasurementType.DOPPLER, SignalCode.C, Frequency.R02),

  383.     /** Carrier-phase Galileo E1 A / Beidou B1 B1A for Rinex3. */
  384.     L1A(MeasurementType.CARRIER_PHASE, SignalCode.A, Frequency.E01, Frequency.B1A),

  385.     /** Carrier-phase Galileo E1 I/NAV OS/CS/SoL / QZSS geo signal for Rinex3. */
  386.     L1B(MeasurementType.CARRIER_PHASE, SignalCode.B, Frequency.E01, Frequency.J01),

  387.     /** Carrier-phase GPS L1 C/A / GLONASS G1 C/A / Galileo E1 C / SBAS L1 C/A / QZSS L1 C/A for Rinex3. */
  388.     L1C(MeasurementType.CARRIER_PHASE, SignalCode.C, Frequency.G01, Frequency.R01, Frequency.E01, Frequency.S01, Frequency.J01),

  389.     /** Carrier-phase Beidou B1 Data for Rinex3. */
  390.     L1D(MeasurementType.CARRIER_PHASE, SignalCode.D, Frequency.B1A),

  391.     /** Carrier-phase QZSS L1 C/B for Rinex4. */
  392.     L1E(MeasurementType.CARRIER_PHASE, SignalCode.C, Frequency.J01),

  393.     /** Carrier-phase Beidou B1 I for Rinex3. */
  394.     L1I(MeasurementType.CARRIER_PHASE, SignalCode.I, Frequency.B01),

  395.     /** Carrier-phase GPS L1 L1C(P) / QZSS L1 L1C(P) for Rinex3, Beidou B1A for Rinex3.03. */
  396.     L1L(MeasurementType.CARRIER_PHASE, SignalCode.L, Frequency.G01, Frequency.J01, Frequency.B1A),

  397.     /** Carrier-phase GPS L2 M for Rinex3. */
  398.     L1M(MeasurementType.CARRIER_PHASE, SignalCode.M, Frequency.G02),

  399.     /** Carrier-phase GPS L1 codeless for Rinex3. */
  400.     L1N(MeasurementType.CARRIER_PHASE, SignalCode.CODELESS, Frequency.G01),

  401.     /** Carrier-phase GPS L2 P(AS off) / GLONASS G2 P / Beidou B1 Pilot for Rinex3. */
  402.     L1P(MeasurementType.CARRIER_PHASE, SignalCode.P, Frequency.G02, Frequency.R02, Frequency.B1A),

  403.     /** Carrier-phase GPS L1 L1C(D) / QZSS L1 L1C(D) for Rinex3, Beidou B1A for Rinex3.03. */
  404.     L1S(MeasurementType.CARRIER_PHASE, SignalCode.S, Frequency.G01, Frequency.J01, Frequency.B1A),

  405.     /** Carrier-phase GPS L1 Z-tracking and similar (AS on) for Rinex3. */
  406.     L1W(MeasurementType.CARRIER_PHASE, SignalCode.W, Frequency.G01),

  407.     /** Carrier-phase GPS L1 L1C (D+P) / Galileo E1 B+C / QZSS L1 L1C(D+P) / Beidou B1 Data+Pilot for Rinex3. */
  408.     L1X(MeasurementType.CARRIER_PHASE, SignalCode.X, Frequency.G01, Frequency.E01, Frequency.J01, Frequency.B1A),

  409.     /** Carrier-phase GPS L1 Y for Rinex3. */
  410.     L1Y(MeasurementType.CARRIER_PHASE, SignalCode.Y, Frequency.G01),

  411.     /** Carrier-phase Galileo E1 C1Z A+B+C / QZSS L1 L1-SAIF for Rinex3, Beidou B1A for Rinex3.03. */
  412.     L1Z(MeasurementType.CARRIER_PHASE, SignalCode.Z, Frequency.E01, Frequency.J01, Frequency.B1A),

  413.     /** Carrier-phase GPS L2 C/A / GLONASS G2 C/A for Rinex3. */
  414.     L2C(MeasurementType.CARRIER_PHASE, SignalCode.C, Frequency.G02, Frequency.R02),

  415.     /** Carrier-phase GPS L1(C/A)+(P2-P1) (semi-codeless) for Rinex3. */
  416.     L2D(MeasurementType.CARRIER_PHASE, SignalCode.D, Frequency.G02),

  417.     /** Carrier-phase Beidou B1 I for Rinex3.03. */
  418.     L2I(MeasurementType.CARRIER_PHASE, SignalCode.I, Frequency.B01),

  419.     /** Carrier-phase GPS L2 L2C(L) / QZSS L2 L2C(2) for Rinex3. */
  420.     L2L(MeasurementType.CARRIER_PHASE, SignalCode.L, Frequency.G02, Frequency.J02),

  421.     /** Carrier-phase GPS L2 M for Rinex3. */
  422.     L2M(MeasurementType.CARRIER_PHASE, SignalCode.M, Frequency.G02),

  423.     /** Carrier-phase GPS L2 codeless. */
  424.     L2N(MeasurementType.CARRIER_PHASE, SignalCode.CODELESS, Frequency.G02),

  425.     /** Carrier-phase GPS L2 P(AS off) / GLONASS G2 P for Rinex3. */
  426.     L2P(MeasurementType.CARRIER_PHASE, SignalCode.P, Frequency.G02, Frequency.R02),

  427.     /** Carrier-phase Beidou B1 Q for Rinex3.03. */
  428.     L2Q(MeasurementType.CARRIER_PHASE, SignalCode.Q, Frequency.B01),

  429.     /** Carrier-phase GPS L2 L2C(M) / QZSS L2 L2C(M) for Rinex3. */
  430.     L2S(MeasurementType.CARRIER_PHASE, SignalCode.S, Frequency.G02, Frequency.J02),

  431.     /** Carrier-phase GPS L2 Z-tracking and similar (AS on) for Rinex3. */
  432.     L2W(MeasurementType.CARRIER_PHASE, SignalCode.W, Frequency.G02),

  433.     /** Carrier-phase GPS L2 L2C (M+L) / QZSS L2 L2C(M+L) for Rinex3, Beidou B1 I+Q for Rinex3.03. */
  434.     L2X(MeasurementType.CARRIER_PHASE, SignalCode.X, Frequency.G02, Frequency.J02, Frequency.B01),

  435.     /** Carrier-phase GPS L2 Y for Rinex3. */
  436.     L2Y(MeasurementType.CARRIER_PHASE, SignalCode.Y, Frequency.G02),

  437.     /** Carrier-phase GLONASS G3 I for Rinex3. */
  438.     L3I(MeasurementType.CARRIER_PHASE, SignalCode.I, Frequency.R03),

  439.     /** Carrier-phase GLONASS G3 Q for Rinex3. */
  440.     L3Q(MeasurementType.CARRIER_PHASE, SignalCode.Q, Frequency.R03),

  441.     /** Carrier-phase GLONASS G3 I+Q for Rinex3. */
  442.     L3X(MeasurementType.CARRIER_PHASE, SignalCode.X, Frequency.R03),

  443.     /** Carrier-phase GLONASS G1a L1OCd for Rinex3. */
  444.     L4A(MeasurementType.CARRIER_PHASE, SignalCode.A, Frequency.R04),

  445.     /** Carrier-phase GLONASS G1a L1OCp for Rinex3. */
  446.     L4B(MeasurementType.CARRIER_PHASE, SignalCode.B, Frequency.R04),

  447.     /** Carrier-phase GLONASS G1a L1OCd+L1OCd for Rinex3. */
  448.     L4X(MeasurementType.CARRIER_PHASE, SignalCode.X, Frequency.R04),

  449.     /** Carrier-phase IRNSS L5 A for Rinex3. */
  450.     L5A(MeasurementType.CARRIER_PHASE, SignalCode.A, Frequency.I05),

  451.     /** Carrier-phase IRNSS L5 B for Rinex3. */
  452.     L5B(MeasurementType.CARRIER_PHASE, SignalCode.B, Frequency.I05),

  453.     /** Carrier-phase IRNSS L5 C for Rinex3. */
  454.     L5C(MeasurementType.CARRIER_PHASE, SignalCode.C, Frequency.I05),

  455.     /** Carrier-phase QZSS L5 / Beidou B2a Data D for Rinex3. */
  456.     L5D(MeasurementType.CARRIER_PHASE, SignalCode.D, Frequency.J05, Frequency.B2A),

  457.     /** Carrier-phase GPS L5 I/ Galileo E5a F/NAV OS / SBAS L5 I / QZSS L5 I for Rinex3. */
  458.     L5I(MeasurementType.CARRIER_PHASE, SignalCode.I, Frequency.G05, Frequency.E05, Frequency.S05, Frequency.J05),

  459.     /** Carrier-phase QZSS L5 P / Beidou B2a Pilot for Rinex3. */
  460.     L5P(MeasurementType.CARRIER_PHASE, SignalCode.P, Frequency.J05, Frequency.B2A),

  461.     /** Carrier-phase GPS L5 Q/ Galileo E5a Q / SBAS L5 Q / QZSS L5 Q for Rinex3. */
  462.     L5Q(MeasurementType.CARRIER_PHASE, SignalCode.Q, Frequency.G05, Frequency.E05, Frequency.S05, Frequency.J05),

  463.     /** Carrier-phase GPS L5 I+Q/ Galileo E5a I+Q / SBAS L5 I+Q / QZSS L5 I+Q / IRNSS L5 B+C / Beidou B2a Data+Pilot for Rinex3. */
  464.     L5X(MeasurementType.CARRIER_PHASE, SignalCode.X, Frequency.G05, Frequency.E05, Frequency.S05, Frequency.J05, Frequency.I05, Frequency.B2A),

  465.     /** Carrier-phase QZSS L5 D+P for Rinex3. */
  466.     L5Z(MeasurementType.CARRIER_PHASE, SignalCode.Z, Frequency.J05),

  467.     /** Carrier-phase Galileo E6 A PRS / GLONASS G2a L2CSI / Beidou B3A for Rinex3. */
  468.     L6A(MeasurementType.CARRIER_PHASE, SignalCode.A, Frequency.E06, Frequency.R06, Frequency.B03),

  469.     /** Carrier-phase Galileo E6 B C/NAV CS / GLONASS G2a L2OCp for Rinex3. */
  470.     L6B(MeasurementType.CARRIER_PHASE, SignalCode.B, Frequency.E06, Frequency.R06),

  471.     /** Carrier-phase Galileo E6 C no data for Rinex3. */
  472.     L6C(MeasurementType.CARRIER_PHASE, SignalCode.C, Frequency.E06),

  473.     /** Carrier-phase Beidou B3A for Rinex3. */
  474.     L6D(MeasurementType.CARRIER_PHASE, SignalCode.D, Frequency.B3A),

  475.     /** Carrier-phase QZSS L6E for Rinex3. */
  476.     L6E(MeasurementType.CARRIER_PHASE, SignalCode.E, Frequency.J06),

  477.     /** Carrier-phase Beidou B3 I for Rinex3. */
  478.     L6I(MeasurementType.CARRIER_PHASE, SignalCode.I, Frequency.B03),

  479.     /** Carrier-phase QZSS LEX(6) L for Rinex3. */
  480.     L6L(MeasurementType.CARRIER_PHASE, SignalCode.L, Frequency.J06),

  481.     /** Carrier-phase Beidou B3A for Rinex3. */
  482.     L6P(MeasurementType.CARRIER_PHASE, SignalCode.P, Frequency.B3A),

  483.     /** Carrier-phase Beidou B3 Q for Rinex3. */
  484.     L6Q(MeasurementType.CARRIER_PHASE, SignalCode.Q, Frequency.B03),

  485.     /** Carrier-phase QZSS LEX(6) S for Rinex3. */
  486.     L6S(MeasurementType.CARRIER_PHASE, SignalCode.S, Frequency.J06),

  487.     /** Carrier-phase Galileo E6 B+C / QZSS LEX(6) S+L / Beidou B3 I+Q / GLONASS G2a L2CSI+L2OCp for Rinex3. */
  488.     L6X(MeasurementType.CARRIER_PHASE, SignalCode.X, Frequency.E06, Frequency.J06, Frequency.B03, Frequency.R06),

  489.     /** Carrier-phase Galileo E6 A+B+C / QZSS L6(D+E) / Beidou B3A for Rinex3. */
  490.     L6Z(MeasurementType.CARRIER_PHASE, SignalCode.Z, Frequency.E06, Frequency.J06, Frequency.B3A),

  491.     /** Carrier-phase Beidou B2b Data for Rinex3. */
  492.     L7D(MeasurementType.CARRIER_PHASE, SignalCode.D, Frequency.B02, Frequency.B2B),

  493.     /** Carrier-phase Galileo E5b I I/NAV OS/CS/SoL / Beidou B2 I for Rinex3. */
  494.     L7I(MeasurementType.CARRIER_PHASE, SignalCode.I, Frequency.E07, Frequency.B02),

  495.     /** Carrier-phase Beidou B2b Pilot for Rinex3. */
  496.     L7P(MeasurementType.CARRIER_PHASE, SignalCode.P, Frequency.B02, Frequency.B2B),

  497.     /** Carrier-phase Galileo Q no data / Beidou B2 Q for Rinex3. */
  498.     L7Q(MeasurementType.CARRIER_PHASE, SignalCode.Q, Frequency.E07, Frequency.B02),

  499.     /** Carrier-phase Galileo E5b I+Q / Beidou B2 I+Q for Rinex3. */
  500.     L7X(MeasurementType.CARRIER_PHASE, SignalCode.X, Frequency.E07, Frequency.B02),

  501.     /** Carrier-phase Beidou B2b Data+Pilot for Rinex3. */
  502.     L7Z(MeasurementType.CARRIER_PHASE, SignalCode.Z, Frequency.B02, Frequency.B2B),

  503.     /** Carrier-phase Beidou B2(B2a+B2b) Data for Rinex3. */
  504.     L8D(MeasurementType.CARRIER_PHASE, SignalCode.D, Frequency.B08),

  505.     /** Carrier-phase Galileo E5(E5a+E5b) I for Rinex3. */
  506.     L8I(MeasurementType.CARRIER_PHASE, SignalCode.I, Frequency.E08),

  507.     /** Carrier-phase Beidou B2(B2a+B2b) Pilot for Rinex3. */
  508.     L8P(MeasurementType.CARRIER_PHASE, SignalCode.P, Frequency.B08),

  509.     /** Carrier-phase Galileo E5(E5a+E5b) Q for Rinex3. */
  510.     L8Q(MeasurementType.CARRIER_PHASE, SignalCode.Q, Frequency.E08),

  511.     /** Carrier-phase Galileo E5(E5a+E5b) I+Q / Beidou B2(B2a+B2b) Data+Pilot for Rinex3. */
  512.     L8X(MeasurementType.CARRIER_PHASE, SignalCode.X, Frequency.E08, Frequency.B08),

  513.     /** Carrier-phase IRNSS S A for Rinex3. */
  514.     L9A(MeasurementType.CARRIER_PHASE, SignalCode.A, Frequency.I09),

  515.     /** Carrier-phase IRNSS S B for Rinex3. */
  516.     L9B(MeasurementType.CARRIER_PHASE, SignalCode.B, Frequency.I09),

  517.     /** Carrier-phase IRNSS S C for Rinex3. */
  518.     L9C(MeasurementType.CARRIER_PHASE, SignalCode.C, Frequency.I09),

  519.     /** Carrier-phase IRNSS S B+C for Rinex3. */
  520.     L9X(MeasurementType.CARRIER_PHASE, SignalCode.X, Frequency.I09),

  521.     /** Carrier-phase for Rinex3. */
  522.     L0(MeasurementType.CARRIER_PHASE, SignalCode.CODELESS),

  523.     /** Signal-strength Galileo E1 A / Beidou B1 B1A for Rinex3. */
  524.     S1A(MeasurementType.SIGNAL_STRENGTH, SignalCode.A, Frequency.E01, Frequency.B1A),

  525.     /** Signal-strength Galileo E1 I/NAV OS/CS/SoL / QZSS geo signal for Rinex3. */
  526.     S1B(MeasurementType.SIGNAL_STRENGTH, SignalCode.B, Frequency.E01, Frequency.J01),

  527.     /** Signal-strength GPS L1 C/A / GLONASS G1 C/A / Galileo E1 C / SBAS L1 C/A / QZSS L1 C/A for Rinex3. */
  528.     S1C(MeasurementType.SIGNAL_STRENGTH, SignalCode.C, Frequency.G01, Frequency.R01, Frequency.E01, Frequency.S01, Frequency.J01),

  529.     /** Signal-strength Beidou B1 Data for Rinex3. */
  530.     S1D(MeasurementType.SIGNAL_STRENGTH, SignalCode.D, Frequency.B1A),

  531.     /** Signal-strength QZSS L1 C/B for Rinex3. */
  532.     S1E(MeasurementType.SIGNAL_STRENGTH, SignalCode.C, Frequency.J01),

  533.     /** Signal-strength Beidou B1 I for Rinex3. */
  534.     S1I(MeasurementType.SIGNAL_STRENGTH, SignalCode.I, Frequency.B01),

  535.     /** Signal-strength GPS L1 L1C(P) / QZSS L1 L1C(P) for Rinex3, Beidou B1A for Rinex3.03. */
  536.     S1L(MeasurementType.SIGNAL_STRENGTH, SignalCode.L, Frequency.G01, Frequency.J01, Frequency.B1A),

  537.     /** Signal-strength GPS L2 M for Rinex3. */
  538.     S1M(MeasurementType.SIGNAL_STRENGTH, SignalCode.M, Frequency.G02),

  539.     /** Signal-strength GPS L1 codeless / Beidou B1 codeless for Rinex3. */
  540.     S1N(MeasurementType.SIGNAL_STRENGTH, SignalCode.CODELESS, Frequency.G01, Frequency.B1A),

  541.     /** Signal-strength GPS L2 P(AS off) / GLONASS G2 P / Beidou B1 Pilot for Rinex3. */
  542.     S1P(MeasurementType.SIGNAL_STRENGTH, SignalCode.P, Frequency.G02, Frequency.R02, Frequency.B1A),

  543.     /** Signal-strength GPS L1 L1C(D) / QZSS L1 L1C(D) for Rinex3, Beidou B1A for Rinex3.03. */
  544.     S1S(MeasurementType.SIGNAL_STRENGTH, SignalCode.S, Frequency.G01, Frequency.J01, Frequency.B1A),

  545.     /** Signal-strength GPS L1 Z-tracking and similar (AS on) for Rinex3. */
  546.     S1W(MeasurementType.SIGNAL_STRENGTH, SignalCode.W, Frequency.G01),

  547.     /** Signal-strength GPS L1 L1C (D+P) / Galileo E1 B+C / QZSS L1 L1C(D+P) / Beidou B1 Data+Pilot for Rinex3. */
  548.     S1X(MeasurementType.SIGNAL_STRENGTH, SignalCode.X, Frequency.G01, Frequency.E01, Frequency.J01, Frequency.B1A),

  549.     /** Signal-strength GPS L1 Y for Rinex3. */
  550.     S1Y(MeasurementType.SIGNAL_STRENGTH, SignalCode.Y, Frequency.G01),

  551.     /** Signal-strength Galileo E1 C1Z A+B+C / QZSS L1 L1-SAIF for Rinex3, Beidou B1A for Rinex3.03. */
  552.     S1Z(MeasurementType.SIGNAL_STRENGTH, SignalCode.Z, Frequency.E01, Frequency.J01, Frequency.B1A),

  553.     /** Signal-strength GPS L2 C/A / GLONASS G2 C/A for Rinex3. */
  554.     S2C(MeasurementType.SIGNAL_STRENGTH, SignalCode.C, Frequency.G02, Frequency.R02),

  555.     /** Signal-strength GPS L1(C/A)+(P2-P1) (semi-codeless) for Rinex3. */
  556.     S2D(MeasurementType.SIGNAL_STRENGTH, SignalCode.D, Frequency.G02),

  557.     /** Signal-strength Beidou B1 I for Rinex3.03. */
  558.     S2I(MeasurementType.SIGNAL_STRENGTH, SignalCode.I,  Frequency.B01),

  559.     /** Signal-strength GPS L2 L2C(L) / QZSS L2 L2C(2) for Rinex3. */
  560.     S2L(MeasurementType.SIGNAL_STRENGTH, SignalCode.L, Frequency.G02, Frequency.J02),

  561.     /** Signal-strength GPS L2 M for Rinex3. */
  562.     S2M(MeasurementType.SIGNAL_STRENGTH, SignalCode.M, Frequency.G02),

  563.     /** Signal-strength GPS L2 codeless for Rinex3. */
  564.     S2N(MeasurementType.SIGNAL_STRENGTH, SignalCode.CODELESS, Frequency.G02),

  565.     /** Signal-strength GPS L2 P(AS off) / GLONASS G2 P for Rinex3. */
  566.     S2P(MeasurementType.SIGNAL_STRENGTH, SignalCode.P, Frequency.G02, Frequency.R02),

  567.     /** Signal-strength Beidou B1 Q for Rinex3.03. */
  568.     S2Q(MeasurementType.SIGNAL_STRENGTH, SignalCode.Q, Frequency.B01),

  569.     /** Signal-strength GPS L2 L2C(M) / QZSS L2 L2C(M) for Rinex3. */
  570.     S2S(MeasurementType.SIGNAL_STRENGTH, SignalCode.S, Frequency.G02, Frequency.J02),

  571.     /** Signal-strength GPS L2 Z-tracking and similar (AS on) for Rinex3. */
  572.     S2W(MeasurementType.SIGNAL_STRENGTH, SignalCode.W, Frequency.G02),

  573.     /** Signal-strength GPS L2 L2C (M+L) / QZSS L2 L2C(M+L) for Rinex3, Beidou B1 I+Q for Rinex3.03. */
  574.     S2X(MeasurementType.SIGNAL_STRENGTH, SignalCode.X, Frequency.G02, Frequency.J02, Frequency.B01),

  575.     /** Signal-strength GPS L2 Y for Rinex3. */
  576.     S2Y(MeasurementType.SIGNAL_STRENGTH, SignalCode.Y, Frequency.G02),

  577.     /** Signal-strength GLONASS G3 I for Rinex3. */
  578.     S3I(MeasurementType.SIGNAL_STRENGTH, SignalCode.I, Frequency.R03),

  579.     /** Signal-strength GLONASS G3 Q for Rinex3. */
  580.     S3Q(MeasurementType.SIGNAL_STRENGTH, SignalCode.Q, Frequency.R03),

  581.     /** Signal-strength GLONASS G3 I+Q for Rinex3. */
  582.     S3X(MeasurementType.SIGNAL_STRENGTH, SignalCode.X, Frequency.R03),

  583.     /** Signal-strength GLONASS G1a L1OCd for Rinex3. */
  584.     S4A(MeasurementType.SIGNAL_STRENGTH, SignalCode.A, Frequency.R04),

  585.     /** Signal-strength GLONASS G1a L1OCp for Rinex3. */
  586.     S4B(MeasurementType.SIGNAL_STRENGTH, SignalCode.B, Frequency.R04),

  587.     /** Signal-strength GLONASS G1a L1OCd+L1OCd for Rinex3. */
  588.     S4X(MeasurementType.SIGNAL_STRENGTH, SignalCode.X, Frequency.R04),

  589.     /** Signal-strength IRNSS L5 A for Rinex3. */
  590.     S5A(MeasurementType.SIGNAL_STRENGTH, SignalCode.A, Frequency.I05),

  591.     /** Signal-strength IRNSS L5 B for Rinex3. */
  592.     S5B(MeasurementType.SIGNAL_STRENGTH, SignalCode.B, Frequency.I05),

  593.     /** Signal-strength IRNSS L5 C for Rinex3. */
  594.     S5C(MeasurementType.SIGNAL_STRENGTH, SignalCode.C, Frequency.I05),

  595.     /** Signal-strength QZSS L5 D / Beidou B2a Data for Rinex3. */
  596.     S5D(MeasurementType.SIGNAL_STRENGTH, SignalCode.D, Frequency.J05, Frequency.B2A),

  597.     /** Signal-strength GPS L5 I/ Galileo E5a F/NAV OS / SBAS L5 I / QZSS L5 I for Rinex3. */
  598.     S5I(MeasurementType.SIGNAL_STRENGTH, SignalCode.I, Frequency.G05, Frequency.E05, Frequency.S05, Frequency.J05),

  599.     /** Signal-strength QZSS L5 P / Beidou B2a Pilot for Rinex3. */
  600.     S5P(MeasurementType.SIGNAL_STRENGTH, SignalCode.P, Frequency.J05, Frequency.B2A),

  601.     /** Signal-strength GPS L5 Q/ Galileo E5a Q / SBAS L5 Q / QZSS L5 Q for Rinex3. */
  602.     S5Q(MeasurementType.SIGNAL_STRENGTH, SignalCode.Q, Frequency.G05, Frequency.E05, Frequency.S05, Frequency.J05),

  603.     /** Signal-strength GPS L5 I+Q/ Galileo E5a I+Q / SBAS L5 I+Q / QZSS L5 I+Q / IRNSS L5 B+C / Beidou B2a Data+Pilot for Rinex3. */
  604.     S5X(MeasurementType.SIGNAL_STRENGTH, SignalCode.X, Frequency.G05, Frequency.E05, Frequency.S05, Frequency.J05, Frequency.I05, Frequency.B2A),

  605.     /** Signal-strength QZSS L5 D+P for Rinex3. */
  606.     S5Z(MeasurementType.SIGNAL_STRENGTH, SignalCode.Z, Frequency.J05),

  607.     /** Signal-strength Galileo E6 A PRS / GLONASS G2a L2CSI/ Beidou B3A for Rinex3. */
  608.     S6A(MeasurementType.SIGNAL_STRENGTH, SignalCode.A, Frequency.E06, Frequency.R06, Frequency.B03),

  609.     /** Signal-strength Galileo E6 B C/NAV CS / GLONASS G2a L2OCp for Rinex3. */
  610.     S6B(MeasurementType.SIGNAL_STRENGTH, SignalCode.B, Frequency.E06, Frequency.R06),

  611.     /** Signal-strength Galileo E6 C no data for Rinex3. */
  612.     S6C(MeasurementType.SIGNAL_STRENGTH, SignalCode.C, Frequency.E06),

  613.     /** Signal-strength Beidou B3A for Rinex3. */
  614.     S6D(MeasurementType.SIGNAL_STRENGTH, SignalCode.D, Frequency.B3A),

  615.     /** Signal-strength QZSS L6E for Rinex3. */
  616.     S6E(MeasurementType.SIGNAL_STRENGTH, SignalCode.E, Frequency.J06),

  617.     /** Signal-strength Beidou B3 I for Rinex3. */
  618.     S6I(MeasurementType.SIGNAL_STRENGTH, SignalCode.I, Frequency.B03),

  619.     /** Signal-strength QZSS LEX(6) L for Rinex3. */
  620.     S6L(MeasurementType.SIGNAL_STRENGTH, SignalCode.L, Frequency.J06),

  621.     /** Signal-strength Beidou B3A for Rinex3. */
  622.     S6P(MeasurementType.SIGNAL_STRENGTH, SignalCode.P, Frequency.B3A),

  623.     /** Signal-strength Beidou B3 Q for Rinex3. */
  624.     S6Q(MeasurementType.SIGNAL_STRENGTH, SignalCode.Q, Frequency.B03),

  625.     /** Signal-strength QZSS LEX(6) S for Rinex3. */
  626.     S6S(MeasurementType.SIGNAL_STRENGTH, SignalCode.S, Frequency.J06),

  627.     /** Signal-strength Galileo E6 B+C / QZSS LEX(6) S+L / Beidou B3 I+Q / GLONASS G2a L2CSI+L2OCp for Rinex3. */
  628.     S6X(MeasurementType.SIGNAL_STRENGTH, SignalCode.X, Frequency.E06, Frequency.J06, Frequency.B03, Frequency.R06),

  629.     /** Signal-strength Galileo E6 A+B+C / QZSS L6(D+E) / Beidou B3A for Rinex3. */
  630.     S6Z(MeasurementType.SIGNAL_STRENGTH, SignalCode.Z, Frequency.E06, Frequency.J06, Frequency.B3A),

  631.     /** Signal-strength Beidou B2b Data for Rinex3. */
  632.     S7D(MeasurementType.SIGNAL_STRENGTH, SignalCode.D, Frequency.B02, Frequency.B2B),

  633.     /** Signal-strength Galileo E5b I I/NAV OS/CS/SoL / Beidou B2 I for Rinex3. */
  634.     S7I(MeasurementType.SIGNAL_STRENGTH, SignalCode.I, Frequency.E07, Frequency.B02),

  635.     /** Signal-strength Beidou B2b Pilot for Rinex3. */
  636.     S7P(MeasurementType.SIGNAL_STRENGTH, SignalCode.P, Frequency.B02, Frequency.B2B),

  637.     /** Signal-strength Galileo Q no data / Beidou B2 Q for Rinex3. */
  638.     S7Q(MeasurementType.SIGNAL_STRENGTH, SignalCode.Q, Frequency.E07, Frequency.B02),

  639.     /** Signal-strength Galileo E5b I+Q / Beidou B2 I+Q for Rinex3. */
  640.     S7X(MeasurementType.SIGNAL_STRENGTH, SignalCode.X, Frequency.E07, Frequency.B02),

  641.     /** Signal-strength Beidou B2b Data+Pilot for Rinex3. */
  642.     S7Z(MeasurementType.SIGNAL_STRENGTH, SignalCode.Z, Frequency.B02, Frequency.B2B),

  643.     /** Signal-strength Beidou B2(B2a+B2b) Data for Rinex3. */
  644.     S8D(MeasurementType.SIGNAL_STRENGTH, SignalCode.D, Frequency.B08),

  645.     /** Signal-strength Galileo E5(E5a+E5b) I for Rinex3. */
  646.     S8I(MeasurementType.SIGNAL_STRENGTH, SignalCode.I, Frequency.E08),

  647.     /** Signal-strength Beidou B2(B2a+B2b) Pilot for Rinex3. */
  648.     S8P(MeasurementType.SIGNAL_STRENGTH, SignalCode.P, Frequency.B08),

  649.     /** Signal-strength Galileo E5(E5a+E5b) for Rinex3. */
  650.     S8Q(MeasurementType.SIGNAL_STRENGTH, SignalCode.Q, Frequency.E08),

  651.     /** Signal-strength Galileo E5(E5a+E5b) I+Q / Beidou B2(B2a+B2b) Data+Pilot for Rinex3. */
  652.     S8X(MeasurementType.SIGNAL_STRENGTH, SignalCode.X, Frequency.E08, Frequency.B08),

  653.     /** Signal-strength IRNSS S A for Rinex3. */
  654.     S9A(MeasurementType.SIGNAL_STRENGTH, SignalCode.A, Frequency.I09),

  655.     /** Signal-strength IRNSS S B for Rinex3. */
  656.     S9B(MeasurementType.SIGNAL_STRENGTH, SignalCode.B, Frequency.I09),

  657.     /** Signal-strength IRNSS S C for Rinex3. */
  658.     S9C(MeasurementType.SIGNAL_STRENGTH, SignalCode.C, Frequency.I09),

  659.     /** Signal-strength IRNSS S B+C for Rinex3. */
  660.     S9X(MeasurementType.SIGNAL_STRENGTH, SignalCode.X, Frequency.I09),

  661.     /** Signal-strength for Rinex3. */
  662.     S0(MeasurementType.SIGNAL_STRENGTH, SignalCode.CODELESS),

  663.     /** Signal-strength GPS L1 C/A / GLONASS G1 C/A for Rinex2. */
  664.     SA(MeasurementType.SIGNAL_STRENGTH, SignalCode.C, Frequency.G01, Frequency.R01),

  665.     /** Signal-strength GPS L1C for Rinex2. */
  666.     SB(MeasurementType.SIGNAL_STRENGTH, SignalCode.L, Frequency.G01),

  667.     /** Signal-strength GPS L2C for Rinex2. */
  668.     SC(MeasurementType.SIGNAL_STRENGTH, SignalCode.L, Frequency.G02),

  669.     /** Signal-strength GLONASS G2 for Rinex2. */
  670.     SD(MeasurementType.SIGNAL_STRENGTH, SignalCode.C, Frequency.R02);

  671.     /** Measurement type. */
  672.     private final MeasurementType type;

  673.     /** Signal code. */
  674.     private final SignalCode code;

  675.     /** Map of ferquencies. */
  676.     private final Map<SatelliteSystem, Frequency> frequencies;

  677.     /** Simple  constructor.
  678.      * @param type measurement type
  679.      * @param code signal code
  680.      * @param frequencies compatible frequencies
  681.      */
  682.     ObservationType(final MeasurementType type, final SignalCode code, final Frequency... frequencies) {
  683.         this.type = type;
  684.         this.code = code;
  685.         this.frequencies = new HashMap<>(frequencies.length);
  686.         for (final Frequency f : frequencies) {
  687.             this.frequencies.put(f.getSatelliteSystem(), f);
  688.         }
  689.     }

  690.     /** Get the measurement type.
  691.      * @return measurement type
  692.      */
  693.     public MeasurementType getMeasurementType() {
  694.         return type;
  695.     }

  696.     /** Get the signal code.
  697.      * @return signal code
  698.      */
  699.     public SignalCode getSignalCode() {
  700.         return code;
  701.     }

  702.     /** Get the frequency for a specified satellite system.
  703.      * @param system satellite system
  704.      * @return frequency for the satellite system, or null if satellite system not compatible
  705.      */
  706.     public Frequency getFrequency(final SatelliteSystem system) {
  707.         return frequencies.get(system);
  708.     }

  709. }