1   /* Copyright 2002-2025 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  
18  package org.orekit.files.sinex;
19  
20  import org.orekit.gnss.TimeSystem;
21  
22  /** Class to store the bias description parameters.
23   * <p>
24   * This class gives important parameters from the analysis and defines the fields in the block ’BIAS/SOLUTION’
25   * of the loaded Sinex file.
26   * </p>
27   * @author Louis Aucouturier
28   * @since 12.0
29   */
30  public class BiasDescription {
31  
32      /** Determination mode used to generate the bias results. */
33      private String determinationMethod;
34  
35      /** Describes how the included GNSS bias values have to be interpreted and applied. */
36      private String biasMode;
37  
38      /** Time system. */
39      private TimeSystem timeSystem;
40  
41      /** Observation sampling interval used for data analysis (s). */
42      private int observationSampling;
43  
44      /** Parameter spacing interval between the bias value (s). */
45      private int parameterSpacing;
46  
47      /** Simple constructor. */
48      public BiasDescription() {
49          this.determinationMethod = "";
50          this.observationSampling = -1;
51          this.parameterSpacing    = -1;
52      }
53  
54      /** Get the determination mode used to generate the bias results.
55       * <p>
56       * This value is optional. If the value is not present in the file, the method returns an empty string.
57       * </p>
58       * @return the determination mode used to generate the bias results.
59       */
60      public final String getDeterminationMethod() {
61          return determinationMethod;
62      }
63  
64      /** Get the bias mode.
65       * <p>
66       * The bias mode describes how the included GNSS bias values have to be interpreted and applied.
67       * </p>
68       * @return the bias mode
69       */
70      public final String getBiasMode() {
71          return biasMode;
72      }
73  
74      /** Get the time system for DSB data.
75       * @return the time system
76       */
77      public final TimeSystem getTimeSystem() {
78          return timeSystem;
79      }
80  
81      /** Get the observation sampling interval used for data analysis.
82       * <p>
83       * This value is optional. If the value is not present in the file, the method returns -1.
84       * </p>
85       * @return the observation sampling interval used for data analysis in seconds
86       */
87      public final int getObservationSampling() {
88          return observationSampling;
89      }
90  
91      /** Get the parameter spacing interval between the bias value.
92       * <p>
93       * This value is optional. If the value is not present in the file, the method returns -1.
94       * </p>
95       * @return the pParameter spacing interval between the bias value in seconds
96       */
97      public final int getParameterSpacing() {
98          return parameterSpacing;
99      }
100 
101     /** Set the determination mode used to generate the bias results.
102      * @param determinationMethod the determination method to set
103      */
104     public void setDeterminationMethod(final String determinationMethod) {
105         this.determinationMethod = determinationMethod;
106     }
107 
108     /** Set the bias mode.
109      * @param biasMode the bias mode to set
110      */
111     public void setBiasMode(final String biasMode) {
112         this.biasMode = biasMode;
113     }
114 
115     /** Set the time system used for DSB data.
116      * @param timeSystem the time system to set
117      */
118     public void setTimeSystem(final TimeSystem timeSystem) {
119         this.timeSystem = timeSystem;
120     }
121 
122     /** Set the observation sampling interval used for data analysis.
123      * @param observationSampling the observation sampling to set in seconds
124      */
125     public void setObservationSampling(final int observationSampling) {
126         this.observationSampling = observationSampling;
127     }
128 
129     /** Set the parameter spacing interval between the bias value.
130      * @param parameterSpacing the parameter spacing to set in seconds
131      */
132     public void setParameterSpacing(final int parameterSpacing) {
133         this.parameterSpacing = parameterSpacing;
134     }
135 
136 }