根据日期、时间和当地经纬度计算太阳天顶角和方位角的原理
先转过来,后面再看
在开展野外试验的时候,经常需要知道当时的太阳天顶角和方位角,比如测量地物反射率时,需要知道太阳天顶角,来选择恰当的灰板反射率曲线。进行地物BRDF测量时,更需要知道太阳天顶角。
太阳天顶角和方位角可以通过经纬仪实地测量得到,但是经纬仪携带不便。只要知道当地经纬度和时间,就可以根据下文的原理,计算得到当时当地的太阳天顶角和方位角。
1日地距离
地球绕太阳公转的轨道是椭圆形的,太阳位于椭圆两焦点中的一个。发自太阳到达地球表面的辐射能量与日地间距离的平方成反比,因此,一个准确的日地距离值R就变得十分重要了。日地平均距离R0,又称天文单位,
1天文单位=1.496×108km
或者,更准确地讲等于149597890±500km。日地距离的最小值(或称近日点)为0.983天文单位,其日期大约在1月3日;而其最大值(或称远日点)为1.017天文单位,日期大约在7月4日。地球处于日地平均距离的日期为4月4日和10月5日。
由于日地距离对于任何一年的任何一天都是精确已知的,所以这个距离可用一个数学表达式表述。为了避免日地距离用具体长度计量单位表示过于冗长,一般均以其与日地平均距离比值的平方表示,即ER=(r/r0)2,也有的表达式用的是其倒数,即r0/r,这并无实质区别,只是在使用时,需要注意,不可混淆。
我们得到的数学表达式为
ER=1.000423+0.032359sinθ+0.000086sin2θ-0.008349cosθ+0.000115cos2θ(1)
式中θ称日角,即
θ=2πt/365.2422
(2)
这里t又由两部分组成,即
t=N-N0
(3)
式中N为积日,所谓积日,就是日期在年内的顺序号,例如,1月1日其积日为1,平年12月31日的积日为365,闰年则为366,等等。
N0=79.6764+0.2422×(年份-1985)
-INT〔(年份-1985)/4〕
(4)
2太阳赤纬角
地球绕太阳公转的轨道平面称黄道面,而地球的自转轴称极轴。极轴与黄道面不是垂直相交,而是呈66.5°角,并且这个角度在公转中始终维持不变。正是由于这一原因形成了每日中午时刻太阳高度的不同,以及随之而来的四季的变迁。太阳高度的变化可以从图1中形象地看到。图中日地中心的连线与赤道面间的夹角每天(实际上是每一瞬间)均处在变化之中,这个角度称为太阳赤纬角。它在春分和秋分时刻等于零,而在夏至和冬至时刻有极值,分别为正负23.442°。
由于太阳赤纬角在周年运动中任何时刻的具体值都是严格已知的,所以它(ED)也可以用与式(1)相类似的表达式表述,即:
ED=0.3723+23.2567sinθ+0.1149sin2θ
-0.1712sin3θ-0.758cosθ+0.3656cos2θ
+0.0201cos3θ(5)
式中θ的含义与式(1)中的相同。
3时差
真正的太阳在黄道上的运动不是匀速的,而是时快时慢,因此,真太阳日的长短也就各不相同。但人们的实际生活需要一种均匀不变的时间单位,这就需要寻找一个假想的太阳,它以均匀的速度在运行。这个假想的太阳就称为平太阳,其周日的持续时间称平太阳日,由此而来的小时称为平太阳时。
平太阳时S是基本均匀的时间计量系统,与人们的生活息息相关。由于平太阳是假想的,因而无法实际观测它,但它可以间接地从真太阳时S⊙求得,反之,也可以由平太阳时来求真太阳时。为此,需要一个差值来表达二者的关系,这个差值就是时差,以Et表示,即
S⊙=S+Et(6)
由于真太阳的周年视运动是不均匀的,因此,时差也随时都在变化着,但与地点无关,一年当中有4次为零,并有4次达到极大。时差也可以以式(1)相似的表达式表示:
Et=0.0028-1.9857sinθ+9.9059sin2θ
-7.0924cosθ-0.6882cos2θ
(7)
上面,我们给出了3个计算式,从形式上讲,它们与一般书籍中给出的并无不同。我们之所以又重新研究它,是因为以往的公式存在以下的通病:①对平年和闰年不加区分,一方面,这对闰年就不好处理,另一方面,闰年的影响有累计效应,会逐步增长;②即使是从当年天文年历查到的数值,也是格林尼治经度处0点时刻的数值,而我们所需要的数值,会因所在地点的地理经度以及具体时刻与表值有异而不同。具体地讲,一般要进行如下3项订正:
(1)年度订正:除非我们只用当年的天文年历值,此外均需使用此项订正,引入此项订正的原因就是一回归年的实际长度不是365日,而是365.2422日,但日历上只有整日,不可能有小数日。假定我们选用的是1981年的表值,1982年再用时,就要加上-0.2(-0.2422)日的订正了。这个订正到了1983年为-0.51(-0.4844)日,1984年为-0.7(-0.7266)日,但此年为闰年,多了1日,实际订正应为-0.7+1=0.3(0.2734)日,1985年为0.0(0.0312)日,等等,余类推。
(2)经度订正:即使我们查阅的是当年的天文年历,也需此项订正。在我国的地理经度范围内,各地的订正值是
≤90°E
-0.2日
>90°E~<128°E
-0.3日
≥128°E
-0.4日
(3)时刻订正:要求同前一项。即使在格林尼治当地,不同时刻也需加以订正。各时段的订正值是:
时段 336-600 600-824 824-1048 1048-1312
日 +0.2+0.3+0.4+0.5
时段 1312-1536 1536-1800 1800-2024
日 +0.6+0.7+0.8
由于我国普遍采用的是北京时,它与格林尼治的地方时相差8小时,故具体到我国情况:
时段(北京时)200-424 424-648 648-912 912-1136
订正值(日)-0.2 -0.1 0 0.1
时段 1136-1400 1400-1624 1624-1848 1848-2112
订正值 0.2 0.3 0.4 0.5
前面3个计算式,项数多计算麻烦,后面多项订正,更显繁琐。为了方便实际应用,特编制如下仅含20句的BASIC语言程序,供使用:
10 input“经度,经分和年份”,JD,JF,NF
20 A=NF/4:K=2*3.1415926#/365.2422
30 N0=79.6764+0.2422*(NF-1985)
-INT((NF-1985)/4)
40 input“月,日,时,分(按北京时)”,Y,R,S,F
50 B=A-INT(A)
60 C=32.8
70 ifY≤2thenC=30.6
80 ifB=0andY>2thenC=31.8
90 G=INT(30.6*Y-C+0.5)+R
100 L=(JD+JF/60)/15
110 H=S-8+F/60
120 N=G+(H-L)/24
130=(N-N0)/K
140 式(1)
150 式(5)
160 式(7)
170 print“Er=”;Er;“Ed=”;Ed,“Et=”;Et
180 input“是否仍要计算y/n?”,W0
190 ifW10-1.gif (92 bytes)=“Y”orW10-1.gif (92 bytes)=“y”then10else200
200 end
程序中50-90各句的目的在于计算当天的积日,100句是经度订正,110句是时刻订正,130句包含3年度订正的内容。
在太阳能利用中,最常见的是要求计算太阳高度和太阳方位。
太阳高度(h⊙)的计算公式为
sinh⊙=sinδsinφ+cosδcosφcosτ(8)
式中,δ就是太阳赤纬角,即式(5)中的Ed,φ为当地的地理纬度,τ为当时的太阳时角。φ值不难获得,且一旦确定,不会改变。δ值的计算可以从前述程序中得到。唯一需要说明的是太阳时角的计算。其计算式为
(9)
这里时S和分F的符号均加上了⊙下标,表示是真太阳时,为了从北京时求出真太阳时,需要两个步骤:首先,将北京时换成地方时Sd:
(10)
式中,120°是北京时的标准经度,乘4是将角度转化成时间,即每度相当于4分钟,除60是将分钟化成小时。
其次,进行时差订正,即
S⊙=Sd+Et/60 (11)
这里应该指出的是,时角是以太阳正午时刻为0点的,顺时针方向(下午)为正,反之为负。
太阳方位角的计算式为
cosA=(sinh⊙sinφ-sinδ)/cosh⊙cosφ
(12)
由此可求出二个A值,第一个A值是午后的太阳方位,
当cosA≤0时90°≤A≤180°
当cosA≥0时0≤A≤90°
第2个A值为午前的太阳方位,取360°-A。
实例:计算东经110°北回归线上1999年6月23日北京时12∶42的太阳高度角及当日的日落时的方位角。
计算:将JD=110,JF=0,NF=1999,Y=6,R=23,S=12,F=42,各参数输入运行中的程序;屏幕上立即显示:Er=1.0330,Ed=23.438,Et=-1.84
将北京时12∶42换算成东经110°的地方时,利用式(10),可得Sd=12∶02
加当日时差Et≈-2,得此时当地的S⊙=12∶00,将其代入式(9)得τ=0°,北回归线处φ=23.442°
最后根据式(8)求得h⊙=89.966°
读者可能产生疑问,为何在北回归线上,夏至日的中午时刻的太阳高度不等于90°,大家不妨变换NF的输入值,看一看结果不仅都不等于90°,且各年之间还略有差异。之所以会如此,是因为夏至不仅有日期,还有时刻,很难遇到夏至时刻在正午是12时的。
在计算日落时的方位角时,由于此时h⊙=0,所以式(12)的形式有所变化:
cosA=-sinδ/cosφ
(13)
将已知参数代入,得cosA=-0.3977
依照判据90°≤A≤180°,故A=113.44°
文章引用自:http://blog.sina.com.cn/s/blog_4c4df0cf010007d3.html
http://www.ab126.com/Geography/1904.html ----- 计算网站
根据日期、时间和当地经纬度计算太阳天顶角和方位角的原理相关推荐
- python太阳代码_利用python计算太阳天顶角、方位角、高度角
在遥感计算中一般都会用到天顶角.方位角.高度角.之前都是直接在excel中输入公式,这种方式输入公式比较麻烦,而且容易出错.后来在网上看到吉林大学汪自军博士的计算程序.链接:[http://blog. ...
- 利用python计算太阳天顶角、方位角、高度角
在遥感计算中一般都会用到天顶角.方位角.高度角.之前都是直接在excel中输入公式,这种方式输入公式比较麻烦,而且容易出错.后来在网上看到吉林大学汪自军博士的计算程序.链接:http://blog.s ...
- php 日期时间运算的小结(计算当前时间之后(之前)的时间)
先来介绍几个核心函数: mktime 函数 mktime() 函数返回一个日期的 Unix 时间戳. 参数总是表示 GMT 日期,因此 is_dst 对结果没有影响. 参数可以从右到左依次空着,空着的 ...
- Java日期时间类及计算
1. Java中与日期相关的类 1.1 java.util包 类名 具体描述 Date Date对象算是JAVA中历史比较悠久的用于处理日期.时间相关的类了,但是随着版本的迭代演进,其中的众多方法都已 ...
- 日期减三个月oracle_Oracle如何对日期时间进行加减操作呢?
摘要: 下文讲述Oracle数据库对日期时间加上指定时间间隔,如下所示: 实现思路: 1.使用SYSDATE 加上 (加或减号) INTERVAL '数值' 单位 对日期时间进行相应的计算 2.使用T ...
- DELPHI日期时间函数(DateUtils单元)
原文出自:http://shao171.blog.163.com/blog/static/238397019201502011844293/ CompareDate 函数 比较两个日期时间值日期部分 ...
- 4字节 经纬度_Swift4 经纬度计算日出日落时间
import UIKitclassPGSun: NSObject {structSunriseset { var sunrise= "07:00" //日出 var sunset ...
- 两个时间计算毫秒在线_SPL 的日期时间函数(下)
4使用日期时间数据的计算 除了直接从日期时间数据中获取信息,在SPL中还可以使用日期时间类数据来执行各类计算. 最常用的有关日期的计算就是计算年龄: A1和B1中的数据如下: 在第2行用age() 函 ...
- 【转载】Python日期时间模块datetime详解与Python 日期时间的比较,计算实例代码
本文转载自脚本之家,源网址为:https://www.jb51.net/article/147429.htm 一.Python中日期时间模块datetime介绍 (一).datetime模块中包含如下 ...
最新文章
- 南邮CTF密码学write up
- C语言实现最简单的2048小游戏
- 中国程序员如何升职加薪,也许我们该学学印度人
- 201101shell脚本
- Spring boot @Transactional
- 星痕 轻松实现大屏数据可视化_数据美的历程有多难?大屏可视化轻松帮你实现...
- Windows下最轻量级Git克隆工具源码分享
- 代码和mysql服务器编码不一致_PL/SQL Developer教程:解决oracle服务器端和客户端字符编码不一致问题...
- python小课账号转卖_Python小课笔记--Python报错处理
- python处理access数据库教程_python是如何操作access数据库的,python 数据清洗
- Java代码审计: ClassLoader应用
- win10系统怎么改奇摩输入法_Win10系统如何切换输入法
- IE浏览器中调试各个IE版本方法
- html种颜色的三种不同表示方法,html网页背景颜色的代码是什么?颜色有几种表示方法?...
- Android 在一个APP里打开另一个APP
- 2021年中国计算机视觉产业及其重点企业分析(商汤科技VS旷视科技VS依图科技VS云从科技)[图]
- Android系统体系结构
- 治疗失眠的中医食疗方
- C++进程间通信 详解2
- hadoop心跳机制解析
热门文章
- matlab体会,Matlab心得体会
- 自然语言处理模型:bert 结构原理解析——attention+transformer(翻译自:Deconstructing BERT)
- 搭建mysql 主从复制The slave I/O thread stops because master and slave have equal MySQL server UUIDs
- python mac可以运行win不能运行_Pymssql程序可以在mac上运行,但不能在windows上运行...
- DX11 游戏开发笔记 (二) DX11 基础框架 上
- C++ OJ习题练习(九)定义哺乳动物类Mammal和Dog类
- 单核CPU和多核CPU的理解
- 移动最快apn服务器,中国移动修改APN为CMTDS提高4G网速
- android n ify三星,三星年度Android旗舰Galaxy S9包装盒曝光!
- 中国大学moocpython答案查询_中国大学MOOC(慕课)_Python编程基础_mooc题库答案查询...