Расчёт температуры мокрого термометра

Пример использования функций из модуля wetairprops

In [1]:
from wetairprops import calc_t_wb, calc_RH, calc_d, calc_I
In [2]:
t = 30 # температура воздуха (сухой термометр), C
RH = 60 #относительная влажность, %
p = 101325 * 0.9 # пониженное атмосферное давление, Па
In [3]:
#Расчёт температуры влажного термометра (С) по температуре (С), относительной влажности ([0; 1] или [0; 100])
#и давлению воздуха (Па)
t_wb = calc_t_wb(t, RH, p)
t_wb
Out[3]:
23.574534208043993
In [4]:
#Расчёт относительной влажности ([0.; 1.]) по температуре (сухого термометра) (С), 
#температуре мокрого термометра (С) и давлению воздуха (Па)
calc_RH(t, t_wb, p)
Out[4]:
0.599999999999975
In [5]:
#Расчет влагосодержания ([г водяного пара]/[кг сухого воздуха]) по температуре, 
#относительной влажностии и давлению воздуха
calc_d(t, RH, p)
Out[5]:
17.850135178349884
In [6]:
#Расчёт энтальпии (Дж/кг) по температуре, относительной влажности и давлению воздуха
calc_I(t, RH, p)
Out[6]:
75736.88667308199
In [7]:
t = 60
t_wb = 20
calc_I(t_wb, 1.), calc_I(t, 0.)
Out[7]:
(57314.717443007336, 60288.0)
In [8]:
calc_t_wb(50, 0)
Out[8]:
17.820664360667962
In [9]:
calc_RH(1e-5,1e-5)
Out[9]:
1.0

Для проверки корректности работы функции calc_RH(t, t_wb, p) сформируем психрометрическую таблицу, подобную представленной ниже:

title Источник: https://multiurok.ru/index.php/files/laboratornaia-rabota-3-8-klass-izmerenie-vlazhnost.html

In [10]:
#p = 101325 Па - нормальное атмосферное давление (значение по умолчанию, поэтому при вызове функций параметр p не передаётся)
ts = list(range(0, 31, 2)) #ряд температур
dt_wts = list(range(11)) #ряд разностей температур
def calc_table(ts, dt_wts):
    #Оформим расчёт таблицы в виде функции, т.к. бьудем создвать две таблицы
    RHs = [] #Двумерный массив значений относительной влажности
    for i in range(len(ts)):
        RHs.append([])  #создаём новую строку массива
        for j in range(len(dt_wts)):
            try:
                RHs[i].append(int(round(calc_RH(ts[i], ts[i] - dt_wts[j] ) * 100, 0))) #добавляем элемент массива в строку
            except ValueError: #Если входные значения находятся вне допустимого диапазона, ставим прочерк
                RHs[i].append('-')
    return RHs
RHs = calc_table(ts, dt_wts)
In [11]:
#Формируем психрометрическую таблицу
import pandas as pd
table = pd.DataFrame(RHs, columns = dt_wts, index = ts )
table
Out[11]:
0 1 2 3 4 5 6 7 8 9 10
0 100 - - - - - - - - - -
2 100 84 68 - - - - - - - -
4 100 85 71 57 43 - - - - - -
6 100 86 73 60 48 35 24 - - - -
8 100 87 75 63 52 40 29 19 8 - -
10 100 88 77 66 55 45 35 25 15 6 -
12 100 89 78 68 58 48 39 30 21 12 4
14 100 90 80 70 61 52 43 34 26 18 10
16 100 90 81 72 63 55 46 38 31 23 16
18 100 91 82 73 65 57 49 42 35 28 21
20 100 91 83 75 67 59 52 45 38 31 25
22 100 92 84 76 68 61 54 48 41 35 29
24 100 92 84 77 70 63 56 50 44 38 32
26 100 92 85 78 71 65 58 52 46 41 35
28 100 93 86 79 72 66 60 54 48 43 38
30 100 93 86 80 73 67 61 56 50 45 40
In [12]:
#Сформируем расширенную психрометрическую таблицу для сохранения в файл
ts = list(range(0, 61))
dt_wts = list(range(40))
#Воспользуемся ранее написанной функцией
RHs = calc_table(ts, dt_wts)
table = pd.DataFrame(RHs, columns = dt_wts, index = ts )
table
Out[12]:
0 1 2 3 4 5 6 7 8 9 ... 30 31 32 33 34 35 36 37 38 39
0 100 - - - - - - - - - ... - - - - - - - - - -
1 100 83 - - - - - - - - ... - - - - - - - - - -
2 100 84 68 - - - - - - - ... - - - - - - - - - -
3 100 85 69 55 - - - - - - ... - - - - - - - - - -
4 100 85 71 57 43 - - - - - ... - - - - - - - - - -
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
56 100 95 90 86 81 77 73 69 65 61 ... 9 7 6 4 3 2 0 - - -
57 100 95 90 86 81 77 73 69 65 62 ... 10 8 7 5 4 3 1 0 - -
58 100 95 90 86 81 77 73 69 65 62 ... 11 9 8 6 5 3 2 1 - -
59 100 95 90 86 82 77 73 70 66 62 ... 11 10 8 7 5 4 3 2 0 -
60 100 95 91 86 82 78 74 70 66 63 ... 12 10 9 8 6 5 4 2 1 0

61 rows × 40 columns

In [13]:
#Сохраняем таблицу в html файл 
table.to_html('Психрометрическая_таблица.html')
#или в формате csv
#table.to_csv('Психрометрическая_таблица.csv')