1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.orekit.estimation.leastsquares;
18
19 import java.util.List;
20
21 import org.orekit.estimation.measurements.ObservedMeasurement;
22 import org.orekit.orbits.Orbit;
23 import org.orekit.propagation.MatricesHarvester;
24 import org.orekit.propagation.Propagator;
25 import org.orekit.propagation.SpacecraftState;
26 import org.orekit.propagation.conversion.OrbitDeterminationPropagatorBuilder;
27 import org.orekit.propagation.numerical.JacobiansMapper;
28 import org.orekit.propagation.numerical.NumericalPropagator;
29 import org.orekit.utils.ParameterDriversList;
30
31
32
33
34
35
36
37 public class BatchLSModel extends AbstractBatchLSModel {
38
39
40 private static final String STM_NAME = BatchLSModel.class.getName() + "-derivatives";
41
42
43
44
45
46
47
48 public BatchLSModel(final OrbitDeterminationPropagatorBuilder[] propagatorBuilders,
49 final List<ObservedMeasurement<?>> measurements,
50 final ParameterDriversList estimatedMeasurementsParameters,
51 final ModelObserver observer) {
52
53 super(propagatorBuilders, measurements, estimatedMeasurementsParameters, observer);
54 }
55
56
57 @Override
58 protected MatricesHarvester configureHarvester(final Propagator propagator) {
59 return propagator.setupMatricesComputation(STM_NAME, null, null);
60 }
61
62
63 @Override
64 @Deprecated
65 protected JacobiansMapper configureDerivatives(final Propagator propagator) {
66
67 final org.orekit.propagation.numerical.PartialDerivativesEquations partials =
68 new org.orekit.propagation.numerical.PartialDerivativesEquations(STM_NAME, (NumericalPropagator) propagator);
69
70
71 final SpacecraftState rawState = propagator.getInitialState();
72 final SpacecraftState stateWithDerivatives = partials.setInitialJacobians(rawState);
73 propagator.resetInitialState(stateWithDerivatives);
74
75 return partials.getMapper();
76
77 }
78
79
80 @Override
81 protected Orbit configureOrbits(final MatricesHarvester harvester, final Propagator propagator) {
82
83 return propagator.getInitialState().getOrbit();
84 }
85
86 }