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
19 import org.hipparchus.analysis.differentiation.Gradient;
20 import org.orekit.propagation.SpacecraftState;
21 import org.orekit.utils.TimeStampedFieldPVCoordinates;
22
23 import java.util.Map;
24
25 /** Common intermediate parameters used to estimate measurements where receiver is a ground station.
26 * @author Luc Maisonobe
27 * @since 12.1
28 */
29 public class CommonParametersWithDerivatives {
30
31 /** Spacecraft state. */
32 private final SpacecraftState state;
33
34 /** Derivatives indices map. */
35 private final Map<String, Integer> indices;
36
37 /** Downlink delay. */
38 private final Gradient tauD;
39
40 /** Transit state. */
41 private final SpacecraftState transitState;
42
43 /** Transit state. */
44 private final TimeStampedFieldPVCoordinates<Gradient> transitPV;
45
46 /** Simple constructor.
47 * @param state spacecraft state
48 * @param indices derivatives indices map
49 * @param tauD downlink delay
50 * @param transitState transit state
51 * @param transitPV transit position/velocity as a gradient
52 */
53 public CommonParametersWithDerivatives(final SpacecraftState state,
54 final Map<String, Integer> indices,
55 final Gradient tauD,
56 final SpacecraftState transitState,
57 final TimeStampedFieldPVCoordinates<Gradient> transitPV) {
58 this.state = state;
59 this.indices = indices;
60 this.tauD = tauD;
61 this.transitState = transitState;
62 this.transitPV = transitPV;
63 }
64
65 /** Get spacecraft state.
66 * @return spacecraft state
67 */
68 public SpacecraftState getState() {
69 return state;
70 }
71
72 /** Get derivatives indices map.
73 * @return derivatives indices map
74 */
75 public Map<String, Integer> getIndices() {
76 return indices;
77 }
78
79 /** Get downlink delay.
80 * @return ownlink delay
81 */
82 public Gradient getTauD() {
83 return tauD;
84 }
85
86 /** Get transit state.
87 * @return transit state
88 */
89 public SpacecraftState getTransitState() {
90 return transitState;
91 }
92
93 /** Get transit position/velocity.
94 * @return transit position/velocity
95 */
96 public TimeStampedFieldPVCoordinates<Gradient> getTransitPV() {
97 return transitPV;
98 }
99
100 }