c# wpf listbox 高度_天体方位角和高度角的计算

大家有没有想过一个问题,已知观测者的位置(地理坐标(b,l)),天体的位置也已知(赤道坐标(α,δ)),怎么求在某一给定时间(utc(y-m-d,h:m:s))天体的方位角和高度角(A,h)?

其实这个问题就是坐标系的变换,就是如何把以观测值为中心的天体的赤道坐标系(α,δ)转到地平坐标系(A,h),直接想象怎么转换的话是有点困难的 ,我们可以借助一个中间的坐标系,时角坐标系(t,δ),来实现二者的转换。

1.赤道坐标系转到时角坐标系

时角坐标系和赤道坐标系的第二个坐标参数赤纬是相同的,不同的是第一个参数时角t和赤经α,不过时角t和和赤经α可以通过恒星时

来联系起来,即
,即任一天体的赤经加上其时角就等于恒星时,从而
,恒星时其实就是春分点的时角,所以要实现时角t和赤经α的转换,首先要求恒星时,恒星时和utc之间通过儒略日jd联系起来。

utc时间和儒略日的关系为:

或者:

其中y,m,d分别代表年月日,h=h+m/60+s/3600(此处m代表分钟)

格林尼治恒星时和儒略日之间的关系为:

上面这个公式以时间(小时:分钟:秒)为单位,可以把其中的分钟和秒化为小时,这样就可以使用一个数字表示;下面还要把时间转为对应的角度,小时转为角度只需乘以15。

其中:

(36525约为100年的天数)

(2451545.0为UTC2000年1月1日12时的儒略日数)

(由于地球公转导致平太阳日大于恒星日,一回归年多一天)

格林尼治恒星时转到地方恒星时:(恒星时是顺时针增大,经度是逆时针增大,所以加,这里的单位是角时)

天体的时角为:(赤经加上时角等于恒星时)

2.时角坐标系转到地平坐标系

一些天球坐标系以及它们之间的转换:

Astronomical coordinate systems​encyclopedia.thefreedictionary.com
58c45751f4215a0b853e958aedd5e73c.png

我们要求的地平坐标系是左手系,第一轴指向为正北,第二轴指向为正东,第三轴指向为天顶,方位角为以第一轴为起点,顺时针旋转的角度,范围为[0,360)。

238f073728109df3d06ab9bf9be19497.png
图片来自马文章《球面天文学》

结果根据赤纬值计算其在日落时角t呢?在以观测者天顶Z、北极点P、天体的位置σ三个点为球面三角形PZσ的三个点,已知PZ、Pσ、Zσ,利用球面三角知识,很容易推出:

(正弦公式)(1)

(边的余弦公式)(2)

(第一五元素公式)(3)

其中z是天顶距,和高度角互余,即

从而可以导出:

实际计算的时候由于程序自带的atan函数返回的范围是

,而atan2函数返回的是
,A的实际输出范围是0~360度,所以使用atan2函数更方便,当atan2函数返回的值小于零时,加上
即可。atan2函数需要求得sin(A)和cos(A)的值,由于sin(z)大于等于0,所以,上面的(1)(3)式的值可直接当做sin(A)和cos(A)来用。

下面的代码使用了三种方法来计算金星的方位角和高度角:

(1)直接使用ephem库直接输出

(2)使用ephem库得到金星的赤经赤纬,构造一个天体,使用ephem库的az和alt函数输出

(3)使用本文给出的方法

from 

结果:

根据公式直接计算: 276:54:07.1 38:45:11.1
ephem函数构造天体 276:40:58.0 39:07:22.9
ephem函数已有天体 276:40:58.0 39:07:11.1
公式计算儒略日: 2458949.96275463
ephem函数计算 2458949.9627546296
公式计算恒星时: 2.131514935979037
ephem函数计算 2.123473429491178
角度差: 0.4607443826814002


可以看出,公式得到的结果和ephem函数计算的结果有一点差距,但误差在角分级别,原因在于恒星时计算还不够精确,儒略日计算基本没有差异。

只要给出观测者位置,天体的位置,观测时间,就可以给出天体的方向;反过来,给出观测者位置,观测时间,指向,就可以给出天上那一点的赤经赤纬,这也是手机上的一些天文APP如stellarium、star walk、星图等能识别出星星的原理。

需要说明的一些内容:

1.由于地球极移的影响,观测值位置也在变化

2.由于岁差章动的影响,天上星星的相对位置也在改变

3.上面使用的观测时间是utc,实际应该先转为ut1,再去求时角,因为地球并不是匀速自转

4.上面求得的方位角高度角没有考虑大气折射、视差、光行差、引力弯曲等一些因素的影响

有空我再实际验证一遍上面的公式,之前很早就想过这个问题,发现实际写下来发现没那么简单,要考虑的东西挺多的,涉及了天体测量学的很多问题。

表情包
插入表情
评论将由博主筛选后显示,对所有人可见 | 还能输入1000个字符
相关推荐
©️2020 CSDN 皮肤主题: 数字20 设计师:CSDN官方博客 返回首页