当前位置: 首页 > news >正文

太阳方向角/高度角/赤纬角/太阳时角/真平太阳时差/理论计算方法(matlab)

1. 理论学习

方向角,高度角计算公式 


 

 如图,直观地描述了方位角(圆盘上红色夹角)与高度角(黄色线与圆盘的夹角)

赤纬角计算公式 


 

 地球赤道平面与太阳和地球中心的连线之间的夹角  如图所示,23度那个.

时角计算公式


     太阳时角是指日面中心的时角,即从观测点天球子午圈沿天赤道量至太阳所在时圈的角距离。   太阳时角的正负表示太阳相对于观测点子午线的位置:正值表示太阳位于子午线西侧,负值则表示太阳位于子午线东侧。

 真太阳时与平太阳时的时差公式


n0的计算公式为: 

2.参考代码(时间支持向量运算)

clc;
clear;%% 设置经纬度和当地日期(下面时间参数支持向量运算)
lat   = 30;       % 北纬(单位:度)
lon   = 120;      % 东经(单位:度)
year  = 2024;     % 年份(单位:年)
month = 6;        % 月份(单位:月)
day   = 1;        % 日期(单位:天)
hour  = 12;       % 小时(单位:24h)
minute= 0;        % 分钟(单位:分钟)%% 输出结果规定
% 太阳高度角输出结果(单位:度)
% 地面0 --> 90天空% 太阳方位角输出结果(单位:度)
%        南
%        ^
%       180
% 东<--90 270-->西
%        0
%        v
%        北%% 计算今年的累积天数sumdays (单位:天)
date1_num = datenum(year, 1, 1);       % 第一个日期的datenum
date2_num = datenum(year, month, day); % 第二个日期的datenum
% 计算两个日期之间的差值
sumdays   = date2_num-date1_num;%% 计算太阳赤纬角sun_declinatio(单位:度)
%lat_rad为所在地的维度(弧度制)
lat_rad = deg2rad(lat);
%Bourges太阳赤纬角算法
n0=78.801+(0.2422*(year-1969))-round(0.25*(year-1969));
%b为日角(单位:幅度)
b=2*pi*(double(sumdays)-n0-1)/365.2422;
% sun_declinatio为太阳赤纬角(角度制)
sun_declinatio =0.3723...+23.2567*sin(b)...+0.1149* sin(2.0*b)...-0.1712* sin(3.0*b)...-0.758*  cos(b)...+0.3656* cos(2.0*b)...+0.02010*cos(3.0*b);%转为(弧度制)
sun_declinatio_rad =deg2rad(sun_declinatio);%% 计算太阳太阳时角ts (单位:幅度)
%Ts真太阳时与平太阳时的时差
Ts=0.0028-1.9587.*sin(b)+9.9059.*sin(2.*b)-7.0924.*cos(b)-0.6882.*cos(2.*b);
%Sd为平太阳时,为当地时间(注意这里的当地时间修正)
Sd = hour  + (minute- (120.0 - lon) * 4.0 ) / 60.0;
%st为真太阳时=真太阳时时差+平太阳
st=Sd+Ts/60;
%ts为所在地的太阳时角
ts = (st - 12.0) * pi / 12.0;%% 计算太阳高度角Sun_altitude_ra(单位:度)
Sun_altitude_rad = asin(sin(sun_declinatio_rad) .* sin(lat_rad) + cos(sun_declinatio_rad) .* cos(lat_rad) .* cos(ts));
%转为度
Sun_altitude_angle=rad2deg(Sun_altitude_rad);%% 计算太阳方位角Sun_azimuth_deg(单位:度)
Sun_azimuth_rad = acos((sin(Sun_altitude_rad) .* sin(lat_rad) - sin(sun_declinatio_rad)) ./ (cos(Sun_altitude_rad) .* cos(lat_rad)));
%转为度
Sun_azimuth_deg=rad2deg(Sun_azimuth_rad);
% 此时方位角是以南为零方位角,转换为以北为零方位角
Sun_azimuth_deg=180-Sun_azimuth_deg;
%进行角度范围转换
if ts > 0Sun_azimuth_deg =360-Sun_azimuth_deg;
end%% 输出结果
disp("太阳高度角:");
Sun_altitude_angle'
disp("太阳方位角:");
Sun_azimuth_deg'

