WPS(WRF Preprocessing System)是为了真实数据模拟提供输入的前处理过程,包含了3个主要程序,分别为:geogrid.exe
、ungrib.exe
和metgrid.exe
。1
geogrid.exe
-
定义模式的模拟域,并将静态地理学数据插值到模式网格。
ungrib.exe
-
从GRIB格式文件中提取气象场数据。
metgrid.exe
-
将
ungrib.exe
提取的气象场数据水平插值到geogrid.exe
定义的模拟域网格。
如上流程图所示,WPS的各程序均通过namelist.wps
控制文件读取相应的参数进行数据处理。但上述流程图未给出各程序(geogrid.exe
、ungrib.exe
和metgrid.exe
)所需要的其他控制参数文件,比如GEOGRID.TBL、 METGRID.TBL和Vtable。
GEOGRID.TBL
- 定义了
geogrid.exe
插值的每个数据集的参数。每个数据集的参数是单独定义的,且通过一行========
号进行分割。 每一部分都通过keywords=values
形式定义。有些关键词是必须的,有些是可选的。比如:插值方法选项、平滑选项、气象场类型等。更详细的信息见文档2。 METGRID.TBL
- 定义了
metgrid.exe
插值气象场所需要的参数。文件形式与GEOGRID.TBL
形式类似。同样提供了插值选项,如果需要修改气象场插值选项可更改此文件插值相关参数。更详细信息见文档3。 Vtable
- 定义了
ungrib.exe
提取气象场所需要的参数。对于常用气象数据集而言,比如NCEP,EC等机构提供的气象场,WRF中都提供了Vtable
模版文件,一般直接链接使用即可。更多信息见文档4。 -
如果你使用的是新的数据源,那么可能需要创建新的
Vtable
文件。
WPS流程
geogrid
如上所述,geogrid
主要是为了定义模拟域以及插值地理数据到模式网格。模拟域由namelist.wps
中的geogrid
部分参数定义,包含地图投影、中心经纬度以及分辨率等。geogrid
默认会将插值土壤类别(soil categories)
、陆地使用类别(land use category)
、地形高度(terrain height)
、年平均深层土壤温度(annual mean deep soil temperature)
、月植被覆盖率(monthly vegetation fraction)
5、月反照率(monthly albedo)
、雪最大反照率(maximum snow albedo)
以及坡度类别(slope category)
到模式网格。
上述所有量的全球范围数据集在WRF官方下载页均提供了下载。因为上述数据不是时间依赖量,因此只需要下载一次即可。有些数据集仅有一种分辨率可用,但大部分数据都提供了full-resolution
和low resolution
两种分辨率下载。通常low resolution
仅作为测试和教学使用,对于其他目的应用,应使用full-resolution
数据集。
除了默认的地理数据集,geogrid
也能将大部分连续和类别变量插值到模拟域。如果想将新数据集插值到模拟域,可以通过修改GEOGRID.TBL
文件实现。
运行时所需要的参数由namelist.wps
中&geogrid
部分提供,默认参数如下:
|
|
ungrib
ungrib
主要负责解码GRIB格式气象场,写入中间格式文件。GRIB格式文件中包含了时间变化的气象场,通常这些数据来源于其他全球/区域数值模式,比如NCEP NAM和GFS。ungrib
可以处理GRIB 1
和GRIB 2
格式文件。
处理GRIB 2
格式文件需要编译WPS时使用GRIB2
选项。
通常情况下,GRIB文件中包含的变量比初始化WRF模式所需要的变量要多。两种格式的文件都使用了大量编码识别GRIB文件中的变量和层。这些编码存储在Vtable
文件中,定义了从气象场中提取并写入到中间格式文件中的变量。
关于上述编码的详细信息见WMO GRIB文档。
ungrib
有三种中间格式数据可供选择:WPS
、SI
和MM5
。WPS
- WRF系统的一种新的格式,包含了对于下游程序非常有用的额外信息。
SI
- WRF系统的旧中间数据格式。
MM5
- 用于为MM5模式提供GRIB 2格式输入。
上述三种格式均可用于驱动WRF模式,但推荐使用WPS格式。
解码参数由namelist.wps
中&ungrib
部分提供,默认参数如下:
|
|
metgrid
metgrid
将ungrib
提取并生成的中间格式数据中的气象要素水平插值到geogrid
定义的模拟域网格,所生成的文件可作为real
的输入。控制水平插值的参数由namelist.wps
中&metgrid
部分提供,默认参数如下:
|
|
关于每个气象场如何插值到模式网格,由METGRIB.TBL
中的参数控制。可以指定插值方法、掩膜场、交错网格场(grid staggering)(ARW中是U
和V
,NMM中是H
和V
)等。
ungrib
和metgrid
所处理的数据均是时间依赖的,因此每次初始化模拟时都要运行。而对于固定区域的模拟而言,一般只需要定义一次模拟域,也仅需要一次插值静态数据到模拟域。因此geogrid
只需要运行一次。
其他工具6
除了上述三个程序,WPS还提供了一系列小工具,用于分析数据、可视化嵌套模拟域、计算气压场以及计算平均地面温度场。
avg_tsfc.exe
此程序根据给定的中间格式输入文件计算日平均地面温度。日期范围根据namelist中的&share
部分参数设置,时间间隔为中间格式文件的时间间隔。
程序计算日均值时必须要用完整的一天的数据,如果没有完整的一天的数据则不输出。类似地,任何时间上不足一天的中间文件都会被忽略。例如,有5个6小时间隔的中间文件可用,那么最后一个文件会被忽略。
计算的平均场会以TAVGSFC
为变量名写入到新的中间格式文件。日均地面温度场可以被metgrid
在namelist
中设置constant_name
值为TAVGSFC
进行读取。
mod_levs.exe
用于从中间格式文件中移除垂直层。可以通过在namelist中设置新的参数控制,比如:
|
|
在&mod_levs
记录中,press_pa
变量用于控制要保留的垂直层。指定的垂直层应和中间格式文件中的xlvl
的值相匹配。更多信息可参考WPS中间格式的相关讨论。mod_levs.exe
接受两个参数:第一个是输入的中间格式文件名,第二个是输出的中间格式文件名。
从气象数据集中移除垂直层是非常有用的,比如当一个数据集用作模式初始条件,另一个数据集用作模式边界条件时。对于初始条件只需要提供初始时刻的数据给metgrid
进行插值,而边界条件则需要所有时刻的数据。如果两个数据集具有相同的垂直层,则不需要移除垂直层。由于real
进行插值时,需要初始条件和边界条件具有相同的垂直层。因此,当两个数据集的垂直层不同时,则需要从m
层的文件中移除(m-n)
层(m>n)。m和n是这两个数据集的垂直层数。
mod_levs
只是用于处理具有不同垂直层的不同数据集的一种折衷方法。用户在使用mod_levs
时应该注意:尽管数据集间的垂直层位置不需要匹配,但所有数据集都应该具有地面层数据,而且当运行real.exe
和wrf.exe
时应该选择所有数据集中最低的p_top
值。
注意:p_top
为namelist.input
中定义模式顶的参数。
calc_ecmwf_p.exe
垂直插值气象场时,real
程序需要和其他气象场处于相同垂直层的3D气压场和位势高度场。calc_ecmwf_p.exe
可食用ECMWF的sigma
层数据集创建这些气象场。给定地面气压场或地面气压场的log值以及A和B的系数,那么calc_ecmwf_p.exe
就可以计算在ECMWF sigma
k
层的格点 P_ijk = A_k + B_k*P_sfc_ij 的气压值。
用于ECMWF不同的垂直层数据集气压计算的系数可从以下链接获取:
|
|
系数表赢写入到当前文件夹下,并命名为ecmwf_coeffs
,以下为16层数据集的系数示例:
|
|
如果土壤高度(soil height)或土壤位势高度(soil geopotential)、3D温度和3D相对湿度场可用,calc_ecmwf_p.exe
会计算3D位势高度场,这对于real
进行准确的垂直插值是非常重要的。
给定ungrib
解码后的中间文件和ecmwf_oeffs
系数文件,calc_ecmwf_p
会对namelist中给定的所有时刻数据进行循环计算,并为每个时刻生成一个中间文件,命名形式为PRES:YYYY-MM-DD_HH
,包含所有sigma
层的气压、位势高度以及3D相对湿度场。通过在namelist中的fg_name
前缀列表中添加PRES
前缀,将此中间文件和ungrib
解码的中间文件传递给metgrid
作为输入。
height_ukmo.exe
real
对metgrid
的输出进行垂直插值时需要3D气压场和位势高度场。而UKMO模式数据集中没有地形高度场。此程序为UKMO模式数据集计算地形高度场。
plotgrids.ncl
根据namelist.wps
设置信息绘制模拟域图。在设置模拟域时非常有用,可以帮助调整namelist中关于模拟域的位置信息。可通过执行ncl util/plotgrids.ncl
可视化模拟域。对于不同的版本的ncl,可能要调用不同的绘图脚本。对于NCL6.2及之后的版本,可使用plotgrids_new.ncl
绘制,之前的版本可使用plotgrids_old.ncl
。
注意:目前不支持使用lat-lon
投影。
g1print.exe
输出GRIB1格式文件中的数据日期、气象场量以及垂直层等信息。
g2print.exe
输出GRIB2格式中数据的日期、气象场量以及垂直层等信息。可在WPS目录下执行以下命令:
|
|
可得到如下信息(此处仅列出部分信息):
|
|
rd_intermediate.exe
输出给定中间格式文件中的所有气象场量信息。
参考链接
https://www2.mmm.ucar.edu/wrf/users/docs/user_guide_v4/v4.0/users_guide_chap3.html#_Introduction ↩︎
https://www2.mmm.ucar.edu/wrf/users/docs/user_guide_v4/v4.0/users_guide_chap3.html#_Description_of_GEOGRID.TBL ↩︎
https://www2.mmm.ucar.edu/wrf/users/docs/user_guide_v4/v4.0/users_guide_chap3.html#_Description_of_METGRID.TBL ↩︎
https://www2.mmm.ucar.edu/wrf/users/docs/user_guide_v4/v4.0/users_guide_chap3.html#_Creating_and_Editing ↩︎
https://www2.mmm.ucar.edu/wrf/users/docs/user_guide_v4/v4.0/users_guide_chap3.html#_WPS_Utility_Programs ↩︎