运行步骤¶
下载GFS/GDAS全球模式预报资料或使用GRAPES的全球预报模式资料¶
- GFS/GDAS原始模式预报
- 下载地址
ftp://ftp.ncep.noaa.gov/pub/data/nccf/com/gfs/prod/gdas.ccyymmdd/ftp://ftp.ncep.noaa.gov/pub/data/nccf/com/gfs/prod/gfs.ccyymmdd/
- 下载文件:
gdas.t??z.atmf???.nemsiogfs.t??z.atmf???.nemsio- 具体下载那些文件,由分析的
cycle决定
- GRAPES模式预报
pride存放地址
/g2/nwp/OPER_ARCH_TEST/nwp/GMFS_GRIB2_GRAPES/ORIG
- 存放地址和文件名(每个
cycle需要3,6和9hours的预报场)
/g5/nwpc_ep8/obsproc/nwprod/com/gfs/prod/gfs.ccyymmdd/gfs.t??z.pgrbf03/g5/nwpc_ep8/obsproc/nwprod/com/gfs/prod/gfs.ccyymmdd/gfs.t??z.pgrbf06/g5/nwpc_ep8/obsproc/nwprod/com/gfs/prod/gfs.ccyymmdd/gfs.t??z.pgrbf09
运行 dump 和 obsproc¶
> cd /g5/nwpc_ep8/obsproc/nwprod
> ./batch_run_global_obsproc.py
batch_run_global_obsproc.py 的内容如下:
#!/bin/env python3
import os
from datetime import datetime, timedelta
start_date = datetime(2019, 6, 2, 0)
end_date = datetime(2019, 8, 15, 0)
end_date = datetime(2019, 6, 9, 0)
step = timedelta(hours=6)
curr_time = start_date
while curr_time < end_date:
print('Processing ', curr_time.strftime("%Y%m%d%H"))
# Update the date and time
filename = os.path.join('/g5/nwpc_ep8/obsproc/nwprod', "com", "date", "t"+curr_time.strftime("%H")+"z")
f = open(filename,'w')
f.write('nwprod'+curr_time.strftime("%Y%m%d") )
f.close()
# link the GFS
curr_timem6 = curr_time - timedelta(hours=6)
gfs_dir=os.path.join('/g5/nwpc_ep8/obsproc/nwprod', 'com', 'gfs', 'prod', 'gfs.'+curr_timem6.strftime("%Y%m%d"))
if not os.path.exists(gfs_dir):
os.mkdir(gfs_dir)
time_marker=curr_timem6.strftime("%Y%m%d%H")
gfs_filep3=os.path.join('/g2/nwp/OPER_ARCH_TEST/nwp/GMFS_GRIB2_GRAPES/ORIG', \
'GRAPES_GFS_ORIG_'+time_marker, \
'gmf.gra.'+time_marker+'003.grb2')
gfs_filep6=os.path.join('/g2/nwp/OPER_ARCH_TEST/nwp/GMFS_GRIB2_GRAPES/ORIG', \
'GRAPES_GFS_ORIG_'+time_marker, \
'gmf.gra.'+time_marker+'006.grb2')
gfs_filep9=os.path.join('/g2/nwp/OPER_ARCH_TEST/nwp/GMFS_GRIB2_GRAPES/ORIG', \
'GRAPES_GFS_ORIG_'+time_marker, \
'gmf.gra.'+time_marker+'009.grb2')
print(gfs_filep3)
if os.path.exists(gfs_filep3):
dst3=os.path.join(gfs_dir, 'gfs.t'+curr_timem6.strftime("%H")+'z.pgrbf03')
if not os.path.exists(dst3):
os.symlink(gfs_filep3, dst3)
if os.path.exists(gfs_filep6):
dst6=os.path.join(gfs_dir, 'gfs.t'+curr_timem6.strftime("%H")+'z.pgrbf06')
if not os.path.exists(dst6):
os.symlink(gfs_filep6, dst6)
if os.path.exists(gfs_filep9):
dst9=os.path.join(gfs_dir, 'gfs.t'+curr_timem6.strftime("%H")+'z.pgrbf09')
if not os.path.exists(dst9):
os.symlink(gfs_filep9, dst9)
os.system("./run_global_obsproc.bash " + curr_time.strftime("%H"))
curr_time += step
batch_run_global_obsproc.py 通过修改 /g5/nwpc_ep8/obsproc/nwprod/com/date/t??z 文件,来指令质控程序对哪个时间的观测资料进行质控;
batch_run_global_obsproc.py 调用 run_global_obsproc.bash, run_global_obsproc.bash 会读取 /g5/nwpc_ep8/obsproc/nwprod/com/date/t??z 的内容, 并且从命令行获取 cyc 来得到时间信息;
run_global_obsproc.bash 会进一步设置各种参数来控制质控,内容如下:
#!/bin/bash -e
export PATH=.:${PATH}
ulimit -s unlimited
if [[ $# -eq 0 ]]; then
echo "No cycle is given"
echo "Usage:: run_rap_obsproc.bash 00"
exit
fi
# Common setting
export ROOT_DIR=/g5/nwpc_ep8/obsproc/nwprod
export NWROOT=${ROOT_DIR}
export DATAROOT=${ROOT_DIR}/tmpprod
export COMIN_ROOT=${ROOT_DIR}/com
export COMROOT=${ROOT_DIR}/com
# default root directory path to $TANK, $EPRM and $QPRM
export DCOMROOT=${ROOT_DIR}/dcom
# Where is the utility scripts
export UTILROOT=${ROOT_DIR}/util
export utilscript=${ROOT_DIR}/util/ush
export NDATE=${UTILROOT}/exec/ndate
export NHOUR=${UTILROOT}/exec/nhour
export grib_util_ver=1.0.5
# Run locally and background threads
export sys_tp="local"
export launcher="threads"
# root directory tree for the path to temporary work files
export TMPDIR=/tmp
# Geographical filtering of the data
export LALO=0
#
export RUN_ENVIR="nco"
export envir="prod"
export KEEPDATA="YES"
export LOUD="off"
############################################
# SENDCOM - Copy files to $COMOUT directory
# SENDECF - Flag Events on ECFLOW
# SENDDBN - Alert output file to TOC
############################################
export SENDCOM=YES
export SENDECF=NO
export SENDDBN=NO
export PROCESS_GRIBFLDS="NO"
export PROCESS_REMOREST="NO"
# Only conventional data being processed
export JOB_NUMBER=1
# Which group will be processed
export DUMP_group2="YES"
export DUMP_group3="YES"
export DUMP_group4="YES"
export DUMP_group8="YES"
export MPMD=NO
export CHGRP_RSTPROD=NO
export POE="NO"
export BACK="NO"
export NET="gfs"
export cyc=$1
export job=${NET}_dump_${cyc}
. ${ROOT_DIR}/versions/obsproc_global.ver
export HOMEgfs=${ROOT_DIR}/obsproc_global.${obsproc_global_ver}
${ROOT_DIR}/obsproc_global.v3.1.2/jobs/JGFS_DUMP
${ROOT_DIR}/obsproc_global.v3.1.2/jobs/JGFS_DUMP_POST
export GETGUESS="YES"
export NEMSIO_IN=.false
export job=${NET}_obsproc_${cyc}
export GESROOT=${ROOT_DIR}/com/gfs
${ROOT_DIR}/obsproc_global.v3.1.2/jobs/JGFS_PREP
${ROOT_DIR}/obsproc_global.v3.1.2/jobs/JGFS_PREP_POST
exit
检查运行结果¶
[nwpc_ep8@login_a05 nwprod]$ find /g5/nwpc_ep8/obsproc/nwprod/com/gfs -name gfs.t??z.prepbufr -exec ls -la {} \;
-rw-rw-r-- 1 nwpc_ep8 nwpep 1986312 10月 28 09:24 /g5/nwpc_ep8/obsproc/nwprod/com/gfs/prod/gfs.20190601/gfs.t00z.prepbufr
-rw-rw-r-- 1 nwpc_ep8 nwpep 47840008 10月 28 09:58 /g5/nwpc_ep8/obsproc/nwprod/com/gfs/prod/gfs.20190601/gfs.t12z.prepbufr
-rw-rw-r-- 1 nwpc_ep8 nwpep 56930888 10月 28 10:22 /g5/nwpc_ep8/obsproc/nwprod/com/gfs/prod/gfs.20190601/gfs.t18z.prepbufr
-rw-rw-r-- 1 nwpc_ep8 nwpep 37600968 10月 28 09:39 /g5/nwpc_ep8/obsproc/nwprod/com/gfs/prod/gfs.20190601/gfs.t06z.prepbufr
-rw-rw-r-- 1 nwpc_ep8 nwpep 53104576 10月 28 16:00 /g5/nwpc_ep8/obsproc/nwprod/com/gfs/prod/gfs.20190602/gfs.t00z.prepbufr
-rw-rw-r-- 1 nwpc_ep8 nwpep 46818304 10月 28 16:29 /g5/nwpc_ep8/obsproc/nwprod/com/gfs/prod/gfs.20190602/gfs.t12z.prepbufr
-rw-rw-r-- 1 nwpc_ep8 nwpep 59199992 10月 28 16:56 /g5/nwpc_ep8/obsproc/nwprod/com/gfs/prod/gfs.20190602/gfs.t18z.prepbufr
-rw-rw-r-- 1 nwpc_ep8 nwpep 33879280 10月 28 16:12 /g5/nwpc_ep8/obsproc/nwprod/com/gfs/prod/gfs.20190602/gfs.t06z.prepbufr
-rw-rw-r-- 1 nwpc_ep8 nwpep 57441072 10月 28 17:19 /g5/nwpc_ep8/obsproc/nwprod/com/gfs/prod/gfs.20190603/gfs.t00z.prepbufr
-rw-rw-r-- 1 nwpc_ep8 nwpep 38958944 10月 28 17:33 /g5/nwpc_ep8/obsproc/nwprod/com/gfs/prod/gfs.20190603/gfs.t06z.prepbufr
...
...




