Newer
Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
package fr.cs.examples.estimation;
import org.hipparchus.geometry.euclidean.threed.Vector3D;
import org.orekit.estimation.measurements.ObservableSatellite;
import org.orekit.estimation.measurements.PV;
import org.orekit.estimation.measurements.Range;
import org.orekit.estimation.measurements.modifiers.Bias;
import java.util.Map;
public class PVParser extends OrbitDetermination.MeasurementsParser<PV> {
/** Parser for PV measurements. */
@Override
public PV parseFields(final String[] fields,
final Map<String, StationData> stations,
final PVData pvData,
final ObservableSatellite satellite,
final Bias<Range> satRangeBias,
final Weights weights,
final String line,
final int lineNumber,
final String fileName) {
// field 2, which corresponds to stations in other measurements, is ignored
// this allows the measurements files to be columns aligned
// by inserting something like "----" instead of a station name
checkFields(9, fields, line, lineNumber, fileName);
return new org.orekit.estimation.measurements.PV(getDate(fields[0], line, lineNumber, fileName),
new Vector3D(Double.parseDouble(fields[3]) * 1000.0,
Double.parseDouble(fields[4]) * 1000.0,
Double.parseDouble(fields[5]) * 1000.0),
new Vector3D(Double.parseDouble(fields[6]) * 1000.0,
Double.parseDouble(fields[7]) * 1000.0,
Double.parseDouble(fields[8]) * 1000.0),
pvData.positionSigma,
pvData.velocitySigma,
weights.pvBaseWeight,
satellite);
}
}