使用gdas资料驱动WRF

作者: 气象备忘录 | 来源:发表于2018-10-26 20:08 被阅读183次

先贴一个小错误

错误:First eta level should be 1.0 and the last 0.0 in namelist
原因:设置的垂直层数和指定的eta面不匹配,检查e_vert和 eta_levels


目的:用gdas资料提供初始场,用gfs资料提供侧边界条件,驱动wrf
gdas数据地址https://nomads.ncdc.noaa.gov/data/gdas/201806/
gfs数据地址ftp://nomads.ncdc.noaa.gov/GFS/Grid3/201806/20180601/

这里需要注意的是,gdas资料的等压面资料和地表资料分散在两个文件中,如gdas.t00z.pgrb2.1p00.f000gdas.t00z.sfluxgrbf00.grib2
而gfs资料对应一个时次仅有一个文件gfs_3_20180601_0000_000.grb2

处理步骤:
1、gdas和gfs资料用的是同一个Vtable,先链接Vtable
ln -sf ungrib/Variable_Tables/Vtable.GFS Vtable
2、将开始时间和结束时间都设为init的时间,将prefix改为SFC,如

start_date = '${initial_time}','${nest_initial_time}',
end_date   = '${initial_time}','${nest_initial_time}',
prefix ='SFC',

link_grib.csh链接gdas地表数据(gdas.t00z.sfluxgrbf00.grib2),

GRIBFILE.AAA -> /public/home/gdas_sfc/sfc.2018060100

运行ungrib.exe解码出gdas的地表数据(为了方便管理,下载的资料都进行了重命名,下同)
3、将开始时间和结束时间设置正常,将prefix改为FILE。这里为了处理方便,就将剩下的gdas等压面资料和gfs一起解码了。link_grib.csh链接剩余的资料,

 GRIBFILE.AAA -> /public/home/data/gfs/20180601/gdas.2018060100
 GRIBFILE.AAB -> /public/home/data/gfs/20180601/gfs.2018060100f06
 GRIBFILE.AAC -> /public/home/data/gfs/20180601/gfs.2018060100f12
 GRIBFILE.AAD -> /public/home/data/gfs/20180601/gfs.2018060100f18
 GRIBFILE.AAE -> /public/home/data/gfs/20180601/gfs.2018060100f24
 GRIBFILE.AAF -> /public/home/data/gfs/20180601/gfs.2018060100f30
 GRIBFILE.AAG -> /public/home/data/gfs/20180601/gfs.2018060100f36
 GRIBFILE.AAH -> /public/home/data/gfs/20180601/gfs.2018060100f42
 GRIBFILE.AAI -> /public/home/data/gfs/20180601/gfs.2018060100f48
 GRIBFILE.AAJ -> /public/home/data/gfs/20180601/gfs.2018060100f54
 GRIBFILE.AAK -> /public/home/data/gfs/20180601/gfs.2018060100f60

运行ungrib.exe解码。
4、修改fg_name = 'SFC','FILE',,正常运行metgrid.exe后面步骤照旧。运行的过程中有warning,无视。


最后附上一个windows下面批量下载gfs资料的小脚本

echo off & SETLOCAL ENABLEDELAYEDEXPANSION 

for %%m in (  08  ) do (
    for %%d in ( 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 30 31 ) do (
        set index_dir="D:\gfs\2018%%m%%d"
        if exist "!index_dir!" ( echo !index_dir! exist ) else ( mkdir !index_dir! )
        cd !index_dir!
        echo !index_dir!

        for %%h in ( 06 12 18 24 30 36 42 48 54 60 ) do (
            if not exist "gfs.2018%%m%%d00f%%h" (
                aria2c.exe -c ftp://nomads.ncdc.noaa.gov/GFS/Grid3/2018%%m/2018%%m%%d/gfs_3_2018%%m%%d_0000_0%%h.grb2
                mv gfs_3_2018%%m%%d_0000_0%%h.grb2 gfs.2018%%m%%d00f%%h
            )
        )       
    
    )

    
)

bat语法中好像不支持while,可以通过goto 配合if实现类似的功能。有兴趣的可以资料尝试。aria2c.exe百度可以下载到(wget.exe也可以)。

相关文章

网友评论

    本文标题:使用gdas资料驱动WRF

    本文链接:https://www.haomeiwen.com/subject/ipoqtqtx.html