前言:
今天姐妹们对“经纬度识别日升日落算法”可能比较关怀,各位老铁们都需要学习一些“经纬度识别日升日落算法”的相关知识。那么小编同时在网络上收集了一些有关“经纬度识别日升日落算法””的相关知识,希望兄弟们能喜欢,咱们一起来了解一下吧!地球绕太阳公转,由于地轴的倾斜,地轴与公转轨道平面始终保持着大概66°34′的夹角,这样,才引起太阳直射点在南北纬23°26′之间往返移动,并决定了太阳可能直射的范围:春分、秋分日,太阳直射赤道,即直射点的纬度为0°。冬至日,太阳直射南回归线,即直射点的纬度为23°26′S,夏至日,太阳直射北回归线,即直射点的纬度为23°26′N。
春分,每年公历大约为3月20日左右,太阳位于黄经0°(春分点)时。
夏至是二十四节气之一,在每年公历6月21日左右。夏至这天,太阳运行至黄经90度(夏至点,目前处在双子座),太阳直射地面的位置到达一年的最北端,几乎直射北回归线,此时,北半球各地的白昼时间达到全年最长。
秋分,每年的公历9月22~24日。太阳在这一天到达黄经180度,直射地球赤道,因此全球大部分地区这一天的24小时昼夜均分,各12小时。秋分过后,太阳直射点开始由赤道进入南半球,北半球开始昼短夜长,一天中白昼短于黑夜;北极附近也即将迎来一年中连续6个月的漫漫长夜与连续6个月不灭的星空。
冬至,时间在每年的公历12月21~23日。
同时,由于地球自转,各个时刻太阳的轨迹是不同的。 一般来说,同一纬度地区在相同的日期,正午的太阳高度角相对于其它时刻来说是最大的。
所以影响太阳高度角的因素有3个,一是纬度,二是日期、三是时刻。如在夏至日,太阳直射北回归线,北回归线地区相同时刻的高度角要高于该地区相同时刻不同日期的高度角。自然,在相同日期,相同纬度地区中午时刻的高度角最高。
太阳在天空中的位置可以由太阳高度角和太阳方位角来确定。太阳高度角又称太阳高度、太阳俯仰角,是指太阳光线与地表水平面得之间的夹角。太阳方位角即太阳所在的方位,是指太阳光线在地平面上的投影与当地子午线的夹角,可以近似看作是树立在地面上的直线在阳光下的阴影与正南方向的夹角。太阳方位角和高度角的实时数值可以通过地理经纬度、时区参数利用公式计算出来。
1 经纬度与天球赤纬
经度(Longitude)λ和纬度(Latitude) Ø相当于我们平面几何中的Y轴和X轴,不过他们一个以本初子午线(the Prime Meridian)为基准,一个以赤道(Equator)为基准,其坐标交点就是我们需要查找的地点。比如北京的坐标就是39.9N°,116.4°E,意思就是北京在赤道以北39.9度,格林威治线以东116.4度。
下图Ø角度就是该地点相对于地心的纬度角,而λ则是该地点相对于格林威治线的经度角。
在晴朗的夜晚,仰望天空,眼前像有一个半球形的夜幕天穹,上面点缀着无数闪烁发亮的明星,感觉自己仿佛是处在这个天穹的中心,这就是人们对“天球”的印象。天文学家为了研究天体的位置和天体的运动引入了“天球”的概念和天球坐标。
赤纬角又称太阳赤纬,是地球赤道平面与太阳和地球中心的连线之间的夹角。是太阳入射光与地球赤道之间的角度,由于地球自转轴与公转轴之间的角度基本不变,因此太阳赤纬岁季节不同而周期性的变化。赤纬角以年为周期,在+23 °26′与-23 °26′的范围内移动,成为季节的标志。
因赤纬值日变化很小,一年内任何一天的赤纬角δ可用下式计算:
sinδ=0.39795cos[0.98563(N-173)/180*pi]
式中N为日数,自每年1月1日开始计算,δ单位为弧度。
更准确的太阳赤纬计算公式则为:δ=0.006918-0.399912*cos(b)+0.070257*sin(b)-0.006758*cos(2*b)+0.000907*sin(2*b)-0.002697*cos(3*b)+0.00148*sin(3*b)
其中delta的单位为度(deg);pi=3.1415926为圆周率;b=2*pi*(N-1)/365,单位为弧度;N为日数,自每年1月1日开始计算。
2 方位角
如果说经纬角度是定位角的话,方位角更像一个指向角。在世界地图中,“上北下南,左西右东”其实就是对方位角的通俗表达。如图二所示,方位角(Azimuth)其实就是朝向相对于正北(或正南)的偏角。通常方位角有两种定义范围,分别是0至360度和180至-180度。
星体(太阳)的高度角(Altitude)α,它表示太阳距离观测点与水平面所成的夹角。高度角随着季节和一天内不同时间段在变化。高度角的变化直接影响太阳能板对太阳光照强度的接收。
决定太阳高度角的因素有:纬度、日期(不同日期,太阳的直射点处于不同纬度。)和时刻。
其实一年之内,太阳相较于同一地点的直线距离是几乎可以看做不变的,甚至冬季比夏季还短一些。而夏天热冬天冷的真正原因就是高度角的差别。
3 时角
时角,是天文学中的一个重要概念,常用符号t表示。一个天体的时角定义为天子午圈(天球上经过北天极、天顶、南点、南天极、天底和北点,并与天球相交的大圆)与天体的赤经圈(天球上过天极并与天赤道相垂直的所有大圆)在北极所成的球面角,或在天赤道上所夹的弧度。时角随地球的自转而变化,且与测者所在的子午圈有关。时角的单位通常采用相应的时间单位,以0~24时取代0°~360°。
时角与方位角:
时角和方位角最大的不同就是极点不同,时角(北半球)的极点是北天极,所以时角能够随时间均匀变化,通过时角我们可以计算时间。方位角的极点是天顶,所以方位角不能随时间均匀变化。此外,时角坐标系和地平坐标系不光是旋转轴不同,起始轴也根本不在一个平面上。时角坐标系的起始点在天赤道上,是天顶与地平南点所在的大弧与天赤道圆的交点。而地平坐标系的起始点为地平北点(或南点)。
计算正午太阳高度角
正午太阳高度角是指当地时间12点的太阳高度角,是一天之中最大的太阳高度,是正午时太阳光线与地面的夹角。
太阳高度角,对于地球上的某个地点,是指太阳光的入射方向和地平面之间的夹角,专业上讲太阳高度角是指某地太阳光线与通过该地与地心相连的地表切线的夹角。
如果某地的纬度已经知道,依据下面的公式就可以计算出此地的正午太阳高度。
H=90°-| 纬差|(纬差是指某地的地理纬度与当日直射点所在纬度之间的差值)
例如:A地的纬度为40°N,求A地夏至日的正午太阳高度。
夏至日太阳直射的纬度为23°26′N,与A地的纬度差=40°-23°26′=16°34′,那么H=90°-16°34′=73°26′。
如果求A地冬至日的正午太阳高度。冬至日太阳直射的纬度为23°26′S,与A地的纬度差=40°+23°26′=63°26′,那么H=90°-63°26′=26°34′。
计算公式:
H=90°-∣α-β∣
*α为太阳直射点的纬度,β为所求纬度(北纬取正值,南纬取负值)
代码:
2 计算任意时刻太阳高度角
太阳高度角随着地方时和太阳的赤纬的变化而变化。太阳赤纬(与太阳直射点纬度相等)以δ表示,观测地地理纬度用φ表示(太阳赤纬与地理纬度都是北纬为正,南纬为负),地方时(时角)以t表示,有太阳高度角的计算公式:
sin h=sin φ sin δ+cos φ cosδ cos t
任意时刻的太阳高度角的计算方法,不只是正午的太阳高度角:
sinH= sinφsinδ+ cosφcosδcost
H是太阳高度角,
φ是当地的地理纬度,
δ是当日的太阳赤纬,
t是当时的太阳时角。
太阳赤纬是地球赤道平面与太阳和地球中心的连线之间的夹角。
还有日期那就又涉及到太阳赤纬的计算了,太阳赤纬可以简单理解成直射点的纬度,不过北纬为正值,南纬为负值。
任意日期的太阳赤纬角的计算公式是
sinδ=0.39795cos[0.98563(N-173)]
N为积日,就是日期在一年中的序号,比如1月1日是1,平年的12月31日是365。
太阳时角是太阳光照到地面的一点和地心的连线与当地正午时地、日中心连线分别在地球赤道平面上的投影之间的夹角。
再简单点就是太阳所处的位置与正午太阳位置之间的角度差。比如正午的太阳时角是0度,二分日日出时的太阳时角是90度。
日升日落,同一地点一天内太阳高度角是不断变化的。时角是以正午12点为0度开始算,每一小时为15度。即14点和10点分别为30度和-30度。日出日落时角度都为0,正午时太阳高度角最大(90°),时角为0,以上的公式可以简化为:
sin h=sin φ sin δ+cos φ cos δ
由两角和与差的三角函数公式,可得
sin h=cos(φ-δ)
因此,
对于太阳位于天顶以北的地区而言,h=90°-(φ-δ);
对于太阳位于天顶以南的地区而言,h=90°-(δ-φ);
二者合并,因为无论是(φ-δ)还是(δ-φ),都是为了求当地纬度与太阳直射纬度之差,不会是负的,因此都等于它的绝对值,所以正午太阳高度角计算公式:
h=90°-|φ-δ|
-End-
标签: #经纬度识别日升日落算法