这个计算器能做什么
本工具用于计算地球上任意地点在某一天内太阳在天空中的位置。对于当地时钟时间的每个整点,它都会给出太阳的高度角(即太阳相对地平线的仰角,太阳位于地平线以下时为负值)以及方位角(罗盘方向,以正北为起点顺时针测量:正北=0度、正东=90度、正南=180度、正西=270度)。其中天文算法是通用的,唯一与地区相关的是默认坐标(东京)和默认时区偏移(UTC+9,日本时区),你可以根据自己所在的地点自行修改。
使用方法
请填入你所在地的经度(东经为正、西经为负)、纬度(北纬为正、南纬为负)、相对UTC的标准时间偏移(例如纽约标准时间为-5),以及具体日期。计算器会把当地时钟时间从0时扫到24时,每小时输出一行结果。重点显示的数值是当地12:00时的高度角与方位角。
计算公式说明
程序先把公历日期换算成儒略日,再算出相对J2000.0历元的天数。通过一组低精度级数公式求出太阳的平黄经、平近点角和视黄经;结合黄赤交角,即可得到太阳的赤纬和赤经。格林尼治平恒星时加上你的经度得到当地恒星时,再减去赤经即得时角H。最后利用球面三角关系,把(赤纬、时角H、纬度)换算为高度角与方位角。
$$h = \arcsin\!\Big( \sin\phi \, \sin\delta + \cos\phi \, \cos\delta \, \cos H \Big)$$
$$\text{where}\quad \left\{ \begin{aligned} \phi &= \text{Latitude} \\ H &= \theta_G + \text{Longitude} - \alpha \\ \delta,\ \alpha &= \text{Sun declination and right ascension at UT} \\ \text{UT} &= t - \text{UTC Offset} \end{aligned} \right.$$
$$A = \operatorname{atan2}\!\Big( -\cos\delta \, \sin H,\ \ \sin\delta \, \cos\phi - \cos\delta \, \sin\phi \, \cos H \Big)$$
$$\text{where}\quad \left\{ \begin{aligned} \phi &= \text{Latitude} \\ H &= \theta_G + \text{Longitude} - \alpha \end{aligned} \right.$$
实例演算
以东京(东经139.7447度,北纬35.6544度)、时区+9、2024年6月15日为例。在当地真太阳时正午前后,太阳赤纬约为23.3度(接近夏至时的最大值),因此正午高度角大致等于90度减去纬度与赤纬之差,约为\(90^\circ - (35.6544^\circ - 23.3^\circ) \approx 77.6^\circ\),方位角接近180度(正南方向)。清晨时太阳低悬于东方,傍晚则低垂于西方。
常见问题
为什么有些时刻的高度角是负的?高度角为负表示太阳位于地平线以下,也就是处于夜间、日出之前或日落之后。
计算结果有多精确?所用级数公式适用于1900年至2099年,误差约在几角秒到几角分之间;在极高纬度地区误差会偏大。
方位角是怎么测量的?从正北方向顺时针测量,因此90度为正东、180度为正南、270度为正西。