惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

阮一峰的网络日志
阮一峰的网络日志
D
Darknet – Hacking Tools, Hacker News & Cyber Security
S
Schneier on Security
The Last Watchdog
The Last Watchdog
Cyberwarzone
Cyberwarzone
S
Securelist
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
C
Cyber Attacks, Cyber Crime and Cyber Security
L
Lohrmann on Cybersecurity
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
博客园 - 司徒正美
The Cloudflare Blog
V
V2EX
博客园_首页
博客园 - 聂微东
Vercel News
Vercel News
人人都是产品经理
人人都是产品经理
G
GRAHAM CLULEY
T
Tenable Blog
Last Week in AI
Last Week in AI
Y
Y Combinator Blog
L
LINUX DO - 最新话题
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
SecWiki News
SecWiki News
博客园 - 三生石上(FineUI控件)
S
Secure Thoughts
N
News | PayPal Newsroom
T
The Blog of Author Tim Ferriss
The GitHub Blog
The GitHub Blog
T
Troy Hunt's Blog
博客园 - 【当耐特】
Forbes - Security
Forbes - Security
H
Hacker News: Front Page
A
About on SuperTechFans
B
Blog RSS Feed
Engineering at Meta
Engineering at Meta
MongoDB | Blog
MongoDB | Blog
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
罗磊的独立博客
D
DataBreaches.Net
P
Privacy & Cybersecurity Law Blog
Schneier on Security
Schneier on Security
Application and Cybersecurity Blog
Application and Cybersecurity Blog
Google DeepMind News
Google DeepMind News
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Jina AI
Jina AI
D
Docker
P
Proofpoint News Feed

博客园 - 莫小龙

uniapp之plus.downloader.createDownload下载文件传参 谷歌之将网页保存为图片 elementui之table中相同数据的单元格合并 krpano之使用教程 threejs之灯光不跟随OrbitControls控制器旋转 threejs之将张纹理图片组成材质组 canvas之修改Base64图片中不透明部分的颜色 threejs之将PlaneGeometry转换为BufferGeometry threejs之利用shape通过线绘制面和体 threejs之添加渐变背景 threejs之创建发光墙体 paperjs之fitBounds适应区域前后屏幕坐标和输入坐标的转换 arcmap之通过点数据获取等值线 uniapp之安卓APP打开百度地图、高德地图APP openlayer之添加带箭头的线 geoserver之图片图标样式 SHP转WKT文件工具 openlayers之geoserver的wms图层mysql数据源数据修改后更新问题 Uniapp之安卓签名证书(.keystore)生成
通过日照时数计算每天RAD(太阳辐射)值
莫小龙 · 2025-02-24 · via 博客园 - 莫小龙

通过日照时数计算每天RAD(太阳辐射)值

代码方法:

 // 计算RAD
    /*
        参数: 
            ssd(日照时数)= 7.4
            year(年份) = 1951
            moon(月) = 1
            sun(日)= 12
            lat(纬度)= 35.583333
    */
    function getRAD(ssd, year, moon, sun, lat) {
        // 日序数
        let moonNum = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
        let sunNum = 0
        moonNum.forEach((e, i) => {
            if (i < moon-1) {
                sunNum += e
            }
        })
        sunNum += sun
        // 判断闰年 2月加一天
        if (((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) && moon > 2) {
            sunNum += 1
        }
        // 一年天数
        let yearNum = 365
        // 判断闰年
        if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) {
            yearNum = 366
        }
        let jiao = 2 * Math.PI * (sunNum - 1) / yearNum
        let j2 = jiao * 2
        let j3 = jiao * 3
        let a1 = 0.399912 * Math.cos(jiao)
        let a2 = 0.070257 * Math.sin(jiao)
        let a3 = 0.006758 * Math.cos(j2)
        let a4 = 0.000907 * Math.sin(j2)
        let a5 = 0.002697 * Math.cos(j3)
        let a6 = 0.00148 * Math.sin(j3)
        let sita1 = 180 / Math.PI
        let sita2 = 0.006918 - a1 + a2 - a3 + a4 - a5 + a6
        let sita = sita1 * sita2
        let tansita = Math.tan(sita * Math.PI / 180)
        let tanlat = Math.tan(lat * Math.PI / 180)
        let ws1 = -tansita * tanlat
        let ws = Math.acos(ws1) * (180 / Math.PI)
        let sl = 2 / 15 * ws
        let e0 = 1.00011 + 0.034221 * Math.cos(jiao) + 0.00128 * Math.sin(jiao) + 0.000719 * Math.cos(j2) + 0.000077 * Math.sin(j2)
        let pi1 = 1 / Math.PI
        let gsc = 118.108
        let qq1 = Math.cos(lat * Math.PI / 180)
        let qq2 = Math.cos(sita * Math.PI / 180)
        let qq3 = Math.sin(ws * Math.PI / 180)
        let h01 = qq1 * qq2 * qq3
        let qq21 = Math.PI / 180
        let qq22 = Math.sin(lat * Math.PI / 180)
        let qq23 = Math.sin(sita * Math.PI / 180)
        let h02 = qq21 * qq22 * qq23 * ws
        let h0 = e0 * pi1 * gsc * (h01 + h02)
        let h1 = h0 * 0.8

        let RAD = h1 * (0.248 + 0.752 * ssd / sl)
        return RAD
    }

    console.log(getRAD(7.4, 2005, 3, 1, 35.583333))

输出RAD的值,单位kj/mol

参考文献:

逐日太阳辐射的模拟计算.pdf       @顾

钻研不易,转载请注明出处。。。。。。