用户手册

集合预报文件预处理

可执行文件名:

refs_prep_v8

功能

为EFSO准备需要格式的集合预报文件

内容

  • 集合预报文件预处理,实现模式预报场到EFSO需要格式文件转换
  • 实现对GRAPES预报文件的格式转换,把一个时刻的预报文件转成EFSO所需要的文件格式。
  • 此程序需要的GRAPES预报输入文件格式为:GrADS软件可以处理的,直接存储的二进制格式。一个预报文件包含若干个等压面上的若干个三维及二维变量场。经过此程序格式转换,一个GrADS格式的预报文件,输出为多个 顺序存储 二进制文件。每个二进制文件仅存储 一个变量一个等压面 上的水平 二维数据

Note

以下是处理单一文件转换的例子。多个集合文件的转换可以使用脚本文件实现,循环运行以下,把输出文件移到EFSO需要的目录结构。

运行步骤

  1. 解压源文件与运行数据

    $ tar -xvf refs_prep_v8.tar
    $ cd refs_prep_v8
    

    执行成功,在目录refs_prep_v8下生成如下目录:

    $ tree -L 1
    .
    ├── driver
    ├── src
    └── test_case
    
    3 directories, 0 files
    
  2. 编译

    Note

    这里假定为ifort编译器。

    $ cd src
    $ rm *.x
    $ csh make.csh
    

    编译成功,生成可执行文件

    • refs_prep.x

    退出此目录

    $ cd ..
    
  3. 运行个例

    $ cd test_case
    

    输入文件:

    $ tree -L 1
    .
    ├── fort.15
    ├── log
    ├── post.ctl_202003020000600
    ├── postvar202003020000600
    ├── postvar.grads -> postvar202003020000600
    └── refs_prep.x -> ../src/refs_prep.x
    
    0 directories, 6 files
    
    $ ./refs_prep.x
    

    运行成功,生成如下命名的文件若干:

    $ ls *.????.dat
    HGT.0010.dat  HGT.0500.dat  QV.0010.dat  QV.0500.dat  TMP.0010.dat  TMP.0500.dat  U.0010.dat  U.0500.dat  V.0010.dat  V.0500.dat
    HGT.0020.dat  HGT.0550.dat  QV.0020.dat  QV.0550.dat  TMP.0020.dat  TMP.0550.dat  U.0020.dat  U.0550.dat  V.0020.dat  V.0550.dat
    HGT.0030.dat  HGT.0600.dat  QV.0030.dat  QV.0600.dat  TMP.0030.dat  TMP.0600.dat  U.0030.dat  U.0600.dat  V.0030.dat  V.0600.dat
    HGT.0050.dat  HGT.0650.dat  QV.0050.dat  QV.0650.dat  TMP.0050.dat  TMP.0650.dat  U.0050.dat  U.0650.dat  V.0050.dat  V.0650.dat
    HGT.0070.dat  HGT.0700.dat  QV.0070.dat  QV.0700.dat  TMP.0070.dat  TMP.0700.dat  U.0070.dat  U.0700.dat  V.0070.dat  V.0700.dat
    HGT.0100.dat  HGT.0750.dat  QV.0100.dat  QV.0750.dat  TMP.0100.dat  TMP.0750.dat  U.0100.dat  U.0750.dat  V.0100.dat  V.0750.dat
    HGT.0150.dat  HGT.0800.dat  QV.0150.dat  QV.0800.dat  TMP.0150.dat  TMP.0800.dat  U.0150.dat  U.0800.dat  V.0150.dat  V.0800.dat
    HGT.0200.dat  HGT.0850.dat  QV.0200.dat  QV.0850.dat  TMP.0200.dat  TMP.0850.dat  U.0200.dat  U.0850.dat  V.0200.dat  V.0850.dat
    HGT.0250.dat  HGT.0900.dat  QV.0250.dat  QV.0900.dat  TMP.0250.dat  TMP.0900.dat  U.0250.dat  U.0900.dat  V.0250.dat  V.0900.dat
    HGT.0300.dat  HGT.0925.dat  QV.0300.dat  QV.0925.dat  TMP.0300.dat  TMP.0925.dat  U.0300.dat  U.0925.dat  V.0300.dat  V.0925.dat
    HGT.0350.dat  HGT.0950.dat  QV.0350.dat  QV.0950.dat  TMP.0350.dat  TMP.0950.dat  U.0350.dat  U.0950.dat  V.0350.dat  V.0950.dat
    HGT.0400.dat  HGT.0975.dat  QV.0400.dat  QV.0975.dat  TMP.0400.dat  TMP.0975.dat  U.0400.dat  U.0975.dat  V.0400.dat  V.0975.dat
    HGT.0450.dat  HGT.1000.dat  QV.0450.dat  QV.1000.dat  TMP.0450.dat  TMP.1000.dat  U.0450.dat  U.1000.dat  V.0450.dat  V.1000.dat
    

    文件名说明:VarName.PRES.datVarName 为变量名,PRES 为四位整数代表的气压,单位:hPa。

  4. 其他说明

    fort.15namelist :描述GrADs文件变量与气压层次,并且控制输出的变量与气压层次。 fort.15 文件内容如下:

    &input
    cvars     = "U","V","TMP","HGT","QV"
    cvarsout  = "U","V","TMP","HGT","QV"
    iprs      = 1000,975,950,925,900,850,800,750,700,650,600,550,500,450,400,350,300,250,200,150,100,70,50,30,20,10,
    iprsout   = 1000,975,950,925,900,850,800,750,700,650,600,550,500,450,400,350,300,250,200,150,100,70,50,30,20,10,
    ivar3d    = 5,
    ivar2d    = 0,
    

    以下简要说明namelist中各个变量的具体作用:

    • 变量 cvarsiprs 描述GrADS文件变量与气压层次。比如:以上 fort.15 的样例文件中,cvars 依次给出了GrADS格式文件中的5个三维变量:

      cvars = "U","V","TMP","HGT","QV"
      

      必须说明,不必列出所有变量。但必须根据输入的GrADS格式文件的 实际变量存储顺序 依次列出,直到包括所需要的变量为止。输入文件的 实际变量存储顺序 可以参考相应的GrADS ctl 文件。例如:

      post.ctl_202003020000600
      
    • 变量 ips 为整数变量,描述输入的GrADS格式文件中变量所在的 全部 气压层的气压值,按照顺序列出。比如这个个例,具体值为:

      iprs = 1000,975,950,925,900,850,800,750,700,650,600,550,500,450,400,350,300,250,200,150,100,70,50,30,20,10,
      
    • 变量 Ivar3ivar2d 用来给出 cvars 中三维与二维变量的个数,比如:

      ivar3d    = 5,
      ivar2d    = 0,
      

      以上表明,这里只读GrADs格式文件的前5个三维变量,没有读入二维变量。

    • 变量 cvarsoutiprsout 控制输出的变量与气压层次,比如:

      cvarsout  = "U","V","TMP","HGT","QV"
      iprsout   = 1000,975,950,925,900,850,800,750,700,650,600,550,500,450,400,350,300,250,200,150,100,70,50,30,20,10,
      

      输出 "U","V","TMP","HGT","QV" 等五个变量在 iprout 所列出的气压层上的输出。

