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.Propagator;
24 import org.orekit.propagation.SpacecraftState;
25 import org.orekit.propagation.conversion.OrbitDeterminationPropagatorBuilder;
26 import org.orekit.propagation.integration.AbstractJacobiansMapper;
27 import org.orekit.propagation.numerical.JacobiansMapper;
28 import org.orekit.propagation.numerical.NumericalPropagator;
29 import org.orekit.propagation.numerical.PartialDerivativesEquations;
30 import org.orekit.utils.ParameterDriversList;
31
32
33
34
35
36
37
38 public class BatchLSModel extends AbstractBatchLSModel {
39
40
41
42
43
44
45
46 public BatchLSModel(final OrbitDeterminationPropagatorBuilder[] propagatorBuilders,
47 final List<ObservedMeasurement<?>> measurements,
48 final ParameterDriversList estimatedMeasurementsParameters,
49 final ModelObserver observer) {
50
51 super(propagatorBuilders, measurements, estimatedMeasurementsParameters,
52 new JacobiansMapper[propagatorBuilders.length], observer);
53 }
54
55
56 @Override
57 protected JacobiansMapper configureDerivatives(final Propagator propagator) {
58
59 final String equationName = BatchLSModel.class.getName() + "-derivatives";
60
61 final PartialDerivativesEquations partials = new PartialDerivativesEquations(equationName, (NumericalPropagator) propagator);
62
63
64 final SpacecraftState rawState = propagator.getInitialState();
65 final SpacecraftState stateWithDerivatives = partials.setInitialJacobians(rawState);
66 propagator.resetInitialState(stateWithDerivatives);
67
68 return partials.getMapper();
69
70 }
71
72
73 @Override
74 protected Orbit configureOrbits(final AbstractJacobiansMapper mapper,
75 final Propagator propagator) {
76
77 return propagator.getInitialState().getOrbit();
78 }
79
80 }