UNPKG

ootk

Version:

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

86 lines (85 loc) 3.96 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 { GroundPositionParams, Degrees, EcfVec3, EciVec3, Kilometers, LlaVec3, Radians, RaeVec3, Geodetic, BaseObjectParams } from '../main.js'; import { BaseObject } from './BaseObject.js'; import { Satellite } from './Satellite.js'; export declare class GroundObject extends BaseObject { name: string; lat: Degrees; lon: Degrees; alt: Kilometers; constructor(info: GroundPositionParams & BaseObjectParams); /** * Calculates the relative azimuth, elevation, and range between this GroundObject and a Satellite. * @param satellite The Satellite object. * @param date The date for which to calculate the RAE values. Defaults to the current date. * @returns The relative azimuth, elevation, and range values in kilometers and degrees. */ rae(satellite: Satellite, date?: Date): RaeVec3<Kilometers, Degrees> | null; /** * Calculates ECF position at a given time. * @variation optimized version of this.toGeodetic().toITRF().position; * @returns The ECF position vector of the ground object. */ ecf(): EcfVec3<Kilometers>; /** * Calculates the Earth-Centered Inertial (ECI) position vector of the ground object at a given date. * @variation optimzed version of this.toGeodetic().toITRF().toJ2000().position; * @param date The date for which to calculate the ECI position vector. Defaults to the current date. * @returns The ECI position vector of the ground object. */ eci(date?: Date): EciVec3<Kilometers>; /** * Returns the latitude, longitude, and altitude of the GroundObject. * @returns The latitude, longitude, and altitude as an LlaVec3 object. */ lla(): LlaVec3<Degrees, Kilometers>; /** * Converts the latitude, longitude, and altitude of the GroundObject to radians and kilometers. * @variation optimized version of this.toGeodetic() without class instantiation for better performance and * serialization. * @returns An object containing the latitude, longitude, and altitude in * radians and kilometers. */ llaRad(): LlaVec3<Radians, Kilometers>; get latRad(): Radians; get lonRad(): Radians; /** * Creates a GroundObject object from a Geodetic position. * @param geodetic The geodetic coordinates. * @returns A new GroundObject object. */ static fromGeodetic(geodetic: Geodetic): GroundObject; /** * Converts the ground position to geodetic coordinates. * @returns The geodetic coordinates. */ toGeodetic(): Geodetic; /** * Validates the input data for the GroundObject. * @param info - The GroundPositionParams object containing the latitude, * longitude, and altitude. @returns void */ private validateGroundObjectInputData_; isGroundObject(): boolean; }