参考表 我想使用此表对两个电压信号进行插值,并将它们转换为相应的温度值。这不是我要执行的直接双线性插值。
例如: T1: 1.721 V T2: 4.025 V
第 1 步:在内部温度 Ch1 上插值 T1 我最终得到134.375°C。
步骤2:从T2开始,确定Referenz下的期望值(250-300°C之间)的可能行,T1位于色谱柱上的125°C和140°C之间。 这给了我以下网格: 3.608 3.616 4.462 4.468 现在,我想通过插值(最大值和最小值)计算相应的电压。我最终得到 3.613 V 和 4.46575 V。
步骤3:使用步骤2中计算的两个电压值,沿行插值,即在250-300°C和3.613 V -4.46575 V之间,以°C为单位找到对应于T2 = 4.025 V的温度。
有没有办法通过直接读取这样的表作为数据框来做到这一点?
我已经能够使用索引和匹配在 excel 上执行此操作,并且更长的方法是从表中连续读取。例如,像这样的代码来实现步骤 1:
internal=ref_table.loc[['Internal Temp. (Ch1)'],:].squeeze()
y=[20,85,100,125,140,150,160,170,180]
tit_p1=[]
for i in raw_data['T1 Intern']:
j=np.interp(i,internal,y)
tit_p1.append(j)
print(tit_p1)
但是,我有很多表要处理,如果我可以通过将该表用作网格来以某种方式将电压值转换为温度,那会容易得多。
任何帮助将不胜感激!谢谢!
这对我有用!我正在为任何可能试图做类似事情的人发布答案。
import numpy as np
import pandas as pd
ref_table=pd.read_csv('Voltage Temp conversion_1.csv',encoding='ISO-8859-1',sep=';',index_col='Referenz')
ref_table=ref_table.dropna(how='all',axis=1)
ref_table=ref_table.dropna(how='all',axis=0)
print(ref_table)
T1=value
T2=value_2
ref_1=[]
for i in ref_table.iloc[2,:]:
ref_1.append(i)
ref_1[:] = [value - x for x in ref_1]
idx=ref_1.index(min(i for i in ref_1 if i > 0))
T_it=np.interp(value,ref_table.iloc[2,idx:idx+2],ref_table.columns[idx:idx+2].astype(int))
ref_choose=ref_table.iloc[3:,idx:idx+2]
ref_2=[]
for i in ref_choose.iloc[:,0]:
ref_2.append(i)
ref_2[:] = [value_2 - x for x in ref_2]
idx_2=ref_2.index(min(i for i in ref_2 if i > 0))
ref_fgrid=ref_choose.iloc[idx_2:idx_2+2,:]
Vr_min=np.interp(T_it,ref_fgrid.columns.astype(int),ref_fgrid.iloc[0,:])
Vr_max=np.interp(T_it,ref_fgrid.columns.astype(int),ref_fgrid.iloc[1,:])
T_ch=np.interp(value_2,[Vr_min,Vr_max],ref_choose.index.astype(int)[idx_2:idx_2+2])
干杯!