执行ASHRAE Fundamentals 2009中的方程式
pyclearsk的Python项目详细描述
皮克利斯基
用python实现ashrae Fundamentals2009中晴空万里的公式
- 免费软件:Mozilla公共许可2.0版
- 文档:https://pyclearsky.readthedocs.io。
功能
实施以下ASHRAE Fundamentals 2009第14章的公式
- 公式(4)摘自第14.7页
- 公式(16)摘自第14.9页
- 公式(17)摘自第14.9页
- 公式(18)摘自第14.9页
- 公式(19)摘自第14.9页
- 公式(20)摘自第14.9页
PyClearsky的目的
pyclearsky做什么?
- pyclearsky计算晴朗天空的辐射。
- 天气文件并不总是包含这些数据,因为它们包括云量
为什么要计算晴朗天空的辐射?
- 天气文件中的云层并不总是反映现实。
- 有时您希望模拟一个exteme条件,并假设没有云覆盖
- 当您估计来自水体或相邻建筑物的反射阳光时,可能需要这样做
- 您可能希望在没有云层覆盖的情况下计算此值
- pyclearsky会让你这么做的
pyclearsky是如何计算的?
- ASHRAE Fundamentals 2009的第14章描述了计算晴空辐射的方程式
- latest weather files附带三种文件类型。它们是*.epw,*.ddy和*.stat
- 进行此计算所需的原始数据在天气文件中。特别是在*.stat文件中
a pyclesky演示
让我们使用凤凰城AZ气象文件作为一种探索pyclearsky的方式。让我们看看*.stat文件。*.stat文件有以下行(在第37行附近):
- Monthly Solar Irradiance Wh/m² (noon on 21st of month) ib (beam) 915 937 938 920 870 827 727 750 807 833 891 907 id (diffuse) 89 102 121 141 170 194 250 220 171 140 92 81 ib = Clear Sky Noon Beam Normal Irradiance on 21st Day id = Clear Sky Noon Diffuse Horizontal Irradiance on 21st Day
这是每月21日晴空辐射。让我们尝试使用pyclearsky来计算相同的结果:
from pyclearsky import clearskyrad fname = "./original_code/weatherfiles/USA_AZ_Phoenix/USA_AZ_Phoenix.722780_TMY2.stat" fhandle = open(fname, 'r') tau = clearskyrad.tau(fhandle) taub, taud = tau print taub [0.306, 0.317, 0.339, 0.366, 0.419, 0.465, 0.588, 0.547, 0.456, 0.393, 0.318, 0.298] print taud [0.306, 0.317, 0.339, 0.366, 0.419, 0.465, 0.588, 0.547, 0.456, 0.393, 0.318, 0.298]
clearskyrad.tau(fhandle)从*.stat文件(第28行附近)读取taub和taud值:
- Displaying Monthly Design Conditions "Climate Design Data 2009 ASHRAE Handbook" - Monthly Optical Sky Depth Beam (taub) and Diffuse (taud) Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec taub (beam) 0.306 0.317 0.339 0.366 0.419 0.465 0.588 0.547 0.456 0.393 0.318 0.298 taud (diffuse) 2.534 2.463 2.351 2.229 2.044 1.91 1.653 1.763 1.978 2.116 2.487 2.592 taub = Clear Sky Optical Depth for Beam Irradiance taud = Clear Sky Optical Depth for Diffuse Irradiance
为了计算辐射,我们需要太阳的高度。让我们找出每个月21日中午太阳的高度。我们可以访问网站https://www.esrl.noaa.gov/gmd/grad/solcalc/azel.html
alts = {1:35.97, 2:45.09, 3:55.99, 4:67.74, 5:75.74, 6:78.02, 7:74.83, 8:67.34, 9:56.7, 10:45.59, 11:36.46, 12:32.8} # month:altitude # calculated from https://www.esrl.noaa.gov/gmd/grad/solcalc/azel.html
现在我们可以计算晴空辐射了。从直接法向开始
from datetime import datetime for month in range(1, 13): print clearskyrad.directnormal(taub[month-1], taud[month-1], alts[month], thedate=datetime(2018, month, 21))
直接法向结果是
912.281856828 936.707585623 937.22435687 920.279543442 869.489603714 824.956794153 723.86104248 748.144302441 808.247171807 837.874397967 893.090953721 904.04138393
对于水平漫反射
for month in range(1, 13): print clearskyrad.diffusehorizontal(taub[month-1], taud[month-1], alts[month], thedate=datetime(2018, month, 21))
漫射水平结果是
88.3239665087 102.034946163 120.595369428 140.632493558 170.230386996 193.761516975 248.413566492 219.237360391 171.24339381 140.903362551 92.1795686764 80.6806617141
与*.stat文件中的值足够接近
- Monthly Solar Irradiance Wh/m² (noon on 21st of month) ib (beam) 915 937 938 920 870 827 727 750 807 833 891 907 id (diffuse) 89 102 121 141 170 194 250 220 171 140 92 81 ib = Clear Sky Noon Beam Normal Irradiance on 21st Day id = Clear Sky Noon Diffuse Horizontal Irradiance on 21st Day
如果你需要计算晴空辐射,那就是你要做的。
学分
这个包是用Cookiecutter和audreyr/cookiecutter-pypackage项目模板创建的。
历史记录
1.0.0(2018-04-25)
- 添加1.0版的文档
0.1.0(2018-03-23)
- pypi上的第一个版本。
初始编码(2013年)
- 所有的代码都在2013年完成,但还没有打包发布。