1   /* Copyright 2002-2021 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.ilrs;
18  
19  import org.orekit.frames.Frame;
20  
21  /**
22   * Container for Consolidated laser ranging Prediction File (CPF) header.
23   * <p>
24   * Note: Only the required fields are present.
25   * </p>
26   * @author Bryan Cazabonne
27   * @since 10.3
28   */
29  public class CPFHeader extends ILRSHeader {
30  
31      /** Ephemeris source. */
32      private String source;
33  
34      /** Sub-daily Ephemeris Sequence number. */
35      private int subDailySequenceNumber;
36  
37      /** Time between table entries (UTC). */
38      private int step;
39  
40      /** Compatibility with TIVs. */
41      private boolean isCompatibleWithTIVs;
42  
43      /** Reference frame. */
44      private Frame refFrame;
45  
46      /** Reference frame identifier. */
47      private int refFrameId;
48  
49      /** Rotational angle type. */
50      private int rotationalAngleType;
51  
52      /** Center of mass correction. */
53      private boolean isCenterOfMassCorrectionApplied;
54  
55      /** Pulse Repetition Frequency (PRF) [Hz]. */
56      private double prf;
57  
58      /** Transponder transmit delay [s]. */
59      private double transpTransmitDelay;
60  
61      /** Transponder UTC offset [s]. */
62      private double transpUtcOffset;
63  
64      /** Transponder Oscillator Drift in parts. */
65      private double transpOscDrift;
66  
67      /** Transponder Clock Reference Time . */
68      private double transpClkRef;
69  
70      /** Approximate center of mass to reflector offset [m]. */
71      private double centerOfMassOffset;
72  
73      /**
74       * Get the ephemeris source.
75       * @return the ephemeris source
76       */
77      public String getSource() {
78          return source;
79      }
80  
81      /**
82       * Set the ephemeris source.
83       * @param source the ephemeris source to set
84       */
85      public void setSource(final String source) {
86          this.source = source;
87      }
88  
89      /**
90       * Get the sub-daily ephemeris sequence number.
91       * @return the sub-daily ephemeris sequence number
92       */
93      public int getSubDailySequenceNumber() {
94          return subDailySequenceNumber;
95      }
96  
97      /**
98       * Set the sub-daily ephemeris sequence number.
99       * @param subDailySequenceNumber the sub-daily ephemeris sequence number to set
100      */
101     public void setSubDailySequenceNumber(final int subDailySequenceNumber) {
102         this.subDailySequenceNumber = subDailySequenceNumber;
103     }
104 
105     /**
106      * Get the time between table entries.
107      * @return the time between table entries in seconds
108      */
109     public int getStep() {
110         return step;
111     }
112 
113     /**
114      * Set the time between table entries.
115      * @param step the time to set in seconds
116      */
117     public void setStep(final int step) {
118         this.step = step;
119     }
120 
121     /**
122      * Get the flag for compatibility with TIVs.
123      * @return true if compatible with TIVs
124      */
125     public boolean isCompatibleWithTIVs() {
126         return isCompatibleWithTIVs;
127     }
128 
129     /**
130      * Set the flag for compatibility with TIVs.
131      * @param isCompatibleWithTIVs true if compatible with TIVs
132      */
133     public void setIsCompatibleWithTIVs(final boolean isCompatibleWithTIVs) {
134         this.isCompatibleWithTIVs = isCompatibleWithTIVs;
135     }
136 
137     /**
138      * Get the reference frame.
139      * @return the reference frame
140      */
141     public Frame getRefFrame() {
142         return refFrame;
143     }
144 
145     /**
146      * Set the reference frame.
147      * @param refFrame the reference frame to set
148      */
149     public void setRefFrame(final Frame refFrame) {
150         this.refFrame = refFrame;
151     }
152 
153     /**
154      * Get the reference frame identifier.
155      * @return the reference frame
156      */
157     public int getRefFrameId() {
158         return refFrameId;
159     }
160 
161     /**
162      * Set the reference frame identifier.
163      * @param refFrameId the reference frame identifier to set
164      */
165     public void setRefFrameId(final int refFrameId) {
166         this.refFrameId = refFrameId;
167     }
168 
169     /**
170      * Get the rotation angle type.
171      * @return the rotation angle type
172      */
173     public int getRotationalAngleType() {
174         return rotationalAngleType;
175     }
176 
177     /**
178      * Set the rotation angle type.
179      * @param rotationalAngleType the rotation angle type to set
180      */
181     public void setRotationalAngleType(final int rotationalAngleType) {
182         this.rotationalAngleType = rotationalAngleType;
183     }
184 
185     /**
186      * Get the flag telling if the center of mass correction is applied.
187      * @return true if center of mass correction is applied
188      */
189     public boolean isCenterOfMassCorrectionApplied() {
190         return isCenterOfMassCorrectionApplied;
191     }
192 
193     /**
194      * Set the flag telling if the center of mass correction is applied.
195      * @param isCenterOfMassCorrectionApplied true if center of mass correction is applied
196      */
197     public void setIsCenterOfMassCorrectionApplied(final boolean isCenterOfMassCorrectionApplied) {
198         this.isCenterOfMassCorrectionApplied = isCenterOfMassCorrectionApplied;
199     }
200 
201     /**
202      * Get the Pulse Repetition Frequency (PRF).
203      * @return the Pulse Repetition Frequency (PRF) in Hz
204      */
205     public double getPrf() {
206         return prf;
207     }
208 
209     /**
210      * Set the Pulse Repetition Frequency (PRF).
211      * @param prf the ulse Repetition Frequency (PRF) to set in Hz
212      */
213     public void setPrf(final double prf) {
214         this.prf = prf;
215     }
216 
217     /**
218      * Get the transponder transmit delay.
219      * @return the transponder transmit delay in seconds
220      */
221     public double getTranspTransmitDelay() {
222         return transpTransmitDelay;
223     }
224 
225     /**
226      * Set the transponder transmit delay.
227      * @param transpTransmitDelay the transponder transmit delay to set in seconds
228      */
229     public void setTranspTransmitDelay(final double transpTransmitDelay) {
230         this.transpTransmitDelay = transpTransmitDelay;
231     }
232 
233     /**
234      * Get the transponder UTC offset.
235      * @return the transponder UTC offset in seconds
236      */
237     public double getTranspUtcOffset() {
238         return transpUtcOffset;
239     }
240 
241     /**
242      * Set the transponder UTC offset.
243      * @param transpUtcOffset the UTC offset to set in seconds
244      */
245     public void setTranspUtcOffset(final double transpUtcOffset) {
246         this.transpUtcOffset = transpUtcOffset;
247     }
248 
249     /**
250      * Get the transponder Oscillator Drift in parts in 10^15.
251      * @return the transponder Oscillator Drift in parts.
252      */
253     public double getTranspOscDrift() {
254         return transpOscDrift;
255     }
256 
257     /**
258      * Set the transponder Oscillator Drift in parts.
259      * @param transpOscDrift the transponder Oscillator Drift in parts in 10^15 to set
260      */
261     public void setTranspOscDrift(final double transpOscDrift) {
262         this.transpOscDrift = transpOscDrift;
263     }
264 
265     /**
266      * Get the transponder Clock Reference Time.
267      * @return the transponder Clock Reference Time
268      */
269     public double getTranspClkRef() {
270         return transpClkRef;
271     }
272 
273     /**
274      * Set the transponder Clock Reference Time.
275      * @param transpClkRef the transponder Clock Reference Time to set
276      */
277     public void setTranspClkRef(final double transpClkRef) {
278         this.transpClkRef = transpClkRef;
279     }
280 
281     /**
282      * Get the approximate center of mass to reflector offset.
283      * @return the approximate center of mass to reflector offset in meters
284      */
285     public double getCenterOfMassOffset() {
286         return centerOfMassOffset;
287     }
288 
289     /**
290      * Set the approximate center of mass to reflector offset.
291      * @param centerOfMassOffset the offset to set in meters
292      */
293     public void setCenterOfMassOffset(final double centerOfMassOffset) {
294         this.centerOfMassOffset = centerOfMassOffset;
295     }
296 
297 }