ootk
Version:
Orbital Object Toolkit including Multiple Propagators, Initial Orbit Determination, and Maneuver Calculations.
70 lines (69 loc) • 2.95 kB
TypeScript
/**
* @author @thkruz Theodore Kruczek
* @license AGPL-3.0-or-later
* @copyright (c) 2025 Kruczek Labs LLC
*
* Orbital Object ToolKit is free software: you can redistribute it and/or modify it under the
* terms of the GNU Affero General Public License as published by the Free Software
* Foundation, either version 3 of the License, or (at your option) any later version.
*
* Orbital Object ToolKit is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
* See the GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License along with
* Orbital Object ToolKit. If not, see <http://www.gnu.org/licenses/>.
*/
import { J2000 } from '../main.js';
import { Observation } from '../observation/Observation.js';
import { ForceModel } from './../force/ForceModel.js';
import { BatchLeastSquaresResult } from './BatchLeastSquaresResult.js';
/**
* Batch least squares orbit determination.
*/
export declare class BatchLeastSquaresOD {
private readonly observations_;
private readonly apriori_;
private readonly forceModel_?;
private readonly posStep_;
private readonly velStep_;
private readonly fastDerivatives_;
/** Propagator pair cache, for generating observation Jacobians. */
private readonly propPairs_;
/** Nominal state propagator. */
private propagator_;
/** State estimate during solve. */
private readonly nominal_;
/** Solve start epoch. */
private readonly start_;
/**
* Create a new [BatchLeastSquaresOD] object from a list of [Observation]
* objects, an [apriori] state estimate, and an optional
* spacecraft [forceModel].
* @param observations_ List of observations.
* @param apriori_ Apriori state estimate.
* @param forceModel_ Spacecraft force model.
* @param posStep_ Position step size.
* @param velStep_ Velocity step size.
* @param fastDerivatives_ Use fast derivatives.
* @returns [BatchLeastSquaresOD] object.
*/
constructor(observations_: Observation[], apriori_: J2000, forceModel_?: ForceModel | undefined, posStep_?: number, velStep_?: number, fastDerivatives_?: boolean);
private buildPropagator_;
private static stateToX0_;
private setPropagatorPairs_;
/**
* Attempt to solve a state estimate with the given root-mean-squared delta
* [tolerance].
* @param root0 Root initial guess.
* @param root0.tolerance Root-mean-squared delta tolerance.
* @param root0.maxIter Maximum number of iterations.
* @param root0.printIter Print iterations.
* @returns [BatchLeastSquaresResult] object.
*/
solve({ tolerance, maxIter, printIter, }?: {
tolerance?: number;
maxIter?: number;
printIter?: boolean;
}): BatchLeastSquaresResult;
}