Skip to content
Snippets Groups Projects
PVParser.java 1.83 KiB
Newer Older
noeljanes's avatar
noeljanes committed
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);
    }
}