CommonParametersWithDerivatives.java

  1. /* Copyright 2022-2025 Luc Maisonobe
  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.estimation.measurements;

  18. import org.hipparchus.analysis.differentiation.Gradient;
  19. import org.orekit.propagation.SpacecraftState;
  20. import org.orekit.utils.TimeStampedFieldPVCoordinates;

  21. import java.util.Map;

  22. /** Common intermediate parameters used to estimate measurements where receiver is a ground station.
  23.  * @author Luc Maisonobe
  24.  * @since 12.1
  25.  */
  26. public class CommonParametersWithDerivatives {

  27.     /** Spacecraft state. */
  28.     private final SpacecraftState state;

  29.     /** Derivatives indices map. */
  30.     private final Map<String, Integer> indices;

  31.     /** Downlink delay. */
  32.     private final Gradient tauD;

  33.     /** Transit state. */
  34.     private final SpacecraftState transitState;

  35.     /** Transit state. */
  36.     private final TimeStampedFieldPVCoordinates<Gradient> transitPV;

  37.     /** Simple constructor.
  38.     * @param state spacecraft state
  39.     * @param indices derivatives indices map
  40.     * @param tauD downlink delay
  41.     * @param transitState transit state
  42.     * @param transitPV transit position/velocity as a gradient
  43.     */
  44.     public CommonParametersWithDerivatives(final SpacecraftState state,
  45.                                            final Map<String, Integer> indices,
  46.                                            final Gradient tauD,
  47.                                            final SpacecraftState transitState,
  48.                                            final TimeStampedFieldPVCoordinates<Gradient> transitPV) {
  49.         this.state        = state;
  50.         this.indices      = indices;
  51.         this.tauD         = tauD;
  52.         this.transitState = transitState;
  53.         this.transitPV    = transitPV;
  54.     }

  55.     /** Get spacecraft state.
  56.      * @return spacecraft state
  57.      */
  58.     public SpacecraftState getState() {
  59.         return state;
  60.     }

  61.     /** Get derivatives indices map.
  62.      * @return derivatives indices map
  63.      */
  64.     public Map<String, Integer> getIndices() {
  65.         return indices;
  66.     }

  67.     /** Get downlink delay.
  68.      * @return ownlink delay
  69.      */
  70.     public Gradient getTauD() {
  71.         return tauD;
  72.     }

  73.     /** Get transit state.
  74.      * @return transit state
  75.      */
  76.     public SpacecraftState getTransitState() {
  77.         return transitState;
  78.     }

  79.     /** Get transit position/velocity.
  80.      * @return transit position/velocity
  81.      */
  82.     public TimeStampedFieldPVCoordinates<Gradient> getTransitPV() {
  83.         return transitPV;
  84.     }

  85. }