PropagatorBuilder.java
- /* Copyright 2002-2024 CS GROUP
- * Licensed to CS GROUP (CS) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * CS licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
- package org.orekit.propagation.conversion;
- import java.util.List;
- import org.orekit.estimation.leastsquares.AbstractBatchLSModel;
- import org.orekit.estimation.leastsquares.ModelObserver;
- import org.orekit.estimation.measurements.ObservedMeasurement;
- import org.orekit.frames.Frame;
- import org.orekit.orbits.Orbit;
- import org.orekit.orbits.OrbitType;
- import org.orekit.orbits.PositionAngleType;
- import org.orekit.propagation.Propagator;
- import org.orekit.time.AbsoluteDate;
- import org.orekit.utils.ParameterDriversList;
- /** This interface is the top-level abstraction to build propagators for conversion.
- * @author Pascal Parraud
- * @since 6.0
- */
- public interface PropagatorBuilder {
- /** Create a new instance identical to this one.
- * @return new instance identical to this one
- */
- PropagatorBuilder copy();
- /** Build a propagator.
- * @param normalizedParameters normalized values for the selected parameters
- * @return an initialized propagator
- */
- Propagator buildPropagator(double[] normalizedParameters);
- /** Build a propagator from current value of selected normalized parameters.
- * @return an initialized propagator
- */
- default Propagator buildPropagator() {
- return buildPropagator(getSelectedNormalizedParameters());
- }
- /** Build a new batch least squares model.
- * @param builders builders to use for propagation
- * @param measurements measurements
- * @param estimatedMeasurementsParameters estimated measurements parameters
- * @param observer observer to be notified at model calls
- * @return a new model for the Batch Least Squares orbit determination
- * @since 12.0
- */
- AbstractBatchLSModel buildLeastSquaresModel(PropagatorBuilder[] builders,
- List<ObservedMeasurement<?>> measurements,
- ParameterDriversList estimatedMeasurementsParameters,
- ModelObserver observer);
- /** Get the current value of selected normalized parameters.
- * @return current value of selected normalized parameters
- */
- double[] getSelectedNormalizedParameters();
- /** Get the orbit type expected for the 6 first parameters in
- * {@link #buildPropagator(double[])}.
- * @return orbit type to use in {@link #buildPropagator(double[])}
- * @see #buildPropagator(double[])
- * @see #getPositionAngleType()
- * @since 7.1
- */
- OrbitType getOrbitType();
- /** Get the position angle type expected for the 6 first parameters in
- * {@link #buildPropagator(double[])}.
- * @return position angle type to use in {@link #buildPropagator(double[])}
- * @see #buildPropagator(double[])
- * @see #getOrbitType()
- * @since 7.1
- */
- PositionAngleType getPositionAngleType();
- /** Get the date of the initial orbit.
- * @return date of the initial orbit
- */
- AbsoluteDate getInitialOrbitDate();
- /** Get the frame in which the orbit is propagated.
- * @return frame in which the orbit is propagated
- */
- Frame getFrame();
- /** Get the central attraction coefficient (µ - m³/s²) value.
- * @return the central attraction coefficient (µ - m³/s²) value
- * @since 12.0
- */
- double getMu();
- /** Get the drivers for the configurable orbital parameters.
- * Orbital drivers should have only 1 value estimated (1 span)
- * @return drivers for the configurable orbital parameters
- * @since 8.0
- */
- ParameterDriversList getOrbitalParametersDrivers();
- /** Get the drivers for the configurable propagation parameters.
- * <p>
- * The parameters typically correspond to force models.
- * </p>
- * @return drivers for the configurable propagation parameters
- * @since 8.0
- */
- ParameterDriversList getPropagationParametersDrivers();
- /** Reset the orbit in the propagator builder.
- * @param newOrbit New orbit to set in the propagator builder
- * @since 12.0
- */
- void resetOrbit(Orbit newOrbit);
- }