1   /* Copyright 2002-2026 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.files.sinex;
18  
19  import org.orekit.gnss.SatInSystem;
20  import org.orekit.time.AbsoluteDate;
21  import org.orekit.time.TimeScales;
22  
23  import java.util.Map;
24  
25  /**
26   * Container for Solution INdependent EXchange (SINEX) files.
27   * @author Bryan Cazabonne
28   * @author Luc Maisonobe
29   * @since 13.0
30   */
31  public class SinexBias extends AbstractSinex {
32  
33      /** Bias description. */
34      private final BiasDescription description;
35  
36      /** DSB data. */
37      private final Map<String, StationDifferentialSignalBias> stationsDsb;
38  
39      /** DSB data. */
40      private final Map<SatInSystem, SatelliteDifferentialSignalBias> satellitesDsb;
41  
42      /** OSB data. */
43      private final Map<String, StationObservableSpecificSignalBias> stationsOsb;
44  
45      /** OSB data. */
46      private final Map<SatInSystem, SatelliteObservableSpecificSignalBias> satellitesOsb;
47  
48      /** Simple constructor.
49       * @param version       version number
50       * @param timeScales    time scales
51       * @param creationDate  SINEX file creation date
52       * @param startDate     start time of the data used in the Sinex solution
53       * @param endDate       end time of the data used in the Sinex solution
54       * @param description   bias description
55       * @param stationsDsb   DSB data for stations
56       * @param satellitesDsb DSB data for satellites
57       * @param stationsOsb   OSB data for stations
58       * @param satellitesOsb OSB data for satellites
59       * @since 14.0
60       */
61      public SinexBias(final double version, final TimeScales timeScales,
62                       final AbsoluteDate creationDate,
63                       final AbsoluteDate startDate, final AbsoluteDate endDate,
64                       final BiasDescription description,
65                       final Map<String, StationDifferentialSignalBias> stationsDsb,
66                       final Map<SatInSystem, SatelliteDifferentialSignalBias> satellitesDsb,
67                       final Map<String, StationObservableSpecificSignalBias> stationsOsb,
68                       final Map<SatInSystem, SatelliteObservableSpecificSignalBias> satellitesOsb) {
69          super(version, timeScales, creationDate, startDate, endDate);
70          this.description   = description;
71          this.stationsDsb   = stationsDsb;
72          this.satellitesDsb = satellitesDsb;
73          this.stationsOsb   = stationsOsb;
74          this.satellitesOsb = satellitesOsb;
75      }
76  
77      /** Get the bias description.
78       * @return bias description
79       */
80      public BiasDescription getDescription() {
81          return description;
82      }
83  
84      /** Get the DSB data for stations.
85       * @return DSB data for stations, indexed by station site code
86       */
87      public Map<String, StationDifferentialSignalBias> getStationsDsb() {
88          return stationsDsb;
89      }
90  
91      /** Get the DSB data for satellites.
92       * @return DSB data for satellites
93       */
94      public Map<SatInSystem, SatelliteDifferentialSignalBias> getSatellitesDsb() {
95          return satellitesDsb;
96      }
97  
98      /** Get the OSB data for stations.
99       * @return OSB data for stations, indexed by station site code
100      */
101     public Map<String, StationObservableSpecificSignalBias> getStationsOsb() {
102         return stationsOsb;
103     }
104 
105     /** Get the OSB data for satellites.
106      * @return OSB data for satellites
107      */
108     public Map<SatInSystem, SatelliteObservableSpecificSignalBias> getSatellitesOsb() {
109         return satellitesOsb;
110     }
111 
112 }