CDO学习1 CDO简介[通俗易懂]

CDO学习1 CDO简介[通俗易懂]参考自如下网站http://www.ceda.ac.uk/static/media/uploads/ncas-reading-2015/cdo.pdf介绍一个有几百种操作符的单独命令CDO受N

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

参考自如下网站 

http://www.ceda.ac.uk/static/media/uploads/ncas-reading-2015/cdo.pdf

介绍

  • 一个有几百种操作符的单独命令
  • CDO受NCO启发,通过命令行,提供了一系列的气候数据相关的操作
  • 主要是被设计用在操作netCDF3/4,GRIB1/2
  • 众多的函数可以被用在任何NetCDF/格点化数据
  • 非常适合与特定任务
  • 有效的调动内存

CDO:一个命令行工具

$ cdo <operator> [options] <files>

CDO操作的类别

  1. 文件信息和文件操作符
  2. 选择和比较
  3. 元数据的修改
  4. 算术操作符
  5. 统计分析
  6. 回归和内插
  7. 矢量和谱转换
  8. 格式化I/O
  9. 气候指数

众多操作符

CDO将其的功能分解成单独的操作符

当前(2015年)有超过650个操作符。如

showstdname Show standard names

sellonlatbox Select a longitude/latitude box

setmissval Set a new missing value

monadd Add monthly time series

zonstd Zonal standard deviation

eca_hd Heating degree days per time period

得到操作符的参考

如需参考,只需输入:cdo -h <operator>

 操作符:1.文件信息

 $ cdo infov ifile 

这是一个带有一个2D变量的数据集的示例结果,包括3个时间步长:

-1 : Date Time Varname Level Size Miss : Minimum Mean Maximum
1 : 1987?01?31 12:00:00 SST 0 2048 1361 : 232.77 266.65 305.31
2 : 1987?02?28 12:00:00 SST 0 2048 1361 : 233.64 267.11 307.15
3 : 1987?03?31 12:00:00 SST 0 2048 1361 : 225.31 267.52 307.67

 

$ cdo showtimestamp ggas2014121200_00-18.nc
2014-12-12T00:00:00 2014-12-12T06:00:00 2014-12-12T12:00:00 2014-12-12T18:00:00

 

$ cdo pardes ggas2014121200_00-18.nc
-1 CI Sea-ice cover [(0 - 1)]
-2 SSTK Sea surface temperature [K]
-3 MSL Mean sea-level pressure [Pa]
-4 TCC Total cloud cover [(0 - 1)]
-5 U10 10 metre U wind component [m s**-1]
-6 V10 10 metre V wind component [m s**-1]
-7 SKT Skin temperature [K]

 

很容易看到2个文件之间数值差异的概况:

$ cdo diff tas_rcp45_2055_ann_95p_change.nc tas_rcp45_2055_ann_05p_change.nc
Date Time Param Level Size Miss : S Z Max_Absdiff Max_Reldiff
1 : 2065-12-30 12:00:00 -1 0 64800 0 : T F 16.693 0.99997
1 of 1 records differ

 

操作符的所有文件列表包括

  • 赋值和连接
  • 合并场和时间
  • 按变量/层次/格点/时间分割场

一些例子

To copy a file and convert the output to NetCDF:

 $ cdo −f nc copy ifile ofile.nc 

To merge all files along the time axis:
 $ cdo mergetime ifile1 ifile2 ifile3 ofile 

可以用一些不同的方法选择数据包括:

  • 变量码,名称或者属性
  • 层次
  • 时间
  • 空间区域(纬度/经度)

 

操作符:2.选择

用id选择变量:“SSTK”和”CI”:

 $ cdo selname,SSTK,CI infile.nc outfile.nc 

To select a lat/lon bounding box:
 $ cdo sellonlatbox,120,-90,20,-20 infile.nc outfile.nc 

To select a date/time range:
 $ cdo seldate,201412-12T12:00:00, 201501-31T18:00:00 infile.nc outfile.nc 

 

操作符:3.修改

设置时间轴到198701-16 12:00, 时间增量一个月增量 使用

 $ cdo settaxis,19870116,12:00,1mon ifile ofile 

将一个2维场纬度从N到S反转成S到N

 $ cdo invertlat ifile ofile 

 

操作符:4.算术

计算所有场元素的平方根:

 $ cdo sqrt ifile ofile 

将所有输入场加入一个常数-273.15:

 $ cdo -addc,-273.15 ifile ofile 

 

操作符:5.统计

计算所有输入场的纬向平均:

 $ cdo zonmean ifile ofile 

假设输入数据集具有数年的月度平均值。 为了从月度计算季节性均值,必须跳过前两个月:Assume an input dataset has monthly means over several years. In order to compute seasonal means from monthly means the first two months must be skipped:

 $ cdo timselmean,3,2 ifile ofile 

多年逐日滑动百分值:

  • 为了计算一个百分值,必须知道最小和最大边界。

 $ cdo ydrunpctdl,p,nts infile minfile maxfile outfile 

该运算符写滑动的百分值对于一年中的每一天,从infile写到outfile。最小和最大边界用minfile和maxfile提供。

计算一个对年逐日的滑动百分率值,需要执行多步。

$ cdo ydrunmin,5 ifile minfile
$ cdo ydrunmax,5 ifile maxfile
$ cdo ydrunpctl,90,5 ifile minfile maxfile ofile

 

操作符:6 内插

为了将所有场线性插值到一个T42高斯格点。

 $ cdo remapbil,t42grid ifile ofile 

