CPFHeader.java

  1. /* Copyright 2002-2022 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.files.ilrs;

  18. import org.orekit.frames.Frame;

  19. /**
  20.  * Container for Consolidated laser ranging Prediction File (CPF) header.
  21.  * <p>
  22.  * Note: Only the required fields are present.
  23.  * </p>
  24.  * @author Bryan Cazabonne
  25.  * @since 10.3
  26.  */
  27. public class CPFHeader extends ILRSHeader {

  28.     /** Ephemeris source. */
  29.     private String source;

  30.     /** Sub-daily Ephemeris Sequence number. */
  31.     private int subDailySequenceNumber;

  32.     /** Time between table entries (UTC). */
  33.     private int step;

  34.     /** Compatibility with TIVs. */
  35.     private boolean isCompatibleWithTIVs;

  36.     /** Reference frame. */
  37.     private Frame refFrame;

  38.     /** Reference frame identifier. */
  39.     private int refFrameId;

  40.     /** Rotational angle type. */
  41.     private int rotationalAngleType;

  42.     /** Center of mass correction. */
  43.     private boolean isCenterOfMassCorrectionApplied;

  44.     /** Pulse Repetition Frequency (PRF) [Hz]. */
  45.     private double prf;

  46.     /** Transponder transmit delay [s]. */
  47.     private double transpTransmitDelay;

  48.     /** Transponder UTC offset [s]. */
  49.     private double transpUtcOffset;

  50.     /** Transponder Oscillator Drift in parts. */
  51.     private double transpOscDrift;

  52.     /** Transponder Clock Reference Time . */
  53.     private double transpClkRef;

  54.     /** Approximate center of mass to reflector offset [m]. */
  55.     private double centerOfMassOffset;

  56.     /**
  57.      * Get the ephemeris source.
  58.      * @return the ephemeris source
  59.      */
  60.     public String getSource() {
  61.         return source;
  62.     }

  63.     /**
  64.      * Set the ephemeris source.
  65.      * @param source the ephemeris source to set
  66.      */
  67.     public void setSource(final String source) {
  68.         this.source = source;
  69.     }

  70.     /**
  71.      * Get the sub-daily ephemeris sequence number.
  72.      * @return the sub-daily ephemeris sequence number
  73.      */
  74.     public int getSubDailySequenceNumber() {
  75.         return subDailySequenceNumber;
  76.     }

  77.     /**
  78.      * Set the sub-daily ephemeris sequence number.
  79.      * @param subDailySequenceNumber the sub-daily ephemeris sequence number to set
  80.      */
  81.     public void setSubDailySequenceNumber(final int subDailySequenceNumber) {
  82.         this.subDailySequenceNumber = subDailySequenceNumber;
  83.     }

  84.     /**
  85.      * Get the time between table entries.
  86.      * @return the time between table entries in seconds
  87.      */
  88.     public int getStep() {
  89.         return step;
  90.     }

  91.     /**
  92.      * Set the time between table entries.
  93.      * @param step the time to set in seconds
  94.      */
  95.     public void setStep(final int step) {
  96.         this.step = step;
  97.     }

  98.     /**
  99.      * Get the flag for compatibility with TIVs.
  100.      * @return true if compatible with TIVs
  101.      */
  102.     public boolean isCompatibleWithTIVs() {
  103.         return isCompatibleWithTIVs;
  104.     }

  105.     /**
  106.      * Set the flag for compatibility with TIVs.
  107.      * @param isCompatibleWithTIVs true if compatible with TIVs
  108.      */
  109.     public void setIsCompatibleWithTIVs(final boolean isCompatibleWithTIVs) {
  110.         this.isCompatibleWithTIVs = isCompatibleWithTIVs;
  111.     }

  112.     /**
  113.      * Get the reference frame.
  114.      * @return the reference frame
  115.      */
  116.     public Frame getRefFrame() {
  117.         return refFrame;
  118.     }

  119.     /**
  120.      * Set the reference frame.
  121.      * @param refFrame the reference frame to set
  122.      */
  123.     public void setRefFrame(final Frame refFrame) {
  124.         this.refFrame = refFrame;
  125.     }

  126.     /**
  127.      * Get the reference frame identifier.
  128.      * @return the reference frame
  129.      */
  130.     public int getRefFrameId() {
  131.         return refFrameId;
  132.     }

  133.     /**
  134.      * Set the reference frame identifier.
  135.      * @param refFrameId the reference frame identifier to set
  136.      */
  137.     public void setRefFrameId(final int refFrameId) {
  138.         this.refFrameId = refFrameId;
  139.     }

  140.     /**
  141.      * Get the rotation angle type.
  142.      * @return the rotation angle type
  143.      */
  144.     public int getRotationalAngleType() {
  145.         return rotationalAngleType;
  146.     }

  147.     /**
  148.      * Set the rotation angle type.
  149.      * @param rotationalAngleType the rotation angle type to set
  150.      */
  151.     public void setRotationalAngleType(final int rotationalAngleType) {
  152.         this.rotationalAngleType = rotationalAngleType;
  153.     }

  154.     /**
  155.      * Get the flag telling if the center of mass correction is applied.
  156.      * @return true if center of mass correction is applied
  157.      */
  158.     public boolean isCenterOfMassCorrectionApplied() {
  159.         return isCenterOfMassCorrectionApplied;
  160.     }

  161.     /**
  162.      * Set the flag telling if the center of mass correction is applied.
  163.      * @param isCenterOfMassCorrectionApplied true if center of mass correction is applied
  164.      */
  165.     public void setIsCenterOfMassCorrectionApplied(final boolean isCenterOfMassCorrectionApplied) {
  166.         this.isCenterOfMassCorrectionApplied = isCenterOfMassCorrectionApplied;
  167.     }

  168.     /**
  169.      * Get the Pulse Repetition Frequency (PRF).
  170.      * @return the Pulse Repetition Frequency (PRF) in Hz
  171.      */
  172.     public double getPrf() {
  173.         return prf;
  174.     }

  175.     /**
  176.      * Set the Pulse Repetition Frequency (PRF).
  177.      * @param prf the ulse Repetition Frequency (PRF) to set in Hz
  178.      */
  179.     public void setPrf(final double prf) {
  180.         this.prf = prf;
  181.     }

  182.     /**
  183.      * Get the transponder transmit delay.
  184.      * @return the transponder transmit delay in seconds
  185.      */
  186.     public double getTranspTransmitDelay() {
  187.         return transpTransmitDelay;
  188.     }

  189.     /**
  190.      * Set the transponder transmit delay.
  191.      * @param transpTransmitDelay the transponder transmit delay to set in seconds
  192.      */
  193.     public void setTranspTransmitDelay(final double transpTransmitDelay) {
  194.         this.transpTransmitDelay = transpTransmitDelay;
  195.     }

  196.     /**
  197.      * Get the transponder UTC offset.
  198.      * @return the transponder UTC offset in seconds
  199.      */
  200.     public double getTranspUtcOffset() {
  201.         return transpUtcOffset;
  202.     }

  203.     /**
  204.      * Set the transponder UTC offset.
  205.      * @param transpUtcOffset the UTC offset to set in seconds
  206.      */
  207.     public void setTranspUtcOffset(final double transpUtcOffset) {
  208.         this.transpUtcOffset = transpUtcOffset;
  209.     }

  210.     /**
  211.      * Get the transponder Oscillator Drift in parts in 10^15.
  212.      * @return the transponder Oscillator Drift in parts.
  213.      */
  214.     public double getTranspOscDrift() {
  215.         return transpOscDrift;
  216.     }

  217.     /**
  218.      * Set the transponder Oscillator Drift in parts.
  219.      * @param transpOscDrift the transponder Oscillator Drift in parts in 10^15 to set
  220.      */
  221.     public void setTranspOscDrift(final double transpOscDrift) {
  222.         this.transpOscDrift = transpOscDrift;
  223.     }

  224.     /**
  225.      * Get the transponder Clock Reference Time.
  226.      * @return the transponder Clock Reference Time
  227.      */
  228.     public double getTranspClkRef() {
  229.         return transpClkRef;
  230.     }

  231.     /**
  232.      * Set the transponder Clock Reference Time.
  233.      * @param transpClkRef the transponder Clock Reference Time to set
  234.      */
  235.     public void setTranspClkRef(final double transpClkRef) {
  236.         this.transpClkRef = transpClkRef;
  237.     }

  238.     /**
  239.      * Get the approximate center of mass to reflector offset.
  240.      * @return the approximate center of mass to reflector offset in meters
  241.      */
  242.     public double getCenterOfMassOffset() {
  243.         return centerOfMassOffset;
  244.     }

  245.     /**
  246.      * Set the approximate center of mass to reflector offset.
  247.      * @param centerOfMassOffset the offset to set in meters
  248.      */
  249.     public void setCenterOfMassOffset(final double centerOfMassOffset) {
  250.         this.centerOfMassOffset = centerOfMassOffset;
  251.     }

  252. }