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


import java.util.Map;

import org.orekit.estimation.measurements.ObservableSatellite;
import org.orekit.estimation.measurements.Range;
import org.orekit.estimation.measurements.modifiers.Bias;


public class RangeParser extends OrbitDetermination.MeasurementsParser<Range> {

    /** Parser for range measurements */
    /** {@inheritDoc} */
    @Override
    public Range 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(4, fields, line, lineNumber, fileName);
        final StationData stationData = getStationData(fields[2], stations, line, lineNumber, fileName);
        final Range range = new Range(stationData.station, true,
                getDate(fields[0], line, lineNumber, fileName),
                Double.parseDouble(fields[3]) * 1000.0,
                stationData.rangeSigma,
                weights.rangeBaseWeight,
                satellite);
        if (stationData.rangeBias != null) {
            range.addModifier(stationData.rangeBias);
        }
        if (satRangeBias != null) {
            range.addModifier(satRangeBias);
        }
        if (stationData.rangeTroposphericCorrection != null) {
            range.addModifier(stationData.rangeTroposphericCorrection);
        }
        return range;
    }

}