爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 10547|回复: 3

[脚本编辑] 想问下cdo怎么去气候态啊

[复制链接]
发表于 2021-11-22 16:22:27 | 显示全部楼层 |阅读模式
20金钱
在cdo里面我想对一个1979-2010年的数据做去除气候态的处理,想问下有没有直接的命令能做呢,我翻了半天手册也没找到
我用cdo  ydaysub  infile1979-2010.nc  -ydayavg   infile1979-2010.nc   outfile 会发生报错:Fields have different size (vfarsub)
想问下要怎么办呀

密码修改失败请联系微信:mofangbao
发表于 2021-11-23 09:18:47 | 显示全部楼层
请问楼主解决了吗,遇到了同样的问题
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

 楼主| 发表于 2021-11-23 22:40:52 | 显示全部楼层
FDU.EDU 发表于 2021-11-23 09:18
请问楼主解决了吗,遇到了同样的问题

没有欸,自己重新写了一个ncl搞的
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

发表于 2024-11-27 17:32:48 | 显示全部楼层
本帖最后由 沃德玛雅柯 于 2024-11-27 17:34 编辑

分享一个计算月平均场相对于某个气候态的异常,算日数据的话应该换成对应的day的计算就行:首先用selyear和cat命令得到基准期所有的数据(如1850-1900年,每年12个月),然后利用ymonmean命令计算气候态时期各个月的多年平均值,并用ymonsub命令计算原数据与气候态的差值:
# =======1.to select the climatology period data===========
year=2024
month=10
cd /global_st/best/ST+LT/
cdo -f nc selyear,1850 best_monthly_1850-`echo ${year}``echo ${month}`_time.nc best_monthly_1850-1900.nc

for iyear in `seq 1851 1900`
   do
            cdo -f nc selyear,`echo ${iyear}` best_monthly_1850-`echo ${year}``echo ${month}`_time.nc temp.nc
            cdo -f nc cat temp.nc best_monthly_1850-1900.nc
            echo "------------------------------------------"
            echo "    Monthly data of ${iyear}.nc file over !  "
            echo "------------------------------------------"
            rm -f temp.nc
   done  
# =======2.to calcualte the climatology mean and substract it to gain the climotology of data===========
cdo ymonsub best_monthly_1850-`echo ${year}``echo ${month}_time`.nc -ymonmean best_monthly_1850-1900.nc best_monthly_1850-`echo ${year}``echo ${month}`_clim-1850-1900.nc
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

快速回复 返回顶部 返回列表