运行PointStat ========================== 1. 将 :code:`METplus/ush` 加入 :code:`PATH` 环境变量 .. code-block:: bash export PATH=/home/wrf/METplus-3.0.2/ush:$PATH #. 设置结果输出路径和MET系统路径 .. code-block:: bash $ cd /home/wrf/METplus-3.0.2 $ vi parm/metplus_config/metplus_system.conf ... # Location of METplus output files OUTPUT_BASE = /home/wrf/METout STAGING_DIR = {OUTPUT_BASE}/stage ## Commonly used base MET variables ## Met install location MET_INSTALL_DIR = /home/wrf/METplus-3.0.2/build_components MET_BASE = {MET_INSTALL_DIR}/share/met ## Output directories LOG_DIR = {OUTPUT_BASE}/logs TMP_DIR = {OUTPUT_BASE}/tmp ... #. 设置输入数据路径 .. code-block:: bash $ cd /home/wrf/METplus-3.0.2 $ vi parm/metplus_config/metplus_data.conf .... # Input data directories # This is the location of your input files for METplus INPUT_BASE = /home/wrf/com/prod .... 输入数据的目录结构为: .. code-block:: bash $ tree -L 2 -P "rap.t?z.wrfprsf*.grib2" /home/wrf/com/prod/ │   ├── nclprd │   ├── rap.t09z.wrfprsf00.grib2 │   ├── rap.t09z.wrfprsf01.grib2 │   ├── rap.t09z.wrfprsf02.grib2 │   ├── rap.t09z.wrfprsf03.grib2 │   ├── rap.t09z.wrfprsf04.grib2 │   ├── rap.t09z.wrfprsf05.grib2 │   ├── rap.t09z.wrfprsf06.grib2 │   ├── rap.t09z.wrfprsf07.grib2 │   ├── rap.t09z.wrfprsf08.grib2 │   ├── rap.t09z.wrfprsf09.grib2 │   ├── rap.t09z.wrfprsf10.grib2 │   ├── rap.t09z.wrfprsf11.grib2 │   ├── rap.t09z.wrfprsf12.grib2 │   ├── rap.t09z.wrfprsf13.grib2 │   ├── rap.t09z.wrfprsf14.grib2 │   ├── rap.t09z.wrfprsf15.grib2 │   ├── rap.t09z.wrfprsf16.grib2 │   ├── rap.t09z.wrfprsf17.grib2 │   ├── rap.t09z.wrfprsf18.grib2 │   ├── rap.t09z.wrfprsf19.grib2 │   ├── rap.t09z.wrfprsf20.grib2 │   ├── rap.t09z.wrfprsf21.grib2 │   ├── rap.t09z.wrfprsf22.grib2 │   ├── rap.t09z.wrfprsf23.grib2 │   ├── rap.t09z.wrfprsf24.grib2 │   ├── rap.t09z.wrfprsf25.grib2 │   ├── rap.t09z.wrfprsf26.grib2 │   ├── rap.t09z.wrfprsf27.grib2 │   ├── rap.t09z.wrfprsf28.grib2 │   ├── rap.t09z.wrfprsf29.grib2 │   ├── rap.t09z.wrfprsf30.grib2 │   ├── rap.t21z.wrfprsf00.grib2 │   ├── rap.t21z.wrfprsf01.grib2 │   ├── rap.t21z.wrfprsf02.grib2 │   ├── rap.t21z.wrfprsf03.grib2 │   ├── rap.t21z.wrfprsf04.grib2 │   ├── rap.t21z.wrfprsf05.grib2 │   ├── rap.t21z.wrfprsf06.grib2 │   ├── rap.t21z.wrfprsf07.grib2 │   ├── rap.t21z.wrfprsf08.grib2 │   ├── rap.t21z.wrfprsf09.grib2 │   ├── rap.t21z.wrfprsf10.grib2 │   ├── rap.t21z.wrfprsf11.grib2 │   ├── rap.t21z.wrfprsf12.grib2 │   ├── rap.t21z.wrfprsf13.grib2 │   ├── rap.t21z.wrfprsf14.grib2 │   ├── rap.t21z.wrfprsf15.grib2 │   ├── rap.t21z.wrfprsf16.grib2 │   ├── rap.t21z.wrfprsf17.grib2 │   ├── rap.t21z.wrfprsf18.grib2 │   ├── rap.t21z.wrfprsf19.grib2 │   ├── rap.t21z.wrfprsf20.grib2 │   ├── rap.t21z.wrfprsf21.grib2 │   ├── rap.t21z.wrfprsf22.grib2 │   ├── rap.t21z.wrfprsf23.grib2 │   ├── rap.t21z.wrfprsf24.grib2 │   ├── rap.t21z.wrfprsf25.grib2 │   ├── rap.t21z.wrfprsf26.grib2 │   ├── rap.t21z.wrfprsf27.grib2 │   ├── rap.t21z.wrfprsf28.grib2 │   ├── rap.t21z.wrfprsf29.grib2 │   ├── rap.t21z.wrfprsf30.grib2 │   └── wmo ├── rap.20200622 │   ├── nclprd │   ├── rap.t09z.wrfprsf00.grib2 │   ├── rap.t09z.wrfprsf01.grib2 │   ├── rap.t09z.wrfprsf02.grib2 │   ├── rap.t09z.wrfprsf03.grib2 │   ├── rap.t09z.wrfprsf04.grib2 │   ├── rap.t09z.wrfprsf05.grib2 │   ├── rap.t09z.wrfprsf06.grib2 │   ├── rap.t09z.wrfprsf07.grib2 │   ├── rap.t09z.wrfprsf08.grib2 │   ├── rap.t09z.wrfprsf09.grib2 │   ├── rap.t09z.wrfprsf10.grib2 │   ├── rap.t09z.wrfprsf11.grib2 │   ├── rap.t09z.wrfprsf12.grib2 │   ├── rap.t09z.wrfprsf13.grib2 │   ├── rap.t09z.wrfprsf14.grib2 │   ├── rap.t09z.wrfprsf15.grib2 │   ├── rap.t09z.wrfprsf16.grib2 │   ├── rap.t09z.wrfprsf17.grib2 │   ├── rap.t09z.wrfprsf18.grib2 │   ├── rap.t09z.wrfprsf19.grib2 │   ├── rap.t09z.wrfprsf20.grib2 │   ├── rap.t09z.wrfprsf21.grib2 │   ├── rap.t09z.wrfprsf22.grib2 │   ├── rap.t09z.wrfprsf23.grib2 │   ├── rap.t09z.wrfprsf24.grib2 │   ├── rap.t09z.wrfprsf25.grib2 │   ├── rap.t09z.wrfprsf26.grib2 │   ├── rap.t09z.wrfprsf27.grib2 │   ├── rap.t09z.wrfprsf28.grib2 │   ├── rap.t09z.wrfprsf29.grib2 │   ├── rap.t09z.wrfprsf30.grib2 │   ├── rap.t21z.wrfprsf00.grib2 │   ├── rap.t21z.wrfprsf01.grib2 │   ├── rap.t21z.wrfprsf02.grib2 │   ├── rap.t21z.wrfprsf03.grib2 │   ├── rap.t21z.wrfprsf04.grib2 │   ├── rap.t21z.wrfprsf05.grib2 │   ├── rap.t21z.wrfprsf06.grib2 │   ├── rap.t21z.wrfprsf07.grib2 │   ├── rap.t21z.wrfprsf08.grib2 │   ├── rap.t21z.wrfprsf09.grib2 │   ├── rap.t21z.wrfprsf10.grib2 │   ├── rap.t21z.wrfprsf11.grib2 │   ├── rap.t21z.wrfprsf12.grib2 │   ├── rap.t21z.wrfprsf13.grib2 │   ├── rap.t21z.wrfprsf14.grib2 │   ├── rap.t21z.wrfprsf15.grib2 │   ├── rap.t21z.wrfprsf16.grib2 │   ├── rap.t21z.wrfprsf17.grib2 │   ├── rap.t21z.wrfprsf18.grib2 │   ├── rap.t21z.wrfprsf19.grib2 │   ├── rap.t21z.wrfprsf20.grib2 │   ├── rap.t21z.wrfprsf21.grib2 │   ├── rap.t21z.wrfprsf22.grib2 │   ├── rap.t21z.wrfprsf23.grib2 │   ├── rap.t21z.wrfprsf24.grib2 │   ├── rap.t21z.wrfprsf25.grib2 │   ├── rap.t21z.wrfprsf26.grib2 │   ├── rap.t21z.wrfprsf27.grib2 │   ├── rap.t21z.wrfprsf28.grib2 │   ├── rap.t21z.wrfprsf29.grib2 │   ├── rap.t21z.wrfprsf30.grib2 │   └── wmo #. 修改 :code:`PointStat` 参数文件 .. code-block:: bash $ vi /home/wrf/METplus-3.0.2/parm/use_cases/met_tool_wrapper/PointStat/PointStat.conf - 起始时间和间隔 .. code-block:: bash ... # time looping - options are INIT, VALID, RETRO, and REALTIME # If set to INIT or RETRO: # INIT_TIME_FMT, INIT_BEG, INIT_END, and INIT_INCREMENT must also be set # If set to VALID or REALTIME: # VALID_TIME_FMT, VALID_BEG, VALID_END, and VALID_INCREMENT must also be set LOOP_BY = VALID # Format of VALID_BEG and VALID_END using % items # %Y = 4 digit year, %m = 2 digit month, %d = 2 digit day, etc. # see www.strftime.org for more information # %Y%m%d%H expands to YYYYMMDDHH VALID_TIME_FMT = %Y%m%d%H # Start time for METplus run - must match VALID_TIME_FMT VALID_BEG = 2020062300 # End time for METplus run - must match VALID_TIME_FMT VALID_END = 2020062400 # Increment between METplus runs (in seconds if no units are specified) # Must be >= 60 seconds VALID_INCREMENT = 1H ... - 预报提前时间 .. code-block:: bash ... # List of forecast leads to process for each run time (init or valid) # In hours if units are not specified # If unset, defaults to 0 (don't loop through forecast leads) LEAD_SEQ = 0, 1, 2, 3, 6, 12, 24 ... - 观测资料时间窗口 .. code-block:: bash ... # Time relative to each input file's valid time (in seconds if no units are specified) for data within the file to be # considered valid. Values are set in the 'obs_window' dictionary in the PointStat config file OBS_POINT_STAT_WINDOW_BEGIN = -1800 OBS_POINT_STAT_WINDOW_END = 1800 # Optional list of offsets to look for point observation data POINT_STAT_OFFSETS = 0 - 模式名称 .. code-block:: bash ... # Model/fcst and obs name, e.g. GFS, NAM, GDAS, etc. MODEL = RAP OBTYPE = ... - 区域 .. code-block:: bash ... # Verification Masking regions # Indicate which grid and polygon masking region, if applicable POINT_STAT_GRID = FULL ... - 观测类型 .. code-block:: bash ... # Message types, if all message types are to be returned, leave this empty, # otherwise indicate the message types of interest. POINT_STAT_MESSAGE_TYPE = AIRCFT ... - 验证观测 .. code-block:: bash ... # fields to compare # Note: If FCST_VAR_* is set, then a corresponding OBS_VAR_* variable must be set # To use one variables for both forecast and observation data, set BOTH_VAR_* instead FCST_VAR1_NAME = TMP FCST_VAR1_LEVELS = P750-900 FCST_VAR1_THRESH = <=273, >273 OBS_VAR1_NAME = TMP OBS_VAR1_LEVELS = P750-900 OBS_VAR1_THRESH = <=273, >273 FCST_VAR2_NAME = UGRD FCST_VAR2_LEVELS = P400-550 FCST_VAR2_THRESH = >=5 OBS_VAR2_NAME = UGRD OBS_VAR2_LEVELS = P400-550 OBS_VAR2_THRESH = >=5 FCST_VAR3_NAME = VGRD FCST_VAR3_LEVELS = P200-350 FCST_VAR3_THRESH = >=5 OBS_VAR3_NAME = VGRD OBS_VAR3_LEVELS = P200-350 OBS_VAR3_THRESH = >=5 ... - 输入和输出 .. code-block:: bash ... [dir] FCST_POINT_STAT_INPUT_DIR = {INPUT_BASE} OBS_POINT_STAT_INPUT_DIR = {OUTPUT_BASE}/pb2nc ... POINT_STAT_OUTPUT_DIR = {OUTPUT_BASE}/point_stat [filename_templates] # Template to look for forecast input to PointStat relative to FCST_POINT_STAT_INPUT_DIR FCST_POINT_STAT_INPUT_TEMPLATE = rap.{init?fmt=%Y%m%d}/rap.t{init?fmt=%2H}z.wrfprsf{lead?fmt=%2H}.grib2 # Template to look for observation input to PointStat relative to OBS_POINT_STAT_INPUT_DIR OBS_POINT_STAT_INPUT_TEMPLATE = rap.{da_init?fmt=%Y%m%d}/rap.t{da_init?fmt=%2H}z.prepbufr.tm{offset?fmt=%2H}.nc ... #. 编辑 :code:`/home/wrf/METplus-3.0.2/parm/met_config/PointStatConfig_wrapped` 修改Statistical output types #. 运行 .. code-block:: bash $ master_metplus.py -c /home/wrf/METplus-3.0.2/parm/use_cases/met_tool_wrapper/PointStat/PointStat.conf #. 检查结果 .. code-block:: bash $ tree -L 2 /home/wrf/METout/point_stat/ -P "*202006*" -h /home/wrf/METout/point_stat/ ├── [1.2K] point_stat_000000L_20200623_090000V.stat ├── [1.2K] point_stat_000000L_20200623_210000V.stat ├── [1.2K] point_stat_010000L_20200623_100000V.stat ├── [1.2K] point_stat_020000L_20200623_110000V.stat ├── [1.2K] point_stat_020000L_20200623_230000V.stat ├── [1.2K] point_stat_030000L_20200623_000000V.stat ├── [1.2K] point_stat_030000L_20200623_120000V.stat ├── [1.2K] point_stat_030000L_20200624_000000V.stat ├── [1.2K] point_stat_060000L_20200623_030000V.stat ├── [1.2K] point_stat_060000L_20200623_150000V.stat ├── [1.2K] point_stat_120000L_20200623_090000V.stat ├── [1.2K] point_stat_120000L_20200623_210000V.stat ├── [1.2K] point_stat_240000L_20200623_090000V.stat └── [1.2K] point_stat_240000L_20200623_210000V.stat 0 directories, 14 files