1 /* Copyright 2002-2022 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.time.AbsoluteDate;
20 import org.orekit.time.DateComponents;
21
22 /**
23 * Container for common data contains in International Laser Ranging Service (ILRS) files header.
24 * @see CPFHeader
25 * @see CRDHeader
26 * @author Bryan Cazabonne
27 * @since 10.3
28 */
29 public abstract class ILRSHeader {
30
31 /** File format. */
32 private String format;
33
34 /** File version. */
35 private int version;
36
37 /** Date component of the ephemeris production. */
38 private DateComponents productionEpoch;
39
40 /** Hour of ephemeris production. */
41 private int productionHour;
42
43 /** Target name from official ILRS list (e.g. lageos1). */
44 private String name;
45
46 /** ILRS Satellite ID. */
47 private String ilrsSatelliteId;
48
49 /** SIC (Provided by ILRS; set to “-1” for targets without SIC). */
50 private String sic;
51
52 /** NORAD ID. */
53 private String noradId;
54
55 /** Target class. */
56 private int targetClass;
57
58 /** Target location (Earth orbit, Lunar orbit, Mars orbit, ...) .*/
59 private int targetLocation;
60
61 /** Starting epoch (UTC). */
62 private AbsoluteDate startEpoch;
63
64 /** Ending epoch (UTC). */
65 private AbsoluteDate endEpoch;
66
67 /** Sequence number. */
68 private int sequenceNumber;
69
70 /**
71 * Get the file format.
72 * @return the file format
73 */
74 public String getFormat() {
75 return format;
76 }
77
78 /**
79 * Set the file format.
80 * @param format the format to set
81 */
82 public void setFormat(final String format) {
83 this.format = format;
84 }
85
86 /**
87 * Get the format version.
88 * @return the format version
89 */
90 public int getVersion() {
91 return version;
92 }
93
94 /**
95 * Set the format version.
96 * @param version the version to set
97 */
98 public void setVersion(final int version) {
99 this.version = version;
100 }
101
102 /**
103 * Get the date component of the ephemeris production.
104 * @return the date component of the ephemeris production
105 */
106 public DateComponents getProductionEpoch() {
107 return productionEpoch;
108 }
109
110 /**
111 * Set the date component of the ephemeris production.
112 * @param productionEpoch the date component to set
113 */
114 public void setProductionEpoch(final DateComponents productionEpoch) {
115 this.productionEpoch = productionEpoch;
116 }
117
118 /**
119 * Get the hour of ephemeris production (UTC).
120 * @return the hour of ephemeris production
121 */
122 public int getProductionHour() {
123 return productionHour;
124 }
125
126 /**
127 * Set the hour of ephemeris production.
128 * @param productionHour the hour of ephemeris production to set
129 */
130 public void setProductionHour(final int productionHour) {
131 this.productionHour = productionHour;
132 }
133
134 /**
135 * Get the satellite target name.
136 * @return the satellite target name
137 */
138 public String getName() {
139 return name;
140 }
141
142 /**
143 * Set the satellite target name.
144 * @param name the satellite target name to set
145 */
146 public void setName(final String name) {
147 this.name = name;
148 }
149
150 /**
151 * Get the IRLS satellite ID (based on COSPAR ID).
152 * @return the IRLS satellite ID
153 */
154 public String getIlrsSatelliteId() {
155 return ilrsSatelliteId;
156 }
157
158 /**
159 * Set the IRLS satellite ID (based on COSPAR ID).
160 * @param ilrsSatelliteId the IRLS satellite ID to set
161 */
162 public void setIlrsSatelliteId(final String ilrsSatelliteId) {
163 this.ilrsSatelliteId = ilrsSatelliteId;
164 }
165
166 /**
167 * Get the SIC ID.
168 * @return the SIC ID
169 */
170 public String getSic() {
171 return sic;
172 }
173
174 /**
175 * Set the SIC ID.
176 * @param sic the SIC ID to set
177 */
178 public void setSic(final String sic) {
179 this.sic = sic;
180 }
181
182 /**
183 * Get the satellite NORAD ID (i.e. Satellite Catalog Number).
184 * @return the satellite NORAD ID
185 */
186 public String getNoradId() {
187 return noradId;
188 }
189
190 /**
191 * Set the satellite NORAD ID.
192 * @param noradId the NORAD ID to set
193 */
194 public void setNoradId(final String noradId) {
195 this.noradId = noradId;
196 }
197
198 /**
199 * Get the target class.
200 * <p>
201 * 0 = no retroreflector; 1 = passive retroreflector; ...
202 * </p>
203 * @return the target class
204 */
205 public int getTargetClass() {
206 return targetClass;
207 }
208
209 /**
210 * Set the target class.
211 * <p>
212 * 0 = no retroreflector; 1 = passive retroreflector; ...
213 * </p>
214 * @param targetClass the target class to set
215 */
216 public void setTargetClass(final int targetClass) {
217 this.targetClass = targetClass;
218 }
219
220 /**
221 * Get the target location.
222 * <p>
223 * 1 = Earth orbit; 2 = Lunar orbit; ...
224 * </p>
225 * @return the target location
226 */
227 public int getTargetLocation() {
228 return targetLocation;
229 }
230
231 /**
232 * Set the target location.
233 * <p>
234 * 1 = Earth orbit; 2 = Lunar orbit; ...
235 * </p>
236 * @param targetLocation the target location to set
237 */
238 public void setTargetLocation(final int targetLocation) {
239 this.targetLocation = targetLocation;
240 }
241
242 /**
243 * Get the starting epoch (UTC).
244 * @return the starting epoch
245 */
246 public AbsoluteDate getStartEpoch() {
247 return startEpoch;
248 }
249
250 /**
251 * Set the staring epoch (UTC).
252 * @param startEpoch the starting epoch to set
253 */
254 public void setStartEpoch(final AbsoluteDate startEpoch) {
255 this.startEpoch = startEpoch;
256 }
257
258 /**
259 * Get the ending epoch (UTC).
260 * @return the ending epoch
261 */
262 public AbsoluteDate getEndEpoch() {
263 return endEpoch;
264 }
265
266 /**
267 * Set the ending epoch (UTC).
268 * @param endEpoch the ending epoch to set
269 */
270 public void setEndEpoch(final AbsoluteDate endEpoch) {
271 this.endEpoch = endEpoch;
272 }
273
274 /**
275 * Get the ephemeris sequence number.
276 * @return the ephemeris sequence number
277 */
278 public int getSequenceNumber() {
279 return sequenceNumber;
280 }
281
282 /**
283 * Set the ephemeris sequence number.
284 * @param sequenceNumber the ephemeris sequence number to set
285 */
286 public void setSequenceNumber(final int sequenceNumber) {
287 this.sequenceNumber = sequenceNumber;
288 }
289
290 }