根据观测时间,经纬度,求太阳高度角
出处:张闯, 吕东辉, 顼超静. 太阳实时位置计算及在图像光照方向中的应用[J]. 电子测量技术, 2010, 33(11):87-89.
算法描述如上,不过有两处错误:
L = (D+E/60)/15; %经度订正
omega = (TT-12)*15; %太阳时角
代码如下:
NF = 2010; %年份
Y = 3; %月
%R = 25; %日
D = 121; %观测处经度的度值
E = 0.4*60; %观测处经度的分度值
phi = 31;%观测地的纬度
%S=16; %观测时的时值
%F=32; %观测时的分值
R = [17 17 19 19 25 25 25];
S = [14 14 9 10 15 15 16];
F = [20 30 56 11 41 47 32];
%% 计算t
N0 = 79.6764+0.2422*(NF-1985)-floor((NF-1985)/4);
%积日N
A = NF/4;
B = A-floor(A);
C = 32.8;
if Y <= 2C = 30.6;
end
if (B == 0) && (Y > 2)C = 31.8;
end
N = floor(30.6*Y-C+0.5)+R;
%积日修正值dN
L = (D+E/60)/15; %经度订正
W = (S+F)/60; %时刻订正
dN = (W-L)/24;t = N-N0+dN
%t = (floor(30.6*Y-C+0.5)+R)+((S+F/60)-(D+E/60)*15)/24-(79.6764+0.2422*(NF-1985)-floor((NF-1985)/4));
%% 日角
theta = 2*pi*t/365.2422;
theta = theta*(pi/180);
%% 太阳赤纬
delta = 0.3723+23.2567*sin(theta)+0.1149*sin(2*theta)-0.1712*sin(3*theta)-0.758*cos(theta)+0.3656*cos(2*theta)+0.0201*cos(3*theta)%% 时差
Eq = 0.0028-1.9857*sin(theta)+9.9059*sin(2*theta)-7.0924*cos(theta)-0.6882*cos(2*theta);%% 太阳时角
LC = 4*(D-120);
TT = (S+F/60+LC/60+Eq/60);
omega = (TT-12)*15;%% 转换为弧度制
delta = delta*(pi/180);
phi = phi*(pi/180);
omega = omega*(pi/180);
%% 太阳高度角
hs = asind(sin(phi)*sin(delta)+cos(phi)*cos(delta).*cos(omega))
验证数据:
根据观测时间,经纬度,求太阳高度角相关推荐
- [转载]根据两点的经纬度求方位角和距离,等
转:http://blog.sina.com.cn/s/blog_658a93570101hynw.html 原文地址:根据两点的经纬度求方位角和距离,等作者:多乎哉不多也多亦不多乎实乃少也 最近自己 ...
- 两个经纬度偏角_[转载]根据两点的经纬度求方位角和距离,等
最近自己做的一个小东西要用到经纬度方面的计算,查遍中文网页见到的要么基本上是一帮惜字如金装大爷的"砖家",要么就是像贴膏药一样,啪,一大堆代码往上一贴,一点说明都没有,让人看不懂, ...
- 读取rinex的观测时间
读取观测值文件的观测时间,直接上码 package com.xxx.utils;import java.io.BufferedReader; import java.io.FileReader; im ...
- C#语言平面坐标计算,平面坐标转化经纬度,求高手给C# 方法,将下列坐标转化成经纬度...
平面坐标转化经纬度,求高手给C# 方法,将下列坐标转化成经纬度 平面坐标转化经纬度,求高手给C# 方法,将下列坐标转化成经纬度 53950.65966 98691.8174 53978.58712 9 ...
- 300年一遇日全食 洋山港观测时间最长
<!-- enpproperty <articleid>2980908</articleid><date>2009-06-03 09:09:26.0</ ...
- c语言计算日出日落时间_利用日期、经纬度求日出日落时间 C语言程序代码
展开全部 #define PI 3.1415926 #include #include using namespace std; int days_of_month_1[]={31,28,31,30, ...
- 根据经纬度求最近点的三种解法java实现
文章目录 1. geoHash 2. kdTree算法求最近点 3.暴力法 4.利用elasticsearch或者lucene 1. geoHash 首先对经纬度点进行编码: 利用geoHash把经纬 ...
- linux 时间怎么求差值_linux批量计算时间差脚本——awk
今天碰到一个时间差批量计算的问题,弄好后就写下来,方便积累和分享. 部分数据(一共有40多W条,gmail.csv)如上图所示,已经做过二次处理和排版. 第i行前两列时间记作A[i],后两列记作B[i ...
- java中调用System.currentTimeMillis()获取当前时间来求出时间差及程序执行的时间
package com.test;import java.util.Scanner; //String的连接1000次 class StringOperate{private String str;p ...
最新文章
- 盘点一下全网最有趣的代码注释
- 三百行python代码的项目_使用300行代码创建一个分布式系统
- 根据按钮的状态显示hover
- 具有链接资源的Spring RestTemplate
- 我的世界服务器设置op显示,我的世界设置op权限 | 手游网游页游攻略大全
- PhotoKit 照片库的管理-获取图像
- 理论基础 —— 树 —— 树的存储结构
- 解决Oracle 本地可以连接,远程不能连接问题
- zabbix配置飞信报警
- 缓存DNS服务器和主从DNS服务器的快速搭建详解——续
- avrdude: stk500_getsync(): not in sync: resp=0x00
- “win+PrtSc”图片没有保存到图片文件夹中的问题
- python关联规则挖掘_通过Python中的Apriori算法进行关联规则挖掘
- oracle 2的22次方,22的2次方(2的22的2次方等于多少)
- Spring Security - 21 记住我功能
- Ubuntu查看IP地址
- 计算机休眠拖动鼠标不起作用,电脑待机后按鼠标无法唤醒怎么办
- 拍照扫描怎么弄?你可以试一下这两个方法
- UEFI EDK2 遇到的问题集合
- 花火之声不闻于耳 [线段树]
热门文章
- 给IOS初学者及新手的建议
- oracle中删除级联方法,Oracle 外键级联删除
- 运维python要掌握到什么程度_《运》字意思读音、组词解释及笔画数 - 新华字典 - 911查询...
- python中function takes exactly_Python 'takes exactly 1 argument (2 given)' Python error
- 树莓派4B上安装OpenWrt/LEDE
- 【正点原子FPGA连载】第一章 ZYNQ简介 -摘自【正点原子】领航者ZYNQ之FPGA开发指南_V2.0
- 通俗讲解CDN是什么
- 海信android电视直播软件,2017年,海信电视看电视必装的四大直播软件
- SpringBoot项目实现短信发送接口开发
- SylixOS操作系统自学经历(一)