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.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 * Combined observation data set.
27 * @author Bryan Cazabonne
28 * @since 10.1
29 */
30 public class CombinedObservationDataSet implements TimeStamped {
31
32 /** Rinex header associated with this data set. */
33 private final RinexObservationHeader header;
34
35 /** Satellite System. */
36 private final SatelliteSystem satelliteSystem;
37
38 /** PRN Number of the satellite observed. */
39 private final int prnNumber;
40
41 /** Date of the observation. */
42 private final AbsoluteDate tObs;
43
44 /** List of Observation data. */
45 private final List<CombinedObservationData> observationData;
46
47 /** Receiver clock offset (seconds). */
48 private final double rcvrClkOffset;
49
50 /**
51 * Simple constructor.
52 * @param header Rinex header associated with this data set
53 * @param satelliteSystem Satellite system
54 * @param prnNumber PRN number
55 * @param tObs Observation date
56 * @param rcvrClkOffset Receiver clock offset (optional, 0 by default)
57 * @param observationData List of combined observation data
58 */
59 public CombinedObservationDataSet(final RinexObservationHeader header, final SatelliteSystem satelliteSystem,
60 final int prnNumber, final AbsoluteDate tObs,
61 final double rcvrClkOffset, final List<CombinedObservationData> observationData) {
62 this.header = header;
63 this.satelliteSystem = satelliteSystem;
64 this.prnNumber = prnNumber;
65 this.tObs = tObs;
66 this.observationData = observationData;
67 this.rcvrClkOffset = rcvrClkOffset;
68 }
69
70 /** Get the Rinex header associated with this data set.
71 * @return Rinex header associated with this data set
72 * @since 9.3
73 */
74 public RinexObservationHeader getHeader() {
75 return header;
76 }
77
78 /** Get Satellite System.
79 * @return satellite system of observed satellite
80 */
81 public SatelliteSystem getSatelliteSystem() {
82 return satelliteSystem;
83 }
84
85 /** Get PRN number.
86 * @return PRN number of the observed satellite
87 */
88 public int getPrnNumber() {
89 return prnNumber;
90 }
91
92 /** {@inheritDoc} */
93 @Override
94 public AbsoluteDate getDate() {
95 return tObs;
96 }
97
98 /** Get list of observation data.
99 * @return unmodifiable view of of observation data for the observed satellite
100 */
101 public List<CombinedObservationData> getObservationData() {
102 return Collections.unmodifiableList(observationData);
103 }
104
105 /** Get receiver clock offset.
106 * @return receiver clock offset (it is optional, may be 0)
107 */
108 public double getRcvrClkOffset() {
109 return rcvrClkOffset;
110 }
111
112 }