在Cygwin(Windows 10)中使用气候数据操作符(CDO)的每日异常

在Cygwin(Windows 10)中使用气候数据操作符(CDO)的每日异常,cygwin,netcdf,cdo-climate,Cygwin,Netcdf,Cdo Climate,我是Cywing和CDO的初学者,它们都安装在Windows10中。我正在处理来自ERA 5土地小时数据的3个变量:2米温度、总降水量和径流。关于这些变量的一些事实: 三个变量为netCDF格式 2m温度:包含小时值,单位为开尔文 总降水量和径流:包含小时值,其单位为深度(米) 我想获得30年期间(1981-2010)产生的2017年每日异常情况。这让我大致知道了该怎么做,但我不太确定如何复制。直觉上,我认为这就是SETP: 根据每个变量转换单位(例如,对于2m的温度,K转换为C,对于总降水

我是Cywing和CDO的初学者,它们都安装在Windows10中。我正在处理来自ERA 5土地小时数据的3个变量:2米温度、总降水量和径流。关于这些变量的一些事实:

  • 三个变量为netCDF格式
  • 2m温度:包含小时值,单位为开尔文
  • 总降水量和径流:包含小时值,其单位为深度(米)
我想获得30年期间(1981-2010)产生的2017年每日异常情况。这让我大致知道了该怎么做,但我不太确定如何复制。直觉上,我认为这就是SETP:

  • 根据每个变量转换单位(例如,对于2m的温度,K转换为C,对于总降水量,米转换为mm)
  • 将数据从小时值转换为每日值
  • 获取2017年数据和1981-2010年数据的平均值
  • 减:30年平均值减去2017年平均值
  • 下载包含异常的文件
  • 不确定程序的顺序


    在Cygwin终端中的编码是什么样的?

    在开始之前,我建议强烈地放弃Cygwin,在windows下安装linux子系统(即而不是并行启动),如果你快速搜索,你会发现直接在windows中安装ubuntu非常容易,这样,您就可以打开linux终端,使用
    sudoapt install
    轻松安装任何您想要的东西,例如

    sudo apt install cdo 
    
    一旦你回答了你的一些问题:

  • 根据每个变量转换单位(例如,对于2m的温度,K转换为C,对于总降水量,米转换为mm)
  • e、 g.转换温度:

    cdo subc,273.15 in.nc out.nc   
    
    使用
    mulc
    [请记住,这不会更改元数据“单位”,您需要使用nco来实现这一点]

  • 将数据从小时值转换为每日值
  • 对于温度等瞬时场

    cdo daysum in.nc daymean.nc 
    
    对于通量场(如雨)

  • 获取2017年数据和1981-2010年数据的平均值

    cdo selyear,2017年-yearmean in.nc year2017\u anom.nc

  • 减:30年平均值减去2017年平均值

  • 呃,通常你想用另一种方式来做不?2017年的长期平均值,所以你可以看看天气是温暖还是凉爽

    cdo sub year2017_anom.nc -timmean alldata_daymean.nc
    
  • 下载包含异常的文件

    我不明白这个问题,你不是已经从CDS平台下载了小时数据吗?这个问题只有在您使用CDS工具箱时才有意义,但事实似乎并非如此——无论如何,对于下载步骤,如果不清楚,您可以在我的youtube频道上查看我关于这个主题的视频:


  • 在您开始之前,我建议强烈放弃cygwin,在windows下安装linux子系统(即并行启动),如果您进行快速搜索,您会发现直接在windows中安装ubuntu非常容易,这样,您就可以打开linux终端,使用
    sudoapt install
    轻松安装任何您想要的东西,例如

    sudo apt install cdo 
    
    一旦你回答了你的一些问题:

  • 根据每个变量转换单位(例如,对于2m的温度,K转换为C,对于总降水量,米转换为mm)
  • e、 g.转换温度:

    cdo subc,273.15 in.nc out.nc   
    
    使用
    mulc
    [请记住,这不会更改元数据“单位”,您需要使用nco来实现这一点]

  • 将数据从小时值转换为每日值
  • 对于温度等瞬时场

    cdo daysum in.nc daymean.nc 
    
    对于通量场(如雨)

  • 获取2017年数据和1981-2010年数据的平均值

    cdo selyear,2017年-yearmean in.nc year2017\u anom.nc

  • 减:30年平均值减去2017年平均值

  • 呃,通常你想用另一种方式来做不?2017年的长期平均值,所以你可以看看天气是温暖还是凉爽

    cdo sub year2017_anom.nc -timmean alldata_daymean.nc
    
  • 下载包含异常的文件

    我不明白这个问题,你不是已经从CDS平台下载了小时数据吗?这个问题只有在您使用CDS工具箱时才有意义,但事实似乎并非如此——无论如何,对于下载步骤,如果不清楚,您可以在我的youtube频道上查看我关于这个主题的视频:


  • 谢谢你的补充回答。我试试你的建议。我怀疑你说的“非平行启动”是什么意思。有很多方法可以安装Ubuntu吗?在过去,有一种方法可以将磁盘分区,然后分别安装linux和windows。当您启动机器时,您可以选择要启动的操作系统,实际上是一台机器上的两个独立系统-谢天谢地,那些日子已经过去了,现在您可以直接在win10中设置linux-有大量的指南如何做到这一点,这里有一个-比cygwin好得多,因为软件当然是最新的,而且所有东西都是可用的,而不仅仅是cygwin支持的软件的子集。我下载了WSL,我很惊讶在Ubuntu中读取netcdf文件的速度比在Jupyter Python中快。我复制了代码,但我有一些疑问。首先,如果我想将米转换为毫米,代码应该是“cdomulc,1000inp.nc out.nc”?其次,从ERA5陆地小时数据描述中,我了解到“总降水量”是每小时的累积量。您的代码“cdo daymean-shiftime,-1hour in.nc raindaymean.nc”试图获取平均值而不是累积值,不是吗?我想获得总降水量的每日累积值。您好,是的,mulc转换为mm-是的,您应该使用日和而不是日平均值,我总是犯这个错误!我更正了我的答案。很高兴你发现它有用…:-)如果你还有疑问,你可以去看一段最近的[视频]()