OnBoardCommonParametersWithDerivatives.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.gnss;

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

  22. import java.util.Map;

  23. /** Common intermediate parameters used to estimate measurements where receiver is a satellite.
  24.  * @author Luc Maisonobe
  25.  * @since 12.1
  26.  */
  27. public class OnBoardCommonParametersWithDerivatives
  28.     extends CommonParametersWithDerivatives {

  29.     /** Local clock offset. */
  30.     private final Gradient localOffset;

  31.     /** Local clock rate. */
  32.     private final Gradient localRate;

  33.     /** Remote clock offset. */
  34.     private final Gradient remoteOffset;

  35.     /** Remote clock rate. */
  36.     private final Gradient remoteRate;

  37.     /** Remote satellite position/velocity. */
  38.     private final TimeStampedFieldPVCoordinates<Gradient> remotePV;

  39.     /** Simple constructor.
  40.      * @param localState local spacecraft state
  41.      * @param indices derivatives indices map
  42.      * @param localOffset local clock offset
  43.      * @param localRate local clock rate
  44.      * @param remoteOffset remote clock offset
  45.      * @param remoteRate remote clock rate
  46.      * @param tauD downlink delay
  47.      * @param localPV local satellite position/velocity
  48.      * @param remotePV remote satellite position/velocity
  49.      */
  50.     public OnBoardCommonParametersWithDerivatives(final SpacecraftState localState,
  51.                                                   final Map<String, Integer> indices,
  52.                                                   final Gradient localOffset, final Gradient localRate,
  53.                                                   final Gradient remoteOffset, final Gradient remoteRate,
  54.                                                   final Gradient tauD,
  55.                                                   final TimeStampedFieldPVCoordinates<Gradient> localPV,
  56.                                                   final TimeStampedFieldPVCoordinates<Gradient> remotePV) {
  57.         super(localState, indices, tauD, localState, localPV);
  58.         this.localOffset  = localOffset;
  59.         this.localRate    = localRate;
  60.         this.remoteOffset = remoteOffset;
  61.         this.remoteRate   = remoteRate;
  62.         this.remotePV     = remotePV;
  63.     }

  64.     /** Get local clock offset.
  65.      * @return local clock offset
  66.      */
  67.     public Gradient getLocalOffset() {
  68.         return localOffset;
  69.     }

  70.     /** Get local clock rate.
  71.      * @return local clock rate
  72.      */
  73.     public Gradient getLocalRate() {
  74.         return localRate;
  75.     }

  76.     /** Get remote clock offset.
  77.      * @return remote clock offset
  78.      */
  79.     public Gradient getRemoteOffset() {
  80.         return remoteOffset;
  81.     }

  82.     /** Get remote clock rate.
  83.      * @return remote clock rate
  84.      */
  85.     public Gradient getRemoteRate() {
  86.         return remoteRate;
  87.     }

  88.     /** Get remote satellite position/velocity.
  89.      * @return remote satellite position/velocity
  90.      */
  91.     public TimeStampedFieldPVCoordinates<Gradient> getRemotePV() {
  92.         return remotePV;
  93.     }

  94. }