@tubular/astronomy
Version:
Astronomical calculations for planetary positions, moon phases, eclipses, rise, transit, and set times, and more.
154 lines • 5.94 kB
TypeScript
import { Angle, SphericalPosition, SphericalPosition3D } from '@tubular/math';
import { IAstroDataService } from './i-astro-data.service';
import { ISkyObserver } from './i-sky-observer';
export interface AsteroidCometElements {
e: number;
epoch: string | number;
i: number;
L: number;
Tp: number;
q: number;
ω: number;
}
export interface AsteroidCometDescription {
designation: string;
G?: number;
H?: number;
name: string;
}
export interface AsteroidCometInfo {
body: AsteroidCometDescription;
elements: AsteroidCometElements[];
}
export interface EclipseInfo {
isSolar: boolean;
pos: SphericalPosition3D;
radius: number;
shadowPos: SphericalPosition;
penumbraRadius: number;
umbraRadius: number;
centerSeparation: number;
penumbralSeparation: number;
inPenumbra: boolean;
umbralSeparation: number;
inUmbra: boolean;
total: boolean;
totality?: number;
penumbralMagnitude?: number;
annular: boolean;
hybrid: boolean;
surfaceShadow: ISkyObserver;
}
export interface RingInfo {
B: number;
B1: number;
P: number;
a: number;
b: number;
dU: number;
}
export interface OrbitalElements {
L: number;
a: number;
e: number;
i: number;
Ω: number;
pi: number;
ω: number;
M: number;
C: number;
v: number;
partial: boolean;
}
export interface Libration {
l: number;
b: number;
d: number;
D: number;
}
export interface EclipseCircumstances {
annular: boolean;
duration: number;
firstContact: number;
lastContact: number;
maxEclipse: number;
maxTime: number;
peakDuration: number;
peakEnds?: number;
peakStarts?: number;
penumbralDuration?: number;
penumbralFirstContact?: number;
penumbralLastContact?: number;
}
export declare function lecToString(lec: EclipseCircumstances): string;
export declare class CircumstancesOfEclipse implements EclipseCircumstances {
annular: boolean;
duration: number;
firstContact: number;
lastContact: number;
maxEclipse: number;
maxTime: number;
peakDuration: number;
peakEnds?: number;
peakStarts?: number;
penumbralDuration?: number;
penumbralFirstContact?: number;
penumbralLastContact?: number;
constructor(ec: EclipseCircumstances);
toString(): string;
}
export declare class SolarSystem {
static createSkyObserver: (longitude: number, latitude: number) => ISkyObserver;
private static sharedAdditionalsInitPending;
private static sharedAdditionalsPendingPromise;
private static sharedAdditionals;
private ecliptic;
private moon;
private planets;
private pluto;
private planetNames;
private planetSymbols;
private static getPrecision;
static getGreenwichMeanSiderealTime(time_JDU: number): number;
static isNominalPlanet(planet: number): boolean;
static isTruePlanet(planet: number): boolean;
static isAsteroid(planet: number): boolean;
static isComet(planet: number): boolean;
static getAsteroidCount(): number;
static getCometCount(): number;
static getAsteroidAndCometNames(forMenu?: boolean, shortMenuNames?: boolean): string[];
static isAsteroidOrComet(planet: number): boolean;
static orbitsSun(planet: number): boolean;
static getOrbitalElements(planet: number, time_JDE: number): OrbitalElements;
static getHeliocentricPositionFromElements(oe: OrbitalElements): SphericalPosition3D;
static getMeanOrbitalPeriod(planet: number): number;
static getMeanConjunctionPeriod(planet: number): number;
static initAsteroidsAndComets(dataService: IAstroDataService): Promise<boolean>;
getPlanetName(planet: number): string;
getPlanetByName(planetName: string): number;
getPlanetSymbol(planet: number): string;
getHeliocentricPosition(planet: number, time_JDE: number, flags?: number): SphericalPosition3D;
getEclipticPosition(planet: number, time_JDE: number, observer?: ISkyObserver, flags?: number, earthTime?: number): SphericalPosition3D;
getEquatorialPosition(planet: number, time_JDE: number, observer?: ISkyObserver, flags?: number): SphericalPosition3D;
getGreenwichApparentSiderealTime(time_JDU: number): number;
getHorizontalPosition(planet: number, time_JDU: number, observer: ISkyObserver, flags?: number): SphericalPosition3D;
getHourAngle(planet: number, time_JDU: number, observer: ISkyObserver, flags?: number): Angle;
getParallacticAngle(planet: number, time_JDU: number, observer: ISkyObserver, flags?: number): Angle;
getLunarPhase(time_JDE: number): number;
getLunarIlluminatedFraction(time_JDE: number): number;
protected getCosPhaseAngle(planet: number, time_JDE: number): number;
getPhaseAngle(planet: number, time_JDE: number): number;
getIlluminatedFraction(planet: number, time_JDE: number): number;
getSolarElongation(planet: number, time_JDE: number, observer?: ISkyObserver, flags?: number): number;
getSolarElongationInLongitude(planet: number, time_JDE: number): number;
getSaturnRingInfo(time_JDE: number): RingInfo;
getMagnitude(planet: number, time_JDE: number): number;
getAngularDiameter(planet: number, time_JDE: number, observer?: ISkyObserver, polarSize?: boolean): number;
getLunarLibration(time_JDE: number, observer?: ISkyObserver): Libration;
getLunarEclipseInfo(time_JDE: number, raw?: boolean): EclipseInfo;
getSolarEclipseInfo(time_JDE: number, locateShadow?: boolean): EclipseInfo;
getLunarEclipseTotality(time_JDE: number, raw?: boolean, penumbraMagnitude?: number[]): number;
getLocalSolarEclipseTotality(time_JDE: number, observer: ISkyObserver, raw?: boolean, annularity?: number[]): number;
getTimeForDegreesOfChange(bodyID: number, startTime_JDE: number, degrees: number, maxTime_JDE: number): number;
}
//# sourceMappingURL=solar-system.d.ts.map