运行PointStat

  1. METplus/ush 加入 PATH 环境变量

    export PATH=/home/wrf/METplus-3.0.2/ush:$PATH
    
  2. 设置结果输出路径和MET系统路径

    $ 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
    ...
    
  3. 设置输入数据路径

    $ 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
    ....
    

    输入数据的目录结构为:

    $ 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
    
  4. 修改 PointStat 参数文件

    $ vi /home/wrf/METplus-3.0.2/parm/use_cases/met_tool_wrapper/PointStat/PointStat.conf
    
    • 起始时间和间隔

      ...
      # 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
      ...
      
    • 预报提前时间

      ...
      # 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
      ...
      
    • 观测资料时间窗口

      ...
      # 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
      
    • 模式名称

      ...
      # Model/fcst and obs name, e.g. GFS, NAM, GDAS, etc.
      MODEL = RAP
      OBTYPE =
      ...
      
    • 区域

      ...
      # Verification Masking regions
      # Indicate which grid and polygon masking region, if applicable
      POINT_STAT_GRID = FULL
      ...
      
    • 观测类型

      ...
      # 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
      ...
      
    • 验证观测

      ...
      # fields to compare
      # Note: If FCST_VAR<n>_* is set, then a corresponding OBS_VAR<n>_* variable must be set
      # To use one variables for both forecast and observation data, set BOTH_VAR<n>_* 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
      ...
      
    • 输入和输出

      ...
      [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
      ...
      
  5. 编辑 /home/wrf/METplus-3.0.2/parm/met_config/PointStatConfig_wrapped

    修改Statistical output types

  6. 运行

    $ master_metplus.py -c /home/wrf/METplus-3.0.2/parm/use_cases/met_tool_wrapper/PointStat/PointStat.conf
    
  7. 检查结果

    $ 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