UNPKG

ootk

Version:

Orbital Object Toolkit including Multiple Propagators, Initial Orbit Determination, and Maneuver Calculations.

70 lines (69 loc) 2.95 kB
/** * @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; }