设置和运行¶
一旦成功构建了UPP,用户将准备好开始在其模型数据上运行UPP的过程。尽管 unipost.exe 可以在命令行上交互式运行,但它要求用户将所有必需的文件链接到其工作目录并创建itag文件,其中包括unipost本身读取的所需用户定义信息。相反,鼓励新用户使用 UPPV4.0/scripts/ 目录中提供的便捷运行脚本之一。
unipost.exe 程序需要以下文件:
- itag:4-5行文本文件,详细介绍要处理的WRF模型输出
- 控制文件:
wrf_cntrl.parm(grib1)或postxconfig-NT.txt(grib2):文件指定要输出的字段/级别- 额外文件:例如,微物理或卫星的数据表。
***提供的运行脚本将自动创建和/或链接这些必需的文件***
ITAG¶
该ITAG由unipost读入,并在自动生成的run_unipost基于在用户编辑部分用户定义的选项脚本。所述ITAG包含以下5(6),用于处理WR(FV3GFS)数据:
- 要进行后处理的WRF(FV3GFS dyn*)输出文件的路径和名称。
- WRF(FV3GFS)模型输出的格式(netcdf或binarynemsio)。
- UPP输出的格式(GRIB1或GRIB2)。
- 以WRF格式预测有效时间(不是模型开始时间)(即,需要进行后处理的预测时间)。
- 使用的动态核心(NCAR或GFS)。
- 仅限FV3GFS:要后处理的FV3GFS phy*输出文件的路径和名称。
WRF-ARW的示例:
/path/to/file/wrfout_d01_2010-06-10_00:00:00
netcdf
grib2
2010-06-10_00:00:00
NCAR
FV3GFS的示例:
/path/to/file/dynf006.nemsio
binarynemsio
grib2
2016-10-03_06:00:00
GFS
/path/to/file/phyf006.nemsio
GRIB1的控制文件¶
本节介绍了参数文件,可以修改该参数文件以控制后处理的方式,以输出仅适用于WRF-ARW的GRIB1格式。供WRF运行的 /UPPV4.0/parm/wrf_cntrl.parm 中可以找到供用户练习的默认控制文件。
WRF控制文件的组件 控制文件由标题和主体组成。标头指定输出文件信息。主体允许您选择要处理的字段和级别。
wrf_cntrl.parm 文件的头 包含以下变量:
- KGTYPE:定义输出网格类型,应始终为255
- IMDLTY:标识AWIPS的进程ID
- DATSET:定义用于输出文件名的前缀(即用于WRF运行的WRFPRS)
wrf_cntrl.parm 文件的主体 由一系列线对组成,类似于:
PRESS ON MDL SFCS)SCAL =(3.0)
L =(11000 00000 00000 00000 00000 00000 00000 00000 00000 00000 00000 00000 00000 00000 00000)
第一行指定:
- 变量(例如PRESS)
- 级别类型(例如,ON MDL SFCS)
- 写入GRIB1文件的数据的精度(例如SCAL = 3.0)
第二行指定要在其上输出变量的级别。在此示例中,0 指示在该级别上没有输出,而 1 指示该变量将在由数字位置和定义的级别类型指定的级别上输出。
对于那些希望修改 wrf_cntrl.parm 文件的用户,请参阅 如何控制输出哪个GRIB1变量和级别 。
变量和级别修改¶
控制其水平UNIPOST输出¶
为了控制要输出level,请使用第二行,其中 1 打开 level,0 关闭 level。
- 对于等压输出,从2到1000 hPa(2、5、7、10、20、30、50、70 mb,然后每25到75 mb至1000 mb)有47个级别是可能的。可以在
/UPPV4.0/src/unipost/CTLBLK.f中进行等压线级别的修改
- 修改变量LSMDEF以更改阵列中的压力级别数(例如LSMDEF = 47)
- 修改SPLDEF数组以更改压力水平的值,即(/200.,500….97500.,100000./)
- 对于模型级别的输出,所有模型级别都是可能的,从最高到最低
- 对于土壤水平,层数或水平取决于您的LSM:
- Noah LSM土壤层为0-10、10-40、40-100和100-200厘米。
- RUC LSM土壤水平为0、1、4、10、30、60、100、160和300 cm。对于RUC LSM,有必要在wrf_cntrl.parm中打开5个附加级别以输出9而不是4 。(对于旧的RUC-LSM,只有6层,如果使用此层,则需要在
WRFPOST.f例程中将RUC LSM从9更改为6 )。- Pliem-Xiu LSM层是0-1和1-100厘米。
- 对于低,中和高云层,分别为≥642hPa,≥350hPa和<350 hPa。
- 对于PBL层平均值,这些级别对应于6个层,每个层的厚度为30 hPa。
- 对于飞行级别,级别为30、50、80、100、305、457、610、914、1524、1829、2134、2743、3658、4572、6000和7010 m。
- 对于AGL雷达反射率,水平为4000和1000 m。
- 对于地表或掩体级输出,仅需要打开线路的第一个位置。
有关GRIB1的可用字段的列表,请参见 GRIB1表
GRIB2的控制文件¶
为了以GRIB2格式输出,使用了许多参数文件,并且可以在 /UPPV4.0/parm/ 目录中找到 :
- post_avblflds.xml:参数文件列出了所有可能的字段,可用于在UPP中输出
- postcntrl.xml:样本可配置参数文件,该文件声明将从UPP输出哪些字段
- postxconfig-NT.txt:从
postcntrl.xml创建的文本文件,由 unipost读取
对于新用户,示例文本文件可用于运行UPP。
以下各节描述了可配置的 postcntrl.xml 参数文件以及unipost输出GRIB2格式所需的创建 postxconfig-NT.txt 文件的过程。
XMLPOST CONTROL XML的组件¶
postcntrl.xml 文件的头包含许多用于指定输出文件信息的变量,其中大多数将不需要修改。第一个变量是datset它定义(例如用于输出文件名的前缀WRFPRS为WRF运行或GFSPRS用于FV3GFS运行),并且将是唯一一个在此描述。
postcntrl.xml 文件的主体包含每个变量的信息,类似于以下示例:
范例 1:
<param>
<shortname> PRES_ON_HYBRID_LVL </shortname>
<pname> PRES </pname>
<level > 1。2. 3. 4. 5。</level>
<scale> 6.0 </scale>
</param>
其中,
- shortname 声明变量(例如PRES)和级别类型(例如ON_HYBRID_LVL)
- pname 是该类型的变量(例如PRES)的标准GRIB2缩写。
- level 列出了输出变量的级别(例如,混合级别1. 2. 3. 4. 5.)
- scale 是写入GRIB2文件的数据的精度(例如6的小数位数)
范例 2:
<param>
<shortname> LFTX_ON_ISOBARIC_SFC_500-1000hpa </shortname>
<pname> LFTX </pname>
<table_info> NCEP </table_info>
<level> 50000。</level>
<level2> 100000。</level2>
<scale> 3.0 </scale>
</param>
其中,
- shortname 声明变量(例如LFTX)和级别类型(例如ON_ISOBARIC_SFC_500-1000hpa)
- pname 是该类型的变量(例如LFTX)的标准GRIB2缩写。
- table_info 指定要使用的表信息(如果不是标准的话)(例如NCEP)
- level 列出了一层的第一个级别,如果输出多个层,则用逗号分隔(例如,压力级别50000。Pa)
- level2 列出了一层的第二层,如果输出多个层,则以逗号分隔(例如,压力水平100000。Pa)
- scale 是写入GRIB2文件的数据的精度(例如3的小数位数)
注解
尽管unipost实际上未直接读取 postcntrl.xml,但是创建 postxconfig-NT.txt 则需要它。
对于那些希望修改 postcntrl.xml 文件的用户,请参阅 如何控制输出哪些GRIB2变量和级别 。
创建POSTXCONFIG文本文件¶
输出GRIB2格式时,如果对 postcntrl.xml 进行了任何修改,则用户需要执行预处理步骤才能将 postcntrl.xml 转换为纯文本文件 postxconfig-NT.txt 。
首先,为了确保xml文件没有错误,可使用xml样式表来验证它们,这些样式表位于 /UPPV4.0/parm/ 目录中:
- EMC_POST_CTRL_Schema.xsd:用于验证 postcntrl.xml
- EMC_POST_Avblflds_Schema.xsd:用于验证 post_avblflds.xml
要运行验证,请键入:
xmllint -noout --schema EMC_POST_CTRL_Schema.xsd postcntrl.xml
xmllint -noout --schema EMC_POST_Avblflds_Schema.xsd post_avblflds.xml
将给出确认信息(例如 postcntrl.xml vlalidates),否则将返回错误。
验证xml后,即可创建postxconfig-NT.txt文件。编辑/UPPV4.0/parm/makefile,使其指向正确的目录位置。生成文件将调用perl程序/UPPV4.0/parm/POSTXMLPreprocessor.pl生成新的文本文件postxconfig-NT.txt。
要运行 makefile ,输入:
make
这将创建输出GRIB2格式所需的新的 postxconfig-NT.txt 文本文件,该文件将包含 postcntrl.xml 中的所有字段。
变量和级别修改¶
要输出字段,postcntrl.xml 文件的主体需要包含相应变量的条目,并至少包括shortname,pname,level和scale,并视需要包含其他标签。如果您的:code:postcntrl.xml 中没有字段,但该字段可供输出,则可以从 post_avblflds.xml 复制该参数。
控制其水平UNIPOST输出¶
要修改要输出的级别,需要编辑级别标签中的值以反映该变量所需的输出级别。如果该变量在一个特定层中定义,则level(该层的第一级)和level2(层的第二级)标签将需要被编辑。
下面的列表详细说明了哪些变量可用于各种字段的输出。
- 对于等压输出,从2到1000 hPa(2、5、7、10、20、30、50、70 mb,然后每25到75 mb至1000 mb)有47个级别是可能的。可以在
/UPPV4.0/src/unipost/CTLBLK.f中进行等压线级别的修改
- 修改变量LSMDEF以更改阵列中的压力级别数(例如LSMDEF = 47)
- 修改SPLDEF数组以更改压力水平的值,即(/200.,500….97500.,100000./)
- 对于模型级别的输出,所有模型级别都是可能的,从最高到最低
- 对于土壤水平,层数或水平取决于您的LSM:
- Noah LSM土壤层为0-10、10-40、40-100和100-200厘米。
- RUC LSM土壤水平为0、1、4、10、30、60、100、160和300 cm。对于RUC LSM,有必要在wrf_cntrl.parm中打开5个附加级别以输出9而不是4 。(对于旧的RUC - LSM,只有6层,如果使用此层,则需要在WRFPOST.f例程中将RUC LSM从9更改为6 )。
- Pliem-Xiu LSM层是0-1和1-100厘米。
- 对于低,中和高云层,分别为≥642hPa,≥350hPa和<350 hPa。
- 对于PBL层平均值,这些级别对应于6个层,每个层的厚度为30 hPa。
- 对于飞行级别,级别为30、50、80、100、305、457、610、914、1524、1829、2134、2743、3658、4572、6000和7010 m。
- 对于AGL雷达反射率,水平为4000和1000 m。
- 对于地表或掩体级别的输出,请为特定变量指定地表级别。
有关GRIB2的可用字段的列表,请参见 GRIB2表
脚本¶
UPP软件包包括许多用于运行UPP的示例脚本。这些可以在 /UPPV4.0/scripts 中找到,包括以下内容:
- run_unipost:用于运行UPP的基本运行脚本
- run_unipostandgrads:基本运行脚本,带有使用GrADS软件包进行绘图的其他示例代码
- run_unipostandgempak:基本运行脚本,带有用于使用GEMPAK软件包进行绘图的其他示例代码
- run_unipost_frames:运行模型输出的脚本,每个文件超过一次(仅限WRF)
- run_unipost_gracet:以非零分钟/秒的速度运行模型输出的脚本(仅WRF)
- run_unipost_minutes:亚小时模型输出(即15分钟输出)的运行脚本(仅适用于WRF)
运行脚本用户编辑¶
每个运行脚本的所有用户修改变量的顶部均包含一个部分,包括说明。对于本教程,我们将只看基本的运行脚本。
设置基本路径变量:
- TOP_DIR:UPPV4.0源代码的顶级目录
- DOMAINPATH:运行的工作目录
- UNIPOST_HOME:UPP构建目录的路径
- POSTEXEC:UPP可执行文件的位置
- 脚本:UPP脚本目录的位置(即
UPPV4.0/scripts) - modelDataPath:要处理的模型数据的位置(例如
wrfprd/) - paramFile:wrf_cntrl.parm文件的名称和位置,该文件列出了GRIB1输出的所需字段
- txtCntrlFile:postxcntrl-NT.txt的名称和位置,该名称和位置是从postcntrl.xml生成的,用于GRIB2输出
指定正在运行的动态核心:
- dyncore:正在使用的模型核心(即ARW或FV3)
指定输入模型文件和输出UPP文件的格式:
- inFormat:输入模型数据的格式(例如,用于ARW的netcdf或用于FV3GFS的binarynemsio)
- outFormat:UPP输出的格式(grib或grib2)
指定要后处理的预测周期:
- startdate:YYYYMMDDHH中的预测开始日期
- fhr:要进行后处理的第一个预测小时
- lastfhr:要进行后处理的最后预测小时
- crementhr:预测文件之间的增量(以小时为单位)
指定要后处理的域:
- domain_list:要后处理的域列表(例如“ d01 d02”)
为您的系统设置运行命令:
RUN_COMMAND:串行(默认)或并行运行的系统运行命令。
- 串行:
./unipost.exe,用于在单个处理器上运行 - 并行:
mpirun -np N unipost.exe,其中N是处理器数
- 串行:
运行UPP¶
在运行任何运行脚本之前,请执行以下指示:
- cd到运行脚本中指定的DOMAINPATH目录
- 创建一个目录以将UPP结果放入:
mkdir postprd
- 创建目录以将控制参数文件的副本放入:
mkdir parm
注解
注意:对于初次使用的用户,建议使用代码版本附带的默认参数文件运行
将相关控制文件从
UPPV4.0/parm/复制到新创建的parm目录:- wrf_cntrl.parm为GRIB1
- GRIB2的postxconfig- NT.txt
将所需的运行脚本从
UPPV4.0/scripts/复制到postprd/目录编辑运行脚本(有关详细信息,请参见 脚本页面)
设置好这些目录并完成运行脚本编辑后,只需在命令行中键入脚本名称,即可从 postprd/ 目录交互式运行脚本:
./run_unipost
UPP输出¶
成功完成运行后,生成的输出文件将位于 postprd/ 工作目录中,并将包括 WRFPRS_dnn.hh 或 GFSPRS.hh ,其中 nn 表示域ID,hh 表示预测小时。
要查看GRIB1输出文件,请使用wgrib实用程序(如果在您的计算机上可用)。要查看文件中所有变量的详细信息,请键入例如:
wgrib -V wrfprs_d01.12
要查看GRIB2输出文件,请使用wgrib2实用程序(如果在您的计算机上可用)。要查看文件中所有变量的详细信息,请键入例如:
wgrib2 -V wrfprs_d01.12
如果您选择运行 run_unipostandgrads 或 run_unipostandgempak 脚本,那么还将为GrADS或GEMPAK分别生成一个名为:codeL`variablehh_GrADS.png` 或 variablehh.gif 的附加图像集。
如果运行未成功完成,则在后处理器工作目录中的日志文件名为 unipost_dnn.hh.out`(WRF)或 :code:`unipost.hh.out (FV3GFS),其中 nn 是域ID,hh 是域文件表示预测时间,可参考以获取更多信息。