1 /* Copyright 2002-2019 CS Systèmes d'Information
2 * Licensed to CS Systèmes d'Information (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.gnss;
18
19 import java.util.Collections;
20 import java.util.List;
21
22 import org.orekit.time.AbsoluteDate;
23 import org.orekit.time.TimeStamped;
24
25
26 /** Observation Data set.
27 * @since 9.2
28 */
29 public class ObservationDataSet implements TimeStamped {
30
31 /** Rinex header associated with this data set. */
32 private final RinexHeader header;
33
34 /** Satellite System. */
35 private final SatelliteSystem satelliteSystem;
36
37 /** PRN Number of the satellite observed. */
38 private final int prnNumber;
39
40 /** Date of the observation. */
41 private final AbsoluteDate tObs;
42
43 /** List of Observation data. */
44 private final List<ObservationData> observationData;
45
46 /** Receiver clock offset (seconds). */
47 private final double rcvrClkOffset;
48
49 /**
50 * Simple constructor.
51 * @param header Rinex header associated with this data set
52 * @param satelliteSystem Satellite system
53 * @param prnNumber PRN number
54 * @param tObs Observation date
55 * @param rcvrClkOffset Receiver clock offset (optional, 0 by default)
56 * @param observationData List of observation data
57 */
58 public ObservationDataSet(final RinexHeader header, final SatelliteSystem satelliteSystem,
59 final int prnNumber, final AbsoluteDate tObs,
60 final double rcvrClkOffset, final List<ObservationData> observationData) {
61 this.header = header;
62 this.satelliteSystem = satelliteSystem;
63 this.prnNumber = prnNumber;
64 this.tObs = tObs;
65 this.observationData = observationData;
66 this.rcvrClkOffset = rcvrClkOffset;
67 }
68
69 /** Get the Rinex header associated with this data set.
70 * @return Rinex header associated with this data set
71 * @since 9.3
72 */
73 public RinexHeader getHeader() {
74 return header;
75 }
76
77 /** Get Satellite System.
78 * @return satellite system of observed satellite
79 */
80 public SatelliteSystem getSatelliteSystem() {
81 return satelliteSystem;
82 }
83
84 /** Get PRN number.
85 * @return PRN number of the observed satellite
86 */
87 public int getPrnNumber() {
88 return prnNumber;
89 }
90
91 /** {@inheritDoc} */
92 @Override
93 public AbsoluteDate getDate() {
94 return tObs;
95 }
96
97 /** Get list of observation data.
98 * @return unmodifiable view of of observation data for the observed satellite
99 */
100 public List<ObservationData> getObservationData() {
101 return Collections.unmodifiableList(observationData);
102 }
103
104 /** Get receiver clock offset.
105 * @return receiver clock offset (it is optional, may be 0)
106 */
107 public double getRcvrClkOffset() {
108 return rcvrClkOffset;
109 }
110
111 }