UNPKG

ootk

Version:

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

102 lines 3.58 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/>. */ /* eslint-disable @typescript-eslint/no-unused-vars */ /** * Observation data. */ export class Observation { /** * Return range-normalized cross line-of-sight residual for the observation * when compared against a nominal state propagator. * @param propagator Propagator to compare against. * @throws Not implemented. */ clos(propagator) { throw new Error('Not implemented'); } /** * Return relative state residual for the observation when compared against * a nominal state propagator. * @param propagator Propagator to compare against. * @throws Not implemented. */ ricDiff(propagator) { throw new Error('Not implemented'); } /** * Convert this observation to vector form. * @throws Not implemented. */ toVector() { throw new Error('Not implemented'); } /** * Compute the state derivative matrix for this observation. * @param propPairs Propagator pairs to compare against. * @throws Not implemented. */ jacobian(propPairs) { throw new Error('Not implemented'); } /** * Compute the state residual matrix for this observation. * @param propagator Propagator to compare against. * @throws Not implemented. */ residual(propagator) { throw new Error('Not implemented'); } /** * Convert this observation's noise matrix into a covariance matrix. * @returns A matrix representing the noise covariance. */ noiseCovariance() { return this.noise.reciprocal(); } /** * Generates a noise sample from the noise covariance matrix. * @param sigma - The scaling factor for the noise covariance matrix. * @returns A matrix representing the noise sample. */ noiseSample_(sigma) { return this.noiseCovariance().scale(sigma).cholesky(); } /** * Randomly sample this observation in vector form within the * observation noise. * @param random Random number generator. * @param sigma Sigma value to scale the noise by. * @returns Sampled observation. */ sampleVector(random, sigma) { const chol = this.noiseSample_(sigma); const gauss = random.gaussVector(this.noise.columns); const meas = this.toVector(); return meas.add(chol.multiplyVector(gauss)); } /** * Randomly sample this observation within the observation noise, scaled to * the provided sigma value. * @param random Random number generator. * @param sigma Sigma value to scale the noise by. * @throws Not implemented. */ sample(random, sigma = 1.0) { throw new Error('Not implemented'); } } //# sourceMappingURL=Observation.js.map