如何使用 expr cdo-climate 基于区间条件计算变量

How to calculate variable for based on interval conditon using expr cdo-climate

我正在尝试根据两个离散条件计算 fsa 变量值。最后,我想要一个带有变量 fsa 的输出文件。第一个条件是当 tas 大于 275.15 时 fsa 等于 1。在第二种情况下,当 tas 在 273.15 和 275.15 之间时,我希望 fsa 等于 (1-0.5*(tas -273.15))。这是我第一次尝试使用 expr,感谢任何帮助。任何方法都可以,它不必是 expr。我的文件很大,所以首选简洁的方法。

cdo -expr, 'fsa = ((tas>275.15)) ? 1.0 : 0; fsa = ((tas<=275.15 & tas>273.15)) ? (1-0.5*(tas-273.15)) : fsa; <infile> <outfile>

这里是 CDO 社区主论坛 Ralf 的回答。

您可以像这样嵌套三元运算符:

cdo -expr,'fsa = ((tas<=275.15 && tas>273.15)) ? (1-0.5*(tas-273.15)) : ((tas>275.15) ? 1.0 : 0)' <infile> <outfile>

逻辑或是 && !