视差角计算公式及其推导

(图片来源:《天文算法》)

何谓「视差角」?视差角就是天体所在赤道经线和天体所在地平经线之间的夹角,中天之前为负,中天之后为正。就上弦月来说,视差角就是它「倒下」的度数:

(图片来源:《天文算法》)

那么怎么计算这个角呢?《天文算法》一书给出了一个公式:

\( \tan{q} = \frac{\sin{t}}{\tan{\varphi}\cos{\delta}-\cos{t}\sin{\delta}} \)

(其中 \(q\) 为天体的视差角,\(t\) 为天体的时角,\( \delta \) 为天体的赤纬,\( \varphi \) 为当地纬度(北纬为正))

但是书上没有推导过程。在这里我们把推导过程补上(以北半球为例):

如图,画出天球、地平面、天赤道、平行圈。设天球中心为 \(O\), 北天极为 \(P\), 天顶为 \(Z\), 天体为 \(B\).

作球面三角形 \(BPZ\), 在该球面三角形内,所求角 \(q\) 即 \( \angle{ZBP} \). 由时角的定义易知 \( \angle{ZPB} = t \).

过 \(B\)、\(P\) 作大圆弧 \(BP\) 交天赤道于 \(B‘\). 易知弧 \(BP = {90}^{\circ}-\delta\).

由当地纬度为 \(\varphi\) 易知,弧 \( ZP = {90}^{\circ}-\varphi \).

现在,我们已经知道球面三角形 \(BPZ\) 的两边及其夹角,问题是怎么求另一个角。这就比较麻烦。可以先用余弦定理求第三边,然后用正弦定理求出所求角,不过这样一定会算崩。还是把三面角拿出来一步一步推吧:

如下图,过 \(Z\) 作 \(ZZ‘\) 垂直于平面 \(POB\), 垂足为 \(Z‘\). 过 \(Z‘\) 作 \(Z‘T_1\) 交 \(BP\) 于 \(T_1\), 过 \(Z‘\) 作 \(Z‘T_2\) 交 \(OP\) 于 \(T_2\). 连接 \(ZT_1\), \(ZT_2\).

跟据球面三角形内角的定义可知 \(\angle{ZT_2Z‘} = \angle{P} = t\), \( \angle{ZT_1Z‘} = \angle{B} = q \).

这样所有的已知量和未知量就都出现在图上了。接下来从 \(OZ=1\) 开始一步步求出线段 \(ZZ‘\) 和 \(Z‘T_1\) 的长度,再作比求出 \( \tan{q} \),  就可以得到上文的公式了。这个过程已经写在图里,就不再赘述了。

当天体 升/降 时,(大圆)弧 \(ZB = {90}^{\circ} \), 球面三角形 \(ZBP\) 三边均已知,直接套用余弦定理得:

\( \cos{ZP} = \cos{BZ}\cos{BP} + \sin{BZ}\sin{BP}\cos{\angle{ZBP}} \)

\( \cos{({90}^{\circ}-\varphi)} = \cos{{90}^{\circ}}\cos{({90}^{\circ}-\delta)} + \sin{{90}^{\circ}}\sin{({90}^{\circ}-\delta)}\cos{q} \)

\( \sin{\varphi} = \cos{\delta}\cos{q} \)

\( \cos{q} = \frac{\sin{\varphi}}{\cos{\delta}} \)

在这种情况下,就不需要知道时角 \(t\).(换句话说,升/降 时的时角是可以算出来的。)

时间: 2024-10-13 23:35:44

视差角计算公式及其推导的相关文章

FJoi2017 1月20日模拟赛 交错和(等差数列+rmq)

[题目描述] 无限循环数字串S由长度为n的循环节s构成.设s为12345(n=5),则数字串S为123451234512345… 设Si为S的第i位数字,在上面的例子中,S1=1,S2=2,S6=1. 设S的一个子串S[l,r]的交错和为sum(l,r): sum(l,r) = Sl - S1+1 + Sl+2 - Sl+3 + … + (-1)r-lSr 如sum(2,7) = 2 - 3 + 4 - 5 + 1 - 2 = -3 现给定循环节s,要求支持两种操作: 1 pos digit:

java常见面试题

从网上转的一些java基础知识面试题: 1.String是最基本的数据类型吗? 基本数据类型包括byte.int.char.long.float.double.boolean和short. java.lang.String类是final类型的,因此不可以继承这个类.不能修改这个类.为了提高效率节省空间,我们应该用StringBuffer类 2.int 和 Integer 有什么区别 Java 提供两种不同的类型:引用类型和原始类型(或内置类型).Int是java的原始数据类型,Integer是j

