AdditionalCovarianceMetadata.java

  1. /* Copyright 2002-2023 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. /**
  20.  * Container for the additional covariance metadata (optional).
  21.  */
  22. public class AdditionalCovarianceMetadata extends CommentsContainer {

  23.     /** The atmospheric density forecast error. */
  24.     private double densityForecastUncertainty;

  25.     /** The minimum suggested covariance scale factor. */
  26.     private double cScaleFactorMin;

  27.     /** The (median) suggested covariance scale factor. */
  28.     private double cScaleFactor;

  29.     /** The maximum suggested covariance scale factor. */
  30.     private double cScaleFactorMax;

  31.     /** The source (or origin) of the specific orbital data for this object. */
  32.     private String screeningDataSource;

  33.     /** The drag consider parameter (DCP) sensitivity vectors map forward expected error in the drag acceleration to actual
  34.      * componentized position errors at TCA. */
  35.     private double[] dcpSensitivityVectorPosition;

  36.     /** The drag consider parameter (DCP) sensitivity vectors map forward expected error in the drag acceleration to actual
  37.      * componentized velocity errors at TCA. */
  38.     private double[] dcpSensitivityVectorVelocity;


  39.     /** Simple constructor. */
  40.     public AdditionalCovarianceMetadata() {
  41.         densityForecastUncertainty = Double.NaN;
  42.     }

  43.     /** {@inheritDoc} */
  44.     @Override
  45.     public void validate(final double version) {
  46.         super.validate(version);
  47.     }


  48.     /**
  49.      * Get the atmospheric density forecast error.
  50.      * @return densityForecastUncertainty
  51.      */
  52.     public double getDensityForecastUncertainty() {
  53.         return densityForecastUncertainty;
  54.     }

  55.     /**
  56.      * Set the atmospheric density forecast error.
  57.      * @param densityForecastUncertainty the cScaleFactorMax to set
  58.      */
  59.     public void setDensityForecastUncertainty(final double densityForecastUncertainty) {
  60.         refuseFurtherComments();
  61.         this.densityForecastUncertainty = densityForecastUncertainty;
  62.     }

  63.     /** Get the minimum suggested covariance scale factor.
  64.      * @return the cScaleFactorMin
  65.      */
  66.     public double getcScaleFactorMin() {
  67.         return cScaleFactorMin;
  68.     }

  69.     /** Set the minimum suggested covariance scale factor.
  70.      * @param cScaleFactorMin the cScaleFactorMin to set
  71.      */
  72.     public void setcScaleFactorMin(final double cScaleFactorMin) {
  73.         this.cScaleFactorMin = cScaleFactorMin;
  74.     }

  75.     /** Get the (median) suggested covariance scale factor.
  76.      * @return the cScaleFactor
  77.      */
  78.     public double getcScaleFactor() {
  79.         return cScaleFactor;
  80.     }

  81.     /** Set the (median) suggested covariance scale factor.
  82.      * @param cScaleFactor the cScaleFactor to set
  83.      */
  84.     public void setcScaleFactor(final double cScaleFactor) {
  85.         this.cScaleFactor = cScaleFactor;
  86.     }

  87.     /** Get the maximum suggested covariance scale factor.
  88.      * @return the cScaleFactorMax
  89.      */
  90.     public double getcScaleFactorMax() {
  91.         return cScaleFactorMax;
  92.     }

  93.     /** set the maximum suggested covariance scale factor.
  94.      * @param cScaleFactorMax the cScaleFactorMax to set
  95.      */
  96.     public void setcScaleFactorMax(final double cScaleFactorMax) {
  97.         this.cScaleFactorMax = cScaleFactorMax;
  98.     }

  99.     /** Get the source (or origin) of the specific orbital data for this object.
  100.      * @return the screeningDataSource
  101.      */
  102.     public String getScreeningDataSource() {
  103.         return screeningDataSource;
  104.     }

  105.     /** Set the source (or origin) of the specific orbital data for this object.
  106.      * @param screeningDataSource the screeningDataSource to set
  107.      */
  108.     public void setScreeningDataSource(final String screeningDataSource) {
  109.         this.screeningDataSource = screeningDataSource;
  110.     }

  111.     /** Get the DCP sensitivity vector (position errors at TCA).
  112.      * @return the dcpSensitivityVectorPosition
  113.      */
  114.     public double[] getDcpSensitivityVectorPosition() {
  115.         return dcpSensitivityVectorPosition == null ? null : dcpSensitivityVectorPosition.clone();
  116.     }

  117.     /** Set the DCP sensitivity vector (position errors at TCA).
  118.      * @param dcpSensitivityVectorPosition the dcpSensitivityVectorPosition to set
  119.      */
  120.     public void setDcpSensitivityVectorPosition(final double[] dcpSensitivityVectorPosition) {
  121.         this.dcpSensitivityVectorPosition = dcpSensitivityVectorPosition == null ? null : dcpSensitivityVectorPosition.clone();
  122.     }

  123.     /** Get the DCP sensitivity vector (velocity errors at TCA).
  124.      * @return the dcpSensitivityVectorVelocity
  125.      */
  126.     public double[] getDcpSensitivityVectorVelocity() {
  127.         return dcpSensitivityVectorVelocity == null ? null : dcpSensitivityVectorVelocity.clone();
  128.     }

  129.     /** Set the DCP sensitivity vector (velocity errors at TCA).
  130.      * @param dcpSensitivityVectorVelocity the dcpSensitivityVectorVelocity to set
  131.      */
  132.     public void setDcpSensitivityVectorVelocity(final double[] dcpSensitivityVectorVelocity) {
  133.         this.dcpSensitivityVectorVelocity = dcpSensitivityVectorVelocity == null ? null : dcpSensitivityVectorVelocity.clone();
  134.     }

  135. }