OMB文件预处理

可执行文件名:

romb_prep_v8

功能

为EFSO准备需要格式的 OMB 文件

内容

  • OMB 文件预处理, 实现同化系统输出的 OMB 到EFSO需要的 OMB 文件格式转换。包括:

    1. 常规资料
    2. 雷达VAD风场
    3. 雷达RV经向风场
  • 这个程序的的主要功能是实现 OMB 文件格式转换,把GRAPES的 OMB 文本文件转成EFSO需要格式的文件。同时增加其他EFSO需要的观测误差等信息,实现诸如雷达高度场到气压场的转换等。

  • 、GRAPES OMB 输入文件格式为ASCII文本格式。我们拿到的 OMB 文件,在一个同化时次,每种观测为一个单独文件。经过此程序处理,输出文件仍然为ASCII文本格式。每种观测的记录 增加了 观测误差,用户需要根据调整自己的同化系统输出观测误差,更改此程序读入并写出即可;另外,对于雷达资料要有高度与气压坐标的转换等。

  • 可以处理的观测种类,包括:

    1. 常规观测:

      • temp
      • satob
      • airep
      • ships
      • synop
    2. 雷达观测:

      • vad
      • rv

运行内容与步骤

  1. 首先解压源文件与运行数据

    $ tar -xvf romb_prep_v8.tar
    $ cd romb_prep_v8
    

    执行成功,在目录romb_prep_v8下生成如下7个目录:

    $ tree -L 1
    .
    ├── driver
    ├── src_conv
    ├── src_rv
    ├── src_vad
    ├── test_conv
    ├── test_rv
    └── test_vad
    
    7 directories, 0 files
    
  2. 运行常规资料转换

    对常规资料 OMB 文件预处理,实现把常规资料的 OMB 文本文件转换成EFSO需要格式的 OMB 文件。这里以探空 OMB 样本文件为例。

    • 编译

      Note

      这里假定为ifort编译器。

      $ cd src_conv
      $ csh make.csh
      

      编译成功,生成可执行文件

      $ tree -L 1
      .
      ├── make.csh
      ├── omb_prep_conv.f90
      └── omb_prep_conv.x
      
      0 directories, 3 files
      
    • 运行个例

      $ cd ..
      
      $ cd test_conv
      
      $ tree -L 1
      .
      ├── omb.dat -> temp_inno202003020000.dat
      ├── omb_prep_conv.x -> ../src_conv/omb_prep_conv.x
      ├── ref_output
      └── temp_inno202003020000.dat
      
      1 directory, 7 files
      
      
      $ ./omb_prep_conv.x
      

      输入文件:temp_inno202003020000.dat 为探空 OMB 样本文件

      运行成功,生成如下文件:

      $ ls -la omb.*.dat
      -rw-r--r-- 1 nwpc_ep8 nwpep 498992 4月   1 16:17 omb.RH.dat
      -rw-r--r-- 1 nwpc_ep8 nwpep 935688 4月   1 16:17 omb.TMP.dat
      -rw-r--r-- 1 nwpc_ep8 nwpep 896376 4月   1 16:17 omb.U.dat
      -rw-r--r-- 1 nwpc_ep8 nwpep 896376 4月   1 16:17 omb.V.dat
      

      依次分别为 u-, v- 风场,温度,相对湿度场的 OMB 文件。

  3. 运行雷达vad风场资料转换

    对雷达经风场VAD预处理。主要实现从雷达经风场VAD OMB 文本文件到EFSO需要格式的 OMB 文件转换。同时实现转换雷达资料有高度到对应的气压坐标。由于 OMB 文件中没有观测误差信息,高度值为同化系统的默认缺省值为负,这里给出假定一个信息写出,测试本程序可以正常运行。用户将来需要修改同化系统输出这些信息,并修改此程序完成读入写出。

    • 编译

      Note

      这里假定为ifort编译器。

      $ cd src_vad
      
      $ rm *.o *.x
      
      $ tree -L 1
      .
      ├── fort.15
      ├── get_refs_uvh.f90
      ├── get_refs_uvh_gf.f90
      ├── make.csh -> make_ifort.csh
      ├── make_gf_mac_vad.csh
      ├── make_ifort.csh
      ├── omb_prep_vad.f90
      ├── refs_prep.f90
      ├── utila.f90
      └── vad_inno202003221200.dat
      
      0 directories, 14 files
      
      $ csh make.csh
      

      编译成功,生成可执行文件

      • omb_prep_vad.x
    • 运行个例

      $ cd ..
      $ cd test_vad
      
      $ tree -L 1
      .
      ├── fort.15
      ├── omb.dat -> vad_inno202003221200.dat
      ├── omb_prep_vad.x -> ../src_vad/omb_prep_vad.x
      ├── omb.U.dat
      ├── omb.V.dat
      ├── post.ctl_202003221200000
      ├── postvar202003221200000
      ├── postvar.grads -> postvar202003221200000
      ├── ref_out
      ├── vad_inno202003221200.dat
      └── vad_inno202003221200.dat.link -> /g1/COMMONDATA/OPER/NWPC/GRAPES_MESO_10KM/Fcst-main/2020032212/vad_inno202003221200.dat
      
      1 directory, 10 files
      
      $ ./omb_prep_vad.x
      

      输入文件:

      • omb -> vad_inno202003221200.dat
      • postvar.grads -> postvar202003221200000
      • fort.15:namelist1

      运行成功,生成文件如下:

      • omb.U.dat
      • omb.V.dat

      输入文件说明:

      • 雷达VAD OMB 文件样本
        • omb -> vad_inno202003221200.dat
      • GRAPES预报文件,提供高度场与气压场信息,把高度坐标转换成对应的气压坐标
        • postvar.grads -> postvar202003221200000
      • fort.15 namelist,控制本程序如何读取 GRAPES预报文件。
  4. 运行雷达经向风RV资料转换

    把雷达经向风RV OMB 文本文件转成FSO需要格式的文件。实现:

    • 转换雷达资料高度到对应的气压坐标
    • 增加雷达站的高度与经纬度信息

    由于 OMB 文件中,没有雷达站的高度与经纬度信息,这里只是假定一个信息写出。OMB 文件也没有观测误差信息,程序给定一个误差值输出。用户将来需要修改同化系统输出这些信息,并修改此程序完成相关的读入写出部分。

    • 编译

      Note

      这里假定为ifort编译器。

      $ cd src_rv
      $ rm *.x *.o
      
      $ tree -L 1
      .
      ├── fort.15
      ├── get_refs_uvh.f90
      ├── get_refs_uvh_gf.f90
      ├── make.csh -> make_ifort.csh
      ├── make_gf_mac_radar.csh
      ├── make_ifort.csh
      ├── omb_prep_rv.f90
      ├── utila.f90
      
      $ csh make.csh
      

      编译成功,生成可执行文件

      • omb_prep_rv.x
    • 运行个例

      $ cd ..
      $ cd test_rv
      
      $ tree -L 1
      .
      ├── fort.15
      ├── omb.dat -> radar_oma201807311200.dat
      ├── omb_prep_rv.x -> ../src_rv/omb_prep_rv.x
      ├── omb.RV.dat
      ├── postvar202003221200000
      ├── postvar.grads -> postvar202003221200000
      ├── radar_oma201807311200.dat
      └── ref_output
      

      输入文件:

      • omb.dat -> radar_oma201807311200.dat
      • postvar.grads -> postvar202003221200000
      • fort.15

      确认以上文件及可执行文件 omb_prep_rv.x 存在后, 运行成功,生成如下文件:

      $ ./omb_prep_rv.x
      $ ls -al omb.*.dat
      -rw-r--r-- 1 nwpc_ep8 nwpep 23076075 4月   1 16:36 omb.RV.dat
      

      输入文件说明:

      • 雷达RV OMB 文件样本
        • omb.dat -> radar_oma201807311200.dat
      • GRAPES预报文件,提供高度场与气压场信息,把高度坐标转换成对应的气压坐标
        • postvar.grads -> postvar202003221200000
      • fort.15 namelist,控制本程序如何读取 GRAPES预报文件。

