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 }