コード例 #1
0
def test_cooling_effect():
    assert (cooling_effect(tdb=25, tr=25, vr=0.5, rh=50, met=1,
                           clo=0.6)) == 2.05
    assert (cooling_effect(tdb=77,
                           tr=77,
                           vr=1.64,
                           rh=50,
                           met=1,
                           clo=0.6,
                           units="IP")) == 3.73
コード例 #2
0
def transform_view():
    # get the uploaded file
    request_file = request.files["data_file"]

    # check file
    if not request_file:
        return "No file selected"
    if not allowed_file(request_file.filename):
        return "The file format is not allowed. Please upload a csv"

    # read file
    csv_file = TextIOWrapper(request_file, encoding="utf-8")
    df = pd.read_csv(csv_file)
    fields = {
        "Air temperature": "ta",
        "MRT": "tr",
        "Air velocity": "vel",
        "Relative humidity": "rh",
        "Metabolic rate": "met",
        "Clothing level": "clo",
    }

    si_unit = any([
        True if
        ("Air temperature" in x) and (x.split(" [")[1] == "C]") else False
        for x in df.columns
    ])
    df.columns = [
        fields[x.split(" [")[0]] if " [" in x else x for x in df.columns
    ]

    df["clo_dynamic"] = df.apply(
        lambda row: clo_dynamic(clo=row["clo"], met=row["met"]), axis=1)

    results = []
    ta = df['ta'].values
    tr = df['tr'].values
    vel = df['vel'].values
    rh = df['rh'].values
    met = df['met'].values
    clo = df['clo'].values

    for ix in range(df.shape[0]):
        if si_unit:
            units = "SI"
            _vr = v_relative(vel[ix], met[ix])
        else:
            units = "IP"
            _vr = v_relative(vel[ix] / 60 * 0.3048, met[ix]) * 3.28084

        try:
            _set = set_tmp(ta[ix],
                           tr[ix],
                           _vr,
                           rh[ix],
                           met[ix],
                           clo[ix],
                           units=units)
        except:
            _set = ""
        try:
            _ce = cooling_effect(ta[ix],
                                 tr[ix],
                                 _vr,
                                 rh[ix],
                                 met[ix],
                                 clo[ix],
                                 units=units)
        except:
            _ce = ""
        try:
            _pmv_ppd = pmv_ppd(ta[ix],
                               tr[ix],
                               _vr,
                               rh[ix],
                               met[ix],
                               clo[ix],
                               standard="ashrae",
                               units=units)
            _pmv = _pmv_ppd['pmv']
            _ppd = _pmv_ppd['ppd']
        except:
            _pmv, _ppd = ["", ""]
        results.append({
            "pmv": _pmv,
            "ppd": _ppd,
            "ce": _ce,
            "vr": _vr,
            "set": _set
        })

    # split the pmv column in two since currently contains both pmv and ppd values
    df_ = pd.DataFrame(results)
    df = pd.concat([df, df_], axis=1, sort=False)
    df["LEED compliance"] = [True if x < 10 else False for x in df.ppd]

    resp = make_response(df.to_csv(index=False))
    resp.headers["Content-Disposition"] = "attachment; filename=export.csv"
    resp.headers["Content-Type"] = "text/csv"
    return resp
コード例 #3
0
def test_cooling_effect():
    assert (cooling_effect(tdb=25, tr=25, vr=0.05, rh=50, met=1, clo=0.6)) == 0
    assert (cooling_effect(tdb=25, tr=25, vr=0.5, rh=50, met=1,
                           clo=0.6)) == 2.11
    assert (cooling_effect(tdb=27, tr=25, vr=0.5, rh=50, met=1,
                           clo=0.6)) == 1.78
    assert (cooling_effect(tdb=29, tr=25, vr=0.5, rh=50, met=1,
                           clo=0.6)) == 1.57
    assert (cooling_effect(tdb=31, tr=25, vr=0.5, rh=50, met=1,
                           clo=0.6)) == 1.36
    assert (cooling_effect(tdb=25, tr=27, vr=0.5, rh=50, met=1,
                           clo=0.6)) == 2.38
    assert (cooling_effect(tdb=25, tr=29, vr=0.5, rh=50, met=1,
                           clo=0.6)) == 2.74
    assert (cooling_effect(tdb=25, tr=25, vr=0.2, rh=50, met=1,
                           clo=0.6)) == 0.64
    assert (cooling_effect(tdb=25, tr=25, vr=0.8, rh=50, met=1,
                           clo=0.6)) == 2.85
    assert (cooling_effect(tdb=25, tr=25, vr=0.0, rh=50, met=1, clo=0.6)) == 0
    assert (cooling_effect(tdb=25, tr=25, vr=0.5, rh=60, met=1,
                           clo=0.6)) == 2.07
    assert (cooling_effect(tdb=25, tr=25, vr=0.5, rh=80, met=1,
                           clo=0.6)) == 2.0
    assert (cooling_effect(tdb=25, tr=25, vr=0.5, rh=20, met=1,
                           clo=0.6)) == 2.23
    assert (cooling_effect(tdb=25, tr=25, vr=0.5, rh=60, met=1.3,
                           clo=0.6)) == 2.76
    assert (cooling_effect(tdb=25, tr=25, vr=0.5, rh=60, met=1.6,
                           clo=0.6)) == 3.42
    assert (cooling_effect(tdb=25, tr=25, vr=0.5, rh=60, met=1,
                           clo=0.3)) == 2.34
    assert (cooling_effect(tdb=25, tr=25, vr=0.5, rh=60, met=1, clo=1)) == 2.0

    assert (cooling_effect(tdb=77,
                           tr=77,
                           vr=1.64,
                           rh=50,
                           met=1,
                           clo=0.6,
                           units="IP")) == 3.84