计算太阳能的软件包,你可以从建筑表面得到太阳能集热器

solarhouse的Python项目详细描述


Image tests

DocumentationLicense

关于

这个项目可以让你计算你可以收集多少太阳能在你的房子表面,它改变了取暖季节。

为了使它,你需要加载网格文件(.stl或.obj),它代表你的房子的形式,并指定房子的一些参数。 然后开始计算,得到室内各元素的温度图。在

为了计算太阳房内不同倾角和方位角的房屋各面太阳能利用率PVLIB 这个库使得在计算功率时可以考虑天气因素。在

所有的热过程都是通过模型计算出来的。这里描述这些模型:Thermal theory

代入房屋的不同参数,可以对每一种配置进行计算,选择最佳的参数组合,为采暖节能。在

版本

0.0.4节

文件

Documentation

依赖关系

numpy
scipy
trimesh
pvlib
pandas
matplotlib
mpld3
shapely
jinja2
netCDF4
siphon
tables

安装和运行

来自pypi:

^{pr2}$

来自github:

$ git clone https://github.com/yaricp/py-solarhouse.git
$ cd py-solarhouse
$./install.sh

用法:

安装包之后,您可以在代码中使用它。在

首先需要创建网格文件来表示房屋的形状。在

它可以在Free SketchUp中创建

它也可以创建在任何三维编辑器,可以形成文件.obj和.stl

然后把这个网格文件放到.files/文件夹中。在

文件主.py公司名称:

import os

import uuid

import settings
from solarhouse.building import Building
from solarhouse.calculation import Calculation
import solarhouse.export as export


def main():
    calc = Calculation(
        tz=settings.TZ,
        geo=settings.GEO,
        building=Building(
            mesh_file=settings.PATH_FILE_OBJECT,
            geo=settings.GEO,
            wall_material=settings.WALL_MATERIAL,
            wall_thickness=settings.WALL_THICKNESS,
            start_temp_in=settings.TEMPERATURE_START,
            power_heat_inside=settings.POWER_HEAT_INSIDE,
            efficiency=settings.EFF,
            heat_accumulator={
                'volume': 0.032,
                'material': 'water',
            },
            windows={
                'area': 0.3,
                'therm_r': 5.0,
            },
            floor={
                'area': 1.0,
                'material': 'adobe',
                'thickness': 0.2,
                't_out': 4.0,
            },
        ),
                    )
    data_frame = calc.compute(date=22, month=12, year=2019, with_weather=False)
    calc_id = str(uuid.uuid4())
    output_dir = os.path.join(settings.PATH_OUTPUT, calc_id)
    os.makedirs(output_dir, exist_ok=True)
    csv_file_path = export.as_file(data_frame, 'csv', output_dir)
    export.as_html(data_frame, output_dir)

if __name__ == "__main__":
    main()

文件设置.py公司名称:

import os
import pathlib


_this_dir = pathlib.Path(__file__).parent.absolute()

PATH_FILE_OBJECT = os.path.join(_this_dir, 'files/cube.obj')
TIME_TICK = 1    #1 hours
WALL_THICKNESS = 0.3
TEMPERATURE_START = 20  #celcium
POWER_HEAT_INSIDE = 0   #kWtt
MASS_INSIDE = 500   #kg
PATH_FILE_TEMPERATURE_OUTSIDE_FILE = os.path.join(_this_dir, 'files/temp_table.csv')
PATH_EXPORT_THERMO_RESULT_FILE = os.path.join(_this_dir, 'files/results.csv')
SPACE_POWER_ON_METER = 1000
WALL_MATERIAL = 'adobe'
EFF = 75        #in percents
EFF_ANG = 85.0
GEO = {
    'latitude': 54.841426,
    'longitude': 83.264479,
}
TZ = 'Asia/Novosibirsk'
COUNT_FACES_FOR_PARALLEL_CALC = 1000
PATH_OUTPUT = os.path.join(_this_dir, 'output')

房子的所有参数(网格、墙的厚度、墙的材料等)都设置在文件中设置.py在

之后,您可以开始计算:

$python3 main.py

结果,您将在文件夹中获得两个文件,输出为/<;calc_id>;:数据.csv以及绘图.html在

作者

雅罗斯拉夫·皮萨雷夫 yaricp@gmail.com

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

推荐PyPI第三方库


热门话题
我可以用C++代码使用java代码吗?   java使用JSR303在派生类中提供更具体的约束   java在这个查找唯一路径数算法中我做错了什么?   java如何为2个不同的服务提供商使用2个不同的SSL证书?   java在Gridview上绘制文本   java使用连接for循环构建字符串名   java StringBuilder拆分无法处理某些文件   java事件关注EditText   Java Web Start“找不到URL的缓存资源”   java程序从命令行运行的速度比在Eclipse中慢   java为什么HttpServletRequest会截断#字符上的url输入?   java自定义折叠工具栏平滑标题大小调整   使用Mockito对安卓 java中调用另一个静态函数的函数进行单元测试   http在java客户机中使用cachecontrol头   java如何使用。是否使用Delimiter从输入文件中排除标点符号和数字?   使用上下文作为参数/参数的java   java更有效地从Jar中提取文件   java为多个JButton提供相同的actionListener