爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 154|回复: 2

CAM海温数据(气候态/历史变化)制作流程

[复制链接]
发表于 3 天前 | 显示全部楼层 |阅读模式

登录后查看更多精彩内容~

您需要 登录 才可以下载或查看,没有帐号?立即注册

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/
  1. #!/bin/bash
  2. set -e  # 遇到错误时立即退出

  3. icesst_tool_dir=/home/huangwenshuo/CESM/boundary/scripts/icesst
  4. coords_dir=/home/huangwenshuo/CESM/boundary/coords

  5. source=COBE
  6. ice_file=/home/huangwenshuo/CESM/boundary/data/raw/MODEL.ICE.COBE-SST2.185001-202505.nc
  7. sst_file=/home/huangwenshuo/CESM/boundary/data/raw/MODEL.SST.COBE-SST2.185001-202505.nc
  8. target_coords=fv_1.9x2.5

  9. namelist=$icesst_tool_dir/bcgen/namelist
  10. output_dir=/home/huangwenshuo/CESM/boundary/data

  11. echo "=== Step 1: 开始 regrid 阶段 ==="
  12. cd $icesst_tool_dir/regrid
  13. echo "运行 regrid..."
  14. ./regrid -i "$ice_file" \
  15.          -s "$sst_file" \
  16.          -g "$coords_dir/$target_coords.nc" \
  17.          -o sstice.nc
  18. echo "regrid 完成,生成文件: sstice.nc"

  19. echo "=== Step 2: 开始 bcgen 阶段 ==="
  20. cd $icesst_tool_dir/bcgen
  21. echo "建立软链接到 sstice.nc..."
  22. ln -sf ../regrid/sstice.nc .
  23. echo "运行 bcgen..."

  24. # 提取namelist年份
  25. iyr1out=$(grep -i "iyr1out" "$namelist" | awk -F= '{print $2}' | tr -d ' ')
  26. iyrnout=$(grep -i "iyrnout" "$namelist" | awk -F= '{print $2}' | tr -d ' ')
  27. iyr1clm=$(grep -i "iyr1clm" "$namelist" | awk -F= '{print $2}' | tr -d ' ')
  28. iyrnclm=$(grep -i "iyrnclm" "$namelist" | awk -F= '{print $2}' | tr -d ' ')

  29. today=$(date +%y%m%d) #produce date
  30. clim_name=sst_${source}_bc_${target_coords}_clim_${iyr1clm}-${iyrnclm}_c${today}.nc
  31. ts_name=sst_${source}_bc_${target_coords}_${iyr1out}_${iyrnout}_c${today}.nc

  32. ./bcgen -i sstice.nc \
  33.         -c "$output_dir/$clim_name" \
  34.         -t "$output_dir/$ts_name" < "$namelist"
  35. echo "bcgen 完成,输出文件: "
  36. echo "  - $output_dir/$clim_name"
  37. echo "  - $output_dir/$ts_name"

  38. 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.上面所针对的主要是控制试验,要做海温的敏感性试验的话只需要将异常场(通常是通过在观测中合成或回归得到)叠加到气候态或历史变化的数据上运行即可


截图 2025-08-20 16-54-44.png
密码修改失败请联系微信:mofangbao
发表于 3 天前 | 显示全部楼层
模式的帖子太少了,顶顶楼主
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

 楼主| 发表于 3 天前 | 显示全部楼层
万里路始于足下 发表于 2025-8-20 18:47
模式的帖子太少了,顶顶楼主

我刚开始了解,相互学习哈哈~
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

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