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
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
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