cmip6数据处理之cdo常用命令

1.下载的NC数据更改名称,批量删去多余的名称,否则代码跑不通
2.cdo查模式分辨率,并进行统一降尺度
3.合并日数据为月数据(最好先把每年的NC合并为一个)
今天先写到这 周末愉快~

1.(base) biubiubiu@DESKTOP-BU57VUF://mnt/e/Allmode/2020-pr$for i in $(ls);do echo processing $i ;done %把数据都先读出来

1.1cdo info xxx.nc %查看文件信息,挂目标路径到文件夹的话
2. cdo info xxx.nc %查看文件信息
   cdo showname sst.nc %查看变量
3. %双线性插值
  for i in $(ls) ;do cdo remapbil,r360x180 ${i} 0.5_${i}.nc ;done 对于同一个文件夹下的nc文件插值的循环命令 ls的作用是得到所有文件的名称,再利用for循环对所有文件进行统一处理和新文件命名,输出文件名是0.5_${i}.nc.
cdo mergetime /mnt/d/天翼云盘下载/5.16/nc/ACCESS-CM2/*.nc output.nc %合并
4.整年的NC合并日尺度为月尺度数据
py

5.cdo timselmean,13 Daytime_hourT_20.nc Daytime_meanT_20.nc
其中13是步长,也就是每个13个小时计算一次均值,Daytime_hourT_20.nc为输入数据,Daytime_meanT_20.nc为输出数据,得到结果.
6.合并分拆年份
#!/bin/bash  
  
# 定义输入和输出文件名  
file1="cru_ts4.07.2001.2010.pre.dat.nc" # 2001-2010年的文件  
file2="cru_ts4.07.2011.2020.pre.dat.nc" # 2011-2020年的文件  
output_file="merged_2010-2014.nc" # 输出的文件名  
  
# 从file1中提取2010年的数据  
cdo selyear,2010 "$file1" temp_2010.nc  
  
# 检查上一个命令是否成功执行  
if [ $? -ne 0 ]; then  
    echo "Error extracting 2010 data from $file1"  
    exit 1  
fi  
  
# 从file2中提取2011-2014年的数据  
cdo selyear,2011,2014 "$file2" "temp_2011-2014.nc" # 注意这里给文件名加了双引号,以防文件名中的特殊字符引起问题  
  
# 检查上一个命令是否成功执行  
if [ $? -ne 0 ]; then  
    echo "Error extracting 2011-2014 data from $file2"  
    rm temp_2010.nc # 清理已经生成的临时文件  
    exit 1  
fi  
  
# 将两个临时文件合并到最终的输出文件中  
cdo cat temp_2010.nc "temp_2011-2014.nc" "$output_file"  
  
# 检查上一个命令是否成功执行  
if [ $? -ne 0 ]; then  
    echo "Error merging files"  
    rm temp_2010.nc "temp_2011-2014.nc" # 清理已经生成的临时文件  
    exit 1  
fi  
  
# 清理临时文件(可选)  
rm temp_2010.nc "temp_2011-2014.nc"  
  
echo "Merged file created: $output_file"

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值