如何解决cdo 中的链接运算符
我正在使用以下等式计算 C 因子:
C 因子 =1,覆盖率 = 0
C 因子 =-0.083 xlg(coverfraction) + 0.417,0 78.3%,
为了计算总 C 因子,我应用了部分方程 C 因子 = 0.417 − 0.083 × lg(coverfraction)。但我不知道如何使用 cdo 在脚本中应用覆盖分数的条件。在这种情况下,计算所有值的对数,包括 0 和大于 78.3% 的值。
代码是:
echo "Log: " $gc_ofile
cdo -O -L -log inputfile.nc ofilelog.nc
cdo -O -L "-mulc,-0.083" outputlogfile.nc ofilemulti.nc
cdo -O -L "-addc,0.417" ofilemulti.nc cfactor.nc
解决方法
对于这些类型的操作,使用 cdo 命令 expr 通常更容易
如果 netcdf 文件(称为coverfrac.nc)中的coverfraction 的名称正是如此,那么您可以像这样使用expr:
cdo expr,'cfactor=0.417−0.083*log(coverfraction)' coverfrac.nc out1.nc
这将根据需要创建一个新变量“cfactor”。
另一方面,这就是 cdo 屏蔽的用武之地(我将很快在我的 youtube 气候未装箱频道上发布有关此主题的视频,并会在链接可用时更新此帖子)。
因此,您可以创建一个文件,在覆盖率高于 78.3% 的任何地方都为 0,否则为 1。
cdo lec,78.3 coverfrac.nc mask.nc
现在您需要将其乘以第一个输出文件以将结果设置为零,其中 coverfrac> 78.3%,否则保持不变。
cdo mul out1.nc mask.nc myfunction.nc
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。