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
npm install ephemeris
- 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 typos (Thanks Erik for these changes)
- Released 30th June 2020
- updates test and fixes test
app.js
const ephemeris = require('ephemeris');
const dateObj = new Date('2015-08-10T17:09:01.000+08:00');
// parameters: ephemeris.getAllPlanets(dateObj, longitude, latitude, height);
var result = ephemeris.getAllPlanets(dateObj, 10.0014, 53.5653, 0);
/* 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,
longitudeGeocentric: 10.0014,
latitudeGeodetic: 53.5653,
latitudeGeocentric: 53.38123133267187,
heightGeodetic: 0,
heightGeocentric: 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 } } }
*/
This implementation based on code by Steve Moshier.
The initial JavaScript code has been written by xerik.