我们一直在用不同的天气模型,比如ECMWF和GFS。这些模型很简单令人惊异的给我。
这些模型是如何工作的?我知道他们必须接受各种各样的数据点——这些是什么,以及模型如何使用它们?此外,他们是如何对未来发生的事情做出预测或预测的?
江南体育网页版地球科学堆栈交换是一个为那些江南电子竞技平台对地质学、气象学、海洋学和环境科学感兴趣的人提供的问答网站。注册只需要一分钟。
注册加入这个社区吧所有的大气数值模型都是根据原始方程描述了大气流动。Vilhelm Bjerknes发现了这些关系,因此成为数值天气预报之父。从概念上讲,这些方程可以被认为是描述一团空气如何与周围环境发生关系而运动的。例如,我们在很小的时候就知道热空气会上升。的流体静力学垂直动量方程解释了其中的原因和量化在什么条件下热空气会停止上升。(当空气上升时,它会膨胀和冷却,直到达到流体静力平衡。)其他方程考虑了其他类型的运动和热传递。
不幸的是,这些方程是非线性的,这意味着你不能简单地代入一些数字并得到有用的结果。相反,天气模型是一种模拟,它将大气划分为三维网格,并计算物质和能量如何在离散的时间增量中从一个空间立方体流向另一个空间立方体。实际的大气流动是连续的,而不是离散的,因此模型必然是近似值。不同的模型采用不同的近似方法来适应其特定的目的。
随着时间的推移,数值模型不断改进,原因如下:
计算能力的提高使得模型可以使用更小的网格盒。然而,计算的数量会随着盒子的数量呈指数增长,并且进程会受到影响收益递减。在输入端,更多更好的传感器提高了模型初始条件的准确性。综观尺度和中尺度模型从一般环流模式,这有助于设置合理的初始条件。在输出端,模型输出统计通过将当前模型状态与模型显示类似结果的历史数据进行比较,出色地估计当地天气。最后,整体模型将几个模型的输出作为输入,并产生一系列可能的结果。
天气模型(或者,在野外更常被称为大气模型)是一种计算机程序,它读取输入数据(初始条件)并求解偏微分方程以产生未来的大气状态。虽然@JonEricson提供了一个关于模式所做事情的全面的好而有趣的总结,在这里我描述了一个大气模式产生预测所需要的确切步骤。这个答案一般也适用于海洋环流和气候模型。许多人相信天气预报员会坐在地图前,头脑风暴云的去向。这个答案旨在提供一个容易理解但透彻的解释,关于大气和海洋预测模型如何工作。
大气的演化可以用偏微分方程组来描述。最常见的是原始方程,由动量方程(求解速度$\mathbf{v}$或动量$\mathbf{\rho v}$)、连续性方程(或质量守恒方程)和热能方程(求解温度$T$和比湿度$q$)组成。连续性方程是动量方程闭包的必要条件。这些方程可以用许多方法近似,从而得到简化和/或简化的方程集。其中一些近似是流体静力、Boussinessq、弹性等。在最完整的大气原始方程形式中,预测状态变量为$u$, $v$, $w$, $p$, $T$, $q$。理想的大气也可以用动量和连续性方程(没有热力学)、浅水方程或绝对涡度方程来模拟。有关后者的示例,请参阅作者的开创性论文查尼,费约托夫特和冯·诺伊曼(1950)Who通过对绝对涡度方程的时间积分,数值预测了500 MB的涡度。因为他们的模型是正压的,所以不能产生气旋。然而,他们实现了历史上第一次成功的数值天气预报,他们的模型在第一台通用计算机上运行,ENIAC。
现在以动量方程为例:
$ $ \ dfrac{\部分\ρ\ mathbf {v}}{\部分t} + \微分算符(\ \ρmathbf {v} ^{2}) + 2ω\ \ * \ \ρmathbf {v} = - \微分算符p + \ν\微分算符^{2}(ρ\ \ mathbf {v}) +φ\ $ $
从左到右依次是动量、平流、科里奥利力、压力梯度、粘性耗散的时间趋势,最后是任何外力或亚网格趋势。不幸的是,平流项$\nabla(\rho\mathbf{v}^{2})$是非线性的,正是因为这个项,这个方程的解析解是未知的。这一项也是大气和其他流体本质上混乱的原因,$\mathbf{v}$中的小错误增长很快,因为它们在这一项中成倍增长。如果将方程线性化,$\nabla(\rho\mathbf{v}^{2})=0$,则可以找到解析解。例如,Rossby波、Kelvin波、Poincare波都是某个简化的线性化动量方程或涡量方程的解析解。重要的是,我们需要有非线性平流项,如果我们希望产生准确的预测。这样我们就用数值方法来求解方程。
如何解决这些偏微分方程?处理器没有能力做衍生品——他们知道怎么做添加和乘数字。所有其他操作都是从这两个操作派生出来的。我们需要用基本的算术运算来近似偏导数。感兴趣的域(比如,地球)在网格上离散化。每个网格单元格对每个状态变量都有一个值。例如,取x方向上的压力梯度项:
$ $ \ nabla_ {x} p = \ dfrac{\部分p} {x} \部分\大约\ dfrac{\δp}{\δx} = \ dfrac {p_ {i + 1, j} -p_{张,j}}{2 \三角洲间{i, j}} $ $
其中$i,j$是$x,y$的网格索引。这个例子有限的差异,以空间为中心。还有许多其他的方法来离散偏导数,在现代模型中使用的方法通常比这个例子复杂得多。如果网格间距不均匀,有限体积法如果预测的数量是守恒的,则必须使用。有限元法更常用于工程中定义在非结构化网格上的计算流体动力学问题,但也可用于大气和海洋求解器。谱方法在一些全局模型中使用,比如GFS和ECMWF。
在网格尺度上无法解析的过程(术语$\Phi$)以参数化方案的形式实现。参数化过程可能包括湍流和边界层混合、积云对流、云微物理、辐射、土壤物理、化学成分等。参数化方案仍然是一个热门的研究课题,并且在不断改进。上面列出的所有物理过程都有许多不同的方案。在不同的气象情况下,有些比其他的效果更好。
一旦所有方程中的所有项都在纸上离散化,离散方程就会以计算机代码的形式写出来。大多数大气、海洋环流和海浪模型都是用Fortran编写的。这主要是由于历史原因——拥有悠久的历史,Fortran拥有非常成熟的编译器和非常优化的线性代数库。如今,有了非常高效的C、c++和Fortran编译器,这更像是一个偏好问题。然而,Fortran代码仍然在大气和海洋建模中最普遍,甚至在最近开始的项目中也是如此。最后,上面压力梯度项的示例代码行如下所示:
Dpdx (i,j,k) = 0.5*(p(i+1,j,k)-p(i-1,j,k))/dx(i,j)
整个代码被编译成机器语言,然后加载到处理器上。模型程序通常不太友好,有花哨的图形界面——它通常在高性能多处理器集群上的哑终端上运行。
一旦启动,程序就会离散地穿越时间进入未来。每个网格点的状态变量的计算值存储在一个输出文件中,通常每小时存储一次(模拟时间)。然后,可视化和图形软件可以读取输出文件,以生成模型预测的漂亮图像。然后,这些数据被用作预报员的指导,以提供有意义和合理的预测。
这并不是一个完整的答案。天气模型的一个方面包括数据同化或4 d-var。
我同意他们很了不起,但问题是它们是如何工作的太宽泛了,无法回答。所以我建议你好好读读数据同化特别是4 d-var。概念是有些与逆理论相似,但维度更高。简单地说:
不能细说,但这是真的,他们是惊人的!
天气模式和预报是由系统控制的微分方程。首先是温度、湿度、大气压力等因果变量的当前水平或值。人们还必须考虑“导数”,或这些变量的变化率。因此需要微分方程,它包含变量和它们的导数来解释各种“波动”现象,如热、光、声等。
即使目前掌握了地球上大部分地区的大量原始知识,由于各种变量明显的“随机性”,预测天气仍然是一件冒险的事情。(其中一些确实是随机的,另一些随着时间的推移会得到更好的解释。)通过“切割和切割”变量(并受益于过去的经验,天气预报随着时间的推移在更大的空间内缓慢但肯定地变得更加准确。计算能力的提高也有所帮助。(延长时间以获得更准确的预测更为棘手,因为仍然有太多的变动因素。)就目前而言,与地球和宇宙的大小相比,我们所拥有的工具似乎只是“九牛一毛”(一些天气模式可能是由星际空间中发生的事情引起的),所以我们经常能提出或多或少准确的天气预报,这真的很令人惊讶。