/** * ## Sweph * Definitive Swiss Ephemeris bindings for Node.js * * [Official programmer's documentation for the Swiss Ephemeris](https://www.astro.com/swisseph/swephprg.htm) * [Official guide for the Swiss Ephemeris](https://www.astro.com/ftp/swisseph/doc/swisseph.htm) * [Sweph on GitHub](https://github.com/timotejroiko/sweph) * [Sweph on NPM](http://npmjs.com/package/sweph) * * ### Usage * ``` * const { utc_to_jd, calc, houses_ex2, constants, set_ephe_path } = require("sweph"); * // or import { utc_to_jd, calc, houses_ex2, constants, set_ephe_path } from "sweph"; * * set_ephe_path("./ephemeris"); // folder containing your ephemeris files; * * const date = utc_to_jd(2020, 1, 25, 15, 35, 0, constants.SE_GREG_CAL); // 25 Jan 2020, 15:35:00, gregorian calendar * if(date.flag !== constants.OK) { throw new Error(date.error); } * * const [ jd_et, jd_ut ] = date.data; // et for planets, ut for houses * const flags = constants.SEFLG_SWIEPH | constants.SEFLG_SPEED; // use the ephemeris files and enable speeds * const planets = calc(jd_et, constants.SE_SUN, flags); * if(planets.flag !== flags) { console.log(planets.error); } // if the flags are not the same then something went wrong * * const houses = houses_ex2(jd_ut, 0, 37, 54, "P"); // placidus houses on latitude 37 longitude 54 * if(houses.flag !== constants.OK) { console.log(houses.error) } // if flag is not equal to OK then something went wrong * * console.log(planets.data, houses.data) * ``` */ declare module "sweph" { export * as default from "sweph" /* ┌──────────────────────────────────────────────────┬────────────┬──────────────────────────────────────────────────┐ │┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼│ Interfaces │┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼│ └──────────────────────────────────────────────────┴────────────┴──────────────────────────────────────────────────┘ */ export interface Flag { /** * ### Description * Status flag returned by the function * Use it to check if the function succeeded, failed, or to check output type * ``` * ``` */ flag: number; } export interface Error { /** * ### Description * Error message * An error message will be available here when the flag indicates failure * ``` * ``` */ error: string; } export interface Name { /** * ### Description * Star name * The full star name as it appears in the sefstars.txt file * ``` * ``` */ name: string; } export interface GetCurrentFileData { /** * ### Description * Path to ephemeris file * ``` * ``` */ path: string; /** * ### Description * Ephemeris start date for this file * ``` * ``` */ start: number; /** * ### Description * Ephemeris end date for this file * ``` * ``` */ end: number; /** * ### Description * JPL ephemeris version used to generate the file * ``` * ``` */ denum: number; } export interface GetOrbitalElements extends Flag, Error { /** * ### Description * Array of orbital/kepler elements * ``` * ``` */ data: OrbitalElementsData; } export interface Calc extends Error, Flag { /** * ### Description * Array of values returned by the calculation * By default the values are in ecliptic coordinates (longitude, latitude, distance) * If `SEFLG_SPEED` or `SEFLG_SPEED3` are used, the daily speeds for each value are also retured, otherwise they are 0 * If `SEFLG_EQUATORIAL` is used, the values are in equatorial coordinates instead (right ascension, declination, distance) * If `SELFG_XYZ` is used, the values are in cartesian coordinates instead (X, Y, Z) * If target object ID is `SE_ECL_NUT`, then the values will contain obliquity and nutation data instead * ``` * ``` */ data: CalcData; } export interface DateConversion extends Flag { /** * ### Description * Julian day value * ``` * ``` */ data: number; } export interface DeltaT extends Error { /** * ### Description * Delta T value * ``` * ``` */ data: number; } export interface FixStar extends Flag, Name, Error { /** * ### Description * Array of values returned by the calculation * By default the values are in ecliptic coordinates (longitude, latitude, distance) * If `SEFLG_SPEED` or `SEFLG_SPEED3` are used, the daily speeds for each value are also retured, otherwise they are 0 * If `SEFLG_EQUATORIAL` is used, the values are in equatorial coordinates instead (right ascension, declination, distance) * If `SELFG_XYZ` is used, the values are in cartesian coordinates instead (X, Y, Z) * ``` * ``` */ data: CalcData2; } export interface FixStarMag extends Flag, Name, Error { /** * ### Description * Magnitude value * ``` * ``` */ data: number; } export interface GauquelinSector extends Flag, Error { /** * ### Description * Gauquelin Sector * ``` * ``` */ data: number; } export interface Ayanamsa extends Flag, Error { /** * ### Description * Ayanamsa Value * ``` * ``` */ data: number; } export interface HeliacalPheno extends Flag, Error { /** * ### Description * Array of values used by heliacal calculations * ``` * ``` */ data: HeliacalPhenoData; } export interface Heliacal extends Flag, Error { /** * ### Description * Event times of the heliacal phenomenon * ``` * ``` */ data: HeliacalData; } export interface HousePosition extends Error { /** * ### Description * House position including fraction * From 1.0 to 12.999999 for normal houses and 1.0 to 36.9999999 for gauquelin sectors * ``` * ``` */ data: number } export interface Houses extends Flag { /** * ### Description * Calculated positions for the houses and other points * ``` * ``` */ data: HouseData } export interface HousesEx extends Flag, Error { /** * ### Description * Calculated positions for the houses and other points * Also includes momentary motion speeds * ``` * ``` */ data: HouseExData } export interface HouseData { /** * ### Description * Longitude positions for the houses * 36 houses for gauquelin sectors, 12 houses for all other systems * ``` * ``` */ houses: T extends 36 ? GauquelinHousesList : HousesList, /** * ### Description * Longitude positions for other points of interest in the great circles * ``` * ``` */ points: PointsList } export interface HouseExData extends HouseData { /** * ### Description * Momentary motion speeds of the houses * ``` * ``` */ housesSpeed: T extends 36 ? GauquelinHousesSpeeds : HousesSpeeds, /** * ### Description * Momentary motion speeds of other points of interest * ``` * ``` */ pointsSpeed: PointsSpeeds } export interface DateObject { /** * ### Description * Full year * ``` * ``` */ year: number; /** * ### Description * Month (1-12) * ``` * ``` */ month: number; /** * ### Description * Day (1-31) * ``` * ``` */ day: number; /** * ### Description * Hour including fraction (0-23.99999) * ``` * ``` */ hour: number; } export interface DateObject2 extends DateObject { /** * ### Description * Hour (0-23) * ``` * ``` */ hour: number; /** * ### Description * Minute (0-59) * ``` * ``` */ minute: number; /** * ### Description * Second including fraction (0-59.99999) * ``` * ``` */ second: number; } export interface LocalApparentTime extends Flag, Error { /** * ### Description * Local apparent time in julian day in universal time * ``` * ``` */ data: number } export interface LocalMeanTime extends Flag, Error { /** * ### Description * Local mean time in julian day in universal time * ``` * ``` */ data: number } export interface OrbitMaxMinTrueDistance extends Flag, Error { /** * ### Description * Orbital maximum and minimum possible distances * ``` * ``` */ data: { /** * Maximum possible distance */ max: number, /** * Minimum possible distance */ min: number, /** * Current true distance */ true: number } } export interface LunEclipseHow extends Flag, Error { /** * ### Description * Array of data about the lunar eclipse * ``` * ``` */ data: LunEclipseAttributes } export interface LunEclipseWhenLoc extends Flag, Error { /** * ### Description * Array of eclipse timings * ``` * ``` */ data: EclipseTimes2, /** * ### Description * Array of additional data about the lunar eclipse * ``` * ``` */ attributes: LunEclipseAttributes } export interface LunEclipseWhen extends Flag, Error { /** * ### Description * Array of eclipse timings * ``` * ``` */ data: EclipseTimes } export interface EclipseWhenGlob extends Flag, Error { /** * ### Description * Array of eclipse timings * ``` * ``` */ data: EclipseTimes3 } export interface LunOccultWhenLoc extends Flag, Error { /** * ### Description * Array of eclipse timings * ``` * ``` */ data: EclipseTimes4, /** * ### Description * Array of additional data about the lunar eclipse * ``` * ``` */ attributes: EclipseAttributes } export interface LunOccultWhere extends Flag, Error { /** * ### Description * Array of eclipse coordinates * ``` * ``` */ data: EclipseCoords, /** * ### Description * Array of additional data about the eclipse * ``` * ``` */ attributes: LunEclipseAttributes2 } export interface NodAps extends Flag, Error { /** * ### Description * Object containing ascending node, descending node, aphelion and perihelion values * Depending on the specific object and the method flag used, the values can be either "mean" or "osculating" * ``` * ``` */ data: { /** * ### Description * Array of ascending node values returned by the calculation * By default the values are in ecliptic coordinates (longitude, latitude, distance) * If `SEFLG_SPEED` or `SEFLG_SPEED3` are used, the daily speeds for each value are also retured, otherwise they are 0 * If `SEFLG_EQUATORIAL` is used, the values are in equatorial coordinates instead (right ascension, declination, distance) * If `SELFG_XYZ` is used, the values are in cartesian coordinates instead (X, Y, Z) * ``` * ``` */ ascending: CalcData2; /** * ### Description * Array of descending node values returned by the calculation * By default the values are in ecliptic coordinates (longitude, latitude, distance) * If `SEFLG_SPEED` or `SEFLG_SPEED3` are used, the daily speeds for each value are also retured, otherwise they are 0 * If `SEFLG_EQUATORIAL` is used, the values are in equatorial coordinates instead (right ascension, declination, distance) * If `SELFG_XYZ` is used, the values are in cartesian coordinates instead (X, Y, Z) * ``` * ``` */ descending: CalcData2; /** * ### Description * Array of perihelion node values returned by the calculation * By default the values are in ecliptic coordinates (longitude, latitude, distance) * If `SEFLG_SPEED` or `SEFLG_SPEED3` are used, the daily speeds for each value are also retured, otherwise they are 0 * If `SEFLG_EQUATORIAL` is used, the values are in equatorial coordinates instead (right ascension, declination, distance) * If `SELFG_XYZ` is used, the values are in cartesian coordinates instead (X, Y, Z) * ``` * ``` */ perihelion: CalcData2; /** * ### Description * Array of aphelion values returned by the calculation * By default the values are in ecliptic coordinates (longitude, latitude, distance) * If `SEFLG_SPEED` or `SEFLG_SPEED3` are used, the daily speeds for each value are also retured, otherwise they are 0 * If `SEFLG_EQUATORIAL` is used, the values are in equatorial coordinates instead (right ascension, declination, distance) * If `SELFG_XYZ` is used, the values are in cartesian coordinates instead (X, Y, Z) * if `SE_NODBIT_FOPOINT` is used, the values are the object's second focus instead * ``` * ``` */ aphelion: CalcData2; }; } export interface Pheno extends Flag, Error { /** * ### Description * Array containing data for planetary phenomena * ``` * ``` */ data: PhenoData; } export interface RefracExtended { /** * ### Description * Converted altitude value * ``` * ``` */ data: number; /** * ### Description * Array containing additional output from altitude conversion * ``` * ``` */ extended: RefracExtendedData; } export interface RiseTrans extends Flag, Error { /** * ### Description * Time of transit in julian days in universal time * ``` * ``` */ data: number; } export interface SolEclipseHow extends Flag, Error { /** * ### Description * Array of data about the solar eclipse * ``` * ``` */ data: EclipseAttributes2; } export interface SolEclipseWhenLoc extends Flag, Error { /** * ### Description * Array of eclipse timings * ``` * ``` */ data: EclipseTimes4; /** * ### Description * Array of additional data about the solar eclipse * ``` * ``` */ attributes: EclipseAttributes2; } export interface SolEclipseWhere extends Flag, Error { /** * ### Description * Array of eclipse coordinates * ``` * ``` */ data: EclipseCoords; /** * ### Description * Array of additional data about the solar eclipse * ``` * ``` */ attributes: EclipseAttributes2; } export interface SplitDeg { /** * ### Description * Degrees value * ``` * ``` */ degree: number; /** * ### Description * Minutes value * ``` * ``` */ minute: number; /** * ### Description * Seconds value * ``` * ``` */ second: number; /** * ### Description * Seconds fraction value * ``` * ``` */ fraction: number; /** * ### Description * Zodiac sign or nakshatra number * ``` * ``` */ sign: number; } export interface TimeEqu extends Flag, Error { /** * ### Description * Value of the equation of time (difference between LMT and LAT) * ``` * ``` */ data: number; } export interface UtcToJd extends Flag, Error { /** * ### Description * Array containing julian day in both ephemeris and universal time * ``` * ``` */ data: JdEtUt; } export interface VisLimitMag extends Flag, Error { /** * ### Description * Array containing the altitude, azimuth and magnitude data of the object along with the altitude and azimuth of the sun and the moon * ``` * ``` */ data: VisLimitMagData; } export interface Cross extends Error { /** * ### Description * Date when the next crossing happens in julian days * The julian day value is in universal time when using the `_ut` variant of the function, otherwise its in ephemeris/terrestrial time * ``` * ``` */ date: number; } export interface NodeCross extends Cross { /** * ### Description * Ecliptic longitude where the crossing happens * ``` * ``` */ longitude: number; /** * ### Description * Ecliptic latitude margin of precision for the crossing date * ``` * ``` */ latitude: number; } /* ┌──────────────────────────────────────────────────┬───────────┬──────────────────────────────────────────────────┐ │┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼│ Types │┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼│ └──────────────────────────────────────────────────┴───────────┴──────────────────────────────────────────────────┘ */ export type OrbitalElementsData = [ /** * Semimajor axis */ a: number, /** * Eccentricity */ e: number, /** * Inclination */ i: number, /** * Longitude of ascending node */ Ω: number, /** * Argument of periapsis */ ω: number, /** * Longitude of periapsis */ ϖ: number, /** * Mean anomaly at epoch */ M0: number, /** * True anomaly at epoch */ v0: number, /** * Eccentric anomaly at epoch */ E0: number, /** * Mean longitude at epoch */ L0: number, /** * Sidereal orbital period in tropical years */ sidereal_period: number, /** * Mean daily motion */ daily_motion: number, /** * Tropical period in years */ tropical_period: number, /** * Synodic period in days * Negative, if inner planet (Venus, Mercury, Aten asteroids) or Moon */ synodic_period: number, /** * Time of perihelion passage */ perihelion_passage: number, /** * Perihelion distance */ perihelion_distance: number, /** * Aphelion distance */ aphelion_distance: number ] export type CalcData = [ /** * (`λ`) Ecliptic longitude * (`α`) Equatorial right ascension if `SEFLG_EQUATORIAL` * (`x`) Cartesian X if `SEFLG_XYZ` * (`ε`) True obliquity of the ecliptic if object ID is `SE_ECL_NUT` */ lon: number, /** * (`β`) Ecliptic latitude * (`δ`) Equatorial declination if `SEFLG_EQUATORIAL` * (`y`) Cartesian Y if `SEFLG_XYZ` * (`ε`) Mean obliquity of the ecliptic if object ID is `SE_ECL_NUT` */ lat: number, /** * (`au`) Distance in AU * (`z`) Cartesian Z if `SEFLG_XYZ` * (`Δψ`) Nutation in longitude if oject ID is `SE_ECL_NUT` */ dist: number, /** * (`λs`) Ecliptic longitude daily speed * (`αs`) Equatorial right ascension daily speed if `SEFLG_EQUATORIAL` * (`xs`) Cartesian daily speed if `SEFLG_XYZ` * (`Δε`) Nutation in obliquity if oject ID is `SE_ECL_NUT` */ lonSpd: number, /** * (`βs`) Ecliptic latitude daily speed * (`δs`) Equatorial declination daily speed if `SEFLG_EQUATORIAL` * (`ys`) Cartesian Y daily speed if `SEFLG_XYZ` */ latSpd: number, /** * (`aus`) Distance daily speed in AU * (`zs`) Cartesian Z daily speed if `SEFLG_XYZ` */ distSpd: number ] export type CalcData2 = [ /** * (`λ`) Ecliptic longitude * (`α`) Equatorial right ascension if `SEFLG_EQUATORIAL` * (`x`) Cartesian X if `SEFLG_XYZ` */ lon: number, /** * (`β`) Ecliptic latitude * (`δ`) Equatorial declination if `SEFLG_EQUATORIAL` * (`y`) Cartesian Y if `SEFLG_XYZ` */ lat: number, /** * (`au`) Distance in AU * (`z`) Cartesian Z if `SEFLG_XYZ` */ dist: number, /** * (`λs`) Ecliptic longitude daily speed * (`αs`) Equatorial right ascension daily speed if `SEFLG_EQUATORIAL` * (`xs`) Cartesian daily speed if `SEFLG_XYZ` */ lonSpd: number, /** * (`βs`) Ecliptic latitude daily speed * (`δs`) Equatorial declination daily speed if `SEFLG_EQUATORIAL` * (`ys`) Cartesian Y daily speed if `SEFLG_XYZ` */ latSpd: number, /** * (`aus`) Distance daily speed in AU * (`zs`) Cartesian Z daily speed if `SEFLG_XYZ` */ distSpd: number ] export type HeliacalPhenoData = [ /** * Topocentric altitude of object in degrees (unrefracted) */ AltO: number, /** * Apparent altitude of object in degrees (refracted) */ AppAltO: number, /** * Geocentric altitude of object in degrees */ GeoAltO: number, /** * Azimuth of object in degrees */ AziO: number, /** * Topocentric altitude of Sun in degrees */ AltS: number, /** * Azimuth of Sun in degrees */ AziS:number, /** * Actual topocentric arcus visionis in degrees */ TAVact: number, /** * Actual (geocentric) arcus visionis in degrees */ ARCVact: number, /** * Actual difference between object's and sun's azimuth in degrees */ DAZact: number, /** * Actual longitude difference between object and sun in degrees */ ARCLact: number, /** * Extinction coefficient */ kact: number, /** * Smallest topocentric arcus visionis in degrees */ minTAV: number, /** * First time object is visible:number, according to VR in JD */ TfistVR: number, /** * optimum time the object is visible:number, according to VR in JD */ TbVR: number, /** * last time object is visible:number, according to VR in JD */ TlastVR: number, /** * best time the object is visible:number, according to Yallop in JD */ TbYallop: number, /** * crescent width of Moon in degrees */ WMoon: number, /** * q-test value of Yallop */ qYal: number, /** * q-test criterion of Yallop */ qCrit: number, /** * parallax of object in degrees */ ParO: number, /** * magnitude of object */ Magn: number, /** * rise/set time of object in JD */ RiseO: number, /** * rise/set time of Sun in JD */ RiseS: number, /** * rise/set time of object minus rise/set time of Sun in JD */ Lag: number, /** * visibility duration in JD */ TvisVR: number, /** * crescent length of Moon in degrees */ LMoon: number, /** * CVAact in degrees */ CVAact: number, /** * Illum in percentage */ Illum: number, /** * CVAact in degrees */ CVAact: number, /** * MSk */ MSk: number ] export type HeliacalData = [ /** * Start visibility in JD */ vis_start: number, /** * Optimum visibility in JD (zero if hel_flag >= SE_HELFLAG_AV) */ vis_opt: number, /** * End of visibility in JD (zero if hel_flag >= SE_HELFLAG_AV) */ vis_end: number ] export type AzaltRev = [ /** * (λ) Ecliptic longitude if SE_HOR2ECL * (α) Equatorial right ascension if SE_HOR2EQU */ lon: number, /** * (β) Ecliptic latitude if SE_HOR2ECL * (δ) Equatorial declination if SE_HOR2EQU */ lat: number ] export type Azalt = [ /** * Azimuth */ az: number, /** * True altitude */ alt: number, /** * Apparent altitude (with refraction) */ ap: number ] export type CoTransSp = [ ...cotrans: CoTrans, /** * Daily speed for lon */ lonSpd: number, /** * Daily speed for lat */ latSpd: number, /** * Daily speed for dist (unchanged) */ distSpd: number ] export type CoTrans = [ /** * (λ) Ecliptic longitude or (α) Equatorial right ascension */ lon: number, /** * (β) Ecliptic latitude or (δ) Equatorial declination */ lat: number, /** * Distance in AU (unchanged) */ dist: number, ] export type HouseSystems = "B" | "Y" | "X" | "H" | "C" | "F" | "A" | "E" | "D" | "N" | "G" | "I" | "i" | "K" | "U" | "M" | "P" | "T" | "O" | "L" | "Q" | "R" | "S" | "V" | "W"; export type HousesList = [ /** * 1st House */ house_1: number, /** * 2nd House */ house_2: number, /** * 3rd House */ house_3: number, /** * 4th House */ house_4: number, /** * 5th House */ house_5: number, /** * 6th House */ house_6: number, /** * 7th House */ house_7: number, /** * 8th House */ house_8: number, /** * 9th House */ house_9: number, /** * 10th House */ house_10: number, /** * 11th House */ house_11: number, /** * 12th House */ house_12: number, ] export type PointsList = [ /** * Longitude of the Ascendant */ asc: number, /** * Longitude of the Midheaven */ mc: number, /** * Right Ascension of the Midheaven */ armc: number, /** * Longitude of the Vertex */ vertex: number, /** * Longitude of the Equatorial Ascendant */ equasc: number, /** * Longitude of Walter Koch's Co-Ascendant */ coasc1: number, /** * Longitude of Michael Munkasey's Co-Ascendant */ coasc2: number, /** * Longitude of Michael Munkasey's Polar Ascendant */ polasc: number ] export type HousesSpeeds = [ /** * Momentary speed for the 1st House */ house_1_speed: number, /** * Momentary speed for the 2nd House */ house_2_speed: number, /** * Momentary speed for the 3rd House */ house_3_speed: number, /** * Momentary speed for the 4th House */ house_4_speed: number, /** * Momentary speed for the 5th House */ house_5_speed: number, /** * Momentary speed for the 6th House */ house_6_speed: number, /** * Momentary speed for the 7th House */ house_7_speed: number, /** * Momentary speed for the 8th House */ house_8_speed: number, /** * Momentary speed for the 9th House */ house_9_speed: number, /** * Momentary speed for the 10th House */ house_10_speed: number, /** * Momentary speed for the 11th House */ house_11_speed: number, /** * Momentary speed for the 12th House */ house_12_speed: number, ] export type PointsSpeeds = [ /** * Momentary speed of the Ascendant */ asc_speed: number, /** * Momentary speed of the Midheaven */ mc_speed: number, /** * Momentary speed in Right Ascension of the Midheaven */ armc_speed: number, /** * Momentary speed of the Vertex */ vertex_speed: number, /** * Momentary speed of the Equatorial Ascendant */ equasc_speed: number, /** * Momentary speed of Walter Koch's Co-Ascendant */ coasc1_speed: number, /** * Momentary speed of Michael Munkasey's Co-Ascendant */ coasc2_speed: number, /** * Momentary speed of Michael Munkasey's Polar Ascendant */ polasc_speed: number ] export type GauquelinHousesList = [ ...houses: HousesList, /** * 13th House */ house_13: number, /** * 14th House */ house_14: number, /** * 15th House */ house_15: number, /** * 16th House */ house_16: number, /** * 17th House */ house_17: number, /** * 18th House */ house_18: number, /** * 19th House */ house_19: number, /** * 20th House */ house_20: number, /** * 21th House */ house_21: number, /** * 22th House */ house_22: number, /** * 23th House */ house_23: number, /** * 24th House */ house_24: number, /** * 25th House */ house_25: number, /** * 26th House */ house_26: number, /** * 27th House */ house_27: number, /** * 28th House */ house_28: number, /** * 29th House */ house_29: number, /** * 30th House */ house_30: number, /** * 31th House */ house_31: number, /** * 32th House */ house_32: number, /** * 33th House */ house_33: number, /** * 34th House */ house_34: number, /** * 35th House */ house_35: number, /** * 36th House */ house_36: number, ] export type GauquelinHousesSpeeds = [ ...houses: HousesSpeeds, /** * Momentary speed for the 13th House */ house_13_speed: number, /** * Momentary speed for the 14th House */ house_14_speed: number, /** * Momentary speed for the 15th House */ house_15_speed: number, /** * Momentary speed for the 16th House */ house_16_speed: number, /** * Momentary speed for the 17th House */ house_17_speed: number, /** * Momentary speed for the 18th House */ house_18_speed: number, /** * Momentary speed for the 19th House */ house_19_speed: number, /** * Momentary speed for the 20th House */ house_20_speed: number, /** * Momentary speed for the 21th House */ house_21_speed: number, /** * Momentary speed for the 22th House */ house_22_speed: number, /** * Momentary speed for the 23th House */ house_23_speed: number, /** * Momentary speed for the 24th House */ house_24_speed: number, /** * Momentary speed for the 25th House */ house_25_speed: number, /** * Momentary speed for the 26th House */ house_26_speed: number, /** * Momentary speed for the 27th House */ house_27_speed: number, /** * Momentary speed for the 28th House */ house_28_speed: number, /** * Momentary speed for the 29th House */ house_29_speed: number, /** * Momentary speed for the 30th House */ house_30_speed: number, /** * Momentary speed for the 31th House */ house_31_speed: number, /** * Momentary speed for the 32th House */ house_32_speed: number, /** * Momentary speed for the 33th House */ house_33_speed: number, /** * Momentary speed for the 34th House */ house_34_speed: number, /** * Momentary speed for the 35th House */ house_35_speed: number, /** * Momentary speed for the 36th House */ house_36_speed: number, ] export type EclipseTimes = [ /** * time of maximum eclipse in jd */ eclipse_max: number, /** * Unused */ _: number, /** * time of partial phase start */ partial_start: number, /** * time of partial phase end */ partial_end: number, /** * time of totality start */ total_start: number, /** * time of totality end */ total_end: number, /** * time of penumbral phase start */ penumbral_start: number, /** * time of penumbral phase end */ penumbral_end: number ] export type EclipseTimes2 = [ ...times: EclipseTimes, /** * Time of moonrise, if it occurs during the eclipse */ rise: number, /** * Time of moonset, if it occurs during the eclipse */ set: number, ] export type EclipseTimes3 = [ /** * time of maximum eclipse in jd */ eclipse_max: number, /** * time when eclipse takes place at local apparent noon */ local_noon: number, /** * time of eclipse start */ eclipse_start: number, /** * time of eclipse end */ eclipse_end: number, /** * time of totality start */ total_start: number, /** * time of totality end */ total_end: number, /** * time of center line start */ center_start: number, /** * time of center line end */ center_end: number, /** * time when annular-total eclipse becomes total */ annular_total: number, /** * time when annular-total eclipse becomes annular again */ total_annular: number ] export type EclipseTimes4 = [ /** * Time of maximum eclipse */ max_eclipse: number, /** * Time of first contact */ first_contact: number, /** * Time of second contact */ second_contact: number, /** * Time of third contact */ third_contact: number, /** * Time of fourth contact */ fourth_contact: number, /** * Time of sunrise between first and forth contact */ sunrise: number, /** * Time of sunset between first and forth contact */ sunset: number ] export type EclipseCoords = [ /** * Geographic longitude of central line */ central_long: number, /** * Geographic latitude of central line */ central_lat: number, /** * Geographic longitude of northern limit of umbra */ north_umbra_long: number, /** * Geographic latitude of northern limit of umbra */ north_umbra_lat: number, /** * Geographic longitude of southern limit of umbra */ south_umbra_long: number, /** * Geographic latitude of southern limit of umbra */ south_umbra_lat: number, /** * Geographic longitude of northern limit of penumbra */ north_penumbra_long: number, /** * Geographic latitude of northern limit of penumbra */ north_penumbra_lat: number, /** * Geographic longitude of southern limit of penumbra */ south_penumbra_long: number, /** * Geographic latitude of southern limit of penumbra */ south_penumbra_lat: number ] export type EclipseAttributes = [ /** * Fraction of solar diameter covered by moon (magnitude) */ solar_diameter: number, /** * Ratio of lunar diameter to solar one */ lunar_diameter: number, /** * Fraction of solar disc covered by moon (obscuration) */ solar_disc: number, /** * Diameter of core shadow in km */ core_shadow: number, /** * Azimuth of sun at tjd */ sun_azimuth: number, /** * True altitude of sun above horizon at tjd */ true_altitude: number, /** * Apparent altitude of sun above horizon at tjd */ mean_altitude: number, /** * Elongation of moon in degrees */ elongation: number ] export type EclipseAttributes2 = [ ...attr: EclipseAttributes, /** * Eclipse magnitude (same as solar_diameter or lunar_diameter depending on the eclipse type) */ mag: number, /** * Saros series number (if available, otherwise -99999999) */ saros: number, /** * Saros series member number (if available, otherwise -99999999) */ saros_member: number ] export type LunEclipseAttributes = [ /** * Umbral magnitude at jd */ umbral: number, /** * Penumbral magnitude */ penumbral: number, /** * Unused */ _: number, /** * Unused */ _: number, /** * Azimuth of the moon at jd */ azimuth: number, /** * True altitude of the moon above horizon at jd */ true_altitude: number, /** * Apparent altitude of the moon above horizon at jd */ apparent_altitude: number, /** * Distance of the moon from opposition in degrees */ distance: number, /** * Eclipse magnitude (same as umbral magnitude) */ mag: number, /** * Saros series number (if available, otherwise -99999999) */ saros: number, /** * Saros series member number (if available, otherwise -99999999) */ saros_member: number ] export type LunEclipseAttributes2 = [ /** * Fraction of object's diameter covered by moon (magnitude) */ object_diameter: number, /** * Ratio of lunar diameter to object's diameter */ lunar_diameter: number, /** * Fraction of object's disc covered by moon (obscuration) */ object_disc: number, /** * Diameter of core shadow in km */ core_shadow: number, /** * Azimuth of object at tjd */ object_azimuth: number, /** * True altitude of object above horizon at tjd */ true_altitude: number, /** * Apparent altitude of object above horizon at tjd */ apparent_altitude: number, /** * Angular distance of moon from object in degrees */ angular_distance: number, ] export type PhenoData = [ /** * Phase angle (Earth-planet-sun) */ phase_angle: number, /** * Phase (illumined fraction of disc) */ phase: number, /** * Elongation of planet */ elongation: number, /** * Apparent diameter of disc */ diameter: number, /** * Apparent magnitude */ magnitude: number ] export type RefracExtendedData = [ /** * True altitude if possible, otherwise input value */ true_altitude: number, /** * Apparent altitude if possible, otherwise input value */ apparent_altitude: number, /** * Refraction value */ refraction: number, /** * Dip of the horizon */ dip: number ] export type JdEtUt = [ /** * Julian day in ephemeris/terrestrial time */ et: number, /** * Julian day in universal time */ ut: number ] export type VisLimitMagData = [ /** * Limiting visual magnitude (object is visible if this value is bigger than the object's magnitude value) */ visual_mag: number, /** * Altitude of the object */ obj_altitude: number, /** * Azimuth of the object */ obj_azimuth: number, /** * Altitude of the sun */ sun_altitude: number, /** * Azimuth of the sun */ sun_azimuth: number, /** * Altitude of the moon */ moon_altitude: number, /** * Azimuth of the moon */ moon_azimuth: number, /** * The object's magnitude */ magnitude: number ] /* ┌──────────────────────────────────────────────────┬───────────┬──────────────────────────────────────────────────┐ │┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼│ Functions │┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼│ └──────────────────────────────────────────────────┴───────────┴──────────────────────────────────────────────────┘ */ /** * ### Description * Transform horizontal coordinates into ecliptic or equatorial coordinates based on the observer's location * ### Params * ``` * • tjd_ut: number // Julian day in universal time * • calc_flag: number // Calculation flag, SE_HOR2ECL or SE_HOR2EQU * • geopos: Array // Geographic coordinates [longitude, latitude, elevation] * • xin: Array // Horizontal coordinates [azimuth, true altitude] * ``` * ### Returns * ``` * Array [ * lon, // (λ) Ecliptic longitude if SE_HOR2ECL, (α) Equatorial right ascension if SE_HOR2EQU * lat // (β) Ecliptic latitude if SE_HOR2ECL, (δ) Equatorial declination if SE_HOR2EQU * ] * ``` * ### Example * ``` * const result = azalt_rev(2314234, constants.SE_HOR2ECL, [34, 40, 0], [75, 67]); * console.log(`Longitude: ${result[0]}`); * ``` *   */ export function azalt_rev(tjd_ut: number, calc_flag: number, geopos: [longitude: number, latitude: number, elevation: number], xin: [azimuth: number, true_altitude: number]): AzaltRev; /** * ### Description * Transform ecliptic or equatorial coordinates into horizontal coordinates based on the observer's location * ### Params * ``` * • tjd_ut: number // Julian day in universal time * • calc_flag: number // Calculation flag, SE_ECL2HOR or SE_EQU2HOR * • geopos: Array // Geographic coordinates [longitude, latitude, elevation] * • atpress: number // Atmospheric pressure in mbar/hpa * • attemp: number // Atmospheric temperature in celcius * • xin: Array // Ecliptic or equatorial coordinates [lon/ra, lat/dec, distance] * ``` * ### Returns * ``` * Array [ * az, // Azimuth * alt, // True altitude * ap // Apparent altitude (with refraction) * ] * ``` * ### Example * ``` * const result = azalt(2314234, constants.SE_ECL2HOR, [34, 40, 0], 0, 0, [75, 67, 0]); * console.log(`Azimuth: ${result[0]}`); * ``` *   */ export function azalt(tjd_ut: number, calc_flag: number, geopos: [longitude: number, latitude: number, elevation: number], atpress: number, attemp: number, xin: [lon_or_ra: number, lat_or_dec: number, distance: number]): Azalt; /** * ### Description * Compute planetocentric positions of planets as observed from a different planet, for example Jupiter-centric ephemerides * ### Params * ``` * • tjd_et: number // Julian day in terrestrial/ephemeris time * • ipl: number // Target object ID * • iplctr: number // Center object ID * • iflag: number // Calculation flags * ``` * ### Returns * ``` * Object { * flag: number, // Computed flags or ERR * error: string, // Error message if ERR or if incompatible flags * data: Array [ * lon, // Longitude, right ascension, cartesian X, or true obliquity depending on the flags * lat, // Latitude, declination, cartesian Y, or mean obliquity depending on the flags * dist, // Distance in AU, cartesian Z or nutation in longitude depending on the flags * lonSpd, // Daily speed for lon or nutation in obliquity depending on the flags * latSpd, // Daily speed for lat * distSpd, // Daily speed for dist * ] * } * ``` * ### Example * ``` * const flags = constants.SEFLG_SWIEPH | constants.SEFLG_SPEED; * const result = calc_pctr(2314234, constants.SE_EARTH, constants.SE_MARS, flags); * if(result.flag === constants.ERR) throw new Error(result.error); * if(result.flag !== flags) console.log(result.error); * console.log(`Longitude: ${result.data[0]}`); * ``` *   */ export function calc_pctr(tjd_et: number, ipl: number, iplctr: number, iflag: number): Calc; /** * ### Description * Compute positions of planets, asteroids, lunar nodes and apogees from universal time * ### Params * ``` * • tjd_ut: number // Julian day in universal time * • ipl: number // Target object ID * • iflag: number // Calculation flags * ``` * ### Returns * ``` * Object { * flag: number, // Computed flags or ERR * error: string, // Error message if ERR or if incompatible flags * data: Array [ * lon, // Longitude, right ascension, cartesian X, or true obliquity depending on the flags * lat, // Latitude, declination, cartesian Y, or mean obliquity depending on the flags * dist, // Distance in AU, cartesian Z or nutation in longitude depending on the flags * lonSpd, // Daily speed for lon or nutation in obliquity depending on the flags * latSpd, // Daily speed for lat * distSpd, // Daily speed for dist * ] * } * ``` * ### Example * ``` * const flags = constants.SEFLG_SWIEPH | constants.SEFLG_SPEED; * const result = calc_ut(2314234, constants.SE_MOON, flags); * if(result.flag !== constants.OK) { throw new Error(result.error); } * if(result.flag !== flags) { console.log(result.error); } * console.log(`Longitude: ${result.data[0]}`); * ``` *   */ export function calc_ut(tjd_ut: number, ipl: number, iflag: number): Calc; /** * ### Description * Compute positions of planets, asteroids, lunar nodes and apogees from ephemeris time * ### Params * ``` * • tjd_et: number // Julian day in terrestrial/ephemeris time * • ipl: number // Target object ID * • iflag: number // Calculation flags * ``` * ### Returns * ``` * Object { * flag: number, // Computed flags or ERR * error: string, // Error message if ERR or if incompatible flags * data: Array [ * lon, // Longitude, right ascension, cartesian X, or true obliquity depending on the flags * lat, // Latitude, declination, cartesian Y, or mean obliquity depending on the flags * dist, // Distance in AU, cartesian Z or nutation in longitude depending on the flags * lonSpd, // Daily speed for lon or nutation in obliquity depending on the flags * latSpd, // Daily speed for lat * distSpd, // Daily speed for dist * ] * } * ``` * ### Example * ``` * const flags = constants.SEFLG_SWIEPH | constants.SEFLG_SPEED; * const result = calc(2314234, constants.SE_VENUS, flags); * if(result.flag === constants.ERR) { throw new Error(result.error); } * if(result.flag !== flags) { console.log(result.error); } * console.log(`Longitude: ${result.data[0]}`); * ``` *   */ export function calc(tjd_et: number, ipl: number, iflag: number): Calc; /** * ### Description * Reset swisseph internals and cleanup file handles * Not usually required as Node cleans after itself * ### Example * ``` * close(); * ``` *   */ export function close(): void; /** * ### Description * Transform between ecliptic and equatorial coordinate systems including motion speeds * From equatorial to ecliptic, obliquity must be positive * From ecliptic to equatorial, obliquity must be negative * Distances are not affected and can be 0 * ### Params * ``` * • xpo: Array // Input coordinates in ecliptic or equatorial coordinates [lon, lat, dist, lonSpd, latSpd, distSpd] * • eps: number // Positive or negative obliquity of the ecliptic * ``` * ### Returns * ``` * Array [ * lon, // (λ) Ecliptic longitude or (α) Equatorial right ascension * lat // (β) Ecliptic latitude or (δ) Equatorial declination * dist, // Distance in AU (unchanged) * lonSpd, // Daily speed for lon * latSpd, // Daily speed for lat * distSpd, // Daily speed for dist (unchanged) * ] * ``` * ### Example * ``` * const obliquity = calc(2314234, constants.SE_ECL_NUT, constants.SEFLG_SWIEPH).data[0]; * const result = cotrans_sp([345, 10, 0, 1.5, 0.01, 0], -obliquity); * console.log(`Right Ascension: ${result[0]}`); * ``` *   */ export function cotrans_sp(xpo: [lon: number, lat: number, dist: number, lonSpd: number, latSpd: number, distSpd: number], eps: number): CoTransSp; /** * ### Description * Transform between ecliptic and equatorial coordinate systems * From equatorial to ecliptic, obliquity must be positive * From ecliptic to equatorial, obliquity must be negative * Distance is not affected and can be 0 * ### Params * ``` * • xpo: Array // Input coordinates in ecliptic or equatorial coordinates [lon, lat, dist] * • eps: number // Positive or negative obliquity of the ecliptic * ``` * ### Returns * ``` * Array [ * lon, // Longitude or right ascension * lat, // Latitude or declination * dist, // Distance in AU (unchanged) * ] * ``` * ### Example * ``` * const obliquity = calc(2314234, constants.SE_ECL_NUT, constants.SEFLG_SWIEPH).data[0]; * const result = cotrans([345, 10, 0], -obliquity); * console.log(`Right Ascension: ${result[0]}`); * ``` *   */ export function cotrans(xpo: [lon: number, lat: number, dist: number], eps: number): CoTrans; /** * ### Description * Convert centiseconds to degrees string * ### Params * ``` * • csec: number // Centiseconds value * ``` * ### Returns * ``` * string * ``` * ### Example * ``` * const deg = cs2degstr(2345464); // " 6°30'54" * ``` *   */ export function cs2degstr(csec: number): string; /** * ### Description * Convert centiseconds to longitude or latitude string with user defined sign character * ### Params * ``` * • csec: number // Centiseconds value * • pchar: string // Sign character for positive values * • mchar: string // Sign character for negative values * ``` * ### Returns * ``` * string * ``` * ### Example * ``` * const lon = cs2lonlatstr(2345464, "+", "-"); // "6+30'55" * ``` *   */ export function cs2lonlatstr(csec: number, pchar: string, mchar: string): string; /** * ### Description * Convert centiseconds to time string * ### Params * ``` * • csec: number // Centiseconds value * • sep: string // Separator character * • suppresszero: boolean // Omit seconds if they are zero * ``` * ### Returns * ``` * string * ``` * ### Example * ``` * const time = cs2timestr(2345464, ":", true); // "6:30:55" * ``` *   */ export function cs2timestr(csec: number, sep: string, suppresszero: boolean): string; /** * ### Description * Normalize centiseconds to 360 degrees range * ### Params * ``` * • csec: number // Centiseconds value * ``` * ### Returns * ``` * number * ``` * ### Example * ``` * const cs = csnorm(234546424235); // 8022955 * ``` *   */ export function csnorm(csec: number): number; /** * ### Description * Round centiseconds to nearest second * ### Params * ``` * • csec: number // Centiseconds value * ``` * ### Returns * ``` * number * ``` * ### Example * ``` * const cs = csroundsec(14235235); // 14235200 * ``` *   */ export function csroundsec(csec: number): number; /** * ### Description * Round double precision value to long integer * ### Params * ``` * • double: number // Double value * ``` * ### Returns * ``` * number * ``` * ### Example * ``` * const long = d2l(546546.7868); // 546547 * ``` *   */ export function d2l(double: number): number; /** * ### Description * Calculate julian day and check if the date is valid * ### Params * ``` * • year: number // Full year * • month: number // Month (1-12) * • day: number // Day (1-31) * • hour: number // Hour with decimal fraction (0-23.999) * • calendar: string // Calendar system, 'g' for gregorian calendar, 'j' for julian calendar * ``` * ### Returns * ``` * Object { * flag: number, // OK or ERR * data: number // Julian day value * } * ``` * ### Example * ``` * const jd = date_conversion(1995, 5, 15, 13.75, "g"); * if(jd.flag !== constants.OK) { throw new Error("Invalid date"); } * console.log(`Julian Day: ${jd.data}`); * ``` *   */ export function date_conversion(year: number, month: number, day: number, hour: number, calendar: "g" | "j" | (string & {})): DateConversion; /** * ### Description * Find which day of the week a particular date is * ### Params * ``` * • jd: number // Julian day value in universal time * ``` * ### Returns * ``` * number // 0 = monday, ... 6 = sunday; * ``` * ### Example * ``` * const day = day_of_week(2459311); // 1 (tuesday) * ``` *   */ export function day_of_week(jd: number): number; /** * ### Description * Normalize degree value to 0-360 range * ### Params * ``` * • deg: number // degree value * ``` * ### Returns * ``` * number // Normalized degree value; * ``` * ### Example * ``` * const deg = degnorm(523.546); // 163.546 * ``` *   */ export function degnorm(deg: number): number; /** * ### Description * Obtain the Delta T value for a date using a particular ephemeris system * ### Params * ``` * • tjd: number // Julian day value in Universal Time * • ephe: number // Ephemeris flag (SEFLG_SWIEPH, SEFLG_JPLEPH or SEFLG_MOSEPH) * ``` * ### Returns * ``` * Object { * error: string // Warning message if any * data: number // Delta T value * } * ``` * ### Example * ``` * const deltaT = deltat_ex(2431232, constants.SEFLG_MOSEPH); // 0.00032552915335235926 * ``` *   */ export function deltat_ex(tjd: number, ephe: number): DeltaT; /** * ### Description * Obtain the Delta T value for a particular date * ### Params * ``` * • tjd: number // Julian day value in Universal Time * ``` * ### Returns * ``` * number // Delta T value * ``` * ### Example * ``` * const deltaT = deltat(2431232); // 0.00032554160173271644 * ``` *   */ export function deltat(tjd: number): number; /** * ### Description * Arc distance between two points in centiseconds * ### Params * ``` * • csec1: number // First point in centiseconds * • csec2: number // Second point in centiseconds * ``` * ### Returns * ``` * number // Distance in centiseconds from -64800000 to 64800000 (negative if second point is ahead of the first) * ``` * ### Example * ``` * const distance = difcs2n(155, 160); // -5 * ``` *   */ export function difcs2n(csec1: number, csec2: number): number; /** * ### Description * Arc distance between two points in centiseconds in a single direction * ### Params * ``` * • csec1: number // First point in centiseconds * • csec2: number // Second point in centiseconds * ``` * ### Returns * ``` * number // Distance in centiseconds from 0 to 129600000 * ``` * ### Example * ``` * const distance = difcsn(155, 160); // 129599995 * ``` *   */ export function difcsn(csec1: number, csec2: number): number; /** * ### Description * Arc distance between two points in degrees * ### Params * ``` * • deg1: number // First point in degrees * • deg2: number // Second point in degrees * ``` * ### Returns * ``` * number // Distance in degrees from -180 to 180 (negative if second point is ahead of the first) * ``` * ### Example * ``` * const distance = difdeg2n(120, 130); // -10 * ``` *   */ export function difdeg2n(deg1: number, deg2: number): number; /** * ### Description * Arc distance between two points in degrees in a single direction * ### Params * ``` * • deg1: number // First point in degrees * • deg2: number // Second point in degrees * ``` * ### Returns * ``` * number // Distance in degrees from 0 to 360 * ``` * ### Example * ``` * const distance = difdegn(120, 130); // 350 * ``` *   */ export function difdegn(deg1: number, deg2: number): number; /** * ### Description * Get the visual magnitude (brightness) of a fixed star * ### Params * ``` * • star: string // Name of the star to search for in the sefstars.txt file * ``` * ### Returns * ``` * Object { * flag: number, // OK or ERR * error: string, // Error message in case of ERR * name: string, // The name of the matched star from the sefstars.txt file * data: number // The star's magnitude value * } * ``` * ### Example * ``` * const result = fixStar_mag("Aldebaran"); * if(result.flag !== constants.OK) { throw new Error(result.error); } * console.log(` * Star: ${result.name} * Magnitude: ${result.data} * `) * ``` *   */ export function fixstar_mag(star: string): FixStarMag; /** * ### Description * Calculate the positions of a star from universal time * ### Params * ``` * • star: string // Name of the star to search for in the sefstars.txt file * • tjd_ut: number // Julian day in universal time * • iflag: number // Calculation flags * ``` * ### Returns * ``` * Object { * flag: number, // OK or ERR * error: string, // Error message in case of ERR * name: string, // The name of the matched star from the sefstars.txt file * data: Array [ * lon, // Longitude, right ascension or cartesian X * lat, // Latitude, declination or cartesian Y * dist, // Distance in AU or cartesian Z * lonSpd, // Daily speed for lon * latSpd, // Daily speed for lat * distSpd, // Daily speed for dist * ] * } * ``` * ### Example * ``` * const flags = constants.SEFLG_SWIEPH | constants.SEFLG_SPEED; * const result = fixstar_ut("Aldebaran", 2413256, flags); * if(result.flag === constants.ERR) { throw new Error(result.error); } * if(result.flag !== flags) { console.log(result.error); } * console.log(` * Name: ${result.name} * Longitude: ${result.data[0]} * `); * ``` *   */ export function fixstar_ut(star: string, tjd_ut: number, iflag: number): FixStar; /** * ### Description * Calculate the positions of a star from ephemeris/terrestrial time * ### Params * ``` * • star: string // Name of the star to search for in the sefstars.txt file * • tjd_et: number // Julian day in ephemeris/terrestrial time * • iflag: number // Calculation flags * ``` * ### Returns * ``` * Object { * flag: number, // OK or ERR * error: string, // Error message in case of ERR * name: string, // The name of the matched star from the sefstars.txt file * data: Array [ * lon, // Longitude, right ascension or cartesian X * lat, // Latitude, declination or cartesian Y * dist, // Distance in AU or cartesian Z * lonSpd, // Daily speed for lon * latSpd, // Daily speed for lat * distSpd, // Daily speed for dist * ] * } * ``` * ### Example * ``` * const flags = constants.SEFLG_SWIEPH | constants.SEFLG_SPEED; * const result = fixstar("Aldebaran", 2413256, flags); * if(result.flag === constants.ERR) { throw new Error(result.error); } * if(result.flag !== flags) { console.log(result.error); } * console.log(` * Name: ${result.name} * Longitude: ${result.data[0]} * `); * ``` *   */ export function fixstar(star: string, tjd_et: number, iflag: number): FixStar; /** * ### Description * Get the visual magnitude (brightness) of a fixed star * ### Params * ``` * • star: string // Name of the star to search for in the sefstars.txt file * ``` * ### Returns * ``` * Object { * flag: number, // OK or ERR * error: string, // Error message in case of ERR * name: string, // The name of the matched star from the sefstars.txt file * data: number // The star's magnitude value * } * ``` * ### Example * ``` * const result = fixStar2_mag("Aldebaran"); * if(result.flag !== constants.OK) { throw new Error(result.error); } * console.log(` * Star: ${result.name} * Magnitude: ${result.data} * `) * ``` *   */ export function fixstar2_mag(star: string): FixStarMag; /** * ### Description * Calculate the positions of a star from universal time * ### Params * ``` * • star: string // Name of the star to search for in the sefstars.txt file * • tjd_ut: number // Julian day in universal time * • iflag: number // Calculation flags * ``` * ### Returns * ``` * Object { * flag: number, // OK or ERR * error: string, // Error message in case of ERR * name: string, // The name of the matched star from the sefstars.txt file * data: Array [ * lon, // Longitude, right ascension or cartesian X * lat, // Latitude, declination or cartesian Y * dist, // Distance in AU or cartesian Z * lonSpd, // Daily speed for lon * latSpd, // Daily speed for lat * distSpd, // Daily speed for dist * ] * } * ``` * ### Example * ``` * const flags = constants.SEFLG_SWIEPH | constants.SEFLG_SPEED; * const result = fixstar2_ut("Aldebaran", 2413256, flags); * if(result.flag === constants.ERR) { throw new Error(result.error); } * if(result.flag !== flags) { console.log(result.error); } * console.log(` * Name: ${result.name} * Longitude: ${result.data[0]} * `); * ``` *   */ export function fixstar2_ut(star: string, tjd_ut: number, iflag: number): FixStar; /** * ### Description * Calculate the positions of a star from ephemeris/terrestrial time * ### Params * ``` * • star: string // Name of the star to search for in the sefstars.txt file * • tjd_et: number // Julian day in ephemeris/terrestrial time * • iflag: number // Calculation flags * ``` * ### Returns * ``` * Object { * flag: number, // OK or ERR * error: string, // Error message in case of ERR * name: string, // The name of the matched star from the sefstars.txt file * data: Array [ * lon, // Longitude, right ascension or cartesian X * lat, // Latitude, declination or cartesian Y * dist, // Distance in AU or cartesian Z * lonSpd, // Daily speed for lon * latSpd, // Daily speed for lat * distSpd, // Daily speed for dist * ] * } * ``` * ### Example * ``` * const flags = constants.SEFLG_SWIEPH | constants.SEFLG_SPEED; * const result = fixstar2("Aldebaran", 2413256, flags); * if(result.flag === constants.ERR) { throw new Error(result.error); } * if(result.flag !== flags) { console.log(result.error); } * console.log(` * Name: ${result.name} * Longitude: ${result.data[0]} * `); * ``` *   */ export function fixstar2(star: string, tjd_et: number, iflag: number): FixStar; /** * ### Description * Calculate the Gauquelin Sector position of an object * ### Params * ``` * • tjd_ut: number // Julian day in universal time time * • ipl: number // Object ID (This is ignored if starname is not null) * • starname: string | null // Star name if star * • iflag: number // Calculation flags * • imeth: number // Gauquelin sector calculation method * • geopos: Array // Geographic coordinates [longitude, latitude, elevation] * • atpress: number // Atmospheric pressure in mbar/hpa * • attemp: number // Atmospheric temperature in celcius * ``` * ### Returns * ``` * Object { * flag: number, // OK or ERR * error: string, // Error message in case of ERR or other warnings * data: number // The gauquelin sector with fraction * } * ``` * ### Example * ``` * const result = gauquelin_sector(2413256, constants.SE_MOON, null, constants.SEFLG_SWIEPH, 0, [15,10,0], 0, 0); * if(result.flag !== constants.OK) { throw new Error(result.error); } * if(result.error) { console.log(result.error); } * console.log(`Sector: ${Math.floor(result.data)}`); * ``` *   */ export function gauquelin_sector(tjd_ut: number, ipl: number, starname: string | null, iflag: number, imeth: number, geopos: [longitude: number, latitude: number, elevation: number], atpress: number, attemp: number): GauquelinSector; /** * ### Description * Get Ayanamsa value from universal time with nutation * ### Params * ``` * • tjd_ut: number // Julian day in universal time * • ephe_flag: number // Ephemeris flag * ``` * ### Returns * ``` * Object { * flag: number, // Computed ephemeris flag or ERR * error: string, // Error message if ERR * data: number // Ayanamsa value * } * ``` * ### Example * ``` * const result = get_ayanamsa_ex_ut(2314234, constants.SEFLG_SWIEPH); * if(result.flag !== constants.OK) { console.log(result.error); } * ``` *   */ export function get_ayanamsa_ex_ut(tjd_ut: number, ephe_flag: number): Ayanamsa; /** * ### Description * Get Ayanamsa value from ephemeris/terrestrial time with nutation * ### Params * ``` * • tjd_et: number // Julian day in ephemeris/terrestrial time * • ephe_flag: number // Ephemeris flag * ``` * ### Returns * ``` * Object { * flag: number, // Computed ephemeris flag or ERR * error: string, // Error message if ERR * data: number // Ayanamsa value * } * ``` * ### Example * ``` * const result = get_ayanamsa_ex(2314234, constants.SEFLG_SWIEPH); * if(result.flag !== constants.OK) { console.log(result.error); } * ``` *   */ export function get_ayanamsa_ex(tjd_et: number, ephe_flag: number): Ayanamsa; /** * ### Description * Get name of predefined ayanamsa ID * ### Params * ``` * • aya: number // Predefined ayanamsa ID * ``` * ### Returns * ``` * string // Ayanamsa name * ``` * ### Example * ``` * const sidname = get_ayanamsa_name(constants.SE_SIDM_LAHIRI); // "Lahiri" * ``` *   */ export function get_ayanamsa_name(aya: number): string; /** * ### Description * Get ayanamsa value from universal time without nutation * ### Params * ``` * • tjd_et: number // Julian day in universal time * ``` * ### Returns * ``` * number // Ayanamsa value for given date * ``` * ### Example * ``` * const ayan = get_ayanamsa_ut(2314234); // 19.493219647880473 * ``` *   */ export function get_ayanamsa_ut(tjd_ut: number): number; /** * ### Description * Get ayanamsa value from ephemeris time without nutation * ### Params * ``` * • tjd_et: number // Julian day in ephemeris/terrestrial time * ``` * ### Returns * ``` * number // Ayanamsa value for given date * ``` * ### Example * ``` * const ayan = get_ayanamsa(2314234); // 19.493219620078364 * ``` *   */ export function get_ayanamsa(tjd_et: number): number; /** * ### Description * Get information from the last used ephemeris file * ### Params * ``` * • ifno: number // file type * ``` * ### Returns * ``` * Object { * path: string, // Path to ephemeris file * start: number, // Ephemeris start date * end: number, // Ephemeris end date * denum: number // JPL version used to generate the file * } * ``` * ### Example * ``` * // call calc to load the ephemeris file * calc(2342342, constants.SE_VENUS, constants.SEFLG_SWIEPH); * const fileinfo = get_current_file_data(0); * ``` *   */ export function get_current_file_data(ifno: number): GetCurrentFileData; /** * ### Description * Get library path * Returns the location of the node executable * ### Returns * ``` * string // Library path * ``` * ### Example * ``` * const path = get_library_path(); * ``` *   */ export function get_library_path(): string; /** * ### Description * Get an object's orbital elements for a given date in ephemeris/terrestrial time * ### Params * ``` * • tjd_et: number // Julian day in ephemeris/terrestrial time * • ipl: number // Object ID * • iflag: number // Calculation flags * ``` * ### Returns * ``` * Object { * flag: number, // OK or ERR * error: string, // Error message if ERR * data: number [ * a, // Semimajor axis * e, // Eccentricity * i, // Inclination * Ω, // Longitude of ascending node * ω, // Argument of periapsis * ϖ, // Longitude of periapsis * M0, // Mean anomaly at epoch * ν0, // True anomaly at epoch * E0, // Eccentric anomaly at epoch * L0, // Mean longitude at epoch * sidereal_period, // Sidereal orbital period in tropical years * daily_motion, // Mean daily motion * tropical_period, // Tropical period in years * synodic_period, // Synodic period in days * perihelion_passage, // Time of perihelion passage * perihelion_distance, // Perihelion distance * aphelion_distance // Aphelion distance * ] * } * ``` * ### Example * ``` * const result = get_orbital_elements(2314234, constants.SE_MARS, constants.SEFLG_SWIEPH); * if(result.flag !== constants.OK) { console.log(result.error); } * ``` *   */ export function get_orbital_elements(tjd_et: number, ipl: number, iflag: number): GetOrbitalElements /** * ### Description * Get an object's name * ### Params * ``` * • ipl: number // Object ID * ``` * ### Returns * ``` * string // Object's name * ``` * ### Example * ``` * const name = get_planet_name(constants.SE_PLUTO); // "Pluto" * ``` *   */ export function get_planet_name(ipl: number): string; /** * ### Description * Get internal tidal acceleration value * ### Returns * ``` * number // Tidal acceleration * ``` * ### Example * ``` * const tidacc = get_tid_acc(); * ``` *   */ export function get_tid_acc(): number; /** * ### Description * Obtain additional data used for calculation of heliacal risings and settings * ### Params * ``` * • tjd_ut: number // Julian day in universal time * • dgeo: Array // Geographic coordinates [longitude, latitude, elevation] * • datm: Array // Atmospheric conditions [pressure, temperature, humidity, meteorological range] * • dobs: Array // Observer description [age, sellen ratio, optical type, optical magnification, optical aperture, optical transmission] * • object_name: string // Name of fixed star or planet * • event_type: number // Event type * • hel_flag: number // Calculation flag * ``` * ### Returns * ``` * Object { * flag: number, // OK or ERR * error: string, // Error message if ERR * data: number [ * AltO, // topocentric altitude of object in degrees (unrefracted) * AppAltO, // apparent altitude of object in degrees (refracted) * GeoAltO, // geocentric altitude of object in degrees * AziO, // azimuth of object in degrees * AltS, // topocentric altitude of Sun in degrees * AziS, // azimuth of Sun in degrees * TAVact, // actual topocentric arcus visionis in degrees * ARCVact, // actual (geocentric) arcus visionis in degrees * DAZact, // actual difference between object's and sun's azimuth in degrees * ARCLact, // actual longitude difference between object and sun in degrees * kact, // extinction coefficient * minTAV, // smallest topocentric arcus visionis in degrees * TfistVR, // first time object is visible, according to VR in JD * TbVR, // optimum time the object is visible, according to VR in JD * TlastVR, // last time object is visible, according to VR in JD * TbYallop, // best time the object is visible, according to Yallop in JD * WMoon, // crescent width of Moon in degrees * qYal, // q-test value of Yallop * qCrit, // q-test criterion of Yallop * ParO, // parallax of object in degrees * Magn, // magnitude of object * RiseO, // rise/set time of object in JD * RiseS, // rise/set time of Sun in JD * Lag, // rise/set time of object minus rise/set time of Sun in JD * TvisVR, // visibility duration in JD * LMoon, // crescent length of Moon in degrees * CVAact, // CVAact in degrees * Illum, // Illum in percentage * CVAact, // CVAact in degrees * MSk // MSk * ] * } * ``` * ### Example * ``` * const result = heliacal_pheno_ut(2415362, [8,47,900], [1000,10,50,-0.15], [21,0,0,0,0,0], "moon", 0, 0); * if(result.flag !== constants.OK) { console.log(result.error); } * console.log(result.data); * ``` *   */ export function heliacal_pheno_ut(tjd_ut: number, dgeo: [longitude: number, latitude: number, elevation: number], datm: [pressure: number, temperature: number, humidity: number, meteorological_range: number], dobs: [age: number, sellen_ratio: number, optical_type: number, optical_magnification: number, optical_aperture: number, optical_transmission: number], object_name: string, event_type: number, hel_flag: number): HeliacalPheno; /** * ### Description * Calculate the next heliacal phenomenon after a given start date * It works between geographic latitudes -60 and 60 * ### Params * ``` * • tjd_ut: number // Julian day in universal time * • dgeo: Array // Geographic coordinates [longitude, latitude, elevation] * • datm: Array // Atmospheric conditions [pressure, temperature, humidity, meteorological range] * • dobs: Array // Observer description [age, sellen ratio, optical type, optical magnification, optical aperture, optical transmission] * • object_name: string // Name of fixed star or planet * • event_type: number // Event type * • hel_flag: number // Calculation flag * ``` * ### Returns * ``` * Object { * flag: number, // OK or ERR * error: string, // Error message if ERR * data: number [ * vis_start, // Start visibility in JD * vis_opt, // Optimum visibility in JD (zero if hel_flag >= SE_HELFLAG_AV) * vis_end // End of visibility in JD (zero if hel_flag >= SE_HELFLAG_AV) * ] * } * ``` * ### Example * ``` * const result = heliacal_ut(2415362, [8,47,900], [1000,10,50,-0.15], [21,0,0,0,0,0], "venus", 0, 0); * if(result.flag !== constants.OK) { console.log(result.error); } * console.log(`Visibility Start: ${result.data[0]}`); * ``` *   */ export function heliacal_ut(tjd_ut: number, dgeo: [longitude: number, latitude: number, elevation: number], datm: [pressure: number, temperature: number, humidity: number, meteorological_range: number], dobs: [age: number, sellen_ratio: number, optical_type: number, optical_magnification: number, optical_aperture: number, optical_transmission: number], object_name: string, event_type: number, hel_flag: number): Heliacal; /** * ### Description * Compute a planets heliocentric crossing over some longitude * ### Params * ``` * • ipl: number // Object ID * • x2cross: number // Longitude point to search for * • jd_ut: number // Start date in julian days in universal time * • flag: number // Calculation flag * • dir: number // Search direction, 0 = forwards, -1 = backwards * ``` * ### Returns * ``` * Object { * flag: number, // OK or ERR * error: string, // Error message if ERR * date: number // Next crossing date in julian days in universal time * } * ``` * ### Example * ``` * const result = helio_cross_ut(constants.SE_MARS, 134.5, 2415362, constants.SEFLG_SWIEPH, 0); * if(result.flag !== constants.OK) { throw new Error(result.error); } * console.log(`Date: ${result.date}`); * ``` *   */ export function helio_cross_ut(ipl: number, x2cross: number, jd_ut: number, flag: number, dir: number): Cross & Flag; /** * ### Description * Compute a planets heliocentric crossing over some longitude * ### Params * ``` * • ipl: number // Object ID * • x2cross: number // Longitude point to search for * • jd_et: number // Start date in julian days in ephemeris/terrestrial time * • flag: number // Calculation flag * • dir: number // Search direction, 0 = forwards, -1 = backwards * ``` * ### Returns * ``` * Object { * flag: number, // OK or ERR * error: string, // Error message if ERR * date: number // Next crossing date in julian days in ephemeris/terrestrial time * } * ``` * ### Example * ``` * const result = helio_cross(constants.SE_MARS, 134.5, 2415362, constants.SEFLG_SWIEPH, 0); * if(result.flag !== constants.OK) { throw new Error(result.error); } * console.log(`Date: ${result.date}`); * ``` *   */ export function helio_cross(ipl: number, x2cross: number, jd_et: number, flag: number, dir: number): Cross & Flag; /** * ### Description * Get the name of a house system * ### Params * ``` * • hsys: string // House system ID * ``` * ### Returns * ``` * string // House system name * ``` * ### Example * ``` * const name = house_name("P"); // "Placidus" * ``` *   */ export function house_name(hsys: HouseSystems | string & {}): string; /** * ### Description * Calculate the house position of an object * This function attempts to obtain a visually accurate house position by also taking latitude/declination into account * ### Params * ``` * • armc: number // Right ascension * • geolat: number // Geographic latitude * • eps: number // Obliquity of the ecliptic * • hsys: string // House system ID * • xpin: Array // Object position in ecliptic tropical coordinates [longitude, latitude] * ``` * ### Returns * ``` * Object { * error: string, // Error message if any * data: number // House position including fraction * } * ``` * ### Example * ``` * const result = house_pos(50, 45, 23, "p", [256, 2]); * if(result.error) { throw new Error(result.error); } * console.log(`House: ${Math.floor(result.data)}`); * ``` *   */ export function house_pos(armc: number, geolat: number, eps: number, hsys: HouseSystems | string & {}, xpin: [longitude: number, latitude: number]): HousePosition; /** * ### Description * Calculate houses and other points from right ascension and obliquity including momentary motion speeds * This function can be used to calculate houses without a date, such as composite houses * It also returns an error message in case something goes wrong * ### Params * ``` * • armc: number // Right ascension of the midheaven * • geolat: number // Geographic latitude * • eps: number // Obliquity of the ecliptic * • hsys: string // House system ID * • decl?: number // Declination of the Sun (sunshine/makransky houses only) * ``` * ### Returns * ``` * Object { * flag: number, // OK or ERR * error: string, // Error message in case of ERR * data: Object { * houses: Array [ * house_1: number, // Longitude of the first house * house_2: number, // Longitude of the second house * house_3: number, // Longitude of the third house * ... // 36 houses if gauquelin sectors, 12 houses otherwise * ], * points: Array [ * asc: number, // Ascendant * mc: number, // Midheaven * armc: number, // Right Ascension of the midheaven * vertex: number, // Vertex * equasc: number, // Equatorial Ascendant * coasc1: number, // Co-Ascendant (Walter Koch) * coasc2: number, // Co-Ascendant (Michael Munkasey) * polasc: number, // Polar Ascendant (Michael Munkasey) * ], * housesSpeed: Array [ * ... // Longitude speeds for the houses * ], * pointsSpeed: Array [ * ... // Longitude speeds for the points * ] * } * } * ``` * ### Example * ``` * const result = houses_armc_ex2(34, 10, 23, "P"); * if(result.flag !== constants.OK) { console.log(result.error); } * console.log(`Ascendant: ${result.data.points[0]}`); * ``` *   */ export function houses_armc_ex2(armc: number, geolat: number, eps: number, hsys: "G", decl?: number): HousesEx<36>; export function houses_armc_ex2(armc: number, geolat: number, eps: number, hsys: HouseSystems, decl?: number): HousesEx<12>; export function houses_armc_ex2(armc: number, geolat: number, eps: number, hsys: string, decl?: number): HousesEx<12> | HousesEx<36>; /** * ### Description * Calculate houses and other points from right ascension and obliquity * This function can be used to calculate houses without a date, such as composite houses * ### Params * ``` * • armc: number // Right ascension of the midheaven * • geolat: number // Geographic latitude * • eps: number // Obliquity of the ecliptic * • hsys: string // House system ID * • decl?: number // Declination of the Sun (sunshine/makransky houses only) * ``` * ### Returns * ``` * Object { * flag: number, // OK or ERR * data: Object { * houses: Array [ * house_1: number, // Longitude of the first house * house_2: number, // Longitude of the second house * house_3: number, // Longitude of the third house * ... // 36 houses if gauquelin sectors, 12 houses otherwise * ], * points: Array [ * asc: number, // Ascendant * mc: number, // Midheaven * armc: number, // Right Ascension of the midheaven * vertex: number, // Vertex * equasc: number, // Equatorial Ascendant * coasc1: number, // Co-Ascendant (Walter Koch) * coasc2: number, // Co-Ascendant (Michael Munkasey) * polasc: number, // Polar Ascendant (Michael Munkasey) * ] * } * } * ``` * ### Example * ``` * const result = houses_armc(34, 10, 23, "P"); * if(result.flag !== constants.OK) { console.log("something went wrong, check output") } * console.log(`Ascendant: ${result.data.points[0]}`); * ``` *   */ export function houses_armc(armc: number, geolat: number, eps: number, hsys: "G", decl?: number): Houses<36>; export function houses_armc(armc: number, geolat: number, eps: number, hsys: HouseSystems, decl?: number): Houses<12>; export function houses_armc(armc: number, geolat: number, eps: number, hsys: string, decl?: number): Houses<12> | Houses<36>; /** * ### Description * Calculate houses and other points with support for calculation flags * ### Params * ``` * • tjd_ut: number // Julian day in universal time * • iflag: number // Calculation flags * • geolat: number // Geographic latitude * • geolon: number // Geographic longitude * • hsys: string // House system ID * ``` * ### Returns * ``` * Object { * flag: number, // OK or ERR * data: Object { * houses: Array [ * house_1: number, // Longitude of the first house * house_2: number, // Longitude of the second house * house_3: number, // Longitude of the third house * ... // 36 houses if gauquelin sectors, 12 houses otherwise * ], * points: Array [ * asc: number, // Ascendant * mc: number, // Midheaven * armc: number, // Right Ascension of the midheaven * vertex: number, // Vertex * equasc: number, // Equatorial Ascendant * coasc1: number, // Co-Ascendant (Walter Koch) * coasc2: number, // Co-Ascendant (Michael Munkasey) * polasc: number, // Polar Ascendant (Michael Munkasey) * ] * } * } * ``` * ### Example * ``` * const result = houses_ex(2413654, 0, 35.234, 45.324, "P"); * if(result.flag !== constants.OK) { console.log("something went wrong, check output") } * console.log(`Ascendant: ${result.data.points[0]}`); * ``` *   */ export function houses_ex(tjd_ut: number, iflag: number, geolat: number, geolon: number, hsys: "G"): Houses<36>; export function houses_ex(tjd_ut: number, iflag: number, geolat: number, geolon: number, hsys: HouseSystems): Houses<12>; export function houses_ex(tjd_ut: number, iflag: number, geolat: number, geolon: number, hsys: string): Houses<12> | Houses<36>; /** * ### Description * Calculate the houses and other points with support for calculation flags and including momentary motion speeds * This function also outputs an error message in case something goes wrong * ### Params * ``` * • tjd_ut: number // Julian day in universal time * • iflag: number // Calculation flags * • geolat: number // Geographic latitude * • geolon: number // Geographic longitude * • hsys: string // House system ID * ``` * ### Returns * ``` * Object { * flag: number, // OK or ERR * error: string, // Error message in case of ERR * data: Object { * houses: Array [ * house_1: number, // Longitude of the first house * house_2: number, // Longitude of the second house * house_3: number, // Longitude of the third house * ... // 36 houses if gauquelin sectors, 12 houses otherwise * ], * points: Array [ * asc: number, // Ascendant * mc: number, // Midheaven * armc: number, // Right Ascension of the midheaven * vertex: number, // Vertex * equasc: number, // Equatorial Ascendant * coasc1: number, // Co-Ascendant (Walter Koch) * coasc2: number, // Co-Ascendant (Michael Munkasey) * polasc: number, // Polar Ascendant (Michael Munkasey) * ], * housesSpeed: Array [ * ... // Longitude speeds for the houses * ], * pointsSpeed: Array [ * ... // Longitude speeds for the points * ] * } * } * ``` * ### Example * ``` * const result = houses_ex2(2413654, 0, 35.234, 45.324, "P"); * if(result.flag !== constants.OK) { console.log(result.error); } * console.log(`Ascendant: ${result.data.points[0]}`); * ``` *   */ export function houses_ex2(tjd_ut: number, iflag: number, geolat: number, geolon: number, hsys: "G"): HousesEx<36>; export function houses_ex2(tjd_ut: number, iflag: number, geolat: number, geolon: number, hsys: HouseSystems): HousesEx<12>; export function houses_ex2(tjd_ut: number, iflag: number, geolat: number, geolon: number, hsys: string): HousesEx<12> | HousesEx<36>; /** * ### Description * Calculate houses and other points * ### Params * ``` * • tjd_ut: number // Julian day in universal time * • geolat: number // Geographic latitude * • geolon: number // Geographic longitude * • hsys: string // House system ID * ``` * ### Returns * ``` * Object { * flag: number, // OK or ERR * data: Object { * houses: Array [ * house_1: number, // Longitude of the first house * house_2: number, // Longitude of the second house * house_3: number, // Longitude of the third house * ... // 36 houses if gauquelin sectors, 12 houses otherwise * ], * points: Array [ * asc: number, // Ascendant * mc: number, // Midheaven * armc: number, // Right Ascension of the midheaven * vertex: number, // Vertex * equasc: number, // Equatorial Ascendant * coasc1: number, // Co-Ascendant (Walter Koch) * coasc2: number, // Co-Ascendant (Michael Munkasey) * polasc: number, // Polar Ascendant (Michael Munkasey) * ] * } * } * ``` * ### Example * ``` * const result = houses(2413654, 35.234, 45.324, "P"); * if(result.flag !== constants.OK) { console.log("something went wrong, check output") } * console.log(`Ascendant: ${result.data.points[0]}`); * ``` *   */ export function houses(tjd_ut: number, geolat: number, geolon: number, hsys: "G"): Houses<36>; export function houses(tjd_ut: number, geolat: number, geolon: number, hsys: HouseSystems): Houses<12>; export function houses(tjd_ut: number, geolat: number, geolon: number, hsys: string): Houses<12> | Houses<36>; /** * ### Description * Convert julian day in ephemeris/terrestrial time to calendar date * ### Params * ``` * • tjd_et: number // Julian day in ephemeris/terrestrial time * • gregflag: number // Calendar system, SE_GREG_CAL for gregorian calendar, SE_JUL_CAL for julian calendar * ``` * ### Returns * ``` * Object { * year: number; // Full year * month: number; // Month (1-12) * day: number; // Day (1-31) * hour: number; // Hour (0-23) * minute: number; // Minute (0-59) * second: number; // Second including fraction (0-59.99999) * } * ``` * ### Example * ``` * const date = jdet_to_utc(2415423, constants.GREG_CAL); * console.log(date); * ``` *   */ export function jdet_to_utc(tjd_et: number, gregflag: number): DateObject2; /** * ### Description * Convert julian day in universal time to calendar date * ### Params * ``` * • tjd_ut: number // Julian day in universal time * • gregflag: number // Calendar system, SE_GREG_CAL for gregorian calendar, SE_JUL_CAL for julian calendar * ``` * ### Returns * ``` * Object { * year: number; // Full year * month: number; // Month (1-12) * day: number; // Day (1-31) * hour: number; // Hour (0-23) * minute: number; // Minute (0-59) * second: number; // Second including fraction (0-59.99999) * } * ``` * ### Example * ``` * const date = jdut1_to_utc(2415423, constants.GREG_CAL); * console.log(date); * ``` *   */ export function jdut1_to_utc(tjd_ut: number, gregflag: number): DateObject2; /** * ### Description * Convert a calendar date to julian day in universal time * ### Params * ``` * • year: number // Full year * • month: number // Month (1-12) * • day: number // Day (1-31) * • hour: number // Hour with fraction (0-23.99999) * • gregflag: number // Calendar system, SE_GREG_CAL for gregorian calendar, SE_JUL_CAL for julian calendar * ``` * ### Returns * ``` * number // Julian day value in universal time * ``` * ### Example * ``` * const jd = julday(2010, 5, 25, 14.5, constants.SE_GREG_CAL); // 2455342.1041666665 * ``` *   */ export function julday(year: number, month: number, day: number, hour: number, gregflag: number): number /** * ### Description * Transform local apparent time to local mean time * ### Params * ``` * • tjd_lat: number // Local apparent time in julian day in universal time * • geolon: number // Geographic longitude * ``` * ### Returns * ``` * Object { * flag: number, // OK or ERR * error: string, // Error message in case of error * data: number // Local mean time in julian day in universal time * } * ``` * ### Example * ``` * const result = lat_to_lmt(2416547, -115.156); * if(result.flag !== constants.OK) { console.log(result.error); } * console.log(`LMT: ${result.data}`) * ``` *   */ export function lat_to_lmt(tjd_lat: number, geolon: number): LocalMeanTime; /** * ### Description * Transform local mean time to local apparent time * ### Params * ``` * • tjd_lmt: number // Local mean time in julian day in universal time * • geolon: number // Geographic longitude * ``` * ### Returns * ``` * Object { * flag: number, // OK or ERR * error: string, // Error message in case of error * data: number // Local apparent time in julian day in universal time * } * ``` * ### Example * ``` * const result = lmt_to_lat(2416547, -115.156); * if(result.flag !== constants.OK) { console.log(result.error); } * console.log(`LMT: ${result.data}`) * ``` *   */ export function lmt_to_lat(tjd_lmt: number, geolon: number): LocalApparentTime; /** * ### Description * Get lunar eclipse data for a given date * ### Params * ``` * • tjd_ut: number // Julian day in universal time * • ifl: number // Ephemeris flag * • geopos: Array // Geographic coordinates [longitude, latitude, elevation] * ``` * ### Returns * ``` * Object { * flag: number, // ERR, eclipse type (SE_ECL_TOTAL, SE_ECL_PENUMBRAL, SE_ECL_PARTIAL) or 0 if no eclipse * error: string, // Error message in case of error * data: Array [ * umbral_mag, // Umbral magnitude at jd * penumbral_mag, // Penumbral magnitude * -, // Unused * -, // Unused * azimuth, // Azimuth of the moon at jd * true_altitude, // True altitude of the moon above horizon at jd * apparent_altitude, // Apparent altitude of the moon above horizon at jd * distance, // Distance of the moon from opposition in degrees * eclipse_mag, // Eclipse magnitude (same as umbral magnitude) * saros_number, // Saros series number (if available, otherwise -99999999) * saros_member // Saros series member number (if available, otherwise -99999999) * ] * } * ``` * ### Example * ``` * const result = lun_eclipse_how(2416547, constants.SEFLG_SWIEPH, [10,45,500]); * if(result.flag === constants.ERR) { throw new Error(result.error); } * console.log(` * type: ${result.flag} * magnitude: ${result.data[0]} * `) * ``` *   */ export function lun_eclipse_how(tjd_ut: number, ifl: number, geopos: [longitude: number, latitude: number, elevation: number]): LunEclipseHow; /** * ### Description * Search for lunar eclipses at a given location * ### Params * ``` * • tjd_start: number // Julian day in universal time to start searching from * • ifl: number // Ephemeris flag * • geopos: Array // Geographic coordinates [longitude, latitude, elevation] * • backwards: boolean // Search backwards in time instead * ``` * ### Returns * ``` * Object { * flag: number, // ERR, eclipse type (SE_ECL_TOTAL, SE_ECL_PENUMBRAL, SE_ECL_PARTIAL) or 0 if no eclipse found * error: string, // Error message in case of error * data: Array [ * eclipse_max, // Time of maximum eclipse in jd * -, // Unused * partial_start, // Time of partial phase start * partial_end, // Time of partial phase end * total_start, // Time of totality start * total_end, // Time of totality end * penumbral_start, // Time of penumbral phase start * penumbral_end, // Time of penumbral phase end * rise, // Time of moonrise, if it occurs during the eclipse * set, // Time of moonset, if it occurs during the eclipse * ], * attributes: Array [ * umbral_mag, // Umbral magnitude at jd * penumbral_mag, // Penumbral magnitude * -, // Unused * -, // Unused * azimuth, // Azimuth of the moon at jd * true_altitude, // True altitude of the moon above horizon at jd * apparent_altitude, // Apparent altitude of the moon above horizon at jd * distance, // Distance of the moon from opposition in degrees * eclipse_mag, // Eclipse magnitude (same as umbral magnitude) * saros_number, // Saros series number (if available, otherwise -99999999) * saros_member // Saros series member number (if available, otherwise -99999999) * ] * } * ``` * ### Example * ``` * const result = lun_eclipse_when_loc(2416547, constants.SEFLG_SWIEPH, [10,45,500], false); * if(result.flag === constants.ERR) { throw new Error(result.error); } * console.log(` * type: ${result.flag} * eclipse_max: ${result.data[0]} * `) * ``` *   */ export function lun_eclipse_when_loc(tjd_start: number, ifl: number, geopos: [longitude: number, latitude: number, elevation: number], backwards: boolean): LunEclipseWhenLoc; /** * ### Description * Search for lunar eclipses * ### Params * ``` * • tjd_start: number // Julian day in universal time to start searching from * • ifl: number // Ephemeris flag * • ifltype: number // Eclipse type (SE_ECL_TOTAL, SE_ECL_PENUMBRAL, SE_ECL_PARTIAL or 0 for any) * • backwards: boolean // Search backwards in time instead * ``` * ### Returns * ``` * Object { * flag: number, // ERR, eclipse type (SE_ECL_TOTAL, SE_ECL_PENUMBRAL, SE_ECL_PARTIAL) or 0 if no eclipse found * error: string, // Error message in case of error * data: Array [ * eclipse_max, // Time of maximum eclipse in jd * -, // Unused * partial_start, // Time of partial phase start * partial_end, // Time of partial phase end * total_start, // Time of totality start * total_end, // Time of totality end * penumbral_start, // Time of penumbral phase start * penumbral_end, // Time of penumbral phase end * ] * } * ``` * ### Example * ``` * const result = lun_eclipse_when(2416547, constants.SEFLG_SWIEPH, 0, false); * if(result.flag === constants.ERR) { throw new Error(result.error); } * console.log(` * type: ${result.flag} * eclipse_max: ${result.data[0]} * `) * ``` *   */ export function lun_eclipse_when(tjd_start: number, ifl: number, ifltype: number, backwards: boolean): LunEclipseWhen; /** * ### Description * Search for lunar eclipses globally * ### Params * ``` * • tjd_start: number // Julian day in universal time to start searching from * • ipl: number // Object ID * • starname: string | null // Star name if star, otherwise set to null * • ifl: number // Ephemeris flag * • ifltype: number // Eclipse type (SE_ECL_TOTAL, SE_ECL_ANNULAR, SE_ECL_PARTIAL, SE_ECL_ANNULAR_TOTAL, SE_ECL_CENTRAL, SE_ECL_NONCENTRAL or 0 for any) * • backwards: boolean // Search backwards in time instead * ``` * ### Returns * ``` * Object { * flag: number, // ERR, eclipse type (SE_ECL_TOTAL, SE_ECL_ANNULAR, SE_ECL_PARTIAL, SE_ECL_ANNULAR_TOTAL, SE_ECL_CENTRAL, SE_ECL_NONCENTRAL) or 0 if no eclipse found * error: string, // Error message in case of error * data: Array [ * eclipse_max, // Time of maximum eclipse in jd * local_noon, // Time when eclipse takes place at local apparent noon * eclipse_start, // Time of eclipse start * eclipse_end, // Time of eclipse end * total_start, // Time of totality start * total_end, // Time of totality end * center_start, // Time of center line start * center_end, // Time of center line end * annular_total, // Time when annular-total eclipse becomes total * total_annular // Time when annular-total eclipse becomes annular again * ] * } * ``` * ### Example * ``` * const result = lun_occult_when_glob(2416547, constants.SE_MARS, null, constants.SEFLG_SWIEPH, 0, false); * if(result.flag === constants.ERR) { throw new Error(result.error); } * console.log(` * type: ${result.flag} * eclipse_max: ${result.data[0]} * `) * ``` *   */ export function lun_occult_when_glob(tjd_start: number, ipl: number, starname: string | null, ifl: number, ifltype: number, backwards: boolean): EclipseWhenGlob; /** * ### Description * Search for lunar eclipses locally * ### Params * ``` * • tjd_start: number // Julian day in universal time to start searching from * • ipl: number // Object ID * • starname: string | null // Star name if star, otherwise set to null * • ifl: number // Ephemeris flag * • geopos: Array // Geographic coordinates [longitude, latitude, elevation] * • backwards: boolean // Search backwards in time instead * ``` * ### Returns * ``` * Object { * flag: number, // ERR, eclipse/occulation type or 0 if none found * error: string, // Error message in case of error * data: Array [ * max_eclipse: number, // Time of maximum eclipse * first_contact: number, // Time of first contact * second_contact: number, // Time of second contact * third_contact: number, // Time of third contact * fourth_contact: number, // Time of fourth contact * sunrise: number, // Time of sunrise between first and forth contact * sunset: number // Time of sunset between first and forth contact * ], * attributes: Array [ * solar_diameter: number, // Fraction of solar diameter covered by moon (magnitude) * lunar_diameter: number, // Ratio of lunar diameter to solar one * solar_disc: number, // Fraction of solar disc covered by moon (obscuration) * core_shadow: number, // Diameter of core shadow in km * sun_azimuth: number, // Azimuth of sun at tjd * true_altitude: number, // True altitude of sun above horizon at tjd * mean_altitude: number, // Apparent altitude of sun above horizon at tjd * elongation: number // Elongation of moon in degrees * ] * } * ``` * ### Example * ``` * const result = lun_occult_when_loc(2416547, constants.SE_MARS, null, constants.SEFLG_SWIEPH, [135, 45, 0], false); * if(result.flag === constants.ERR) { throw new Error(result.error); } * console.log(` * type: ${result.flag} * eclipse_max: ${result.data[0]} * `) * ``` *   */ export function lun_occult_when_loc(tjd_start: number, ipl: number, starname: string | null, ifl: number, geopos: [longitude: number, latitude: number, elevation: number], backwards: boolean): LunOccultWhenLoc; /** * ### Description * Get geographical coordinates for an eclipse * ### Params * ``` * • tjd_ut: number // Julian day in universal time * • ipl: number // Object ID * • starname: string | null // Star name if star, otherwise set to null * • ifl: number // Ephemeris flag * ``` * ### Returns * ``` * Object { * flag: number, // ERR, eclipse/occulation type or 0 if none found * error: string, // Error message in case of error * data: Array [ * central_long: number, // Geographic longitude of central line * central_lat: number, // Geographic latitude of central line * north_umbra_long: number, // Geographic longitude of northern limit of umbra * north_umbra_lat: number, // Geographic latitude of northern limit of umbra * south_umbra_long: number, // Geographic longitude of southern limit of umbra * south_umbra_lat: number, // Geographic latitude of southern limit of umbra * north_penumbra_long: number, // Geographic longitude of northern limit of penumbra * north_penumbra_lat: number, // Geographic latitude of northern limit of penumbra * south_penumbra_long: number, // Geographic longitude of southern limit of penumbra * south_penumbra_lat: number // Geographic latitude of southern limit of penumbra * ], * attributes: Array [ * diameter_fraction: number, // Fraction of object's diameter covered by moon (magnitude) * diameter_ratio: number, // Ratio of lunar diameter to object's diameter * disc_fraction: number, // Fraction of object's disc covered by moon (obscuration) * core_shadow: number, // Diameter of core shadow in km * azimuth: number, // Azimuth of object at tjd * true_altitude: number, // True altitude of object above horizon at tjd * apparent_altitude: number, // Apparent altitude of object above horizon at tjd * angular_distance: number, // Angular distance of moon from object in degrees * ] * } * ``` * ### Example * ``` * const result = lun_occult_where(2416547, constants.SE_MARS, null, constants.SEFLG_SWIEPH); * if(result.flag === constants.ERR) { throw new Error(result.error); } * console.log(` * type: ${result.flag} * longitude: ${result.data[0]} * `) * ``` *   */ export function lun_occult_where(tjd_ut: number, ipl: number, starname: string | null, ifl: number): LunOccultWhere; /** * ### Description * Compute the next Moon crossing over its node, by finding zero latitude crossing * ### Params * ``` * • jd_ut: number // Start date in julian days in universal time * • flag: number // Calculation flag * ``` * ### Returns * ``` * Object { * date: number, // Date of the crossing in julian days in universal time * error: string, // Error message if resulting date is smaller than starting date * longitude: number, // Ecliptic longitude where the crossing happens * latitude: number // Ecliptic latitude precision margin for the crossing date * } * ``` * ### Example * ``` * const jd = 2415362; * const result = mooncross_node_ut(jd, constants.SEFLG_SWIEPH); * if(result.date < jd) { throw new Error(result.error); } * console.log(`Date: ${result.date}`); * ``` *   */ export function mooncross_node_ut(jd_ut: number, flag: number): NodeCross; /** * ### Description * Compute the next Moon crossing over its node, by finding zero latitude crossing * ### Params * ``` * • jd_et: number // Start date in julian days in ephemeris/terrestrial time * • flag: number // Calculation flag * ``` * ### Returns * ``` * Object { * date: number, // Date of the crossing in julian days in ephemeris/terrestrial time * error: string, // Error message if resulting date is smaller than starting date * longitude: number, // Ecliptic longitude where the crossing happens * latitude: number // Ecliptic latitude precision margin for the crossing date * } * ``` * ### Example * ``` * const jd = 2415362; * const result = mooncross_node(jd, constants.SEFLG_SWIEPH); * if(result.date < jd) { throw new Error(result.error); } * console.log(`Date: ${result.date}`); * ``` *   */ export function mooncross_node(jd_et: number, flag: number): NodeCross; /** * ### Description * Compute Moon's crossing over some longitude * ### Params * ``` * • x2cross: number // Ecliptic latitude position to search for * • jd_ut: number // Start date in julian days in universal time * • flag: number // Calculation flag * ``` * ### Returns * ``` * Object { * date: number, // Date of the crossing in julian days in universal time * error: string, // Error message if resulting date is smaller than starting date * } * ``` * ### Example * ``` * const jd = 2415362; * const result = mooncross_ut(185.25 ,jd , constants.SEFLG_SWIEPH); * if(result.date < jd) { throw new Error(result.error); } * console.log(`Date: ${result.date}`); * ``` *   */ export function mooncross_ut(x2cross: number, jd_ut: number, flag: number): Cross; /** * ### Description * Compute Moon's crossing over some longitude * ### Params * ``` * • x2cross: number // Ecliptic latitude position to search for * • jd_et: number // Start date in julian days in ephemeris/terrestrial time * • flag: number // Calculation flag * ``` * ### Returns * ``` * Object { * date: number, // Date of the crossing in julian days in ephemeris/terrestrial time * error: string, // Error message if resulting date is smaller than starting date * } * ``` * ### Example * ``` * const jd = 2415362; * const result = mooncross(185.25 ,jd , constants.SEFLG_SWIEPH); * if(result.date < jd) { throw new Error(result.error); } * console.log(`Date: ${result.date}`); * ``` *   */ export function mooncross(x2cross: number, jd_et: number, flag: number): Cross; /** * ### Description * Calculate an object's nodes and apsides from universal time * If the calculation method includes `SE_NODBIT_FOPOINT`, the `aphelion` field contains the values for the object's "second focus" instead * ### Params * ``` * • tjd_ut: number // Julian day in universal time * • ipl: number // Object ID * • iflag: number // Calculation flags * • method: number // Calculation method flags * ``` * ### Returns * ``` * Object { * flag: number, // Computed flags or ERR * error: string, // Error message in case of error * data: Object { * ascending: Array [ * lon, // Longitude, right ascension, or cartesian X * lat, // Latitude, declination or cartesian Y * dist, // Distance in AU or cartesian Z * lonSpd, // Daily speed for lon * latSpd, // Daily speed for lat * distSpd, // Daily speed for dist * ], * descending: Array [ * lon, // Longitude, right ascension, or cartesian X * lat, // Latitude, declination or cartesian Y * dist, // Distance in AU or cartesian Z * lonSpd, // Daily speed for lon * latSpd, // Daily speed for lat * distSpd, // Daily speed for dist * ], * perihelion: Array [ * lon, // Longitude, right ascension, or cartesian X * lat, // Latitude, declination or cartesian Y * dist, // Distance in AU or cartesian Z * lonSpd, // Daily speed for lon * latSpd, // Daily speed for lat * distSpd, // Daily speed for dist * ], * aphelion: Array [ * lon, // Longitude, right ascension, or cartesian X * lat, // Latitude, declination or cartesian Y * dist, // Distance in AU or cartesian Z * lonSpd, // Daily speed for lon * latSpd, // Daily speed for lat * distSpd, // Daily speed for dist * ], * } * } * ``` * ### Example * ``` * const flags = constants.SEFLG_SWIEPH; * const result = nod_aps_ut(2416547, constants.SE_MARS, flags, 0); * if(result.flag !== flags) { console.log(new Error(result.error)); } * console.log(`Longitude of the Ascending node: ${result.data.ascending[0]}`) * ``` *   */ export function nod_aps_ut(tjd_ut: number, ipl: number, iflag: number, method: number): NodAps; /** * ### Description * Calculate an object's nodes and apsides from ephemeris/terrestrial time * If the calculation method includes `SE_NODBIT_FOPOINT`, the `aphelion` field contains the values for the object's "second focus" instead * ### Params * ``` * • tjd_et: number // Julian day in ephemeris/terrestrial time * • ipl: number // Object ID * • iflag: number // Calculation flags * • method: number // Calculation method flags * ``` * ### Returns * ``` * Object { * flag: number, // Computed flags or ERR * error: string, // Error message in case of error * data: Object { * ascending: Array [ * lon, // Longitude, right ascension, or cartesian X * lat, // Latitude, declination or cartesian Y * dist, // Distance in AU or cartesian Z * lonSpd, // Daily speed for lon * latSpd, // Daily speed for lat * distSpd, // Daily speed for dist * ], * descending: Array [ * lon, // Longitude, right ascension, or cartesian X * lat, // Latitude, declination or cartesian Y * dist, // Distance in AU or cartesian Z * lonSpd, // Daily speed for lon * latSpd, // Daily speed for lat * distSpd, // Daily speed for dist * ], * perihelion: Array [ * lon, // Longitude, right ascension, or cartesian X * lat, // Latitude, declination or cartesian Y * dist, // Distance in AU or cartesian Z * lonSpd, // Daily speed for lon * latSpd, // Daily speed for lat * distSpd, // Daily speed for dist * ], * aphelion: Array [ * lon, // Longitude, right ascension, or cartesian X * lat, // Latitude, declination or cartesian Y * dist, // Distance in AU or cartesian Z * lonSpd, // Daily speed for lon * latSpd, // Daily speed for lat * distSpd, // Daily speed for dist * ], * } * } * ``` * ### Example * ``` * const flags = constants.SEFLG_SWIEPH; * const result = nod_aps(2416547, constants.SE_MARS, flags, 0); * if(result.flag !== flags) { console.log(new Error(result.error)); } * console.log(`Longitude of the Ascending node: ${result.data.ascending[0]}`) * ``` *   */ export function nod_aps(tjd_et: number, ipl: number, iflag: number, method: number): NodAps; /** * ### Description * Get orbital maximum and minimum possible distances * ### Params * ``` * • tjd_et: number // Julian day in ephemeris/terrestrial time * • ipl: number // Object ID * • iflag: number // Calculation flags * ``` * ### Returns * ``` * Object { * flag: number, // OK or ERR * error: string, // Error message or warning if any * data: Object { * max: number, // maximum possible distance * min: number, // minimum possible distance * true: number // current true distance * } * } * ``` * ### Example * ``` * const result = orbit_max_min_true_distance(2416547, constants.SE_MOON, constants.SEFLG_SWIEPH); * if(result.error) { console.log(result.error); } * console.log(`Max: ${result.data.max}`) * ``` *   */ export function orbit_max_min_true_distance(tjd_et: number, ipl: number, iflag: number): OrbitMaxMinTrueDistance; /** * ### Description * Compute phase, phase angle, elongation, apparent diameter, apparent magnitude for the Sun, the Moon, all planets and asteroids * ### Params * ``` * • tjd_ut: number // Julian day in universal time * • ipl: number // Object ID * • iflag: number // Calculation flags * ``` * ### Returns * ``` * Object { * flag: number, // OK or ERR * error: string, // Error message or warning if any * data: Array [ * phase_angle: number, // Phase angle (Earth-planet-sun) * phase: number, // Phase (illumined fraction of disc) * elongation: number, // Elongation of planet * diameter: number, // Apparent diameter of disc * magnitude: number // Apparent magnitude * ] * } * ``` * ### Example * ``` * const result = pheno_ut(2416547, constants.SE_MOON, constants.SEFLG_SWIEPH); * if(result.error) { console.log(result.error); } * console.log(`Phase Angle: ${result.data[0]}`); * ``` *   */ export function pheno_ut(tjd_ut: number, ipl: number, iflag: number): Pheno; /** * ### Description * Compute phase, phase angle, elongation, apparent diameter, apparent magnitude for the Sun, the Moon, all planets and asteroids * ### Params * ``` * • tjd_et: number // Julian day in ephemeris/terrestrial time * • ipl: number // Object ID * • iflag: number // Calculation flags * ``` * ### Returns * ``` * Object { * flag: number, // OK or ERR * error: string, // Error message or warning if any * data: Array [ * phase_angle: number, // Phase angle (Earth-planet-sun) * phase: number, // Phase (illumined fraction of disc) * elongation: number, // Elongation of planet * diameter: number, // Apparent diameter of disc * magnitude: number // Apparent magnitude * ] * } * ``` * ### Example * ``` * const result = pheno(2416547, constants.SE_MOON, constants.SEFLG_SWIEPH); * if(result.error) { console.log(result.error); } * console.log(`Phase Angle: ${result.data[0]}`); * ``` *   */ export function pheno(tjd_et: number, ipl: number, iflag: number): Pheno; /** * ### Description * Normalize radians to 0π-2π range * ### Params * ``` * • drad: number // Degree value in radians * ``` * ### Returns * ``` * number // Normalized radian value * ``` * ### Example * ``` * const rad = radnorm(8.525) // 2.241814692820414 * ``` *   */ export function radnorm(drad: number): number; /** * ### Description * Calculate true altitude from the apparent altitude or apparent altitude from true altitude * Extended function also supports negative heights and more * ### Params * ``` * • inalt: number // Input altitude in degrees above the horizon * • geoalt: number // Altitude of the observer above sea level in meters * • atpress: number // Atmospheric pressure in mbar/hpa * • attemp: number // Atmospheric temperature in celsius * • lapse_rate: number // (attemp/geoalt) = [°K/m] * • calc_flag: number // Calculation flag (SE_TRUE_TO_APP or SE_APP_TO_TRUE) * ``` * ### Returns * ``` * Object { * data: number, // Converted altitude * extended: Array [ * true_altitude, // True altitude if possible, otherwise input value * apparent_altitude, // Apparent altitude if possible, otherwise input value * refraction, // Refraction value * dip // Dip of the horizon * ] * } * ``` * ### Example * ``` * const result = refrac_extended(64.323, 500, 1000, 25, 0.0025, constants.SE_APP_TO_TRUE); * console.log(result.data); * ``` *   */ export function refrac_extended(inalt: number, geoalt: number, atpress: number, attemp: number, lapse_rate: number, calc_flag: number): RefracExtended; /** * ### Description * Calculate true altitude from the apparent altitude or apparent altitude from true altitude * ### Params * ``` * • inalt: number // Input altitude in degrees above the horizon * • atpress: number // Atmospheric pressure in mbar/hpa * • attemp: number // Atmospheric temperature in celsius * • calc_flag: number // Calculation flag (SE_TRUE_TO_APP or SE_APP_TO_TRUE) * ``` * ### Returns * ``` * number // Converted altitude * ``` * ### Example * ``` * const trueAltitude = refrac(64.323, 1000, 25, constants.SE_APP_TO_TRUE) // 64.3163724577654 * ``` *   */ export function refrac(inalt: number, atpress: number, attemp: number, calc_flag: number): number; /** * ### Description * Compute year, month, day and hour from a julian day number * ### Params * ``` * • tjd: number // Julian day in universal time * • gregflag: number // Calendar system, SE_GREG_CAL for gregorian calendar, SE_JUL_CAL for julian calendar * ``` * ### Returns * ``` * Object { * year: number, // year * month: number, // month (1-12) * day: number, // day (1-31) * hour: number // hour (0-23.999) * } * ``` * ### Example * ``` * const date = revjul(2555555, constants.SE_GREG_CAL); * console.log(date); * ``` *   */ export function revjul(tjd: number, gregflag: number): DateObject; /** * ### Description * Compute the times of rising, setting and meridian transits for all planets, asteroids, the moon, and the fixed stars * This function also supports custom local horizon altitude * ### Params * ``` * • tjd_ut: number // Julian day in universal time * • ipl: number // Object ID * • starname: string | null // Name of the star if a star is desired, null otherwise * • epheflag: number // Ephemeris flag * • rsmi: number // Transit type (SE_CALC_RISE, SE_CALC_SET, SE_CALC_MTRANSIT, SE_CALC_ITRANSIT) plus additional transit flags * • geopos: Array // Geographic coordinates of the observer [longitude, latitude, elevation] * • atpress: number // Atmospheric pressure in mbar/hpa * • attemp: number // Atmospheric temperature in celsius * • horhgt: number // Height of local horizon in degrees at the point where the body rises or sets * ``` * ### Returns * ``` * Object { * flag: number, // OK, ERR or -2 if circumpolar object * error: string, // Error message if any * data: number // Transit time in julian days in universal time * } * ``` * ### Example * ``` * const result = rise_trans_true_hor(2555555, constants.SE_MOON, null, constants.SEFLG_SWIEPH, constants.SE_CALC_RISE, [95,40,200], 0, 0, 0); * if(result.flag !== constants.OK) { console.log(result.error); } * console.log(result.data); * ``` *   */ export function rise_trans_true_hor(tjd_ut: number, ipl: number, starname: string | null, epheflag: number, rsmi: number, geopos: [longitude: number, latitude: number, elevation: number], atpress: number, attemp: number, horhgt: number): RiseTrans; /** * ### Description * Compute the times of rising, setting and meridian transits for all planets, asteroids, the moon, and the fixed stars * ### Params * ``` * • tjd_ut: number // Julian day in universal time * • ipl: number // Object ID * • starname: string | null // Name of the star if a star is desired, null otherwise * • epheflag: number // Ephemeris flag * • rsmi: number // Transit type (SE_CALC_RISE, SE_CALC_SET, SE_CALC_MTRANSIT, SE_CALC_ITRANSIT) plus additional transit flags * • geopos: Array // Geographic coordinates of the observer [longitude, latitude, elevation] * • atpress: number // Atmospheric pressure in mbar/hpa * • attemp: number // Atmospheric temperature in celsius * ``` * ### Returns * ``` * Object { * flag: number, // OK, ERR or -2 if circumpolar object * error: string, // Error message if any * data: number // Transit time in julian days in universal time * } * ``` * ### Example * ``` * const result = rise_trans_true_hor(2555555, constants.SE_MOON, null, constants.SEFLG_SWIEPH, constants.SE_CALC_RISE, [95,40,200], 0, 0); * if(result.flag !== constants.OK) { console.log(result.error); } * console.log(result.data); * ``` *   */ export function rise_trans(tjd_ut: number, ipl: number, starname: string | null, epheflag: number, rsmi: number, geopos: [longitude: number, latitude: number, elevation: number], atpress: number, attemp: number): RiseTrans; /** * ### Description * Set custom delta T * ### Params * ``` * • t_acc: number // Delta T value * ``` * ### Example * ``` * // custom delta T * set_delta_t_userdef(66.5); * // reset delta T back to auto * set_delta_t_userdef(constants.SE_DELTAT_AUTOMATIC); * ``` *   */ export function set_delta_t_userdef(t_acc: number): void; /** * ### Description * Set ephemeris files location * ### Params * ``` * • path: string // Ephemeris path * ``` * ### Example * ``` * set_ephe_path("./ephemeris"); * ``` *   */ export function set_ephe_path(path: string): void; /** * ### Description * Set JPL file * File must be placed in the ephemeris path * ### Params * ``` * • file: string // JPL file name * ``` * ### Example * ``` * // use custom name * set_jpl_file("de405.eph"); * // use predefined name * set_jpl_file(constants.SE_FNAME_DE405); * ``` *   */ export function set_jpl_file(file: string): void; /** * ### Description * Set ayanamsa for sidereal mode * For predefined ayanamsas, set second and third parameters to 0 * ### Params * ``` * • sid_mode: number // Ayanamsa ID * • t0: number // Reference date in jd_ut for custom ayanamsas * • ayan_t0: number // Initial value in degrees for custom ayanamsas * ``` * ### Example * ``` * // set ayanamsa to Lahiri * set_sid_mode(constants.SE_SIDM_LAHIRI, 0, 0) * // define custom ayanamsa as 25 degrees at J2000 * set_sid_mode(constants.SE_SIDM_USER, 2451545, 25) * ``` *   */ export function set_sid_mode(sid_mode: number, t0: number, ayan_t0: number): void; /** * ### Description * Set custom tidal acceleration * ### Params * ``` * • t_acc: number // Tidal acceleration value * ``` * ### Example * ``` * // set custom value * set_tid_acc(25.90); * // set predefined value * set_tid_acc(constants.SE_TIDAL_DE403); * // reset to auto * set_tid_acc(constants.SE_TIDAL_AUTOMATIC); * ``` *   */ export function set_tid_acc(t_acc: number): void; /** * ### Description * Set geographic coordinates for topocentric mode * ### Params * ``` * • geolon: number // Geographic longitude in degrees * • geolat: number // Geographic latitude in degrees * • elevation: number // Elevation in meters * ``` * ### Example * ``` * // set observer to 124'30E, 23'30N, 1250 meters above sea level; * set_topo(124.5, 23.5, 1250); * // call function with topocentric flag * let result = calc(2342341, constants.SE_MOON, constants.SEFLG_SWIEPH | constants.SEFLG_TOPOCTR) * ``` *   */ export function set_topo(geolon: number, geolat: number, elevation: number): void; /** * ### Description * Calculate sidereal time at the greenwich meridian * ### Params * ``` * • tjd_ut: number // Julian day in universal time * ``` * ### Returns * ``` * number // Sidereal time in hours (0-23.99999) * ``` * ### Example * ``` * const time = sidtime(2555555); // 13.176341501003689 * ``` *   */ export function sidtime(tjd_ut: number): number; /** * ### Description * Calculate sidereal time at the greenwich meridian with custom obliquity and nutation * ### Params * ``` * • tjd_ut: number // Julian day in universal time * • eps: number // Obliquity of the ecliptic * • nut: number // Nutation * ``` * ### Returns * ``` * number // Sidereal time in hours (0-23.99999) * ``` * ### Example * ``` * const time = sidtime0(2555555, 23.555, 0.25); // 13.191718089387829 * ``` *   */ export function sidtime0(tjd_ut: number, eps: number, nut: number): number; /** * ### Description * Get solar eclipse data for a given date * ### Params * ``` * • tjd_ut: number // Julian day in universal time * • ifl: number // Ephemeris flag * • geopos: Array // Geographic coordinates [longitude, latitude, elevation] * ``` * ### Returns * ``` * Object { * flag: number, // ERR, eclipse type (SE_ECL_TOTAL, SE_ECL_ANNULAR, SE_ECL_PARTIAL) or 0 if no eclipse * error: string, // Error message in case of error * data: Array [ * solar_diameter, // Fraction of solar diameter covered by moon * lunar_diameter, // Ratio of lunar diameter to solar one * solar_disc, // Fraction of the solar disc covered by moon (obscuration) * core_shadow, // Diameter of core shadow in km * azimuth, // Azimuth of the sun at jd * true_altitude, // True altitude of the sun above horizon at jd * apparent_altitude, // Apparent altitude of the sun above horizon at jd * elongation, // Elongation of moon in degrees * mag, // Eclipse magnitude (same as solar_diameter if partial and lunar_diameter if annular or total) * saros_number, // Saros series number (if available, otherwise -99999999) * saros_member // Saros series member number (if available, otherwise -99999999) * ] * } * ``` * ### Example * ``` * const result = sol_eclipse_how(2416547, constants.SEFLG_SWIEPH, [10,45,500]); * if(result.flag === constants.ERR) { throw new Error(result.error); } * console.log(` * type: ${result.flag} * magnitude: ${result.data[8]} * `) * ``` *   */ export function sol_eclipse_how(tjd_ut: number, ifl: number, geopos: [longitude: number, latitude: number, elevation: number]): SolEclipseHow; /** * ### Description * Search for solar eclipses globally * ### Params * ``` * • tjd_start: number // Julian day in universal time to start searching from * • ifl: number // Ephemeris flag * • ifltype: number // Eclipse type (SE_ECL_TOTAL, SE_ECL_ANNULAR, SE_ECL_PARTIAL, SE_ECL_ANNULAR_TOTAL, SE_ECL_CENTRAL, SE_ECL_NONCENTRAL or 0 for any) * • backwards: boolean // Search backwards in time instead * ``` * ### Returns * ``` * Object { * flag: number, // ERR, eclipse type (SE_ECL_TOTAL, SE_ECL_ANNULAR, SE_ECL_PARTIAL, SE_ECL_ANNULAR_TOTAL, SE_ECL_CENTRAL, SE_ECL_NONCENTRAL) or 0 if no eclipse found * error: string, // Error message in case of error * data: Array [ * eclipse_max, // Time of maximum eclipse in jd * local_noon, // Time when eclipse takes place at local apparent noon * eclipse_start, // Time of eclipse start * eclipse_end, // Time of eclipse end * total_start, // Time of totality start * total_end, // Time of totality end * center_start, // Time of center line start * center_end, // Time of center line end * annular_total, // Time when annular-total eclipse becomes total * total_annular // Time when annular-total eclipse becomes annular again * ] * } * ``` * ### Example * ``` * const result = sol_eclipse_when_glob(2416547, constants.SEFLG_SWIEPH, 0, false); * if(result.flag === constants.ERR) { throw new Error(result.error); } * console.log(` * type: ${result.flag} * eclipse_max: ${result.data[0]} * `) * ``` *   */ export function sol_eclipse_when_glob(tjd_start: number, ifl: number, iftype: number, backwards: number): EclipseWhenGlob; /** * ### Description * Search for solar eclipses locally * ### Params * ``` * • tjd_start: number // Julian day in universal time to start searching from * • ifl: number // Ephemeris flag * • geopos: Array // Geographic coordinates [longitude, latitude, elevation] * • backwards: boolean // Search backwards in time instead * ``` * ### Returns * ``` * Object { * flag: number, // ERR, eclipse type or 0 if none found * error: string, // Error message in case of error * data: Array [ * max_eclipse: number, // Time of maximum eclipse * first_contact: number, // Time of first contact * second_contact: number, // Time of second contact * third_contact: number, // Time of third contact * fourth_contact: number, // Time of fourth contact * sunrise: number, // Time of sunrise between first and forth contact * sunset: number // Time of sunset between first and forth contact * ], * attributes: Array [ * solar_diameter: number, // Fraction of solar diameter covered by moon (magnitude) * lunar_diameter: number, // Ratio of lunar diameter to solar one * solar_disc: number, // Fraction of solar disc covered by moon (obscuration) * core_shadow: number, // Diameter of core shadow in km * sun_azimuth: number, // Azimuth of sun at tjd * true_altitude: number, // True altitude of sun above horizon at tjd * mean_altitude: number, // Apparent altitude of sun above horizon at tjd * elongation: number // Elongation of moon in degrees * mag, // Magnitude according to NASA (same as solar_diameter if partial and lunar_diameter if annular or total) * saros_number, // Saros series number (if available, otherwise -99999999) * saros_member // Saros series member number (if available, otherwise -99999999) * ] * } * ``` * ### Example * ``` * const result = sol_eclipse_when_loc(2416547, constants.SEFLG_SWIEPH, [135, 45, 0], false); * if(result.flag === constants.ERR) { throw new Error(result.error); } * console.log(` * type: ${result.flag} * eclipse_max: ${result.data[0]} * `) * ``` *   */ export function sol_eclipse_when_loc(tjd_start: number, ifl: number, geopos: [longitude: number, latitude: number, elevation: number], backwards: boolean): SolEclipseWhenLoc; /** * ### Description * Get geographical coordinates for an eclipse * ### Params * ``` * • tjd_ut: number // Julian day in universal time * • ifl: number // Ephemeris flag * ``` * ### Returns * ``` * Object { * flag: number, // ERR, eclipse type or 0 if none found * error: string, // Error message in case of error * data: Array [ * central_long: number, // Geographic longitude of central line * central_lat: number, // Geographic latitude of central line * north_umbra_long: number, // Geographic longitude of northern limit of umbra * north_umbra_lat: number, // Geographic latitude of northern limit of umbra * south_umbra_long: number, // Geographic longitude of southern limit of umbra * south_umbra_lat: number, // Geographic latitude of southern limit of umbra * north_penumbra_long: number, // Geographic longitude of northern limit of penumbra * north_penumbra_lat: number, // Geographic latitude of northern limit of penumbra * south_penumbra_long: number, // Geographic longitude of southern limit of penumbra * south_penumbra_lat: number // Geographic latitude of southern limit of penumbra * ], * attributes: Array [ * diameter_fraction: number, // Fraction of solar diameter covered by moon (magnitude) * diameter_ratio: number, // Ratio of lunar diameter to solar diameter * disc_fraction: number, // Fraction of solar disc covered by moon (obscuration) * core_shadow: number, // Diameter of core shadow in km * azimuth: number, // Azimuth of the sun at tjd * true_altitude: number, // True altitude of the sun above horizon at tjd * apparent_altitude: number, // Apparent altitude of the sun above horizon at tjd * angular_distance: number, // Angular distance of the moon from the sun in degrees * mag, // Eclipse magnitude (same as solar_diameteror lunar_diameter depending on the eclipse type) * saros_number, // Saros series number (if available, otherwise -99999999) * saros_member // Saros series member number (if available, otherwise -99999999) * ] * } * ``` * ### Example * ``` * const result = sol_eclipse_where(2416547, constants.SEFLG_SWIEPH); * if(result.flag === constants.ERR) { throw new Error(result.error); } * console.log(` * type: ${result.flag} * longitude: ${result.data[0]} * `) * ``` *   */ export function sol_eclipse_where(tjd_ut: number, ifl: number): SolEclipseWhere; /** * ### Description * Compute Sun's crossing over some longitude * ### Params * ``` * • x2cross: number // Ecliptic latitude position to search for * • jd_ut: number // Start date in julian days in universal time * • flag: number // Calculation flag * ``` * ### Returns * ``` * Object { * date: number, // Date of the crossing in julian days in universal time * error: string, // Error message if resulting date is smaller than starting date * } * ``` * ### Example * ``` * const jd = 2415362; * const result = solcross_ut(185.25 ,jd , constants.SEFLG_SWIEPH); * if(result.date < jd) { throw new Error(result.error); } * console.log(`Date: ${result.date}`); * ``` *   */ export function solcross_ut(x2cross: number, jd_ut: number, flag: number): Cross; /** * ### Description * Compute Sun's crossing over some longitude * ### Params * ``` * • x2cross: number // Ecliptic latitude position to search for * • jd_et: number // Start date in julian days in ephemeris/terrestrial time * • flag: number // Calculation flag * ``` * ### Returns * ``` * Object { * date: number, // Date of the crossing in julian days in ephemeris/terrestrial time * error: string, // Error message if resulting date is smaller than starting date * } * ``` * ### Example * ``` * const jd = 2415362; * const result = solcross(185.25 ,jd , constants.SEFLG_SWIEPH); * if(result.date < jd) { throw new Error(result.error); } * console.log(`Date: ${result.date}`); * ``` *   */ export function solcross(x2cross: number, jd_et: number, flag: number): Cross; /** * ### Description * Convert decimal degrees value to degree, minute, second, sign and/or nakshatras * ### Params * ``` * • ddeg: number // Input degrees value * • roundflag: number // Split and rounding methods * ``` * ### Returns * ``` * Object { * degree: number, // degrees value * minute: number, // minutes value * second: number, // seconds value * fraction: number, // fraction of a second * sign: number // sign or nakshatra number * } * ``` * ### Example * ``` * const result = split_deg(130.234, constants.SE_SPLIT_DEG_ZODIACAL); * console.log(result.degree); // 10 * console.log(result.sign); // 4 * ``` *   */ export function split_deg(ddeg: number, roundflag: number): SplitDeg; /** * ### Description * Calculate the equation of time (difference between LMT and LAT) * ### Params * ``` * • tjd_ut: number // Julian day in universal time * ``` * ### Returns * ``` * Object { * flag: number, // OK or ERR * error: string, // Error message if any * data: number // Value of the equation of time * } * ``` * ### Example * ``` * const result = time_equ(2555555); * if(result.error) { console.log(result.error); } * console.log(result.data); * ``` *   */ export function time_equ(tjd_ut: number): TimeEqu; /** * ### Description * Convert between local time and UTC using a timezone offset. * For time zones east of Greenwich, d_timezone should be positive. * For time zones west of Greenwich, d_timezone should be negative. * To convert from UTC back to local time, invert d_timezone's sign. * ### Params * ``` * • iyear: number // Full year * • imonth: number // Month (1-12) * • iday: number // Day (1-31) * • ihour: number // Hour (0-23) * • imin: number // Minute (0-59) * • dsec: number // Seconds including fraction (0-59.99999) * • d_timezone: number // Timezone offset in decimal hours (0-23.99999), positive or negative * ``` * ### Returns * ``` * Object { * year: number; // Full year * month: number; // Month (1-12) * day: number; // Day (1-31) * hour: number; // Hour (0-23) * minute: number; // Minute (0-59) * second: number; // Second including fraction (0-59.99999) * } * ``` * ### Example * ``` * const result = utc_time_zone(2010, 5, 23, 15, 30, 0, 5.5); * console.log(result.hour); // 10; * ``` *   */ export function utc_time_zone(iyear: number, imonth: number, iday: number, ihour: number, imin: number, dsec: number, d_timezone: number): DateObject2; /** * ### Description * Convert UTC date and time to julian day in ephemeris time and julian day in universal time * ### Params * ``` * • iyear: number // Full year * • imonth: number // Month (1-12) * • iday: number // Day (1-31) * • ihour: number // Hour (0-23) * • imin: number // Minute (0-59) * • dsec: number // Seconds including fraction (0-59.99999) * • gregflag: number // Calendar system, SE_GREG_CAL for gregorian calendar, SE_JUL_CAL for julian calendar * ``` * ### Returns * ``` * Object { * flag: number, // OK or ERR * error: string, // Error message if ERR * data: Array [ * et: number, // Julian day in ephemeris/terrestrial time * ut: number // Julian day in universal time * ] * } * ``` * ### Example * ``` * const result = utc_to_jd(2010, 5, 23, 15, 30, 0, constants.SE_GREG_CAL); * if(result.flag !== constants.OK) { throw new Error(result.error); } * console.log(`JD_ET: ${result.data[0]}`); * ``` *   */ export function utc_to_jd(iyear: number, imonth: number, iday: number, ihour: number, imin: number, dsec: number, gregflag: number): UtcToJd; /** * ### Description * Get current swisseph version * ### Returns * ``` * string // Swisseph version * ``` * ### Example * ``` * const version = version(); // "2.10" * ``` *   */ export function version(): string; /** * ### Description * Determine an object's visibility * ### Params * ``` * • tjd_ut: number // Julian day in universal time * • dgeo: Array // Geographic coordinates [longitude, latitude, elevation] * • datm: Array // Atmospheric conditions [pressure, temperature, humidity, meteorological_range] * • dobs: Array // Observer description [age, sellen ratio, optical type, optical magnification, optical aperture, optical transmission] * • objectname: string // Name of fixed star or planet * • helflag: number // Calculation flags * ``` * ### Returns * ``` * Object { * flag: number, // OK, ERR, -2 if object is below horizon, 1 if scotopic vision or 2 if near limit photopic/scotopic vision * error: string, // Error message if ERR * data: Array [ * visual_mag: number, // Limiting visual magnitude (object is visible if this value is bigger than the object's magnitude value) * obj_altitude: number, // Altitude of the object * obj_azimuth: number, // Azimuth of the object * sun_altitude: number, // Altitude of the sun * sun_azimuth: number, // Azimuth of the sun * moon_altitude: number, // Altitude of the moon * moon_azimuth: number, // Azimuth of the moon * magnitude: number // The object's magnitude * ] * } * ``` * ### Example * ``` * const result = vis_limit_mag(2555555, [65,47,900], [1000,10,50,-0.15], [21,0,0,0,0,0], "venus", 0); * if(result.flag !== constants.OK) { throw new Error(result.error); } * console.log(`JD_ET: ${result.data[0]}`); * ``` *   */ export function vis_limit_mag(tjd_ut: number, dgeo: [longitude: number, latitude: number, elevation: number], datm: [pressure: number, temperature: number, humidity: number, meteorological_range: number], dobs: [age: number, sellen_ratio: number, optical_type: number, optical_magnification: number, optical_aperture: number, optical_transmission: number], objectname: string, helflag: number): VisLimitMag; /* ┌──────────────────────────────────────────────────┬───────────┬──────────────────────────────────────────────────┐ │┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼│ Constants │┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼│ └──────────────────────────────────────────────────┴───────────┴──────────────────────────────────────────────────┘ */ /** * ### Description * Swisseph Constants * Contains aliases and predefined constant values used in the swiss ephemeris */ export const constants: { OK: 0, ERR: -1, SE_AUNIT_TO_KM: 149597870.7, SE_AUNIT_TO_LIGHTYEAR: 0.000015812507409819728, SE_AUNIT_TO_PARSEC: 0.000004848136811095274, SE_JUL_CAL: 0, SE_GREG_CAL: 1, SE_ECL_NUT: -1, SE_SUN: 0, SE_MOON: 1, SE_MERCURY: 2, SE_VENUS: 3, SE_MARS: 4, SE_JUPITER: 5, SE_SATURN: 6, SE_URANUS: 7, SE_NEPTUNE: 8, SE_PLUTO: 9, SE_MEAN_NODE: 10, SE_TRUE_NODE: 11, SE_MEAN_APOG: 12, SE_OSCU_APOG: 13, SE_EARTH: 14, SE_CHIRON: 15, SE_PHOLUS: 16, SE_CERES: 17, SE_PALLAS: 18, SE_JUNO: 19, SE_VESTA: 20, SE_INTP_APOG: 21, SE_INTP_PERG: 22, SE_NPLANETS: 23, SE_PLMOON_OFFSET: 9000, SE_AST_OFFSET: 10000, SE_VARUNA: 30000, SE_FICT_OFFSET: 40, SE_FICT_OFFSET_1: 39, SE_FICT_MAX: 999, SE_NFICT_ELEM: 15, SE_COMET_OFFSET: 1000, SE_NALL_NAT_POINTS: 38, SE_CUPIDO: 40, SE_HADES: 41, SE_ZEUS: 42, SE_KRONOS: 43, SE_APOLLON: 44, SE_ADMETOS: 45, SE_VULKANUS: 46, SE_POSEIDON: 47, SE_ISIS: 48, SE_NIBIRU: 49, SE_HARRINGTON: 50, SE_NEPTUNE_LEVERRIER: 51, SE_NEPTUNE_ADAMS: 52, SE_PLUTO_LOWELL: 53, SE_PLUTO_PICKERING: 54, SE_VULCAN: 55, SE_WHITE_MOON: 56, SE_PROSERPINA: 57, SE_WALDEMATH: 58, SE_FIXSTAR: -10, SE_ASC: 0, SE_MC: 1, SE_ARMC: 2, SE_VERTEX: 3, SE_EQUASC: 4, SE_COASC1: 5, SE_COASC2: 6, SE_POLASC: 7, SE_NASCMC: 8, SEFLG_JPLEPH: 1, SEFLG_SWIEPH: 2, SEFLG_MOSEPH: 4, SEFLG_HELCTR: 8, SEFLG_TRUEPOS: 16, SEFLG_J2000: 32, SEFLG_NONUT: 64, SEFLG_SPEED3: 128, SEFLG_SPEED: 256, SEFLG_NOGDEFL: 512, SEFLG_NOABERR: 1024, SEFLG_ASTROMETRIC: 1536, SEFLG_EQUATORIAL: 2048, SEFLG_XYZ: 4096, SEFLG_RADIANS: 8192, SEFLG_BARYCTR: 16384, SEFLG_TOPOCTR: 32768, SEFLG_ORBEL_AA: 32768, SEFLG_TROPICAL: 0, SEFLG_SIDEREAL: 65536, SEFLG_ICRS: 131072, SEFLG_DPSIDEPS_1980: 262144, SEFLG_JPLHOR: 262144, SEFLG_JPLHOR_APPROX: 524288, SEFLG_CENTER_BODY: 1048576, SEFLG_TEST_PLMOON: 2228280, SE_SIDBITS: 256, SE_SIDBIT_ECL_T0: 256, SE_SIDBIT_SSY_PLANE: 512, SE_SIDBIT_USER_UT: 1024, SE_SIDBIT_ECL_DATE: 2048, SE_SIDBIT_NO_PREC_OFFSET: 4096, SE_SIDBIT_PREC_ORIG: 8192, SE_SIDM_FAGAN_BRADLEY: 0, SE_SIDM_LAHIRI: 1, SE_SIDM_DELUCE: 2, SE_SIDM_RAMAN: 3, SE_SIDM_USHASHASHI: 4, SE_SIDM_KRISHNAMURTI: 5, SE_SIDM_DJWHAL_KHUL: 6, SE_SIDM_YUKTESHWAR: 7, SE_SIDM_JN_BHASIN: 8, SE_SIDM_BABYL_KUGLER1: 9, SE_SIDM_BABYL_KUGLER2: 10, SE_SIDM_BABYL_KUGLER3: 11, SE_SIDM_BABYL_HUBER: 12, SE_SIDM_BABYL_ETPSC: 13, SE_SIDM_ALDEBARAN_15TAU: 14, SE_SIDM_HIPPARCHOS: 15, SE_SIDM_SASSANIAN: 16, SE_SIDM_GALCENT_0SAG: 17, SE_SIDM_J2000: 18, SE_SIDM_J1900: 19, SE_SIDM_B1950: 20, SE_SIDM_SURYASIDDHANTA: 21, SE_SIDM_SURYASIDDHANTA_MSUN: 22, SE_SIDM_ARYABHATA: 23, SE_SIDM_ARYABHATA_MSUN: 24, SE_SIDM_SS_REVATI: 25, SE_SIDM_SS_CITRA: 26, SE_SIDM_TRUE_CITRA: 27, SE_SIDM_TRUE_REVATI: 28, SE_SIDM_TRUE_PUSHYA: 29, SE_SIDM_GALCENT_RGILBRAND: 30, SE_SIDM_GALEQU_IAU1958: 31, SE_SIDM_GALEQU_TRUE: 32, SE_SIDM_GALEQU_MULA: 33, SE_SIDM_GALALIGN_MARDYKS: 34, SE_SIDM_TRUE_MULA: 35, SE_SIDM_GALCENT_MULA_WILHELM: 36, SE_SIDM_ARYABHATA_522: 37, SE_SIDM_BABYL_BRITTON: 38, SE_SIDM_TRUE_SHEORAN: 39, SE_SIDM_GALCENT_COCHRANE: 40, SE_SIDM_GALEQU_FIORENZA: 41, SE_SIDM_VALENS_MOON: 42, SE_SIDM_LAHIRI_1940: 43, SE_SIDM_LAHIRI_VP285: 44, SE_SIDM_KRISHNAMURTI_VP291: 45, SE_SIDM_LAHIRI_ICRC: 46, SE_SIDM_USER: 255, SE_NSIDM_PREDEF: 47, SE_NODBIT_MEAN: 1, SE_NODBIT_OSCU: 2, SE_NODBIT_OSCU_BAR: 4, SE_NODBIT_FOPOINT: 256, SEFLG_DEFAULTEPH: 2, SE_MAX_STNAME: 256, SE_ECL_CENTRAL: 1, SE_ECL_NONCENTRAL: 2, SE_ECL_TOTAL: 4, SE_ECL_ANNULAR: 8, SE_ECL_PARTIAL: 16, SE_ECL_ANNULAR_TOTAL: 32, SE_ECL_HYBRID: 32, SE_ECL_PENUMBRAL: 64, SE_ECL_ALLTYPES_SOLAR: 63, SE_ECL_ALLTYPES_LUNAR: 84, SE_ECL_VISIBLE: 128, SE_ECL_MAX_VISIBLE: 256, SE_ECL_1ST_VISIBLE: 512, SE_ECL_PARTBEG_VISIBLE: 512, SE_ECL_2ND_VISIBLE: 1024, SE_ECL_TOTBEG_VISIBLE: 1024, SE_ECL_3RD_VISIBLE: 2048, SE_ECL_TOTEND_VISIBLE: 2048, SE_ECL_4TH_VISIBLE: 4096, SE_ECL_PARTEND_VISIBLE: 4096, SE_ECL_PENUMBBEG_VISIBLE: 8192, SE_ECL_PENUMBEND_VISIBLE: 16384, SE_ECL_OCC_BEG_DAYLIGHT: 8192, SE_ECL_OCC_END_DAYLIGHT: 16384, SE_ECL_ONE_TRY: 32768, SE_CALC_RISE: 1, SE_CALC_SET: 2, SE_CALC_MTRANSIT: 4, SE_CALC_ITRANSIT: 8, SE_BIT_DISC_CENTER: 256, SE_BIT_DISC_BOTTOM: 8192, SE_BIT_GEOCTR_NO_ECL_LAT: 128, SE_BIT_NO_REFRACTION: 512, SE_BIT_CIVIL_TWILIGHT: 1024, SE_BIT_NAUTIC_TWILIGHT: 2048, SE_BIT_ASTRO_TWILIGHT: 4096, SE_BIT_FIXED_DISC_SIZE: 16384, SE_BIT_FORCE_SLOW_METHOD: 32768, SE_BIT_HINDU_RISING: 896, SE_ECL2HOR: 0, SE_EQU2HOR: 1, SE_HOR2ECL: 0, SE_HOR2EQU: 1, SE_TRUE_TO_APP: 0, SE_APP_TO_TRUE: 1, SE_DE_NUMBER: 431, SE_FNAME_DE200: "de200.eph", SE_FNAME_DE403: "de403.eph", SE_FNAME_DE404: "de404.eph", SE_FNAME_DE405: "de405.eph", SE_FNAME_DE406: "de406.eph", SE_FNAME_DE431: "de431.eph", SE_FNAME_DFT: "de431.eph", SE_FNAME_DFT2: "de406.eph", SE_STARFILE_OLD: "fixstars.cat", SE_STARFILE: "sefstars.txt", SE_ASTNAMFILE: "seasnam.txt", SE_FICTFILE: "seorbel.txt", SE_SPLIT_DEG_ROUND_SEC: 1, SE_SPLIT_DEG_ROUND_MIN: 2, SE_SPLIT_DEG_ROUND_DEG: 4, SE_SPLIT_DEG_ZODIACAL: 8, SE_SPLIT_DEG_NAKSHATRA: 1024, SE_SPLIT_DEG_KEEP_SIGN: 16, SE_SPLIT_DEG_KEEP_DEG: 32, SE_HELIACAL_RISING: 1, SE_HELIACAL_SETTING: 2, SE_MORNING_FIRST: 1, SE_EVENING_LAST: 2, SE_EVENING_FIRST: 3, SE_MORNING_LAST: 4, SE_ACRONYCHAL_RISING: 5, SE_ACRONYCHAL_SETTING: 6, SE_COSMICAL_SETTING: 6, SE_HELFLAG_LONG_SEARCH: 128, SE_HELFLAG_HIGH_PRECISION: 256, SE_HELFLAG_OPTICAL_PARAMS: 512, SE_HELFLAG_NO_DETAILS: 1024, SE_HELFLAG_SEARCH_1_PERIOD: 2048, SE_HELFLAG_VISLIM_DARK: 4096, SE_HELFLAG_VISLIM_NOMOON: 8192, SE_HELFLAG_VISLIM_PHOTOPIC: 16384, SE_HELFLAG_VISLIM_SCOTOPIC: 32768, SE_HELFLAG_AV: 65536, SE_HELFLAG_AVKIND_VR: 65536, SE_HELFLAG_AVKIND_PTO: 131072, SE_HELFLAG_AVKIND_MIN7: 262144, SE_HELFLAG_AVKIND_MIN9: 524288, SE_HELFLAG_AVKIND: 983040, TJD_INVALID: 99999999, SIMULATE_VICTORVB: 1, SE_PHOTOPIC_FLAG: 0, SE_SCOTOPIC_FLAG: 1, SE_MIXEDOPIC_FLAG: 2, SE_TIDAL_DE200: -23.8946, SE_TIDAL_DE403: -25.58, SE_TIDAL_DE404: -25.58, SE_TIDAL_DE405: -25.826, SE_TIDAL_DE406: -25.826, SE_TIDAL_DE421: -25.85, SE_TIDAL_DE422: -25.85, SE_TIDAL_DE430: -25.82, SE_TIDAL_DE431: -25.8, SE_TIDAL_26: -26, SE_TIDAL_STEPHENSON_2016: -25.85, SE_TIDAL_DEFAULT: -25.8, SE_TIDAL_AUTOMATIC: 999999, SE_TIDAL_MOSEPH: -25.58, SE_TIDAL_SWIEPH: -25.8, SE_TIDAL_JPLEPH: -25.8, SE_DELTAT_AUTOMATIC: 0.0000000001, SE_MODEL_DELTAT: 0, SE_MODEL_PREC_LONGTERM: 1, SE_MODEL_PREC_SHORTTERM: 2, SE_MODEL_NUT: 3, SE_MODEL_BIAS: 4, SE_MODEL_JPLHOR_MODE: 5, SE_MODEL_JPLHORA_MODE: 6, SE_MODEL_SIDT: 7, NSE_MODELS: 8, SEMOD_NPREC: 11, SEMOD_PREC_IAU_1976: 1, SEMOD_PREC_LASKAR_1986: 2, SEMOD_PREC_WILL_EPS_LASK: 3, SEMOD_PREC_WILLIAMS_1994: 4, SEMOD_PREC_SIMON_1994: 5, SEMOD_PREC_IAU_2000: 6, SEMOD_PREC_BRETAGNON_2003: 7, SEMOD_PREC_IAU_2006: 8, SEMOD_PREC_VONDRAK_2011: 9, SEMOD_PREC_OWEN_1990: 10, SEMOD_PREC_NEWCOMB: 11, SEMOD_PREC_DEFAULT: 9, SEMOD_PREC_DEFAULT_SHORT: 9, SEMOD_NNUT: 5, SEMOD_NUT_IAU_1980: 1, SEMOD_NUT_IAU_CORR_1987: 2, SEMOD_NUT_IAU_2000A: 3, SEMOD_NUT_IAU_2000B: 4, SEMOD_NUT_WOOLARD: 5, SEMOD_NUT_DEFAULT: 4, SEMOD_NSIDT: 4, SEMOD_SIDT_IAU_1976: 1, SEMOD_SIDT_IAU_2006: 2, SEMOD_SIDT_IERS_CONV_2010: 3, SEMOD_SIDT_LONGTERM: 4, SEMOD_SIDT_DEFAULT: 4, SEMOD_NBIAS: 3, SEMOD_BIAS_NONE: 1, SEMOD_BIAS_IAU2000: 2, SEMOD_BIAS_IAU2006: 3, SEMOD_BIAS_DEFAULT: 3, SEMOD_NJPLHOR: 2, SEMOD_JPLHOR_LONG_AGREEMENT: 1, SEMOD_JPLHOR_DEFAULT: 1, SEMOD_NJPLHORA: 3, SEMOD_JPLHORA_1: 1, SEMOD_JPLHORA_2: 2, SEMOD_JPLHORA_3: 3, SEMOD_JPLHORA_DEFAULT: 3, SEMOD_NDELTAT: 5, SEMOD_DELTAT_STEPHENSON_MORRISON_1984: 1, SEMOD_DELTAT_STEPHENSON_1997: 2, SEMOD_DELTAT_STEPHENSON_MORRISON_2004: 3, SEMOD_DELTAT_ESPENAK_MEEUS_2006: 4, SEMOD_DELTAT_STEPHENSON_ETC_2016: 5, SEMOD_DELTAT_DEFAULT: 5 } }