Skip to content
Snippets Groups Projects
AzElParser.java 1.88 KiB
Newer Older
noeljanes's avatar
noeljanes committed
package fr.cs.examples.estimation;

import org.hipparchus.util.FastMath;
import org.orekit.estimation.measurements.AngularAzEl;
import org.orekit.estimation.measurements.ObservableSatellite;
import org.orekit.estimation.measurements.Range;
import org.orekit.estimation.measurements.modifiers.Bias;

import java.util.Map;

public class AzElParser extends OrbitDetermination.MeasurementsParser<AngularAzEl>{

    /** Parser for azimuth-elevation measurements. */
    /** {@inheritDoc} */
    @Override
    public AngularAzEl 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) {
        checkFields(5, fields, line, lineNumber, fileName);
        final StationData stationData = getStationData(fields[2], stations, line, lineNumber, fileName);
        final AngularAzEl azEl = new AngularAzEl(stationData.station,
                getDate(fields[0], line, lineNumber, fileName),
                new double[] {
                        FastMath.toRadians(Double.parseDouble(fields[3])),
                        FastMath.toRadians(Double.parseDouble(fields[4]))
                },
                stationData.azElSigma,
                weights.azElBaseWeight,
                satellite);
        if (stationData.refractionCorrection != null) {
            azEl.addModifier(stationData.refractionCorrection);
        }
        if (stationData.azELBias != null) {
            azEl.addModifier(stationData.azELBias);
        }
        return azEl;
    }
}