UNPKG

ootk-core

Version:

Orbital Object Toolkit. A modern typed replacement for satellite.js including SGP4 propagation, TLE parsing, Sun and Moon calculations, and more.

69 lines (68 loc) 3.14 kB
/** * @author Theodore Kruczek. * @license MIT * @copyright (c) 2022-2025 Theodore Kruczek Permission is * hereby granted, free of charge, to any person obtaining a copy of this * software and associated documentation files (the "Software"), to deal in the * Software without restriction, including without limitation the rights to use, * copy, modify, merge, publish, distribute, sublicense, and/or sell copies of * the Software, and to permit persons to whom the Software is furnished to do * so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ import { EpochUTC, Kilometers, RadiansPerSecond, Vector3D } from '../main.js'; import { NutationAngles } from './NutationAngles.js'; import { PrecessionAngles } from './PrecessionAngles.js'; export declare class Earth { private constructor(); static readonly mu: number; static readonly radiusEquator: Kilometers; static readonly flattening: number; static readonly radiusPolar: Kilometers; static readonly radiusMean: Kilometers; static readonly eccentricitySquared: number; static readonly j2: number; static readonly j3: number; static readonly j4: number; static readonly j5: number; static readonly j6: number; static readonly rotation: Vector3D<RadiansPerSecond>; static smaToMeanMotion(semimajorAxis: Kilometers): RadiansPerSecond; /** * Converts revolutions per day to semi-major axis. * @param rpd - The number of revolutions per day. * @returns The semi-major axis value. */ static revsPerDayToSma(rpd: number): number; static precession(epoch: EpochUTC): PrecessionAngles; static nutation(epoch: EpochUTC): NutationAngles; static smaToDrift(semimajorAxis: number): number; static smaToDriftDegrees(semimajorAxis: number): number; static driftToSemimajorAxis(driftRate: number): number; static driftDegreesToSma(driftRate: number): number; /** * Calculates the diameter of the Earth based on the satellite position. * @param satPos The position of the satellite. * @returns The diameter of the Earth. */ static diameter(satPos: Vector3D): number; private static readonly zetaPoly_; private static readonly thetaPoly_; private static readonly zedPoly_; private static readonly moonAnomPoly_; private static readonly sunAnomPoly_; private static readonly moonLatPoly_; private static readonly sunElongPoly_; private static readonly moonRaanPoly_; private static readonly meanEpsilonPoly_; }