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 }