登录后查看更多精彩内容~
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
本帖最后由 小莹子 于 2019-4-17 11:28 编辑
之前一直使用的是FNL数据,但在与实测数据做点对点的验证的时候,发现误差有些大。在看了一些资料后了解到ERA-Interim数据的精度更高。现在在尝试ERA-Interim数据。
1.ERA-Interim数据介绍
http://blog.sciencenet.cn/blog-430991-888904.html
2.ERA-Interim数据下载
根据论坛上http://bbs.06climate.com/forum.php?mod=viewthread&tid=13288下载ERA资料http://apps.ecmwf.int/datasets/数据说明http://bbs.06climate.com/forum.php?mod=viewthread&tid=57876
nc文件不能直接使用,WPS中可以直接处理各种GRIB文件的背景场(ungrib),转化成统一的中间格式数据(FILE:xxxx),再插值成初始场和边界条件,最后驱动模式。如果要用nc格式的背景场,就必须自己将其转换成中间格式。中间格式参考http://www2.mmm.ucar.edu/wrf/OnL ... IM_files/IM_wps.htm
在下载之后发现数据的命名并不是规则的格式,比如说ERA-Int-2007*之类的,而是一大堆乱码,_mars-atls13-a562cefde8a29a7288fa0b8b7f9413f7-_kFohx.grib。一开始以为是自己下载的问题,毕竟对于长时间序列的数据而言,如果一次性下载许多个文件的话,这样的命名只会增加负担。在交流群STARMAN咨询过后,被解释说这是常态,这是ec的mars系统根据用户需要定制的文件。可以自己命名。
其中变量下载参照http://bbs.06climate.com/forum.php?mod=viewthread&tid=30962
三维数据(例如,气压层的数据) · 温度(130.128) · 风场u,v分量(131.128, 132.128) · 位势高度(129.128对应位势) · 相对湿度(157.128)/比湿 (133.128) 二维数据 · 地面气压 (134.128) · 平均海平面气压(151.128) · 地表温度(235.128) · 2米温度 (167.128, 2m 露点温度168.128) · 2米相对湿度或比湿 · 10风场u,v分量(165.128, 166.128) 如果需要用到masked,建议提供LANDSEA场。 如果在进行物理过程参数化时需要用到Noah LSM陆面模式,需要提供两层Soil Temperature (139,170,183,236.128)和Soil Moisture(39,40,41,42.128)。 如果模式运行时需要更新SST,需要提供SST(34.128)。 建议提供Soil Height(可选),这样就可以调整土壤温度达到与WRF模式地形高度向适应。 建议提供SNOW(141.128)场。 建议对高纬度冬季个例,提供SEAICE (31.128) 场
http://bbs.06climate.com/forum.php?mod=viewthread&tid=57876数据介绍
3.数据与处理
根据帖子http://bbs.06climate.com/forum.php?mod=viewthread&tid=30962上介绍的方法,
编辑namelist.wps: vi namelist.wps
运行geogrid: ./geogrid.exe
链接Vtable: ln -sf ungrib/Variable_Tables/Vtable.ECMWF Vtable 链接高空数据: ./link_grib.csh ./usr/local/data/ERA/ERA-pl201703.grib 编辑namelist.wps: prefix = '3D', 运行ungrib: ./ungrib.exe 链接地面数据: ./link_grib.csh ./usr/local/data/ERA/ERA-sfc201703.grib 编辑namelist.wps: prefix = 'SFC', 运行ungrib: ./ungrib.exe metgrib部分 编辑namelist.wps里metgrid部分: fg_name = '3D','SFC', 运行 ./metgrid.exe
但是在./metgrid.exe时,出现错误:
[root@localhost WPS]# ./metgrid.exe
Processing domain 1 of 1
Processing 2017-01-01_00
3D
SFC
ERROR: The mandatory field UU was not found in any input data.
Warning: ieee_inexact is signaling
FORTRAN STOP
在/../../WPS文件夹内查看数据,发现3D:2017-01**和SFC:2017-01**数据是已经生成的
在将陆面数据换成FNL数据之后,发现./metgrid.exe时可以跑下去的。纠其原因还要回到最初的数据下载,变量没有下载完全。重新下载多变量数据,然后./metgrid.exe
链接Geopotential.grib 和 Land-sea mask.grib后,
[root@localhost WPS]# ./metgrid.exe
Processing domain 1 of 1
Processing 1989-01-01_12
PFILE
WARNING: Couldn't open file PFILE:1989-01-01_12 for input.
ERROR: The mandatory field TT was not found in any input data.
Warning: ieee_inexact is signaling
FORTRAN STOP
vi namelist.input
./real.exe
flag_soil_layers read from met_em file is 1
Max map factor in domain 1 = 1.13. Scale the dt in the model accordingly.
p_top_requested = 5000.000
allowable grid%p_top in data = 80000.00
-------------- FATAL CALLED ---------------
FATAL CALLED FROM FILE: <stdin> LINE: 1137
p_top_requested < grid%p_top possible from data
-------------------------------------------
-------------- FATAL CALLED ---------------
FATAL CALLED FROM FILE: <stdin> LINE: 1137
p_top_requested < grid%p_top possible from data
解决方法:将namelist.input中p_top_requested=5000改为80000.因为我下载的800hpa的探空数据。
之后出现问题:Could not find level of surface
思考了一下,明白了探空数据不能只单独下载某一层数据,而是要从地面下载到你需要的大气层高度。
./real.exe
./wrf.exe成功!!!
上面用的是monthly means of daily means数据,换成daily试跑。
./real.exe
d01 2016-01-01_00:00:00 Total post number of sea ice location changes (water to land) = 11
the grid%landmask and soil/veg cats do not match
i,j= 20 4
grid%landmask= 0.000000
grid%ivgtyp= 17
grid%isltyp= 6
iswater= 17
grid%tslb= 0.000000 0.000000 0.000000 0.000000
grid%sst= 0.000000
-------------- FATAL CALLED ---------------
FATAL CALLED FROM FILE: <stdin> LINE: 3273
mismatch_landmask_ivgtyp
-------------------------------------------
-------------- FATAL CALLED ---------------
FATAL CALLED FROM FILE: <stdin> LINE: 3273
mismatch_landmask_ivgtyp
第一直觉是与时间无关的两个物理变量中的land-sea mask.grib没有更新成功有关。查找相关帖子,看到别人出现的类似问题是将
namelist.input中surface_input_source 是3调成1,打开自己的namelist.input发现没有这一设置,手动添加,./real.exe成功!!!
在链接多月份数据的时候总会出现
ERROR: Data not found: 2017-03-01_00:00:00.0000
以为要分别链接,但数据跑起来的时候,只会承认最新链接的数据。
解决方法,直接用*将这些数据全部链接了,肯定还有简单便捷的方法。
下载的数据只下载到了500hpa,然后我将p_top_requested=5000(50hpa),改为50000(500hpa)。./real.exe出现错误
-------------- FATAL CALLED ---------------
FATAL CALLED FROM FILE: <stdin> LINE: 5696
troubles, could not find trapping x locations
-------------------------------------------
查看帖子说是"网格设置方面的问题"或者"p_top_requested这一项,检查一下,改一下试试;或者可能是设置的格点超过了数据的范围。有必要提醒一下的是,一般下载的选择的“经纬度”实际上是一个梯形,而wrf模式的区域是一个“正方形”
ERA数据下载可以设置范围,大大减少数据量。但在./metgrid.exe时出现如下错误
WARNING: Field PSFC has missing values at level 200100 at (i,j)=(1,63)
ERROR: Missing values encountered in interpolated fields. Stopping
查看帖子,是驱动范围小于实际范围导致的。
变量名可以到这个网页查找 http://apps.ecmwf.int/codes/grib/param-db
但因为数据下载变量多,而且勾选起来的话特别麻烦,所以选择批量下载。
python调用ECMWF欧洲中心api下载数据https://blog.csdn.net/ginynu/article/details/54990330
|