分类:
2008-10-23 12:21:02
本文假定你拥有以下知识:三角函数、简单的立体几何、地球的公转与自转、时区与北京时间;此外你可能在阅读本文前,还需要一张纸、一支笔、一个普通的工程类计算器,以及一杯让你舒缓神经的水。为了完成计算,你必需要知道你当前的经纬度和日期。
由于本文涉及冗长的推导过程,可能并不适合浮躁的心情。当然,本文秉承我一贯的风格,绝不包含超出高中课本的知识。
一切准备工作就绪的话,我们就开始了。
首先,我们根据当前的日期确定太阳在黄道中的位置。我们知道,太阳大约在3月20日或3月21日直射赤道,而其运动周期是365天。所以现在太阳在黄道中的位置是 [注1]
黄道平面与赤道平面的夹角被称为黄赤夹角,大约为23.5度。根据立体几何的知识,太阳当前直射的纬度Bs满足
根据这个式子,就可以用计算器的反三角函数求得Bs。
接下来,需要计算的是目前你所在纬度的昼长。由于黄道、赤道和你所在的纬圈均不同在一个平面,所以在纬圈上,太阳照射的部分并不等于纬圈的一半。这里令2θ为其超出的角度,则有下式
其中B为你当前的纬度。解出θ后,可以求得昼长等于
等等,这里我们忽略了两点:1. 阳光在大气中的折射会使得我们能见到地平线下方约37′射来的光线。2. 太阳不是点光源,它是一个约16′圆盘。考虑这两点,θ还有一个修正量[注2]
在这个基础上,重新计算昼长T。到这里,最难的问题已经解决了,还需要把当地时间,根据经度L换算到北京时间。也就是当地正午(太阳最高时)的北京时间为
那么日出时间tr和日落时间ts
为了验证以上计算的正确性,这里有一个基于Google Maps的在线日出日落计算器。[]
由于忽略了地球公转的椭圆轨道(近似为圆),忽略了地球表面的起伏(近似为球)等因素。以上的计算过程和实际值具有一定误差,而上面那个网页是用经验公式求得的,更为精确。
注1:为了方便,也可以夏至(或秋分,冬至)作为起算点。不过需要对应的加上。
注2:这是一个近似的做法,其依据是太阳日出的过程并不长,可以把弧段近似看作线段。但这一点只能在中低纬度地区得到保证。对精确解法有兴趣的同学,可以试着动手算一算。