ODParameters.java

  1. /* Copyright 2002-2024 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.ccsds.ndm.cdm;

  18. import org.orekit.files.ccsds.section.CommentsContainer;
  19. import org.orekit.time.AbsoluteDate;

  20. /**
  21.  * Container for OD parameters data block.
  22.  * @author Melina Vanel
  23.  * @since 11.2
  24.  */
  25. public class ODParameters extends CommentsContainer {

  26.     /** The start of a time interval (UTC) that contains the time of the last accepted observation. */
  27.     private AbsoluteDate timeLastObsStart;

  28.     /** The end of a time interval (UTC) that contains the time of the last accepted observation. */
  29.     private AbsoluteDate timeLastObsEnd;

  30.     /** The recommended OD time span calculated for the object. */
  31.     private double recommendedOdSpan;

  32.     /** Based on the observations available and the RECOMMENDED_OD_SPAN, the actual time span used for the OD of the object. */
  33.     private double actualOdSpan;

  34.     /** The number of observations available for the OD of the object. */
  35.     private int obsAvailable;

  36.     /** The number of observations accepted for the OD of the object. */
  37.     private int obsUsed;

  38.     /** The number of sensor tracks available for the OD of the object. */
  39.     private int tracksAvailable;

  40.     /** The number of sensor tracks accepted for the OD of the object. */
  41.     private int tracksUsed;

  42.     /** The percentage of residuals accepted in the OD of the object (from 0 to 100). */
  43.     private double residualsAccepted;

  44.     /** The weighted Root Mean Square (RMS) of the residuals from a batch least squares OD. */
  45.     private double weightedRMS;

  46.     /** The epoch of the orbit determination used for this message (UTC). */
  47.     private AbsoluteDate odEpoch;

  48.     /** Simple constructor.
  49.      */
  50.     public ODParameters() {
  51.         recommendedOdSpan   = Double.NaN;
  52.         actualOdSpan        = Double.NaN;
  53.         residualsAccepted   = Double.NaN;
  54.         weightedRMS         = Double.NaN;
  55.     }

  56.     /** {@inheritDoc} */
  57.     @Override
  58.     public void validate(final double version) {
  59.         super.validate(version);
  60.     }

  61.     /**
  62.      * Get the start of a time interval (UTC) that contains the time of the last accepted observation.
  63.      * @return the start of a time interval (UTC)
  64.      */
  65.     public AbsoluteDate getTimeLastObsStart() {
  66.         return timeLastObsStart;
  67.     }

  68.     /**
  69.      * Set the start of a time interval (UTC) that contains the time of the last accepted observation.
  70.      * @param timeLastObsStart the start of a time interval (UTC)
  71.      */
  72.     public void setTimeLastObsStart(final AbsoluteDate timeLastObsStart) {
  73.         refuseFurtherComments();
  74.         this.timeLastObsStart = timeLastObsStart;
  75.     }

  76.     /**
  77.      * Get the start of a time interval (UTC) that contains the time of the last accepted observation.
  78.      * @return the start of a time interval (UTC)
  79.      */
  80.     public AbsoluteDate getTimeLastObsEnd() {
  81.         return timeLastObsEnd;
  82.     }

  83.     /**
  84.      * Set the start of a time interval (UTC) that contains the time of the last accepted observation.
  85.      * @param timeLastObsEnd the start of a time interval (UTC)
  86.      */
  87.     public void setTimeLastObsEnd(final AbsoluteDate timeLastObsEnd) {
  88.         refuseFurtherComments();
  89.         this.timeLastObsEnd = timeLastObsEnd;
  90.     }

  91.     /**
  92.      * Get the recommended OD time span calculated for the object.
  93.      * @return the recommended OD time span (in days) calculated for the object
  94.      */
  95.     public double getRecommendedOdSpan() {
  96.         return recommendedOdSpan;
  97.     }

  98.     /**
  99.      * Set the recommended OD time span calculated for the object.
  100.      * @param recommendedOdSpan recommended OD time span (in days) calculated for the object
  101.      */
  102.     public void setRecommendedOdSpan(final double recommendedOdSpan) {
  103.         refuseFurtherComments();
  104.         this.recommendedOdSpan = recommendedOdSpan;
  105.     }

  106.     /**
  107.      * Get the actual OD time based on the observations available and the RECOMMENDED_OD_SPAN.
  108.      * @return the actual OD time (in days)
  109.      */
  110.     public double getActualOdSpan() {
  111.         return actualOdSpan;
  112.     }

  113.     /**
  114.      * Set the actual OD time based on the observations available and the RECOMMENDED_OD_SPAN.
  115.      * @param actualOdSpan the actual OD time (in days)
  116.      */
  117.     public void setActualOdSpan(final double actualOdSpan) {
  118.         refuseFurtherComments();
  119.         this.actualOdSpan = actualOdSpan;
  120.     }

  121.     /**
  122.      * Get the number of observations available for the OD of the object.
  123.      * @return the number of observations available
  124.      */
  125.     public int getObsAvailable() {
  126.         return obsAvailable;
  127.     }

  128.     /**
  129.      * Set the number of observations available for the OD of the object.
  130.      * @param obsAvailable the number of observations available
  131.      */
  132.     public void setObsAvailable(final int obsAvailable) {
  133.         refuseFurtherComments();
  134.         this.obsAvailable = obsAvailable;
  135.     }

  136.     /**
  137.      * Get the number of observations accepted for the OD of the object.
  138.      * @return the number of observations used
  139.      */
  140.     public int getObsUsed() {
  141.         return obsUsed;
  142.     }

  143.     /**
  144.      * Set the number of observations accepted for the OD of the object.
  145.      * @param obsUsed the number of observations used
  146.      */
  147.     public void setObsUsed(final int obsUsed) {
  148.         refuseFurtherComments();
  149.         this.obsUsed = obsUsed;
  150.     }

  151.     /**
  152.      * Get the number of sensor tracks available for the OD of the object.
  153.      * @return the number of sensor tracks available
  154.      */
  155.     public int getTracksAvailable() {
  156.         return tracksAvailable;
  157.     }

  158.     /**
  159.      * Set the number of sensor tracks available for the OD of the object.
  160.      * @param tracksAvailable the number of sensor tracks available
  161.      */
  162.     public void setTracksAvailable(final int tracksAvailable) {
  163.         refuseFurtherComments();
  164.         this.tracksAvailable = tracksAvailable;
  165.     }

  166.     /**
  167.      * Get the number of sensor tracks used for the OD of the object.
  168.      * @return the number of sensor tracks used
  169.      */
  170.     public int getTracksUsed() {
  171.         return tracksUsed;
  172.     }

  173.     /**
  174.      * Set the number of sensor tracks used for the OD of the object.
  175.      * @param tracksUsed the number of sensor tracks used
  176.      */
  177.     public void setTracksUsed(final int tracksUsed) {
  178.         refuseFurtherComments();
  179.         this.tracksUsed = tracksUsed;
  180.     }

  181.     /**
  182.      * Get the percentage of residuals accepted in the OD of the object (from 0 to 100).
  183.      * @return the percentage of residuals accepted in the OD
  184.      */
  185.     public double getResidualsAccepted() {
  186.         return residualsAccepted;
  187.     }

  188.     /**
  189.      * Set the percentage of residuals accepted in the OD of the object (from 0 to 100).
  190.      * @param residualsAccepted the percentage of residuals accepted in the OD to be set
  191.      */
  192.     public void setResidualsAccepted(final double residualsAccepted) {
  193.         refuseFurtherComments();
  194.         this.residualsAccepted = residualsAccepted;
  195.     }

  196.     /**
  197.      * Get the weighted Root Mean Square (RMS) of the residuals from a batch least squares OD.
  198.      * @return the weighted Root Mean Square (RMS) of the residuals from a batch least squares OD
  199.      */
  200.     public double getWeightedRMS() {
  201.         return weightedRMS;
  202.     }

  203.     /**
  204.      * Set the weighted Root Mean Square (RMS) of the residuals from a batch least squares OD.
  205.      * @param WeightedRMS the weighted Root Mean Square (RMS) of the residuals from a batch least squares OD
  206.      */
  207.     public void setWeightedRMS(final double WeightedRMS) {
  208.         refuseFurtherComments();
  209.         this.weightedRMS = WeightedRMS;
  210.     }

  211.     /** Get the epoch of the orbit determination used for this message.
  212.      * @return the odEpoch the epoch of the orbit determination used for this message
  213.      */
  214.     public AbsoluteDate getOdEpoch() {
  215.         return odEpoch;
  216.     }

  217.     /** Set the epoch of the orbit determination used for this message.
  218.      * @param odEpoch the odEpoch to set
  219.      */
  220.     public void setOdEpoch(final AbsoluteDate odEpoch) {
  221.         this.odEpoch = odEpoch;
  222.     }

  223. }