【接上篇】
经过上述计算转换得到坐标值是理论值,或者说是天体的几何位置,但是FK5系统 是一个目视系统,也就是说体现的是人眼睛观察效果(光学位置),这就需要根据地球的物理环境、大气 环境等信息做进一步的修正,使其和人类从地球上观察星体的观测结果一致。
首先需要进行章动 修正。章动是指地球沿自转轴的指向绕黄道极缓慢旋转过程中,由于地球上物质分布不均匀性和月球及其 它行星的摄动力造成的轻微抖动。英国天文学家詹姆斯·布拉德利(1693—1762)最早发现了章动,章动可 以沿着黄道分解为水平分量和垂直分量,黄道上的水平分量记为Δψ,称为黄经章动,它影响了天球上所 有天体的经度。黄道上的垂直分量记为Δε,称为交角章动,它影响了黄赤交角。目前编制天文年历所依 据的章动理论是伍拉德在1953年建立的,它是以刚体地球模型为基础的。1977年,国际天文联合会的一个 专家小组建议采用非刚体地球模型――莫洛坚斯基II模型代替刚体地球模型计算章动,1979年的国际天文 学联合会第十七届大会正式通过了这一建议,并决定于1984年正式实施。
地球章动主要是月球运 动引起的,也具有一定的周期性,可以描述为一些周期项的和,主要项的周期是6798.4日(18.6年),但其 它项是一些短周期项(小于10天)。本文采用的计算方法取自国际天文联合会的IAU1980章动理论,周期项 系数数据来源于《天文算法》一书第21章的表21-A,该表忽略了IAU1980章动理论中系数小于 0.0003"的周期项,因此只有63项。每个周期项包括计算黄经章动(Δψ)的正弦系数(相位内项系 数)、计算交角章动的(Δε)余弦系数(相位外项系数)以及计算辐角的5个基本角距(M、M'、D 、F、Ω)的线性组合系数。5个基本角距的计算公式是:
平距角(日月对地心的角距离):
D = 297.85036 + 455267.111480 * T - 0.0019142 * T2 + T3 / 189474 ( 3.10式)
太阳(地球)平近点角:
M = 357.52772 + 35999.050340 * T - 0.0001603 * T2 - T3 / 300000 (3.11式)
月球平近点角
M'= 134.96298 + 477198.867398 * T + 0.0086972 * T2 + T3 / 56250 (3.12式)
月球纬度参数:
F = 93.27191 + 483202.017538 * T - 0.0036825 * T2 + T3 / 327270 (3.13式)
黄道与月球平轨道升交点黄经:
Ω= 125.04452 - 1934.136261 * T + 0.0020708 * T2 + T3 / 450000 (3.14式)
以上各式中的T是儒略世纪数,计算出来的5个基本角距的单位都是度, 在计算正弦或余弦时要转换为弧度单位。计算每一个周期项的黄经章动过程是这样的,首先将3.10-3.14 式计算出来的值与对应的5个基本角距系数组合,计算出辐角。以本文使用的章动周期项系数表中的第七 项为例,5个基本角距对应的系数分别是1、0、-2、2和2,辐角θ的值就是:-2D + M + 2F + 2Ω。计算 出辐角后就可以计算周期项的值:
S = (S1+ S2 * T) * sin(θ) (3.15式)
仍以第七项为 例,S的值就是(-517 + 1.2 * T)* sin(θ)。对每一项的值S累加就可得到黄经章动,单位是 0.0001"。交角章动的计算方法与黄经章动的计算类似,辐角θ的值是一样的,只是计算章动使用的 是余弦系数:
C = (C1 + C2 * T) * cos(θ) (3.16式)
CalcEarthLongitudeNutation ()函数就是计算黄经章动的实现代码:
double CalcEarthLongitudeNutation(double dt) { double T = dt * 10; double D,M,Mp,F,Omega; GetEarthNutationParameter(dt, &D, &M, &Mp, &F, &Omega); double resulte = 0.0 ; for(int i = 0; i < sizeof(nutation) / sizeof(nutation[0]); i++) { double sita = nutation[i].D * D + nutation[i].M * M + nutation[i].Mp * Mp + nutation[i].F * F + nutation[i].omega * Omega; resulte += (nutation[i].sine1 + nutation[i].sine2 * T ) * sin(sita); } /*先乘以章动表的系数 0.0001,然后换算成度的单位*/ return resulte * 0.0001 / 3600.0; }
GetEarthNutationParameter()辅助函数用于计算5个基本角距:
void GetEarthNutationParameter(double dt, double *D, double *M, double *Mp, double *F, double *Omega) { double T = dt * 10; /*T是从J2000起算的儒略世纪数*/ double T2 = T * T; double T3 = T2 * T; /*平距角(如月对地心的角距离)*/ *D = 297.85036 + 445267.111480 * T - 0.0019142 * T2 + T3 / 189474.0; /*太阳(地球)平近点角*/ *M = 357.52772 + 35999.050340 * T - 0.0001603 * T2 - T3 / 300000.0; /*月亮平近点角*/ *Mp = 134.96298 + 477198.867398 * T + 0.0086972 * T2 + T3 / 56250.0; /*月亮纬度参数*/ *F = 93.27191 + 483202.017538 * T - 0.0036825 * T2 + T3 / 327270.0; /*黄道与月亮平轨道升交点黄经*/ *Omega = 125.04452 - 1934.136261 * T + 0.0020708 * T2 + T3 / 450000.0; }
以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索double
, 天文
, 周期
, 地球 自转
, T3
, 儒略历转换
余弦匹配算法
二十四节气天文学意义、二十四节气天文位置、二十四节气的天文位置、二十四节气算法、二十四节气系列,以便于您获取更多的相关知识。