为了将混合模式层数据插值到气压层925,850,500和200 hPa

 $ cdo ml2pl,92500,85000,50000,20000 ifile ofile 

 

操作符:9 气候指数

得到一个逐日降水总量时间序列找那个连续干日的最大数目。

 $ cdo eca_cdd rrfile ofile 

其中rrfile是逐日降水总量RR的时间序列,然后统计了连续天数的最大值,当RR小于1 mm时。

为了得到热带夜晚一个时间序列逐日最小温度

 $ cdo eca_tr tnfile ofile 

其中tnfile是逐日最低温度TN的时间序列,随后统计的是当TN>T时候的天数。T是一个可选的参数,其缺省值T=20℃。

 

除此之外CDO还能做什么? CDO有许多通用的命令行开关,可以与(大多数)运算符一起使用。 这是一个选择:

-a 生成绝对时间轴Generate an absolute time axis
-f <format> 指定格式Specify format (“grb”, “nc”, “nc4” etc)
-m <val> 设置默认缺测值Set the default missing value
-Q 对netCDF变量名排序Sort netCDF variable names
-r 生成相对时间轴Generate a relative time axis
-s 静默模式Silent mode
-V Version of CDO
-v Verbose – print extra details.
-z zip Deflate compression of netCDF4 vars.

 

组合运算符

所有的运算符都有一个固定的输入流和一个输出流,可以直接将结果管道给其它的操作符。这个操作符必须以“-”开始,为了和其它相结合。可以通过一下,来促进性能:

  • 减少不必要的磁盘I/O
  • 并行执行

例如,我们可以把

$ cdo timavg ifile1 tmp1
$ cdo dayavg ifile2 tmp2
$ cdo sub tmp2 tmp1 ofile
$ rm tmp1 tmp2

替换成

$ cdo sub -dayavg ifile2 -timavg ifile1 ofile

 

组合运算符:例子2

以下三个命令是计算一个多年逐日滑动百分率,需要多步:

$ cdo ydrunmin,5 ifile minfile
$ cdo ydrunmax,5 ifile maxfile
$ cdo ydrunpctl,90,5 ifile minfile maxfile ofile

可以通过一个简单的命令替换

$ cdo ydrunpctl,90,5 ifile -ydrunmin ifile -ydrunmax ifile ofile

 

更多信息 

CDO User Guide: https://code.mpimet.mpg.de/projects/cdo/embedded/cdo.pdf

CDO Home page:  https://code.zmaw.de/projects/cdo

CDO Tutorial:  https://code.zmaw.de/projects/cdo/wiki/Tutorial

CDO Documentation:  https://code.zmaw.de/projects/cdo/wiki#Documentation

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/166771.html原文链接:https://javaforall.net

(0)
上一篇 2022年8月1日 上午6:16
下一篇 2022年8月1日 上午6:36


相关推荐

  • jboss版本查询_趣步2.0.7版本下载

    jboss版本查询_趣步2.0.7版本下载JBoss在2006年被RedHat收购。在各种J2EE应用服务器中,JBoss是最受欢迎而且功能最为强大的应用服务器。不过JBoss从8.0开始改名为WildFly,这个新名称在我看来似乎并不朗朗上口。在折腾JavaEE的配置时,新增一个Server,发现JBoss最多只到JBossv5.0,官网上明明已经更新到7.1了,为何这里只显示这么古老的版本,而且我用的是Eclipse

    2022年10月3日
    3
  • 软件工程:数据流图和结构图怎么画?

    软件工程:数据流图和结构图怎么画?文章目录Step1:根据软件的功能描述,绘制数据流图:Step2:根据数据流图,分级绘制结构图:•边界划分:•第一级分解:•第二级分解:•精化减少耦合:Step1:根据软件的功能描述,绘制数据流图:问题表述:假设的仪表板将完成下述功能:(1)通过模数转换实现传感器和微处理机接口;(2)在发光二极管面板上显示数据;(3)指示每小时英里数(mph),行驶的里程,每加仑油行驶的英里数(mpg)等等;(4)指示加速或减速;(5)超速警告:如果车速超过55英里/小时,则发出超速警告铃声。首先了

    2022年6月15日
    89
  • win10系统中pdf不显示缩略图及预览图

    win10系统中pdf不显示缩略图及预览图试试这个,我的取消了复选框反而出现了预览图:https://helpx.adobe.com/cn/acrobat/using/enable-pdf-thumbnail-preview-windows-explorer.html

    2022年5月6日
    401
  • dumpbin 用法

    dumpbin 用法今天工作中需要查看dll中的内部结构所以重点学习了一下dumpbin的用法dumpbin.exe在/VC/BIN目录下,如果在其他目录下无法使用dumpbin,可以运行该目录下VCVARS32.BAT,这个批处理文件就是用来修复VC环境的。 下面列出了DUMPBIN命令行选项。此外列出每个选项提供的输出的一些了。/ALL显示除代码反汇编外的所有可用信息。使用

    2022年6月19日
    84
  • 批处理的for循环_bat脚本for循环

    批处理的for循环_bat脚本for循环本文引用DOS批处理命令For循环命令详解FOR/F的选项usebackq的用法批处理命令For循环命令详解!

    2022年10月12日
    6
  • 文字超出三行省略…显示全文「建议收藏」

    文字超出三行省略…显示全文「建议收藏」1、在开发过程中,我们经常会用到这种超出三行显示…的要求,使用css属性是可以的,但是需要考虑兼容性问题实现单行文本的溢出显示省略号,我们应该都知道用text-overflow:ellipsis

    2022年8月2日
    7

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号