- 积分
- 277
- 最后登录
- 1970-1-1
- 阅读权限
- 20
- 积分
- 277
- 回帖
- 0
- 精华
|
楼主 |
发表于 2010-2-24 22:26:23
|
显示全部楼层
本帖最后由 学易学 于 2010-2-24 22:28 编辑
发个较详细的说明:
作者:许剑伟(福建莆田第十中学)保留版权 © 2008-2009
这是一款真正精确的万年历,它提供公元-4712年到公元9999年的公历及农历日期查询功能,其中-721年到1960年的农历数据已经与张培瑜的《三千五百年历日天象》、陈垣的《二十史朔闰表》、方诗铭的《中国史历日和中西历日对照表》核对;它还含有公元前2000多年以前到今的基本年号;含有二千多个国内城市的经纬度,并且用户可根据自已的需要扩展经纬度数据。
这是一款采用现代天文算法制作的天文、历算程序,可以方便地进行公历、农历、回历三历之间的转换;提供了历谱数据导出功能;提供精确的日月食等天象的计算功能;含有行星、恒星星历表计算。
本软件在最近的几百年范围内节气时刻及日月合朔时刻的平均误差小于1秒。如果以力学时作为时间标尺,与DE406星历表比对,太阳坐标的最大可能误差为0.1角秒,月亮坐标的最大可能误差为0.8角秒,平均误差为最大可能误差的1/6,这使得精确的日月食计算成为可能,是目前世界上唯一一款整合了精确日月食过程计算的万年历。
它还提供日出日没、月出月没时间查询等功能,与国内外著名的天文软件或天文年历比较,结果完全一致。此外,天文历中还即时显示了“月亮被照亮部分比例”、太阳和月亮的地心黄道坐标、地心赤道坐标、站心地平坐标等。其中日月的地心黄道、赤道坐标采用高精度算法,“月亮被照亮部分比例”的计算采用低精度的算法,但可以满足一般需求;地平坐标的计算已适当考虑了大气折射,由于大气的气压及气温变化具有许多不确定的因素,所以只考虑平均情况下的大气折射修正,在本软件中,地平坐标被描述为方位角与高度角,它是以观测点为中心的坐标,所以已经考虑了周日视差修正。屏幕显示的方位角从正南向西测量。方位角与高度角已转换到是站心地平坐标,并且做了视差修正,同时在地平真纬度大于0时进行大气折射修正。
本软件是一款精准的年代跨度大的日历工具,可作为一般的实用日历工具,对史学家、考古学家、历算工作者、天文爱好者均有较大的参考价值。
[版权问题]
本程序是开源的,你可以使用其中的任意部分代码,但不得随意修改“天文算法(eph.js)”及“农历算法(lunar.js)中古历部分的数据及算法”。一旦修改可能影响万年历的准确性,如果你对天文学不太了解而仅凭对历法的热情,请不要对此做任何修改,以免弄巧成拙。
如果在你自己开发的软件中使用了本程序的核心算法及数据,你可以在你的软件中申明“数据或算法来源于本天文历”,也可以不申明,但不可以申明为它其它来源。如有异义,可与我共内探讨。
[天文算法]:进行月历推算时采用了先进的现代天文算法,它是基于2002年巴黎天文台西尔特处Jean CHAPRONT 和 Gerard FRANCOU发表的ELP/MPP02月球运动理论,在几百年范围内,该理论与当今世界上公认的最精密的LE405/406系列星历表仅相差3毫角秒,在几千年范围相差不超过4角秒。
[地标数据]:城市经纬度数据库做了压缩处理。要扩展经纬数据库,可使用附件中的【城市经纬压缩器】生成代码并替换程序中的JWv数组。程序中现有的经纬度数据本来只有几百个,后来网友郑彬给我一份3000多个城市的数据,比较全面,因此本版使用他的数据。
[历谱说明]:1645年农历八月开始使用《时宪历》,七月及之前为《授时历》
[日食月食]:天文历中提供的图表,可以精确的确定日月食情况。计算结果与《2008年中国天文年历》比对,日食误差在1秒左右,月食误差在3秒以内,
[日月出没]:受到各地的地形地貌、大气状态、海拔高度等的影响,日出日没、月出月没时间无法计算得很准确,通常只能精确到1分钟,因此,软件中时间显示精确到到了秒数量级,但这并不表明日出日没时间的计算达到了这个精度。日月中天时刻受大气等因素的影响要小得多,所以可以精确到秒。日月的“出、中天、没”的计算不需要高精度日月位置坐标(因为一天中,日月在视野中的位置主要由地球自转决定),程序中使用非常低精度的方法计算日月坐标仍可以把中天时刻精确到秒。
[时区数据]:各地时区数据库做了小量压缩处理。如要扩展,可使用附件中的【时区合成器】生成代码并替换程序中的SQv数组。时区数据库是“中华农历网”netghost先生提供。
[年号纪年]:天文历中的纪年数据参考万国鼎《中国历史纪年表》,有些朝代存在多组帝王,程序中不一定全部纳入。
[命理八字]:鼠标经过日历表,显示普通的八字信息。屏幕下方的八字是严格的,以立春时刻界定年,以节气时刻界定月,以本地真太阳时23点界定日(这里的真太阳时使用低精度算法,误差可能达到1秒),以真太阳时23点、1点、3点……界定时辰。注意,这时屏幕上方输入的时间为当地时间(电脑时间,UTC)。
月球视坐标比对
V4.13版本及以后
时间 2008.1.6 00:00:00 TT (JED = 2926.5+2451545)
本程序 视黄经 256°54'36.31" 视黄纬 -4°52'14.12" 距离 401817.73千米
DE406 视黄经 256°54'36.319" 视黄纬 -4°52'14.134" 距离 401817.6711
中国 视黄经 256°54' 36.32" 视黄纬: -4°52'14.09" 《2008年中国天文年历》它与JPL不一致
swiss 视黄经: 256°54'36.319" 视黄纬 -4°52'14.090" 距离* 401798.6263
本程序 视赤经 17h 00m58.06s 视赤纬 -27°38'33.64" 距离 401817.73千米
DE406 视赤经 17h 00m58.061s 视赤纬 -27°38'33.691" 距离:401817.6711
中国 视赤经 17h 00m58.061s 视赤纬:-27°38'33.69" 《2008年中国天文年历》它与JPL一致
swiss 视赤经 17h 00m58.061s 视赤纬 -27°38'33.648" 距离*:401798.6263
JPL 视赤经 17h 00m58.0575s视赤纬:-27°38'33.689" 距离*:401798.6270
JPL网站查询(http://ssd.jpl.nasa.gov/horizons.cgi)
比较的最后结果:
(1)“ELP/mpp02”、“个人利用DE406计算”、“JPL网站查询”三者结果基本一致。
存在几个毫角秒的差异主要是岁差参数以及黄赤交角参数的选用值不同造成的。
以上三者坐标都在J2000惯性黄道&赤道坐标系中计算并比对。
(2)《中国天文年历》的月亮视赤经、视赤纬与JPL的一致。
(3)《中国天文年历》的月亮视黄纬与JPL不一致,它采用的黄道与J2000惯性黄道存在0.047角秒的夹角。
(4)《2008中国天文年历》的月亮坐标参考系存在前后不统一的现象!
(5)swiss的月亮视黄纬、视赤纬与JPL不一致,它采用的黄道与J2000惯性黄道存在0.047角秒的夹角。
(6)swiss与《2008中国天文年历》的月亮视黄纬一致,其黄道与J2000惯性黄道存在0.047角秒的夹角。
(7)上面视坐标中的“距离*”与“距离”的含义是不相同的。设月亮光行时为T,前者是t-T时刻月球
与t时刻地球的距离,后者为t-T时刻地月距。
(8)此刻本程序误差为几十毫角秒
月球黄经计算结果与《2008年中国天文年历》等权威数据的比较
V4.12版本及以前
2008年01月01日0h TD
+197°19' 24.43" 中国天文年历
+197°19’24.91" 本程序
2008年01月06日0h TD
+256°54' 36.32" 中国天文年历
+256°54' 36.11" 本程序
2008年01月18日0h TD
+ 56°04' 29.83" 中国天文年历
+ 56°04' 29.68" 本程序
2100年01月01日0h TD
+157°24' 01.183" 瑞士星历表
+157°24' 01.96" 本程序
2100年01月18日0h TD
+ 22°14' 39.400" 瑞士星历表
+ 22°14' 40.47" 本程序
2200年01月02日0h TD
+108°26' 45.916" 瑞士星历表
+108°26' 46.12" 本程序
月球方位角与高度角
站点坐标: L=-116°23' φ=+ 39°54'
日期时间: 2000年1月1日12h TD(即力学时=0)
SkyMap 方位角 348°13' 16" 高度角 -60°58' 19"
本程序 方位角 168°13' 14" 高度角 -60°58' 19" |
|