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 }