TdmMetadata.java
- /* Copyright 2002-2024 CS GROUP
- * Licensed to CS GROUP (CS) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * CS licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
- package org.orekit.files.ccsds.ndm.tdm;
- import java.util.ArrayList;
- import java.util.List;
- import java.util.Map;
- import java.util.TreeMap;
- import org.orekit.errors.OrekitException;
- import org.orekit.errors.OrekitMessages;
- import org.orekit.files.ccsds.definitions.FrameFacade;
- import org.orekit.files.ccsds.section.Metadata;
- import org.orekit.frames.Frame;
- import org.orekit.time.AbsoluteDate;
- import org.orekit.utils.Constants;
- /** The TDMMetadata class gathers the meta-data present in the Tracking Data Message (TDM).<p>
- * References:<p>
- * <a href="https://public.ccsds.org/Pubs/503x0b1c1.pdf">CCSDS 503.0-B-1 recommended standard</a>. §3.3 ("Tracking Data Message", Blue Book, Version 1.0, November 2007).
- *
- * @author Maxime Journot
- * @since 9.0
- */
- public class TdmMetadata extends Metadata {
- /** Identifier for the tracking data. */
- private String trackId;
- /** List of data types in the data section. */
- private List<ObservationType> dataTypes;
- /** Start epoch of total time span covered by observations block. */
- private AbsoluteDate startTime;
- /** End epoch of total time span covered by observations block. */
- private AbsoluteDate stopTime;
- /** Map of participants in the tracking data session (minimum 1 and up to 5).<p>
- * Participants may include ground stations, spacecraft, and/or quasars.<p>
- * Participants represent the classical transmitting parties, transponding parties, and receiving parties.
- */
- private Map<Integer, String> participants;
- /** Tracking mode. */
- private TrackingMode mode;
- /** The path shall reflect the signal path by listing the index of each participant
- * in order, separated by commas, with no inserted white space.<p>
- * The integers 1, 2, 3, 4, 5 used to specify the signal path correlate
- * with the indices of the PARTICIPANT keywords.<p>
- * The first entry in the PATH shall be the transmit participant.<p>
- * The non-indexed ‘PATH’ keyword shall be used if the MODE is ‘SEQUENTIAL’.<p>
- * The indexed ‘PATH_1’ and ‘PATH_2’ keywords shall be used where the MODE is ‘SINGLE_DIFF’.
- */
- private int[] path;
- /** Path 1 (see above). */
- private int[] path1;
- /** Path 2 (see above). */
- private int[] path2;
- /** Map of external ephemeris names for participants (minimum 1 and up to 5). */
- private Map<Integer, String> ephemerisNames;
- /** Frequency band for transmitted frequencies. */
- private String transmitBand;
- /** Frequency band for received frequencies. */
- private String receiveBand;
- /** Turn-around ratio numerator.<p>
- * Numerator of the turn-around ratio that is necessary to calculate the coherent downlink from the uplink frequency.
- */
- private int turnaroundNumerator;
- /** Turn-around ratio denominator .*/
- private int turnaroundDenominator;
- /** Timetag reference.<p>
- * Provides a reference for time tags in the tracking data.<p>
- * It indicates whether the timetag associated with the data is the transmit time or the receive time.
- */
- private TimetagReference timetagRef;
- /** Integration interval. <p>
- * Provides the Doppler count time in seconds for Doppler data or for the creation
- * of normal points.
- */
- private double integrationInterval;
- /** Integration reference.<p>
- * Used in conjunction with timetag reference and integration interval.<p>
- * Indicates whether the timetag represents the start, middle or end of the integration interval.
- */
- private IntegrationReference integrationRef;
- /** Frequency offset.<p>
- * A frequency in Hz that must be added to every RECEIVE_FREQ to reconstruct it.
- */
- private double freqOffset;
- /** Range mode. */
- private RangeMode rangeMode;
- /** Raw range modulus (in RangeUnits). */
- private double rawRangeModulus;
- /** Range units. */
- private RangeUnits rangeUnits;
- /** Angle type. */
- private AngleType angleType;
- /** Reference frame in which data are given: used in combination with ANGLE_TYPE=RADEC. */
- private FrameFacade referenceFrame;
- /** The interpolation method to be used. */
- private String interpolationMethod;
- /** The interpolation degree. */
- private int interpolationDegree;
- /** Bias that was added to Doppler count in the data section. */
- private double doppplerCountBias;
- /** Scaled by which Doppler count was multiplied in the data section. */
- private double dopplerCountScale;
- /** Indicator for occurred rollover in Doppler count. */
- private boolean doppplerCountRollover;
- /** Transmit delays map.<p>
- * Specifies a fixed interval of time, in seconds, for the signal to travel from the transmitting
- * electronics to the transmit point. Each item in the list corresponds to the each participants.
- */
- private Map<Integer, Double> transmitDelays;
- /** Receive delays list.<p>
- * Specifies a fixed interval of time, in seconds, for the signal to travel from the tracking
- * point to the receiving electronics. Each item in the list corresponds to the each participants.
- */
- private Map<Integer, Double> receiveDelays;
- /** Data quality. */
- private DataQuality dataQuality;
- /** Correction angle 1.<p>
- * Angle correction that has been added or should be added to the ANGLE_1 data.
- */
- private double correctionAngle1;
- /** Correction angle 2.<p>
- * Angle correction that has been added or should be added to the ANGLE_2 data.
- */
- private double correctionAngle2;
- /** Correction Doppler.<p>
- * Doppler correction that has been added or should be added to the DOPPLER data.
- */
- private double correctionDoppler;
- /** Correction magnitude.<p>
- * Magnitude correction that has been added or should be added to the MAGNITUDE data.
- */
- private double correctionMagnitude;
- /** Raw correction Range in {@link #getRangeUnits()}.<p>
- * Range correction that has been added or should be added to the RANGE data.
- */
- private double rawCorrectionRange;
- /** Correction radar cross section.<p>
- * Radar cross section correction that has been added or should be added to the RCS data.
- */
- private double correctionRcs;
- /** Correction receive.<p>
- * Receive correction that has been added or should be added to the RECEIVE data.
- */
- private double correctionReceive;
- /** Correction transmit.<p>
- * Transmit correction that has been added or should be added to the TRANSMIT data.
- */
- private double correctionTransmit;
- /** Yearly aberration correction.<p>
- * Yearly correction that has been added or should be added to the ANGLE data.
- */
- private double correctionAberrationYearly;
- /** Diurnal aberration correction.<p>
- * Diurnl correction that has been added or should be added to the ANGLE data.
- */
- private double correctionAberrationDiurnal;
- /** Correction applied ? YES/NO<p>
- * Indicate whethers or not the values associated with the CORRECTION_* keywords have been
- * applied to the tracking data.
- */
- private CorrectionApplied correctionsApplied;
- /** Create a new TDM meta-data.
- */
- public TdmMetadata() {
- super(null);
- participants = new TreeMap<>();
- ephemerisNames = new TreeMap<>();
- doppplerCountBias = Double.NaN;
- dopplerCountScale = 1;
- doppplerCountRollover = false;
- transmitDelays = new TreeMap<>();
- receiveDelays = new TreeMap<>();
- }
- /** {@inheritDoc} */
- @Override
- public void validate(final double version) {
- super.validate(version);
- if (participants.isEmpty()) {
- throw new OrekitException(OrekitMessages.UNINITIALIZED_VALUE_FOR_KEY, TdmMetadataKey.PARTICIPANT_1);
- }
- }
- /** Getter for the tracking data identifier.
- * @return tracking data identifier
- */
- public String getTrackId() {
- return trackId;
- }
- /** Setter for the tracking data identifier.
- * @param trackId tracking data identifier
- */
- public void setTrackId(final String trackId) {
- refuseFurtherComments();
- this.trackId = trackId;
- }
- /** Getter for the data types in the data section.
- * @return data types in the data section
- */
- public List<ObservationType> getDataTypes() {
- return dataTypes;
- }
- /** Setter for the data types in the data section.
- * @param dataTypes data types in the data section
- */
- public void setDataTypes(final List<ObservationType> dataTypes) {
- refuseFurtherComments();
- this.dataTypes = new ArrayList<>();
- this.dataTypes.addAll(dataTypes);
- }
- /** Getter for the startTime.
- * @return the startTime
- */
- public AbsoluteDate getStartTime() {
- return startTime;
- }
- /** Setter for the startTime.
- * @param startTime the startTime to set
- */
- public void setStartTime(final AbsoluteDate startTime) {
- refuseFurtherComments();
- this.startTime = startTime;
- }
- /** Getter for the stopTime.
- * @return the stopTime
- */
- public AbsoluteDate getStopTime() {
- return stopTime;
- }
- /** Setter for the stopTime.
- * @param stopTime the stopTime to set
- */
- public void setStopTime(final AbsoluteDate stopTime) {
- refuseFurtherComments();
- this.stopTime = stopTime;
- }
- /** Getter for the participants.
- * @return the participants
- */
- public Map<Integer, String> getParticipants() {
- return participants;
- }
- /** Setter for the participants.
- * @param participants the participants to set
- */
- public void setParticipants(final Map<Integer, String> participants) {
- refuseFurtherComments();
- this.participants = new TreeMap<Integer, String>();
- this.participants.putAll(participants);
- }
- /** Adds a participant to the list.
- * @param participantNumber the number of the participant to add
- * @param participant the name of the participant to add
- */
- public void addParticipant(final int participantNumber, final String participant) {
- refuseFurtherComments();
- this.participants.put(participantNumber, participant);
- }
- /** Getter for the mode.
- * @return the mode
- */
- public TrackingMode getMode() {
- return mode;
- }
- /** Setter for the mode.
- * @param mode the mode to set
- */
- public void setMode(final TrackingMode mode) {
- refuseFurtherComments();
- this.mode = mode;
- }
- /** Getter for the path.
- * @return the path
- */
- public int[] getPath() {
- return safeCopy(path);
- }
- /** Setter for the path.
- * @param path the path to set
- */
- public void setPath(final int[] path) {
- refuseFurtherComments();
- this.path = safeCopy(path);
- }
- /** Getter for the path1.
- * @return the path1
- */
- public int[] getPath1() {
- return safeCopy(path1);
- }
- /** Setter for the path1.
- * @param path1 the path1 to set
- */
- public void setPath1(final int[] path1) {
- refuseFurtherComments();
- this.path1 = safeCopy(path1);
- }
- /** Getter for the path2.
- * @return the path2
- */
- public int[] getPath2() {
- return safeCopy(path2);
- }
- /** Setter for the path2.
- * @param path2 the path2 to set
- */
- public void setPath2(final int[] path2) {
- refuseFurtherComments();
- this.path2 = safeCopy(path2);
- }
- /** Getter for external ephemeris names for participants.
- * @return external ephemeris names for participants
- */
- public Map<Integer, String> getEphemerisNames() {
- return ephemerisNames;
- }
- /** Setter for the external ephemeris names for participants.
- * @param ephemerisNames external ephemeris names for participants
- */
- public void setEphemerisNames(final Map<Integer, String> ephemerisNames) {
- refuseFurtherComments();
- this.ephemerisNames = new TreeMap<Integer, String>();
- this.ephemerisNames.putAll(ephemerisNames);
- }
- /** Adds an ephemeris name to the list.
- * @param participantNumber the number of the participant
- * @param ephemerisName name of the ephemeris for the participant
- */
- public void addEphemerisName(final int participantNumber, final String ephemerisName) {
- refuseFurtherComments();
- this.ephemerisNames.put(participantNumber, ephemerisName);
- }
- /** Getter for the transmitBand.
- * @return the transmitBand
- */
- public String getTransmitBand() {
- return transmitBand;
- }
- /** Setter for the transmitBand.
- * @param transmitBand the transmitBand to set
- */
- public void setTransmitBand(final String transmitBand) {
- refuseFurtherComments();
- this.transmitBand = transmitBand;
- }
- /** Getter for the receiveBand.
- * @return the receiveBand
- */
- public String getReceiveBand() {
- return receiveBand;
- }
- /** Setter for the receiveBand.
- * @param receiveBand the receiveBand to set
- */
- public void setReceiveBand(final String receiveBand) {
- refuseFurtherComments();
- this.receiveBand = receiveBand;
- }
- /** Getter for the turnaroundNumerator.
- * @return the turnaroundNumerator
- */
- public int getTurnaroundNumerator() {
- return turnaroundNumerator;
- }
- /** Setter for the turnaroundNumerator.
- * @param turnaroundNumerator the turnaroundNumerator to set
- */
- public void setTurnaroundNumerator(final int turnaroundNumerator) {
- refuseFurtherComments();
- this.turnaroundNumerator = turnaroundNumerator;
- }
- /** Getter for the turnaroundDenominator.
- * @return the turnaroundDenominator
- */
- public int getTurnaroundDenominator() {
- return turnaroundDenominator;
- }
- /** Setter for the turnaroundDenominator.
- * @param turnaroundDenominator the turnaroundDenominator to set
- */
- public void setTurnaroundDenominator(final int turnaroundDenominator) {
- refuseFurtherComments();
- this.turnaroundDenominator = turnaroundDenominator;
- }
- /** Getter for the timetagRef.
- * @return the timetagRef
- */
- public TimetagReference getTimetagRef() {
- return timetagRef;
- }
- /** Setter for the timetagRef.
- * @param timetagRef the timetagRef to set
- */
- public void setTimetagRef(final TimetagReference timetagRef) {
- refuseFurtherComments();
- this.timetagRef = timetagRef;
- }
- /** Getter for the integrationInterval.
- * @return the integrationInterval
- */
- public double getIntegrationInterval() {
- return integrationInterval;
- }
- /** Setter for the integrationInterval.
- * @param integrationInterval the integrationInterval to set
- */
- public void setIntegrationInterval(final double integrationInterval) {
- refuseFurtherComments();
- this.integrationInterval = integrationInterval;
- }
- /** Getter for the integrationRef.
- * @return the integrationRef
- */
- public IntegrationReference getIntegrationRef() {
- return integrationRef;
- }
- /** Setter for the integrationRef.
- * @param integrationRef the integrationRef to set
- */
- public void setIntegrationRef(final IntegrationReference integrationRef) {
- refuseFurtherComments();
- this.integrationRef = integrationRef;
- }
- /** Getter for the freqOffset.
- * @return the freqOffset
- */
- public double getFreqOffset() {
- return freqOffset;
- }
- /** Setter for the freqOffset.
- * @param freqOffset the freqOffset to set
- */
- public void setFreqOffset(final double freqOffset) {
- refuseFurtherComments();
- this.freqOffset = freqOffset;
- }
- /** Getter for the rangeMode.
- * @return the rangeMode
- */
- public RangeMode getRangeMode() {
- return rangeMode;
- }
- /** Setter for the rangeMode.
- * @param rangeMode the rangeMode to set
- */
- public void setRangeMode(final RangeMode rangeMode) {
- refuseFurtherComments();
- this.rangeMode = rangeMode;
- }
- /** Getter for the range modulus in meters.
- * @param converter converter to use if {@link #getRangeUnits() range units}
- * are set to {@link RangeUnits#RU}
- * @return the range modulus in meters
- */
- public double getRangeModulus(final RangeUnitsConverter converter) {
- if (rangeUnits == RangeUnits.km) {
- return rawRangeModulus * 1000;
- } else if (rangeUnits == RangeUnits.s) {
- return rawRangeModulus * Constants.SPEED_OF_LIGHT;
- } else {
- return converter.ruToMeters(this, startTime, rawRangeModulus);
- }
- }
- /** Getter for the raw range modulus.
- * @return the raw range modulus in range units
- */
- public double getRawRangeModulus() {
- return rawRangeModulus;
- }
- /** Setter for the raw range modulus.
- * @param rawRangeModulus the raw range modulus to set
- */
- public void setRawRangeModulus(final double rawRangeModulus) {
- refuseFurtherComments();
- this.rawRangeModulus = rawRangeModulus;
- }
- /** Getter for the rangeUnits.
- * @return the rangeUnits
- */
- public RangeUnits getRangeUnits() {
- return rangeUnits;
- }
- /** Setter for the rangeUnits.
- * @param rangeUnits the rangeUnits to set
- */
- public void setRangeUnits(final RangeUnits rangeUnits) {
- refuseFurtherComments();
- this.rangeUnits = rangeUnits;
- }
- /** Getter for angleType.
- * @return the angleType
- */
- public AngleType getAngleType() {
- return angleType;
- }
- /** Setter for the angleType.
- * @param angleType the angleType to set
- */
- public void setAngleType(final AngleType angleType) {
- refuseFurtherComments();
- this.angleType = angleType;
- }
- /** Get the the value of {@code REFERENCE_FRAME} as an Orekit {@link Frame}.
- * @return The reference frame specified by the {@code REFERENCE_FRAME} keyword.
- */
- public FrameFacade getReferenceFrame() {
- return referenceFrame;
- }
- /** Set the reference frame in which data are given: used for RADEC tracking data.
- * @param referenceFrame the reference frame to be set
- */
- public void setReferenceFrame(final FrameFacade referenceFrame) {
- refuseFurtherComments();
- this.referenceFrame = referenceFrame;
- }
- /**
- * Get the interpolation method to be used.
- *
- * @return the interpolation method
- */
- public String getInterpolationMethod() {
- return interpolationMethod;
- }
- /**
- * Set the interpolation method to be used.
- * @param interpolationMethod the interpolation method to be set
- */
- public void setInterpolationMethod(final String interpolationMethod) {
- refuseFurtherComments();
- this.interpolationMethod = interpolationMethod;
- }
- /**
- * Get the interpolation degree.
- * @return the interpolation degree
- */
- public int getInterpolationDegree() {
- return interpolationDegree;
- }
- /**
- * Set the interpolation degree.
- * @param interpolationDegree the interpolation degree to be set
- */
- public void setInterpolationDegree(final int interpolationDegree) {
- refuseFurtherComments();
- this.interpolationDegree = interpolationDegree;
- }
- /**
- * Get the Doppler count bias.
- * @return the Doppler count bias in Hz
- */
- public double getDopplerCountBias() {
- return doppplerCountBias;
- }
- /**
- * Set the Doppler count bias.
- * @param dopplerCountBias Doppler count bias in Hz to set
- */
- public void setDopplerCountBias(final double dopplerCountBias) {
- refuseFurtherComments();
- this.doppplerCountBias = dopplerCountBias;
- }
- /**
- * Get the Doppler count scale.
- * @return the Doppler count scale
- */
- public double getDopplerCountScale() {
- return dopplerCountScale;
- }
- /**
- * Set the Doppler count Scale.
- * @param dopplerCountScale Doppler count scale to set
- */
- public void setDopplerCountScale(final double dopplerCountScale) {
- refuseFurtherComments();
- this.dopplerCountScale = dopplerCountScale;
- }
- /**
- * Check if there is a Doppler count rollover.
- * @return true if there is a Doppler count rollover
- */
- public boolean hasDopplerCountRollover() {
- return doppplerCountRollover;
- }
- /**
- * Set the indicator for Doppler count rollover.
- * @param dopplerCountRollover indicator for Doppler count rollover
- */
- public void setDopplerCountRollover(final boolean dopplerCountRollover) {
- refuseFurtherComments();
- this.doppplerCountRollover = dopplerCountRollover;
- }
- /** Getter for the transmitDelays.
- * @return the transmitDelays
- */
- public Map<Integer, Double> getTransmitDelays() {
- return transmitDelays;
- }
- /** Setter for the transmitDelays.
- * @param transmitDelays the transmitDelays to set
- */
- public void setTransmitDelays(final Map<Integer, Double> transmitDelays) {
- refuseFurtherComments();
- this.transmitDelays = new TreeMap<Integer, Double>();
- this.transmitDelays.putAll(transmitDelays);
- }
- /** Adds a transmit delay to the list.
- * @param participantNumber the number of the participants for which the transmit delay is given
- * @param transmitDelay the transmit delay value to add
- */
- public void addTransmitDelay(final int participantNumber, final double transmitDelay) {
- refuseFurtherComments();
- this.transmitDelays.put(participantNumber, transmitDelay);
- }
- /** Getter for receiveDelays.
- * @return the receiveDelays
- */
- public Map<Integer, Double> getReceiveDelays() {
- return receiveDelays;
- }
- /** Setter for the receiveDelays.
- * @param receiveDelays the receiveDelays to set
- */
- public void setReceiveDelays(final Map<Integer, Double> receiveDelays) {
- refuseFurtherComments();
- this.receiveDelays = new TreeMap<Integer, Double>();
- this.receiveDelays.putAll(receiveDelays);
- }
- /** Adds a receive delay to the list.
- * @param participantNumber the number of the participants for which the receive delay is given
- * @param receiveDelay the receive delay value to add
- */
- public void addReceiveDelay(final int participantNumber, final double receiveDelay) {
- refuseFurtherComments();
- this.receiveDelays.put(participantNumber, receiveDelay);
- }
- /** Getter for the dataQuality.
- * @return the dataQuality
- */
- public DataQuality getDataQuality() {
- return dataQuality;
- }
- /** Setter for the dataQuality.
- * @param dataQuality the dataQuality to set
- */
- public void setDataQuality(final DataQuality dataQuality) {
- refuseFurtherComments();
- this.dataQuality = dataQuality;
- }
- /** Getter for the correctionAngle1.
- * @return the correctionAngle1 (in radians)
- */
- public double getCorrectionAngle1() {
- return correctionAngle1;
- }
- /** Setter for the correctionAngle1.
- * @param correctionAngle1 the correctionAngle1 to set (in radians)
- */
- public void setCorrectionAngle1(final double correctionAngle1) {
- refuseFurtherComments();
- this.correctionAngle1 = correctionAngle1;
- }
- /** Getter for the correctionAngle2.
- * @return the correctionAngle2 (in radians)
- */
- public double getCorrectionAngle2() {
- return correctionAngle2;
- }
- /** Setter for the correctionAngle2.
- * @param correctionAngle2 the correctionAngle2 to set (in radians)
- */
- public void setCorrectionAngle2(final double correctionAngle2) {
- refuseFurtherComments();
- this.correctionAngle2 = correctionAngle2;
- }
- /** Getter for the correctionDoppler.
- * @return the correctionDoppler (in m/s)
- */
- public double getCorrectionDoppler() {
- return correctionDoppler;
- }
- /** Setter for the correctionDoppler.
- * @param correctionDoppler the correctionDoppler to set (in m/s)
- */
- public void setCorrectionDoppler(final double correctionDoppler) {
- refuseFurtherComments();
- this.correctionDoppler = correctionDoppler;
- }
- /** Getter for the magnitude correction.
- * @return the magnitude correction
- */
- public double getCorrectionMagnitude() {
- return correctionMagnitude;
- }
- /** Setter for the magnitude correction.
- * @param correctionMagnitude the magnitude correction to set
- */
- public void setCorrectionMagnitude(final double correctionMagnitude) {
- refuseFurtherComments();
- this.correctionMagnitude = correctionMagnitude;
- }
- /** Getter for the raw correction for range in meters.
- * @param converter converter to use if {@link #getRangeUnits() range units}
- * are set to {@link RangeUnits#RU}
- * @return the raw correction for range in meters
- */
- public double getCorrectionRange(final RangeUnitsConverter converter) {
- if (rangeUnits == RangeUnits.km) {
- return rawCorrectionRange * 1000;
- } else if (rangeUnits == RangeUnits.s) {
- return rawCorrectionRange * Constants.SPEED_OF_LIGHT;
- } else {
- return converter.ruToMeters(this, startTime, rawCorrectionRange);
- }
- }
- /** Getter for the raw correction for range.
- * @return the raw correction for range (in {@link #getRangeUnits()})
- */
- public double getRawCorrectionRange() {
- return rawCorrectionRange;
- }
- /** Setter for the raw correction for range.
- * @param rawCorrectionRange the raw correction for range to set (in {@link #getRangeUnits()})
- */
- public void setRawCorrectionRange(final double rawCorrectionRange) {
- refuseFurtherComments();
- this.rawCorrectionRange = rawCorrectionRange;
- }
- /** Getter for the radar cross section correction.
- * @return the radar cross section correction in m²
- */
- public double getCorrectionRcs() {
- return correctionRcs;
- }
- /** Setter for the radar cross section correction.
- * @param correctionRcs the radar cross section correction in m² to set
- */
- public void setCorrectionRcs(final double correctionRcs) {
- refuseFurtherComments();
- this.correctionRcs = correctionRcs;
- }
- /** Getter for the yearly aberration correction.
- * @return the yearly aberration correction in radians
- */
- public double getCorrectionAberrationYearly() {
- return correctionAberrationYearly;
- }
- /** Setter for the yearly aberration correction.
- * @param correctionAberrationYearly the yearly aberration correction in radians to set
- */
- public void setCorrectionAberrationYearly(final double correctionAberrationYearly) {
- refuseFurtherComments();
- this.correctionAberrationYearly = correctionAberrationYearly;
- }
- /** Getter for the diurnal aberration correction.
- * @return the diurnal aberration correction in radians
- */
- public double getCorrectionAberrationDiurnal() {
- return correctionAberrationDiurnal;
- }
- /** Setter for the diurnal aberration correction.
- * @param correctionAberrationDiurnal the diurnal aberration correction in radians to set
- */
- public void setCorrectionAberrationDiurnal(final double correctionAberrationDiurnal) {
- refuseFurtherComments();
- this.correctionAberrationDiurnal = correctionAberrationDiurnal;
- }
- /** Getter for the correctionReceive.
- * @return the correctionReceive (in TDM units, without conversion)
- */
- public double getCorrectionReceive() {
- return correctionReceive;
- }
- /** Setter for the correctionReceive.
- * @param correctionReceive the correctionReceive to set (in TDM units, without conversion)
- */
- public void setCorrectionReceive(final double correctionReceive) {
- refuseFurtherComments();
- this.correctionReceive = correctionReceive;
- }
- /** Getter for the correctionTransmit.
- * @return the correctionTransmit (in TDM units, without conversion)
- */
- public double getCorrectionTransmit() {
- return correctionTransmit;
- }
- /** Setter for the correctionTransmit.
- * @param correctionTransmit the correctionTransmit to set (in TDM units, without conversion)
- */
- public void setCorrectionTransmit(final double correctionTransmit) {
- refuseFurtherComments();
- this.correctionTransmit = correctionTransmit;
- }
- /** Getter for the correctionApplied.
- * @return the correctionApplied (in TDM units, without conversion)
- */
- public CorrectionApplied getCorrectionsApplied() {
- return correctionsApplied;
- }
- /** Setter for the correctionApplied.
- * @param correctionsApplied the correctionApplied to set (in TDM units, without conversion)
- */
- public void setCorrectionsApplied(final CorrectionApplied correctionsApplied) {
- refuseFurtherComments();
- this.correctionsApplied = correctionsApplied;
- }
- /** Safe copy of an integer array.
- * @param original original array
- * @return copy of the array
- */
- private int[] safeCopy(final int[] original) {
- return original == null ? null : original.clone();
- }
- }