执行ASHRAE Fundamentals 2009中的方程式

pyclearsk的Python项目详细描述


皮克利斯基

https://img.shields.io/pypi/v/pyclearsky.svghttps://img.shields.io/travis/santoshphilip/pyclearsky.svgDocumentation Status

用python实现ashrae Fundamentals2009中晴空万里的公式

功能

实施以下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行附近)读取taubtaud值:

- 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

如果你需要计算晴空辐射,那就是你要做的。

学分

这个包是用Cookiecutteraudreyr/cookiecutter-pypackage项目模板创建的。

历史记录

1.0.0(2018-04-25)

  • 添加1.0版的文档

0.1.0(2018-03-23)

  • pypi上的第一个版本。

初始编码(2013年)

  • 所有的代码都在2013年完成,但还没有打包发布。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java在servlet中更改后自动重新加载属性文件   java构建路径问题学习指南   java使用模拟的spring服务在Jersey API上运行单元测试的正确方法是什么?   java索引将Jlabel创建为2D Jlabel数组   我可以用Java扩展Kotlin委托类吗?   java关闭MQ连接   java如何配置过滤器在servlet处理后工作?   如何在Intellij中导入另一个java项目包并使用它   java不使用线程,但使用ArrayList得到错误的结果,使用Vector得到正确的结果   java Unity3D如何向AndroidManifest添加权限。安卓插件的xml   Java中的字符串和开关大小写   Java数组和ArrayList   java如何使用JAXRS客户端通过GET调用发送有效负载?   JSch如何使用PuTTY私钥   在java中创建带块的构造函数   java使用相互SSL安全代理请求   java CommonExec:在系统路径上执行程序?   java如何设置线边框的角半径?   java是否支持SpringBoot2.2.4缓存实现