我所有的就是这个
Tc =以摄氏度为单位的空气温度
Tdc =以摄氏度为单位的露点温度
(1)Es = 6.11 * 10.0 **(7.5 * Tc /(237.7 + Tc))
(2)E = 6.11 * 10.0 **(7.5 * Tdc /(237.7 + Tdc))
(3)相对湿度(RH)百分比=(E / Es)×100 事实上(从CSV文件)我需要从Column9中获取一个值,从Col 10中获取一个值 使用这些值来计算相对湿度(%)并将结果放在最后 记录/行。这需要重复,直到csv文件结束。任何帮助表示赞赏
欢呼声
答案 0 :(得分:2)
将以下代码放入calc_rh.pl
:
#!/usr/bin/perl
while (<>) {
chomp;
@f = map { /^\"(.*)\"$/ ? $1 : $_ } split /,/; # Strips double quotes if present
($Tc, $Tdc) = @f[8, 9]; # Assuming Tc in column 9, Tdc in column 10
$Es=6.11*10.0** (7.5*$Tc/ (237.7+$Tc));
$E=6.11*10.0** (7.5*$Tdc/ (237.7+$Tdc));
$RH = sprintf "%.2f", $E/$Es*100; # Or use e.g. "%.4f" for 4 digits after d.p.
print join(",", map { "\"$_\"" } @f, $RH), "\n";
}
使用以下命令运行:
perl calc_rh.pl < infile.csv > outfile.csv
注意:如果您的任何列包含逗号,则上述代码将中断。可以使用可下载的模块解决这个问题,但我觉得你只需要一个快速的脚本。
此外,如果您在Linux中运行,则可能需要运行:
perl ./calc_rh.pl < infile.csv > outfile.csv
代替。