1 /* Copyright 2002-2025 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.estimation.measurements.gnss; 18 19 import java.util.List; 20 21 import org.orekit.files.rinex.observation.ObservationData; 22 import org.orekit.gnss.MeasurementType; 23 24 /** 25 * Combined observation data. 26 * @author Bryan Cazabonne 27 * @since 10.1 28 */ 29 public class CombinedObservationData { 30 31 /** Type of the combination of measurements. */ 32 private final CombinationType combinationType; 33 34 /** Measurement type. */ 35 private final MeasurementType measurementType; 36 37 /** Combined observed value. */ 38 private final double value; 39 40 /** Frequency of the combined observation data [Hz]. */ 41 private final double combinedFrequency; 42 43 /** Observation data used to perform the combination of measurements. */ 44 private final List<ObservationData> usedData; 45 46 /** 47 * Constructor. 48 * @param combinedValue combined observed value 49 * (may be {@code Double.NaN} if combined observation not available) 50 * @param combinedFrequency frequency of the combined observation data in Hz 51 * (may be {@code Double.NaN} if combined frequency is not available) 52 * @param combinationType combination of measurements used to build the combined observation data 53 * @param measurementType measurement type used for the combination of measurement 54 * @param usedData observation data used to perform the combination of measurements 55 * @since 12.1 56 */ 57 public CombinedObservationData(final double combinedValue, final double combinedFrequency, 58 final CombinationType combinationType, final MeasurementType measurementType, 59 final List<ObservationData> usedData) { 60 this.combinationType = combinationType; 61 this.measurementType = measurementType; 62 this.value = combinedValue; 63 this.combinedFrequency = combinedFrequency; 64 this.usedData = usedData; 65 } 66 67 /** Get the combined observed value. 68 * @return observed value (may be {@code Double.NaN} if observation not available) 69 */ 70 public double getValue() { 71 return value; 72 } 73 74 /** Get the value of the combined frequency in MHz. 75 * <p> 76 * For the single frequency combinations, this method returns 77 * the common frequency of both measurements. 78 * </p> 79 * @return value of the combined frequency in Hz 80 * @since 12.1 81 */ 82 public double getCombinedFrequency() { 83 return combinedFrequency; 84 } 85 86 /** Get the type of the combination of measurements used to build the instance. 87 * @return the combination of measurements type 88 */ 89 public CombinationType getCombinationType() { 90 return combinationType; 91 } 92 93 /** Get the measurement type. 94 * @return measurement type 95 */ 96 public MeasurementType getMeasurementType() { 97 return measurementType; 98 } 99 100 /** 101 * Get the list of observation data used to perform the combination of measurements. 102 * @return a list of observation data 103 */ 104 public List<ObservationData> getUsedObservationData() { 105 return usedData; 106 } 107 108 }