大气海洋的特点,决定了我们无法做一些真实的实验,因此开展数值模拟,是其重要手段。业务预报中,现在气象预报员基本离不开模式的结果,甚至许多预报员毫不避讳,直言预报结论基本照搬模式结果。科研中,众多领域也是要需要使用数值模式,哪怕不使用数值模式,也需用到模式运行得到的再分析资料。因此对于大气和海洋科学领域的人而言,数值模式是一个绕不开的话题。
本篇,主要是对自己使用模式经验的一些小结,给打算入坑的同学做一些参考。行文比较散乱,文章深度和系统性都比较欠缺,限于水平,难免出错,欢迎斧正。
模式理论简介
我们知道,大气或者海洋运动是有物理规律的,无论大气还是海洋,其规律可以用一组控制方程组来表达。
笛卡尔坐标下的斜压大气非静力平衡方程组
如果我们想要知道大气未来的运动过程,就需要解这一组偏微分方程组。遗憾的是,这组方程没有解析解,所以我们只能做数值解。大气海洋数值模式,本质就是应用各种数值算法,求解一组偏微分方程组的数值解。
解偏微分方程组需要提供初始条件和侧边界条件。如果是全球大气模式,无需侧边界条件,因为球体有天然的周期边界,循环反复。如果是区域模式,由于人为引入了侧边界,这些侧边界的地方整个模拟期间都需要给定其值,其初始场和侧边界条件一般由全球模式提供。
由于区域模式的侧边界条件需要全球模式提供,所以本质来讲,真正具有预报未来能力的是全球模式,只要给定初始场,就可以预报未来无限长期限的天气(准不准另说)。区域模式并没有预报能力,只是在全球模式的约束下,将全球模拟的结果更细化,也就是所谓的“降尺度”。
物理参数化方案
离散的网格,只能分辨波长大于两个网格距的过程。由于数值模式分辨率有限,一般公里级已经算高分辨率。对于云微物理过程、长短波辐射和边界层内等次网格的过程无法识别。这些次网格过程,需要使用物理参数化方案表征。
物理参数化方案往往缺乏严格的理论支撑和观测数据支持,存在很多不确定性。不确定性较大的物理参数化方案是模式误差的重要来源,对模式的模拟效果产生重要影响。
一般初学者能调的也就是参数化方案。做一些参数化方案的敏感性试验,有许多好处:一是难度不大,做的过程也是熟悉模式的过程;二是这也是基础工作,能对特定的模拟区域和关注的天气现象匹配一套较为合适的方参数化案,是后续工作的基础;三做项目写论文也好,放在前置章节,能体现工作量(说的直白点就是光明正大的划水)。更多关于WRF参数化的内容,可以参考:WRF系列教程2:物理参数化方案。
资料同化
一般对模式有了较好的理解和使用经验以后,才会考虑资料同化相关的内容,资料同化是为了改进模式初始场提升预报效果。
假设模式完美,给定合适的初始状态和边界条件,向前积分数值模式可得到未来时刻的预报信息。大气状态是非线性的,对初值极其敏感,即使数值模式是完美的且收敛于真实状态,初始状态的微小改变,积分后误差也会变得很大。因此,初始场的准确度直接关系到数值模式的预报效果,为得到良好的数值预报结果,数十年来气象学家一直致力于发展能够提高和改善初始场的技术,即资料同化技术。有关资料同化理论的发展历程,这里推荐一篇优质文章:同化,你从哪里来,要到哪里去。
如果是要获取资料同化相关的学习资料,可以参考这篇:资料同化简介和WRFDA的安装。
WRF模式简介
WRF作为NCAR主推的模式之一,NCAR强大的科研实力为WRF开发提供了大量的优质资源,目前WRF是应用最广泛的开源模式。虽然官方宣称不会再有大的更新,但是WRF的生命力个人认为保底至少还有二十年。WRF模式本身,以及以其为基础开发的众多模式,基本涵盖了气象研究的各个领域。
WRF模式可以模拟真实天气,用于大气的业务化预报与研究,气候区域等的模拟
WRF包含理想模型,从单柱模式、理想飑线到理想台风,可以用于理论研究
WRF-Chem可以进行大气化学方面模拟和预报
WRFDA同化系统,里面有三维变分,四维变分,集合卡尔曼滤波等
WRF-Hydro水文模型可用于洪水的预报和模拟
WRF-Fire模拟山火的影响等
WRF-LES大涡模式对大涡进行模拟
WRF-lake湖气模式可对湖泊进行研究
COAWST耦合模式,使用了WRF模型,可用于耦合模式研究
以上还未完全列举,WRF的功能几乎可以使得大部分气象领域与其挂钩。一个模式发展到这个程度,以美国NCAR的实力和影响力,也花了快20年时间。对于各个国家的顶尖机构,写完一个能用的气象模式并不在话下,但是要发展和完善到淘汰WRF的程度,20年只怕是一个很保守的估计。
WRF模式运行
大气海洋模式,基本上都是在Linux系统上运行。因此要求熟悉Linux系统,掌握基础命令,设置环境命令,手动编译模式和其基础库等。想要做模式,建议放弃图形界面等的操作,刚开始终端命令行不熟悉,但是适应一段时间后,工作效率会高于图形界面操作。
WRF模式的框架和主体运行步骤
这里只是简版,让各位对模式软件本身有一个大体认识。具体的可以参考官网教程或者用户手册,网上教程也不少。WRF模式,本身还是有一定门槛的,需要有一定的自学能力和动手能力。如果身边有大佬,手把手带一遍能事半功倍。
运行模式需要先处理好初始条件和侧边界条件,然后再进行积分。
geogrid.exe:定义模拟区域,将静态数据插值到模式网格。
ungrib.exe:解压提取气象场数据转为中间格式。
metgrid.exe:将气象场数据水平插值到模拟域网格。
real.exe: 进行垂直插值,创建边界和初始条件,也就是准备好了初始条件了侧边界条件。
wrf.exe:积分向前预报。
模式后处理
WRF模拟的结果,保存为NetCDF格式的文件。后处理,就是要将这些数据进一步提取处理可视化绘图等。
这里补充一点,预报量和诊断量的区别:预报量就是开头控制方程中与时间偏导相关的量,可以积分预报得到,如u,v, T等。诊断量就是有诊断方法得到的变量,WRF中计算了许多常用的诊断量,比如雷达反射率,10m风等。
后处理常用的编程语言有NCL、matlab和python等,各有优劣,根据自己的需要使用即可,一般模式使用者基本掌握2-3种以上的编程语言。除此之外,还有ARWPost等WRF团队开发的工具。由于WRF用户群体还是比较庞大,因此网络上还是有很多现成的代码,善用搜索引擎能减少很多不必要的工作。
数值模式释用
模式释用,顾名思义就是对数值模式结果的解释应用,一般是模式的下游用户,结合业务工作的需要或者行业需求,对模式结果进一步加工,提升其准确率以或者提取特定行业关注的预报要素等。
了解不够深入,以举例的形式粗略的提几点。(1)传统的统计方法,如MOS预报,选取重要因子,采用多元线性回归的方法,提升模式预报结果。(2)使用机器学习或者深度学习的方法,订正模式的温度风力等,特别是现在热衷提智能预报。(3))风电场需要准确的风功率预报,以调节发电计划,而模式本身是不输出风功率这一信息的,通过一些算法,将模式预报场计算出风功率。
关于计算资源要求
运行模式,小至个人PC,大至超级计算机都能完成。如果只是作为练习和教学,个人PC即可满足,建议至少要工作站,不至于太卡。
鉴于目前大家普遍追求的是高分辨率,各大业务中心全球模式的分辨率也在提高,区域中尺度的模式的分辨率一般都要优于全球模式,所以公里级的模拟司空见惯。虽然一昧的追求分辨率高分辨率并不是多高明的做法,但是写论文,做项目分辨率太低很难交差。
因此大范围高分辨的模拟,都是要用到超算的分布式并行,一方面是要提升计算速度保证工作进度,另一方面更重要的是满足内存的要求,否则模式根本转不起来,具体可参考:WRF系列教程4:WRF并行核数如何确定?
如果课题组没有计算资源,谨慎入坑。见过不少学生,导师课题组不提供计算资源,拿着个人PC苦哈哈的在做。鉴于购买机器和维护的成本还是较高,这里建议各位可以考虑租超算资源,目前各大超算中心每核时一般都不超过1毛钱,而且模式环境都有现成的。
结尾
思路有点跳跃,零零散散写了一些,总的来说,如果要用好数值模式,需要十八般武艺都有所涉猎,从理论、coding能力到实践应用能力,都要有所涉及。
本篇主要以WRF模式作为介绍,但是无论是海洋还是大气模式,许多理论都是相通的。公众号取名气海同途,主要介绍气象海洋领域的数值模式知识,本人水平有限和目前大家接收消息的碎片化特点,公众号一般还是介绍基础性的文章,如果各位看官,有兴趣介绍气象和海洋领域数值可联系我进行分享,包括但不限于以下:
WRF/WRF-Chem
MPAS/FV3
CMAx/CMAQ
RegCM/CAM
ROMS/FVCOM/ADCIRC/POM
COAWST/CESM
SWAN/WW3/WAM
WRFDA/GSI/DART/JEDI
......
对大气海洋数值模式感兴趣的可扫下方二维码在气海同途公众号菜单栏,添加作者微信,邀请您加入数值模式交流群。
更多大气与海洋相关技术文章,可关注气海同途。