UNPKG

ootk

Version:

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

100 lines (99 loc) 3.95 kB
/** * @author @thkruz Theodore Kruczek * @description Orbital Object ToolKit (ootk) is a collection of tools for working * with satellites and other orbital objects. * @license AGPL-3.0-or-later * @copyright (c) 2025 Kruczek Labs LLC * * Many of the classes are based off of the work of @david-rc-dayton and his * Pious Squid library (https://github.com/david-rc-dayton/pious_squid) which * is licensed under the MIT license. * * 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 { SensorParams } from '../interfaces/SensorParams.js'; import { Degrees, Kilometers, Lookangle, RaeVec3 } from '../types/types.js'; import { GroundObject } from './GroundObject.js'; import { Satellite } from './Satellite.js'; import { J2000 } from '../main.js'; export declare class Sensor extends GroundObject { minRng: Kilometers; minAz: Degrees; minEl: Degrees; maxRng: Kilometers; maxAz: Degrees; maxEl: Degrees; minRng2?: Kilometers; minAz2?: Degrees; minEl2?: Degrees; maxRng2?: Kilometers; maxAz2?: Degrees; maxEl2?: Degrees; constructor(info: SensorParams); /** * Checks if the object is a sensor. * @returns True if the object is a sensor, false otherwise. */ isSensor(): boolean; calculatePasses(planningInterval: number, sat: Satellite, date?: Date): Lookangle[]; /** * Checks if the given RAE vector is within the field of view of the sensor. * @param rae - The RAE vector to check. * @returns True if the RAE vector is within the field of view, false otherwise. */ isRaeInFov(rae: RaeVec3<Kilometers, Degrees>): boolean; /** * Checks if a satellite is in the field of view (FOV) of the sensor. * @param sat - The satellite to check. * @param date - The date to use for the calculation. Defaults to the current date. * @returns A boolean indicating whether the satellite is in the FOV. */ isSatInFov(sat: Satellite, date?: Date): boolean; /** * Checks if the sensor is in deep space. * @returns True if the sensor is in deep space, false otherwise. */ isDeepSpace(): boolean; /** * Checks if the sensor is near Earth. * @returns True if the sensor is near Earth, false otherwise. */ isNearEarth(): boolean; toJ2000(date?: Date): J2000; /** * Returns the pass type based on the current and previous visibility states. * @param isInView - Indicates if the object is currently in view. * @param isInViewLast - Indicates if the object was in view in the previous state. * @returns The pass type. */ private static getPassType_; /** * Validates the field of view (FOV) parameters of the sensor. * @param info - The sensor parameters. */ private validateFov_; /** * Validates the field of view parameters for the sensor. * @param info - The sensor parameters. */ private validateFov2_; /** * Validates the input data for the sensor. * @param info - The sensor parameters. */ private validateSensorInputData_; /** * Validates the latitude, longitude, and altitude of a sensor. * @param info - The sensor parameters containing the latitude, longitude, and altitude. */ private validateLla_; }