- 积分
- 40476
- 贡献
-
- 精华
- 在线时间
- 小时
- 注册时间
- 2019-5-13
- 最后登录
- 1970-1-1
|
登录后查看更多精彩内容~
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
本帖最后由 一大碗年糕 于 2025-8-20 16:58 编辑
在运行CAM的时候需要用的海温数据来驱动,官方目前提供了许多分辨率的数据:https://acomstaff.acom.ucar.edu/tilmes/CAM_docs/doc/build/html/users_guide/input-datasets.html其中大多是来自HadISST和NOAA OISST两套海温资料整合而成的。比如常用的sst_HadOIBl_bc_1x1_clim_c101029.nc就是1982-2001年的气候态制作而成。
当然这些数据生产的大多比较早了(后面cxxxxxx指生产日期),在CESM的论坛上staff也有分享一些其他的最新的数据;
https://bb.cgd.ucar.edu/cesm/threads/how-to-get-extended-prescribed-sst-data.9792/#post-62066
如果想要自己制作气候态/历史变化的海温数据(来自其他机构如ERSST或COBE,或者是想要不同的时间段)则需要使用icesst工具进行制作(涉及海温数据的diddling,见:https://bbs.06climate.com/forum.php?mod=viewthread&tid=111447)
这里大致记录一下编译完icesst(包括regrid和bcgen)后,基于1850-2025的COBE数据生产气候态/历史变化海温数据的具体流程:
需要提取准备原始的ice和sst文件:下载地址:https://ftp.cgd.ucar.edu/archive/SSTICE/
- #!/bin/bash
- set -e # 遇到错误时立即退出
- icesst_tool_dir=/home/huangwenshuo/CESM/boundary/scripts/icesst
- coords_dir=/home/huangwenshuo/CESM/boundary/coords
- source=COBE
- ice_file=/home/huangwenshuo/CESM/boundary/data/raw/MODEL.ICE.COBE-SST2.185001-202505.nc
- sst_file=/home/huangwenshuo/CESM/boundary/data/raw/MODEL.SST.COBE-SST2.185001-202505.nc
- target_coords=fv_1.9x2.5
- namelist=$icesst_tool_dir/bcgen/namelist
- output_dir=/home/huangwenshuo/CESM/boundary/data
- echo "=== Step 1: 开始 regrid 阶段 ==="
- cd $icesst_tool_dir/regrid
- echo "运行 regrid..."
- ./regrid -i "$ice_file" \
- -s "$sst_file" \
- -g "$coords_dir/$target_coords.nc" \
- -o sstice.nc
- echo "regrid 完成,生成文件: sstice.nc"
- echo "=== Step 2: 开始 bcgen 阶段 ==="
- cd $icesst_tool_dir/bcgen
- echo "建立软链接到 sstice.nc..."
- ln -sf ../regrid/sstice.nc .
- echo "运行 bcgen..."
- # 提取namelist年份
- iyr1out=$(grep -i "iyr1out" "$namelist" | awk -F= '{print $2}' | tr -d ' ')
- iyrnout=$(grep -i "iyrnout" "$namelist" | awk -F= '{print $2}' | tr -d ' ')
- iyr1clm=$(grep -i "iyr1clm" "$namelist" | awk -F= '{print $2}' | tr -d ' ')
- iyrnclm=$(grep -i "iyrnclm" "$namelist" | awk -F= '{print $2}' | tr -d ' ')
- today=$(date +%y%m%d) #produce date
- clim_name=sst_${source}_bc_${target_coords}_clim_${iyr1clm}-${iyrnclm}_c${today}.nc
- ts_name=sst_${source}_bc_${target_coords}_${iyr1out}_${iyrnout}_c${today}.nc
- ./bcgen -i sstice.nc \
- -c "$output_dir/$clim_name" \
- -t "$output_dir/$ts_name" < "$namelist"
- echo "bcgen 完成,输出文件: "
- echo " - $output_dir/$clim_name"
- echo " - $output_dir/$ts_name"
- echo "=== sst生产完成 ==="
复制代码 检查输出结果:
sst_COBE_bc_fv_1.9x2.5_1850_2025_c250820.nc/sst_COBE_bc_fv_1.9x2.5_clim_1982-2001_c250820.nc中ice_cov/SST_cpl数据是被 “diddled” 过的。ice_cov_prediddle/SST_cpl_prediddle 是未做调整的mid-month 值
p.s.上面所针对的主要是控制试验,要做海温的敏感性试验的话只需要将异常场(通常是通过在观测中合成或回归得到)叠加到气候态或历史变化的数据上运行即可
|
-
|