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"