3.参考论文

4.参考链接

【公式推导+matlab代码】太阳位置(太阳方位角和太阳高度角)计算_太阳方位角计算公式详解-CSDN博客

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Vue中的this.$emit()方法详解【父子组件传值常用】
  • 影刀上传文件api
  • 08:导数-导数的定义及几何意义
  • 《深度学习》OpenCV 计算机视觉入门 (上篇)
  • P(查准率) R(查全率) AP mAP最通俗准确的讲解
  • Django使用视图动态输出CSV以及PDF的操作详解例子解析
  • sheng的学习笔记-AI-生成式方法
  • 【PyQt6 应用程序】QTDesigner生成ui文件转成py源码并执行
  • 编译报错declaration may not appear after executable statement in block
  • 图数据库查询语言 cypher 与 memgraph
  • vscode附着调试
  • Day47 | 110.字符串接龙 105.有向图的完全可达性 106.岛屿的周长
  • openGuass——一般元命令
  • Vue JS执行机制和nextTick
  • Python算法工程师面试整理-微积分
  • JS 中的深拷贝与浅拷贝
  • 11111111
  • Java IO学习笔记一
  • Java 实战开发之spring、logback配置及chrome开发神器(六)
  • JavaScript标准库系列——Math对象和Date对象(二)
  • JavaScript实现分页效果
  • mysql 5.6 原生Online DDL解析
  • Python中eval与exec的使用及区别
  • vue2.0一起在懵逼的海洋里越陷越深(四)
  • vue从创建到完整的饿了么(18)购物车详细信息的展示与删除
  • web标准化(下)
  • 欢迎参加第二届中国游戏开发者大会
  • 巧用 TypeScript (一)
  • 如何编写一个可升级的智能合约
  • 数据库写操作弃用“SELECT ... FOR UPDATE”解决方案
  • 一、python与pycharm的安装
  • 《TCP IP 详解卷1:协议》阅读笔记 - 第六章
  • 7行Python代码的人脸识别
  • scrapy中间件源码分析及常用中间件大全
  • ​​​​​​​ubuntu16.04 fastreid训练过程
  • (5)STL算法之复制
  • (C#)Windows Shell 外壳编程系列9 - QueryInfo 扩展提示
  • (pytorch进阶之路)CLIP模型 实现图像多模态检索任务
  • (顶刊)一个基于分类代理模型的超多目标优化算法
  • (翻译)terry crowley: 写给程序员
  • (附源码)spring boot北京冬奥会志愿者报名系统 毕业设计 150947
  • (汇总)os模块以及shutil模块对文件的操作
  • (力扣)1314.矩阵区域和
  • (心得)获取一个数二进制序列中所有的偶数位和奇数位, 分别输出二进制序列。
  • (学习日记)2024.03.25:UCOSIII第二十二节:系统启动流程详解
  • (轉貼)《OOD启思录》:61条面向对象设计的经验原则 (OO)
  • .NET Compact Framework 3.5 支持 WCF 的子集
  • .net framework 4.8 开发windows系统服务
  • .Net MVC4 上传大文件,并保存表单
  • .net 连接达梦数据库开发环境部署
  • .NET/ASP.NETMVC 大型站点架构设计—迁移Model元数据设置项(自定义元数据提供程序)...
  • .NET/C# 检测电脑上安装的 .NET Framework 的版本
  • .NET基础篇——反射的奥妙
  • .pyc文件是什么?
  • @Bean注解详解