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 18 package org.orekit.files.ccsds.ndm.tdm; 19 20 import org.orekit.time.AbsoluteDate; 21 22 23 /** The Observation class contains the data from an observation line. 24 * <p> 25 * It is not an Orekit object yet. It is a simple container holding: 26 * </p> 27 * <ul> 28 * <li>a keyword, the type of the observation;</li> 29 * <li>a timetag, the epoch of the observation;</li> 30 * <li>a measurement, the value of the observation.</li> 31 * </ul> 32 * <p> 33 * WARNING. The same class handles many different measurements 34 * types (range, Doppler, clocks, pressure, power to noise ratio…). 35 * Since Orekit 11.0, it uses only SI units, so angular measurements 36 * have already been converted in radians, range has been converted 37 * in meters (according to the {@link TdmMetadata#getRangeUnits() 38 * range units}, Doppler has been converted to meters per second. 39 * Up to Orekit 10.x, the measurements were raw measurements as read 40 * in the TDM. 41 * </p> 42 * @author Maxime Journot 43 */ 44 public class Observation { 45 46 /** Type of the observation. */ 47 private final ObservationType type; 48 49 /** Epoch: the timetag of the observation. */ 50 private final AbsoluteDate epoch; 51 52 /** Measurement: the value of the observation. */ 53 private final double measurement; 54 55 /** Simple constructor. 56 * @param type type of the observation 57 * @param epoch the timetag 58 * @param measurement the measurement (in SI units, converted from TDM) 59 */ 60 public Observation(final ObservationType type, final AbsoluteDate epoch, final double measurement) { 61 this.type = type; 62 this.epoch = epoch; 63 this.measurement = measurement; 64 } 65 66 /** Get the type of observation. 67 * @return type of observation 68 */ 69 public ObservationType getType() { 70 return type; 71 } 72 73 /** Getter for the epoch. 74 * @return the epoch 75 */ 76 public AbsoluteDate getEpoch() { 77 return epoch; 78 } 79 80 /** Getter for the measurement. 81 * @return the measurement (in SI units, converted from TDM) 82 */ 83 public double getMeasurement() { 84 return measurement; 85 } 86 87 }