基于EC驱动的WRF模拟
前言
本文介绍使用EC的ERA高空和地面数据作为初始场,驱动WRF运行的方法。
一、EC数据下载
1.注册climate copernicus账号
点击climate copernicus,注册账号。
注册完成之后,点击Climate Data Store API,然后复制自己的url和key,如下图所示:
在C:\Users\用户名下新建文本文档,将刚刚复制的内容粘贴进去,后重命名为.cdsapirc,如下图所示:
2.选择变量
WRF中对于气象数据的字段有具体的要求,其中我们可以参考官网用户手册。必须包含的要素如下所示:
3D Data (e.g. data on pressure levels)
Temperature
U and V components of Wind
Geopotential Height
Relative Humidity (the code can calculate RH if Specific Humidity is available;this is controlled in the Vtable)
2D Data
Surface Pressure
Mean Sea Level Pressure
Skin Temperature/SST
2-meter Temperature
2-meter Relative or Specific Humidity
10-meter U and V components of wind
Soil data (temperature and moisture) and soil height
If any masked field is ingested, then a LANDSEA field is recommended
Water equivalent snow depth (SNOW) is a nice field to have, but not required.
SEAICE is good to have for a high latitude winter case, but it is not required.
3.下载数据
首先下载等压层上的数据,搜索并选择数据集ERA5 hourly data on pressure levels form 1979 to present,选择相应的变量,选择完毕之后,点击Show API request,可以看到API,如下所示:
import cdsapi
c = cdsapi.Client()
c.retrieve(
'reanalysis-era5-pressure-levels',
{
'product_type': 'reanalysis',
'format': 'grib',
'variable': [
'geopotential', 'relative_humidity', 'temperature',
'u_component_of_wind', 'v_component_of_wind',
],
'pressure_level': [
'1', '2', '3','5', '7', '10',
'20', '30', '50', '70', '100', '125',
'150', '175', '200', '225', '250', '300',
'350', '400', '450', '500', '550', '600',
'650', '700', '750', '775', '800', '825',
'850', '875', '900', '925', '950', '975', '1000',
],
'year': '2023',
'month': '10',
'day': [
'11', '12', '13', '14', '15', '16', '17', '18', '19', '20', '21',
],
'time': [
'00:00', '06:00', '12:00', '18:00',
],
'area': [
60, 70, 0, 140,
],
},
'pressure-levels.grib')
将上面的内容复制到python编译器,运行后等待下载即可。
然后下载地面数据,搜索并选择数据集ERA5 hourly data on single levels from 1940 to present,选择相应的变量,选择完毕之后,点击Show API request,可以看到API,如下所示:
import cdsapi
c = cdsapi.Client()
c.retrieve(
'reanalysis-era5-single-levels',
{
'product_type': 'reanalysis',
'format': 'grib',
'variable': [
'10m_u_component_of_wind', '10m_v_component_of_wind', '2m_dewpoint_temperature',
'2m_temperature', 'land_sea_mask', 'mean_sea_level_pressure',
'sea_ice_cover', 'sea_surface_temperature', 'skin_temperature',
'snow_depth', 'soil_temperature_level_1', 'soil_temperature_level_2',
'soil_temperature_level_3', 'soil_temperature_level_4', 'surface_pressure',
'volumetric_soil_water_layer_1', 'volumetric_soil_water_layer_2', 'volumetric_soil_water_layer_3',
'volumetric_soil_water_layer_4',
],
'year': '2023',
'month': '10',
'day': [
'11', '12', '13',
'14', '15', '16',
'17', '18', '19',
'20', '21',
],
'time': [
'00:00', '06:00', '12:00',
'18:00',
],
'area': [
60, 70, 0,
140,
],
},
single-levels.grib')
下载完成后,在目录下会生成两个文件,一个高空数据pressure-levels.grib、一个地面数据single-level.grib。
二、运行WPS
1.下载好的两个EC的数据放入WRF中的DATA文件夹中,如下图所示:
2.链接ERA的数据格式Vtable.ERA-interim.pl
ln -sf ungrib/Variable_Tables/Vtable.ERA-interim.pl Vtable
3.链接高空grib数据
./link_grib.csh ../../data/ec/ pressure-levels.grib
将namelist.wps中&ungrib部分的prefix 参数改为prefix = ‘3D’。
运行./ungrib.exe,生成以3D为前缀的文件。
./ungrib.exe
4.链接地面grib数据
./link_grib.csh ../../data/ec/single-level.grib
将namelist.wps中&ungrib部分的prefix 参数改为prefix = ’ SFC’。
运行 ./ungrib.exe,生成以SFC为前缀的文件。
./ungrib.exe
5.在运行metgrid之前将namelist.wps中&metgrid部分的 fg_name参数改为fg_name = ‘3D’,’SFC’
6.运行./metgrid.exe,生成met_em*.nc文件,至此EC数据驱动成功。
./metgrid.exe
后续可正常进行WRF运行。