运行EFSO系统

可执行文件名:

refso_v8

功能

实现基于区域集合的预报对观测的敏感性与观测影响计算

内容

读入预处理集合预报文件、OMB 文件预处理,实现EFSO。运行包括两个主要部分:

  • 运行EFSO
  • 画图等后处理

运行步骤

  1. 解压源文件与运行数据

    $ tar -xvf refso_v8.tar
    

    执行成功,生成如下4个目录:

    $ tree -L 1
    .
    ├── driver
    ├── scripts
    ├── src_v8
    └── test_efso
    
    4 directories, 0 files
    

    各目录说明如下:

    • src_v8 :主程序及编译文件。主程序用Fortran语言编写
    • scriptsnamelist 样本与 NCL 画图脚本等
    • test_efso :运行目录
    • driver : 脚本文件,计算多天的EFSO。本测试用不到这部分文件
  2. 编译

    Note

    这里假定为ifort编译器。

    $ cd src_v8
    
    $ rm *.o *.mod *.exe
    
    $ tree -L 1
    .
    ├── cal_coefsi.f90
    ├── fort.15
    ├── main.f90
    ├── main.f90_b
    ├── make.csh -> make_ifort.csh
    ├── make_gf.csh
    ├── make_ifort.csh
    ├── module_para.f90
    ├── util2.f90
    ├── util.f90
    
    0 directories, 10 files
    
    $ csh make.csh
    

    编译成功,生成可执行文件

    • fso.exe

    退出此目录

    $ cd ..
    
  3. 运行个例

    $ cd test_efso/test_with_data
    
    $ tree -L 4
    .
    ├── ave.2020030200.dat
    ├── avetv.2020030212.dat
    ├── binary
    │   ├── 2020030118
    │   │   └── 2020030212
    │   │       └── 00
    │   ├── 2020030200
    │   │   ├── 2020030200
    │   │   │   ├── 00
    │   │   │   ├── 01
    │   │   │   ├── 02
    │   │   │   ├── 03
    │   │   │   └── 04
    │   │   └── 2020030212
    │   │       ├── 00
    │   │       ├── 01
    │   │       ├── 02
    │   │       ├── 03
    │   │       └── 04
    │   └── 2020030212
    │       └── 2020030212
    │           └── 00
    ├── diff_reftv.2020030212.dat
    ├── fort.15 -> namelist.input.refso.2020030200.2020030212
    ├── fso.exe -> ../../src_v8/fso.exe
    ├── log
    ├── log.1
    ├── namelist.input.refso.2020030200.2020030212
    ├── namelist.input.refso.2020030200.2020030212_nwpc_ep8_data
    ├── namelist.input.refso.template
    ├── oi
    │   ├── airep
    │   │   └── 2020030200
    │   │       ├── fort.1001
    │   │       ├── fort.1002
    │   │       ├── fort.1003
    │   │       ├── fso_tmp.png
    │   │       ├── fso_u.png
    │   │       ├── fso_v.png
    │   │       ├── plot_fso_tmp_v2.ncl -> ../../../../../scripts/plot_fso_tmp_v2.ncl
    │   │       ├── plot_fso_u_v2.ncl -> ../../../../../scripts/plot_fso_u_v2.ncl
    │   │       └── plot_fso_v_v2.ncl -> ../../../../../scripts/plot_fso_v_v2.ncl
    │   ├── radar_rv
    │   │   └── 2020030200
    │   │       ├── fort.1000
    │   │       ├── fso_rv_500hpa.png
    │   │       └── plot_fso_rv_lev500_v2.ncl
    │   ├── satob
    │   │   └── 2020030200
    │   │       ├── fort.1001
    │   │       ├── fort.1002
    │   │       ├── fso_u.png
    │   │       ├── fso_v.png
    │   │       ├── plot_fso_u_v2.ncl -> ../../../../../scripts/plot_fso_u_v2.ncl
    │   │       └── plot_fso_v_v2.ncl -> ../../../../../scripts/plot_fso_v_v2.ncl
    │   ├── ships
    │   │   └── 2020030200
    │   │       └── fort.1004
    │   ├── synop
    │   │   └── 2020030200
    │   │       ├── fort.1003
    │   │       └── fort.1004
    │   ├── temp
    │   │   └── 2020030200
    │   │       ├── fort.1001
    │   │       ├── fort.1002
    │   │       ├── fort.1003
    │   │       ├── fort.1004
    │   │       ├── fort.2001
    │   │       ├── fort.2002
    │   │       ├── fort.2003
    │   │       ├── fort.2004
    │   │       ├── fso_qv_ge800hPa.png
    │   │       ├── fso_qv_sounding.png
    │   │       ├── fso_tmp_500hpa.png
    │   │       ├── fso_tmp_sounding.png
    │   │       ├── fso_u_500hpa.png
    │   │       ├── fso_u_sounding.png
    │   │       ├── fso_v_500hpa.png
    │   │       ├── fso_v_sounding.png
    │   │       ├── plot_fso_profile_qv_v2.ncl -> ../../../../../scripts/plot_fso_profile_qv_v2.ncl
    │   │       ├── plot_fso_profile_tmp_v2.ncl -> ../../../../../scripts/plot_fso_profile_tmp_v2.ncl
    │   │       ├── plot_fso_profile_u_v2.ncl -> ../../../../../scripts/plot_fso_profile_u_v2.ncl
    │   │       ├── plot_fso_profile_v_v2.ncl -> ../../../../../scripts/plot_fso_profile_v_v2.ncl
    │   │       ├── plot_fso_qv_lev800hpa_v2.ncl -> ../../../../../scripts/plot_fso_qv_lev800hpa_v2.ncl
    │   │       ├── plot_fso_tmp_lev500hpa_v2.ncl -> ../../../../../scripts/plot_fso_tmp_lev500hpa_v2.ncl
    │   │       ├── plot_fso_u_lev500hpa_v2.ncl -> ../../../../../scripts/plot_fso_u_lev500hpa_v2.ncl
    │   │       └── plot_fso_v_lev500hpa_v2.ncl -> ../../../../../scripts/plot_fso_v_lev500hpa_v2.ncl
    │   └── vad
    │       └── 2020030200
    │           ├── fort.1001
    │           ├── fort.1002
    │           ├── fort.2001
    │           ├── fort.2002
    │           ├── fso_u_500hpa.png
    │           ├── fso_u_sounding.png
    │           ├── fso_v_500hpa.png
    │           ├── fso_v_sounding.png
    │           ├── plot_fso_profile_u_v2.ncl -> ../../../../../scripts/plot_fso_profile_u_v2.ncl
    │           ├── plot_fso_profile_v_v2.ncl -> ../../../../../scripts/plot_fso_profile_v_v2.ncl
    │           ├── plot_fso_u_lev500hpa_v2.ncl -> ../../../../../scripts/plot_fso_u_lev500hpa_v2.ncl
    │           ├── plot_fso_v_lev500hpa_v2.ncl -> ../../../../../scripts/plot_fso_v_lev500hpa_v2.ncl
    │           └── TG2020030200-TV2020030300.done
    ├── omb_refso
    │   └── 2020030200
    │       ├── airep
    │       │   ├── omb.TMP.dat
    │       │   ├── omb.U.dat
    │       │   └── omb.V.dat
    │       ├── radar_rv
    │       │   └── omb.RV.dat
    │       ├── satob
    │       │   ├── omb.U.dat
    │       │   └── omb.V.dat
    │       ├── ships
    │       │   ├── omb.RH.dat
    │       │   ├── omb.TMP.dat
    │       │   ├── omb.U.dat
    │       │   └── omb.V.dat
    │       ├── synop
    │       │   ├── omb.RH.dat
    │       │   └── omb.TMP.dat
    │       ├── temp
    │       │   ├── omb.RH.dat
    │       │   ├── omb.TMP.dat
    │       │   ├── omb.U.dat
    │       │   └── omb.V.dat
    │       └── vad
    │           ├── omb.U.dat
    │           └── omb.V.dat
    ├── ref.2020030212.dat
    ├── ref_output
    ├── std.2020030200.dat
    └── stdtv.2020030212.dat
    
    45 directories, 89 files
    

    首先请查看需要的文件、目录等是否存在:

    • 查看输入的集合预报文件

      必须指出,确定性分析与预报这里用集合成员 00 表示。 集合预报文件位于以下目录:binary

      查看2020年3月1日18时起报的18小时预报场:

      $ ls binary/2020030118/2020030212/00/
      HGT.0100.dat                QV.0200.dat             TMP.0300.dat            U.0400.dat              V.0500.dat
      HGT.0200.dat                QV.0300.dat             TMP.0400.dat            U.0500.dat              V.0600.dat
      HGT.0300.dat                QV.0400.dat             TMP.0500.dat            U.0600.dat              V.0700.dat
      HGT.0400.dat                QV.0500.dat             TMP.0600.dat            U.0700.dat              V.0800.dat
      HGT.0500.dat                QV.0600.dat             TMP.0700.dat            U.0800.dat              V.0900.dat
      HGT.0600.dat                QV.0700.dat             TMP.0800.dat            U.0900.dat              V.1000.dat
      HGT.0700.dat                QV.0800.dat             TMP.0900.dat            U.1000.dat              log.01.2020030212
      HGT.0800.dat                QV.0900.dat             TMP.1000.dat            V.0100.dat
      HGT.0900.dat                QV.1000.dat             U.0100.dat              V.0200.dat
      HGT.1000.dat                TMP.0100.dat            U.0200.dat              V.0300.dat
      QV.0100.dat         TMP.0200.dat            U.0300.dat              V.0400.dat
      

      这里 binary/2020030118/2020030212/00/ 中,00 表示确定性预报。其他集合成员依次为 0102 ,….

      查看2020年3月2日00时确定性与集合的分析以及12小时预报场:

      $ tree binary/2020030200 -L 2
      binary/2020030200
      ├── 2020030200
      │   ├── 00
      │   ├── 01
      │   ├── 02
      │   ├── 03
      │   └── 04
      └── 2020030212
          ├── 00
          ├── 01
          ├── 02
          ├── 03
          └── 04
      

      这里仅给出确定性分析,位于目录 00 下;第一个与第二个集合成员 0102

      namelist 文件:

      fort.15 -> namelist.input.refso.2020030200.2020030212
      namelist.input.refso.2020030200.2020030212
      

      EFSO可执行文件:

      fso.exe -> ../../src_v8/fso.exe
      

      确认 fso.exe 存在,或重新链接生成的可执行文件。

      ls -l ../../src_v8/fso.exe
      

      NCL画图脚本文件:

      • plot_fso_profile_tmp_v2.ncl
      • plot_fso_profile_v_v2.ncl
      • plot_fso_u_lev500hpa_v2.ncl
      • plot_fso_v_lev500hpa_v2.ncl
      • plot_fso_profile_u_v2.ncl
      • plot_fso_tmp_lev500hpa_v2.ncl
      • plot_fso_u_v2.ncl
    • 查看 OMB 输入文件

      $ tree omb_refso -L 3
      omb_refso
      └── 2020030200
          ├── airep
          │   ├── omb.TMP.dat
          │   ├── omb.U.dat
          │   └── omb.V.dat
          ├── radar_rv
          │   └── omb.RV.dat
          ├── satob
          │   ├── omb.U.dat
          │   └── omb.V.dat
          ├── ships
          │   ├── omb.RH.dat
          │   ├── omb.TMP.dat
          │   ├── omb.U.dat
          │   └── omb.V.dat
          ├── synop
          │   ├── omb.RH.dat
          │   └── omb.TMP.dat
          ├── temp
          │   ├── omb.RH.dat
          │   ├── omb.TMP.dat
          │   ├── omb.U.dat
          │   └── omb.V.dat
          └── vad
              ├── omb.U.dat
              └── omb.V.dat
      
    • 执行

      ./fso.exe

      运行成功,生成如下目录:

      oi

      各种观测的结果输出在目录 oi 下,使用 ls 命令查看目录下的内容:

      $ tree oi -L 1
      oi
      ├── airep
      ├── radar_rv
      ├── satob
      ├── ships
      ├── synop
      ├── temp
      └── vad
      

      除了雷达RV经向风资料的在 radar_rv 目录下的输出文件为 fort.1000 外,一般在以上目录的各次级目录下会生成,以:code:fort 开头的文件:

      oi
      ├── airep
      │   └── 2020030200
      │       ├── fort.1001
      │       ├── fort.1002
      │       ├── fort.1003
      │       ├── fso_tmp.png
      │       ├── fso_u.png
      │       ├── fso_v.png
      │       ├── plot_fso_tmp_v2.ncl -> ../../../../../scripts/plot_fso_tmp_v2.ncl
      │       ├── plot_fso_u_v2.ncl -> ../../../../../scripts/plot_fso_u_v2.ncl
      │       └── plot_fso_v_v2.ncl -> ../../../../../scripts/plot_fso_v_v2.ncl
      ├── radar_rv
      │   └── 2020030200
      │       ├── fort.1000
      │       ├── fso_rv_500hpa.png
      │       └── plot_fso_rv_lev500_v2.ncl
      ├── satob
      │   └── 2020030200
      │       ├── fort.1001
      │       ├── fort.1002
      │       ├── fso_u.png
      │       ├── fso_v.png
      │       ├── plot_fso_u_v2.ncl -> ../../../../../scripts/plot_fso_u_v2.ncl
      │       └── plot_fso_v_v2.ncl -> ../../../../../scripts/plot_fso_v_v2.ncl
      ├── ships
      │   └── 2020030200
      │       └── fort.1004
      ├── synop
      │   └── 2020030200
      │       ├── fort.1003
      │       └── fort.1004
      ├── temp
      │   └── 2020030200
      │       ├── fort.1001
      │       ├── fort.1002
      │       ├── fort.1003
      │       ├── fort.1004
      │       ├── fort.2001
      │       ├── fort.2002
      │       ├── fort.2003
      │       ├── fort.2004
      │       ├── fso_qv_ge800hPa.png
      │       ├── fso_qv_sounding.png
      │       ├── fso_tmp_500hpa.png
      │       ├── fso_tmp_sounding.png
      │       ├── fso_tmp_500hpa.png
      │       ├── fso_tmp_sounding.png
      │       ├── fso_u_500hpa.png
      │       ├── fso_u_sounding.png
      │       ├── fso_v_500hpa.png
      │       ├── fso_v_sounding.png
      │       ├── plot_fso_profile_qv_v2.ncl -> ../../../../../scripts/plot_fso_profile_qv_v2.ncl
      │       ├── plot_fso_profile_tmp_v2.ncl -> ../../../../../scripts/plot_fso_profile_tmp_v2.ncl
      │       ├── plot_fso_profile_u_v2.ncl -> ../../../../../scripts/plot_fso_profile_u_v2.ncl
      │       ├── plot_fso_profile_v_v2.ncl -> ../../../../../scripts/plot_fso_profile_v_v2.ncl
      │       ├── plot_fso_qv_lev800hpa_v2.ncl -> ../../../../../scripts/plot_fso_qv_lev800hpa_v2.ncl
      │       ├── plot_fso_tmp_lev500hpa_v2.ncl -> ../../../../../scripts/plot_fso_tmp_lev500hpa_v2.ncl
      │       ├── plot_fso_u_lev500hpa_v2.ncl -> ../../../../../scripts/plot_fso_u_lev500hpa_v2.ncl
      │       └── plot_fso_v_lev500hpa_v2.ncl -> ../../../../../scripts/plot_fso_v_lev500hpa_v2.ncl
      └── vad
          └── 2020030200
              ├── fort.1001
              ├── fort.1002
              ├── fort.2001
              ├── fort.2002
              ├── fso_u_500hpa.png
              ├── fso_u_sounding.png
              ├── fso_v_500hpa.png
              ├── fso_v_sounding.png
              ├── plot_fso_profile_u_v2.ncl -> ../../../../../scripts/plot_fso_profile_u_v2.ncl
              ├── plot_fso_profile_v_v2.ncl -> ../../../../../scripts/plot_fso_profile_v_v2.ncl
              ├── plot_fso_u_lev500hpa_v2.ncl -> ../../../../../scripts/plot_fso_u_lev500hpa_v2.ncl
              ├── plot_fso_v_lev500hpa_v2.ncl -> ../../../../../scripts/plot_fso_v_lev500hpa_v2.ncl
              └── TG2020030200-TV2020030300.done
      
      14 directories, 58 files
      

      对于探空与 VAD 两种廓线资料还生成如下几个文件:

      • fort.2001
      • fort.2002
      • fort.2003
      • fort.2004

      文件说明如下:

      • fort.1001 : u风场的结果
      • fort.1002 : v风场的结果
      • fort.1003 : 温度场的结果
      • fort.1004 : 湿度场的结果
      • fort.2001 : u风场垂直廓线累积的结果
      • fort.2002 : v风场垂直廓线累积的结果
      • fort.2003 : 温度场垂直廓线累积的结果
      • fort.2004 : 湿度场垂直廓线累积的结果

      对于一种观测类型,可能仅存在上面的部分几个文件。如果观测没有一个要素,比如 u 风场不存在,则没有 fort.1001 输出。

  4. 查看各种观测的输出、作图

    • temp 探空资料

      $ ls oi/temp/2020030200/
      $ cd oi/temp/2020030200/
      

      对于探空文件,可以图形显示探空的累积贡献的水平空间分布。如果NCL脚本没有链接到此目录下,请把脚本从 scripts 目录下链接或拷贝到此目录。

      执行NCL画图脚本:

      $ ncl plot_fso_profile_u_v2.ncl
      $ ncl plot_fso_profile_v_v2.ncl
      $ ncl plot_fso_profile_tmp_v2.ncl
      $ ncl plot_fso_profile_qv_v2.ncl
      

      生成如下png格式的图形文件:

      • fso_u_sounding.png
      • fso_v_sounding.png
      • fso_tmp_sounding.png
      • fso_qv_sounding.png
      ../_images/fso_u_sounding1.png

      impact of U wind observations in radiosonde on 12h forecast

      ../_images/fso_v_sounding1.png

      impact of V wind observations in radiosonde on 12h forecast

      ../_images/fso_tmp_sounding1.png

      impact of Temperature observations in radiosonde on 12h forecast

      ../_images/fso_qv_sounding1.png

      impact of QVapor observations in radiosonde on 12h forecast

      也可以用以下NCL脚本生成探空对预报影响在指定的垂直层次的影响。这里给出温度,风场在 500hPa ( 475-525hPa ) 的观测对于预报误差减少的贡献,以及水汽在 800hPa 以下观测对预报误差减少的贡献。

      $ ncl plot_fso_tmp_lev500hpa_v2.ncl
      $ ncl plot_fso_u_lev500hpa_v2.ncl
      $ ncl plot_fso_v_lev500hpa_v2.ncl
      $ ncl Plot_fso_qv_lev800hpa_v2.ncl
      
      ../_images/fso_u_500hpa1.png

      impact of U wind observations around 500hPa in radiosonde on 12h forecast

      ../_images/fso_v_500hpa1.png

      impact of V wind observations around 500hPa in radiosonde on 12h forecast

      ../_images/fso_tmp_500hpa1.png

      impact of Temperature around 500hPa observations in radiosonde on 12h forecast

      ../_images/fso_qv_ge800hPa1.png

      impact of QVapor under 800hPa observations in radiosonde on 12h forecast

    • airep 飞机报资料

      $ cd ../../../
      $ ls oi/airep/2020030200/
      $ cd oi/airep/2020030200/
      

      飞机报资料没有水汽观测,所以只有如下文件:

      • fort.1001
      • fort.1002
      • fort.1003

      执行NCL画图脚本,图形显示飞机报资料对于预报误差减少贡献的水平分布:

      $ ncl plot_fso_u_v2.ncl
      $ ncl plot_fso_v_v2.ncl
      $ ncl plot_fso_tmp_v2.ncl
      
      ../_images/fso_u_airep1.png

      impact of U wind observations in aircraft on 12h forecast

      ../_images/fso_v_airep1.png

      impact of V wind observations in aircraft on 12h forecast

      ../_images/fso_tmp_airep1.png

      impact of Temperature observations in aircraft on 12h forecast

      也可执行以下脚本,显示温度,风场在 500hPa*( *475-525hPa )的观测对于预报误差减少的贡献的水平分布

      $ ncl plot_fso_tmp_lev500hpa_v2.ncl
      $ ncl plot_fso_u_lev500hpa_v2.ncl
      $ ncl plot_fso_v_lev500hpa_v2.ncl
      
    • satob 云导风资料

      $ cd ../../../
      $ ls oi/satob/2020030200/
      $ cd oi/satob/2020030200/
      

      飞机报资料只有 u, v 风场观测,所以只有如下文件:

      • fort.1001
      • fort.1002

      执行NCL画图脚本,图形显示飞机报资料对于预报误差减少贡献的水平分布:

      $ ncl plot_fso_u_v2.ncl
      $ ncl plot_fso_v_v2.ncl
      
      ../_images/fso_u_satob1.png

      impact of U wind observations in satob on 12h forecast

      ../_images/fso_v_satob1.png

      impact of V wind observations in satob on 12h forecast

      也可执行以下脚本,显示温度,风场在 500hPa*( *475-525hPa )的观测对于预报误差减少的贡献的水平分布

      $ ncl plot_fso_u_lev500hpa_v2.ncl
      $ ncl plot_fso_v_lev500hpa_v2.ncl
      
    • VAD 雷达风资料

      $ cd ../../../
      $ ls oi/vad/2020030200/
      $ cd oi/vad/2020030200/
      

      VAD雷达风资料资料只有 u, v 风场观测,所以只有如下两个结果文件:

      • fort.1001
      • fort.1002

      执行NCL画图脚本,图形显示VAD资料对于预报误差减少贡献的水平分布:

      $ ncl plot_fso_u_v2.ncl
      $ ncl plot_fso_v_v2.ncl
      

      也可执行以下脚本,显示风场在 500hPa*( *475-525hPa )的观测对于预报误差减少的贡献的水平分布

      $ ncl plot_fso_u_lev500hpa_v2.ncl
      $ ncl plot_fso_v_lev500hpa_v2.ncl
      
      ../_images/fso_u_500hpa_vad1.png

      impact of U wind observations around 500hPa in VAD on 12h forecast

      ../_images/fso_v_500hpa_vad1.png

      impact of V wind observations around 500hPa in VAD on 12h forecast

      ../_images/fso_u_sounding_vad1.png

      impact of U wind observations in VAD on 12h forecast

      ../_images/fso_v_sounding_vad1.png

      impact of V wind observations in VAD on 12h forecast

    • synop 地面观测资料

      $ cd ../../../
      $ ls oi/synop/2020030200/
      $ cd oi/synop/2020030200/
      

      对于这个个例,有如下两个结果文件:

      • fort.1003
      • fort.1004

      执行NCL画图脚本,图形显示 synop 地面观测资料对于预报误差减少贡献的水平分布:

      $ ncl plot_fso_tmp_v2.ncl
      $ ncl plot_fso_qv_v2.ncl
      
      ../_images/fso_tmp_synop1.png

      impact of surface Temperature observations on 12h forecast

      ../_images/fso_qv_synop1.png

      impact of surface Water vapor observations on 12h forecast

    • 船舶观测资料

      $ cd ../../../
      $ ls oi/ships/2020030200/
      $ cd oi/ships/2020030200/
      

      对于这个个例,有如下结果文件:

      • fort.1004

      执行NCL画图脚本,图形显示 ships 船舶观测资料对于预报误差减少贡献的水平分布:

      $ ncl plot_fso_qv_v2.ncl
      

      由于多数观测记录低于集合最底层*1000hPa*,所以 fort.1004 中只有一个*1000hPa*的观测输出。

    • RV 雷达经向风观测资料

      $ cd ../../../
      $ ls oi/radar_rv/2020030200/
      $ cd oi/radar_rv/2020030200/
      

      结果文件为:

      • fort.1000

      执行NCL画图脚本,显示 RV 雷达经向风观测对于预报误差减少贡献的水平分布:

      $ ncl plot_fso_rv_v2.ncl
      $ ncl plot_fso_rv_lev500_v2.ncl
      

      分别给出所有观测,以及 500hPa 上观测对于预报误差减少贡献的水平分布。

      ../_images/fso_rv_500hpa1.png

      impact of 500hPa observations in radar rv on 12h forecast