地理空间距离计算优化(转)

原文:http://tech.meituan.com/lucene-distance.html 1 地理空间距离计算面临的挑战 打开美团app,不管是筛选团购还是筛选商家,默认的排序项都是“离我最近”或者“智能排序”(如下图所示). 不管是“离我最近”还是“智能排序”,都涉及到计算用户位置与各个团购单子或者商家的距离(注:在智能排序中距离作为一个重要的参数参与排序打分).以筛选商家为例,北京地区有5~6w个POI(本文将商家称之为POI),当用户进入商家页,请求北京全城+所有品类+离我最近/智能

地理空间距离计算及优化(根据两个点经纬度计算距离)

1.地理空间距离计算面临的挑战 打开美团app,不管是筛选团购还是筛选商家,默认的排序项都是"离我最近"或者"智能排序"(如下图所示). 不管是"离我最近"还是"智能排序",都涉及到计算用户位置与各个团购单子或者商家的距离(注:在智能排序中距离作为一个重要的参数参与排序打分).以筛选商家为例,北京地区有5~6w个POI(本文将商家称之为POI),当用户进入商家页,请求北京全城+所有品类+离我最近/智能排序时,我们筛选服务需要计

在matlab中实现线性回归和logistic回归

本文主要讲解在matlab中实现Linear Regression和Logistic Regression的代码,并不涉及公式推导.具体的计算公式和推导,相关的机器学习文章和视频一大堆,推荐看Andrew NG的公开课. 一.线性回归(Linear Regression) 方法一.利用公式 : function [ theta ] = linearReg() %线性回归. X=[1 1;1 2;1 3;1 4]; %注意第一列全为1,即x0=1,第二列才为x1 Y=[1.1;2.2;2.7;3.

地理空间距离计算优化

#1 地理空间距离计算面临的挑战 打开美团app,不管是筛选团购还是筛选商家,默认的排序项都是“离我最近”或者“智能排序”(如下图所示). 手机app示意 不管是“离我最近”还是“智能排序”,都涉及到计算用户位置与各个团购单子或者商家的距离(注:在智能排序中距离作为一个重要的参数参与排序打分).以筛选商家为例,北京地区有5~6w个POI(本文将商家称之为POI),当用户进入商家页,请求北京全城+所有品类+离我最近/智能排序时,我们筛选服务需要计算一遍用户位置与北京全城所有POI的距离. 这种大量

有负数项的数列之和

问题:编写函数计算数列前n项之和,数列为1-2+3-4+5-6+7-8+....... 这个问题简单,编写一个计算数列之和的函数太容易了. 人们通常用计算解决问题,也就是编写程序解决问题.然而,编写程序解决问题,是多解的,即不同的程序可以计算出相同的结果. 解决这个问题,编写了3个不同的函数. 函数sum1(),遇到正数项则相加,遇到负数项则相减,使用逻辑判定来决定是做相加还是相减,即对于奇数项做加法计算,对于偶数项做减法计算. 函数sum2(),也是用一般累加求和的计算,对于每一项进行求和计算

机电传动控制第三周学习笔记

特斯拉传记阅读 第三章高等移民中特斯拉在收入微薄,生活艰苦的条件下仍然努力地做着交流电动机的创造发明工作,在生活穷困潦倒,自己的发明创造不为人所知的情况下特斯拉仍能坚持下去,在自己的创造发明中得到巨大的精神快乐,这所要求的不仅仅是一个科研工作者丰富的想象力,大胆的创新能力,坚实的知识储备,更要求有对自己所做事业的无限的兴趣和激情,在面对挫折和困境时毫不退缩的勇气.在自己的创造发明遭受同时代发明大师爱迪生的抵制和反感时特斯拉仍然没有放弃自己将交流电系统应用于生产生活,推广向全世界的伟大梦想,在一贫

地理空间距离计算及优化(依据两个点经纬度计算距离)

1.地理空间距离计算面临的挑战 打开美团app.无论是筛选团购还是筛选商家,默认的排序项都是"离我近期"或者"智能排序"(例如以下图所看到的). 无论是"离我近期"还是"智能排序".都涉及到计算用户位置与各个团购单子或者商家的距离(注:在智能排序中距离作为一个重要的參数參与排序打分).以筛选商家为例.北京地区有5~6w个POI(本文将商家称之为POI),当用户进入商家页,请求北京全城+全部品类+离我近期/智能排序时.我们筛选服