This source is modified version of xerik. Thank you for such a brilliant piece of work.
This is basically Javascript implementation of Moshier's ephemeris calculations for sun, planets, comets, asteroids and stars.
Which, initially written by mivion, xerik converted it into a node module. This is a slight customized version with following changes:
- Changes the transit method to get standard sun/moon rise/set times as well as a custom horizon based
- Takes in javascript date object as opposed to a date time string
- Implements a method to just fetch in single planet as opposed to all of it
- Removes html, css bit to keep it focused to one task
- Reformats the code
Installation
npm install ephemeris
Changelog
2.0,.0 Breaking Changes - Please read carefully
- Released 5th July 2020
- Removes dependency on Moment.js and uses JavaScript's default date object
- Fixes names of a few variables as there were typo's (Thanks Erik for these changes)
1.0.0
- Released 30th June 2020
- updates test and fixes test
Usage
app.js
const ephemeris = ;const dateObj = '2015-08-10T17:09:01.000+08:00'; // parameters: ephemeris.getAllPlanets(dateObj, longitude, latitude, height);var result = ephemeris; /* Check out the namespaces: date, observer and observed: { date: { gregorianTerrestrial: '10.8.2015 17:9:1', gregorianTerrestrialRaw: { day: 10, month: 8, year: 2015, hours: 17, minutes: 9, seconds: 1, julianDate: 2457244.5, julianTime: 0.7145949074074074, julian: 2457245.2145949076, j2000: 2015.6063370154895, b1950: 2015.6065478300004, j1900: 2015.6063370154895, delta: 68.01714323102905, terrestrial: 2457245.2145949076, universal: 2457245.2138076723, universalDate: [Object], universalDateString: '10.8.2015 17:7:52.983' }, gregorianUniversal: '10.8.2015 17:7:52.983', gregorianDelta: '00:00:68.01714323102905', julianTerrestrial: 2457245.2145949076, julianUniversal: 2457245.2138076723, julianDelta: 0.0007872354540628362 }, observer: { name: 'earth', longitudeGeodetic: 10.0014, longitudeGeodecentric: 10.0014, latitudeGeodetic: 53.5653, latitudeGeodecentric: 53.38123133267187, heightGeodetic: 0, heightGeodecentric: 6364.336264644461 }, observed: { sun: { name: 'sun', raw: [Object], apparentLongitudeDms30: '17°45\'39"', apparentLongitudeDms360: '137°45\'39"', apparentLongitudeDd: 137.76105855382917, geocentricDistanceKm: -1 }, mercury: { name: 'mercury', raw: [Object], apparentLongitudeDms30: '5°2\'10"', apparentLongitudeDms360: '155°2\'10"', apparentLongitudeDd: 155.03637003916958, geocentricDistanceKm: -1 }, venus: { name: 'venus', raw: [Object], apparentLongitudeDms30: '25°43\'16"', apparentLongitudeDms360: '145°43\'16"', apparentLongitudeDd: 145.7212923824036, geocentricDistanceKm: -1 }, moon: { name: 'moon', raw: [Object], apparentLongitudeDms30: '2°41\'17"', apparentLongitudeDms360: '92°41\'17"', apparentLongitudeDd: 92.68823373136327, geocentricDistanceKm: 61.007764233212335 }, mars: { name: 'mars', raw: [Object], apparentLongitudeDms30: '1°7\'20"', apparentLongitudeDms360: '121°7\'20"', apparentLongitudeDd: 121.12222806696656, geocentricDistanceKm: -1 }, jupiter: { name: 'jupiter', raw: [Object], apparentLongitudeDms30: '29°50\'16"', apparentLongitudeDms360: '149°50\'16"', apparentLongitudeDd: 149.83799891400335, geocentricDistanceKm: -1 }, saturn: { name: 'saturn', raw: [Object], apparentLongitudeDms30: '28°20\'25"', apparentLongitudeDms360: '238°20\'25"', apparentLongitudeDd: 238.34045318452542, geocentricDistanceKm: -1 }, uranus: { name: 'uranus', raw: [Object], apparentLongitudeDms30: '20°24\'33"', apparentLongitudeDms360: '20°24\'33"', apparentLongitudeDd: 20.40921989582207, geocentricDistanceKm: -1 }, neptune: { name: 'neptune', raw: [Object], apparentLongitudeDms30: '8°58\'37"', apparentLongitudeDms360: '338°58\'37"', apparentLongitudeDd: 338.9771304673532, geocentricDistanceKm: -1 }, pluto: { name: 'pluto', raw: [Object], apparentLongitudeDms30: '13°27\'13"', apparentLongitudeDms360: '283°27\'13"', apparentLongitudeDd: 283.4537823191463, geocentricDistanceKm: -1 }, chiron: { name: 'chiron', raw: [Object], apparentLongitudeDms30: '20°41\'58"', apparentLongitudeDms360: '350°41\'58"', apparentLongitudeDd: 350.6995558283406, geocentricDistanceKm: -1 }, sirius: { name: 'sirius', raw: [Object], apparentLongitudeDms30: '11°27\'17"', apparentLongitudeDms360: '101°27\'17"', apparentLongitudeDd: 1.7707222368344282, geocentricDistanceKm: 7777 } } }*/
Contributers
This implementation based on code by Steve Moshier.
The inital Javascript code has been written by xerik.