Skip to content

This pkg is a calculator for moon geocentric ecliptic coordinate by using ELP2000 theory.

Notifications You must be signed in to change notification settings

behaver/elp2000-moon-gecc

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ELP2000MoonGECC

GitHub license npm version PRs Welcome

简介

ELP2000MoonGECC 是计算月球的动力学 Date 地心平黄道坐标的组件库,其算法基于 ELP2000 理论。

核心组件 ELP2000 计算器文档,另见:ELP2000Calculator

安装

通过 npm 安装,在你的 node 项目目录下执行:

npm install @behaver/elp2000-moon-gecc

安装完成后,调用即可:

const MoonGECC = require('@behaver/elp2000-moon-gecc');

用例

const MoonGECC = require('@behaver/elp2000-moon-gecc');
const { JDateRepository } = require('@behaver/jdate');

let jdr = new JDateRepository(2446896);
let moon = MoonGECC(jdr);

// 获取月球地心黄经度数
let l = moon.l.getDegrees();

// 获取月球地心黄纬度数
let b = moon.b.getDegrees();

// 获取月球地心距离
let r = moon.r;

// 获取月球地心球坐标
let sc = moon.sc;

关于计算误差的设置:

const MoonGECC = require('@behaver/elp2000-moon-gecc');
const { JDateRepository } = require('@behaver/jdate');

let jdr = new JDateRepository(2446896);
let moon = MoonGECC(jdr);

// 方法一:调整精度等级
moon.accuracy = 'low';

// 方法二:设置计算截断值数组
moon.setTruncation('b', [ 20, 10, 5, 3 ]);

// 方法三:
// 设置最大误差(瞬时)
moon.setMaxError('r', 5);

// 设置平均最大误差
moon.setMaxError('r', 5, 'mean');

// 设置安全最大误差
moon.setMaxError('r', 5, 'safe');

API

constructor(jdate)

构造函数

  • jdate 参照儒略时间

get l()

获取 月球 Date 地心黄经值

get b()

获取 月球 Date 地心黄纬值

get r()

获取 月球 Date 地心距离,单位:km

get sc()

获取 月球 Date 地心黄道球坐标

get meanLongitude()

获取 月球 Date 地心平黄经

get longitudePerturbationCorrection()

获取 月球 Date 地心黄经摄动修正

get longitudePrecessionCorrection()

获取 月球 Date 地心黄经岁差修正

get obTime()

获取观测儒略时间

set obTime(jdr)

设定观测儒略时间

  • jdr 儒略时间对象

get accuracy()

获取计算精度

set accuracy(level)

设置计算精度

  • levev 包括以下几个等级:low, normal, high, fine, complete。

精度等级和安全最大误差(单位:角秒, km)的对应关系:

  • low 5s, 10km
  • normal 2.5s, 5km
  • high 1s, 2km
  • fine 0.5s, 1km
  • complete 0

此处不考虑 ELP2000 数据算法自身误差,实际误差要进行叠加。

getTruncation(item)

获取截断值数组

  • item 计算项:l、b、r

setTruncation(item, tNumsArray)

设置截断值数组

  • item 计算项:l、b、r
  • tNumsArray 截断值数组

setMaxError(item, value, mode = 'true')

设置计算允许最大误差

通过此方法设置运算截断值相较于 setTruncation(item, tNumsArray)set accuracy(level) 会产生额外的运算量,若为了缩小运算量而使用该方法,则不适于多次调用。

  • item 计算项:l、b、r
  • value 最大误差数值
  • mode 计算模式: true(瞬时误差)、mean(平均误差)、safe(安全误差)

getMaxError(item)

获取最大误差

  • item 计算项:l、b、r

许可证书

The MIT license.

About

This pkg is a calculator for moon geocentric ecliptic coordinate by using ELP2000 theory.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published