Link Search Menu Expand Document

預報系統後處理方式的差異

Table of contents

背景

  • 為得到綜合性的空氣品質項目(粒狀物與VOC’s),需要執行combine,程序上包括combine.exeshk.cs
  • 國網作業的特色之一就是磁碟空間的限制。/home/$USERNAME與/work/$USERNAME 下各有100G的免費空間,雖然可以申請增加容量上限,但終究也不是免費。這對作業系統後處理程序來說是很大的一個考量。

合併與壓縮

combine.sh

  • 這個腳本基本上還能保持環保署公版模式的原來樣貌。(參TWNEPA_RecommCMAQ)
    1. 增加slurm設定值,此處設定使用ct56之10個執行緒。
    2. combine.exe使用環保署公版模式版本
    3. $SPECIES_DEF檔案中開啟VOC’s的計算
#sinotec2@lgn301 /work/sinotec2/cmaqruns/forecast
#$ cat combine.sh 
#!/bin/sh
#SBATCH -A ENT111040             # Account name/project number
#SBATCH -J comb                  # Job name
#SBATCH -p ct56                  # Partiotion name
#SBATCH -n 10                    # Number of MPI tasks (i.e. processes)
#SBATCH -c 1                     # Number of cores per MPI task
#SBATCH -N 1                     # Maximum number of nodes to be allocated
#SBATCH --ntasks-per-node=10    # Maximum number of tasks on each node
#SBATCH -o rsl.out.%j            # Path to the standard output file
#SBATCH -e rsl.error.%j          # Path to the standard error ouput file
module load compiler/intel/2021 IntelMPI/2021 hdf5/1.12 netcdf/4.7.4 pnetcdf/1.12.2

nc=$1
ii=$(echo $nc|cut -d'/' -f6|cut -c5-6)
ymd=$(echo $nc|cut -d'_' -f7|cut -d'.' -f1)
export BASE=/work/sinotec2/cmaqruns/forecast
export BLD=/work/sinotec2/opt/cmaq_recommend/POST/combine/scripts/BLD_combine_v532_intel
export EXEC=$BLD/combine_v532.exe
export m3input=${BASE}/grid$ii
export cctmout=${BASE}/grid$ii/cctm.fcst/daily

# user define
#> File [1]: CMAQ conc/aconc file
#> File [2]: MCIP METCRO3D file
#> File [3]: CMAQ APMDIAG file
#> File [4]: MCIP METCRO2D file
export INFILE2=${m3input}/mcip/METCRO3D.nc
export INFILE4=${m3input}/mcip/METCRO2D.nc

# programs
export LC_ALL=C
export LANG=C
export GENSPEC=N
export SPECIES_DEF=${BASE}/SpecDef_cb6r3_ae7_aq.txt
export INFILE1=$nc
export INFILE3=${nc/ACONC/APMDIAG}
export OUTFILE=${cctmout}/out${ymd}.conc.nc
if [ -e ${OUTFILE} ]; then rm ${OUTFILE};fi

time mpirun -bootstrap slurm -n 10 ${EXEC} >& ${BASE}/cmb.out
if [ -e ${cctmout}/PMs$ymd.nc ];then rm ${cctmout}/PMs$ymd.nc;fi
${BASE}/shk.cs $OUTFILE ${cctmout}/PMs$ymd.nc
if [ -e ${OUTFILE} ]; then rm ${OUTFILE};fi

chk.cs

  • 唯一需要修改的是NCO程式的路徑。
  • 此處沒有使用rcec/tools(/opt/ohpc/pkg/rcec/pkg/tools/bin)中的程式,而是使用自行編譯、較新版本的程式(5.0.7-alpha04 版)。如果執行上有問題,可以考慮使用國網上的ncks及ncrcat(5.0.1版)
sinotec2@lgn301 /work/sinotec2/cmaqruns/forecast
$ cat shk.cs 
#!/bin/sh
nc=$1
NCO=/work/sinotec2/opt/cmaq_recommend/bin
NCKS=${NCO}/ncks
NCRCAT=${NCO}/ncrcat
v=$(ncdump -h $nc|grep PM25|wc -l)
a=$(ncdump -h $nc|grep AVERAGE|wc -l)
if [ $v != 0 ];then
  if  [ $a == 0 ];then
    #cmaq combined files
    VAR='TFLAG,PM1_TOT,PM25_TOT,PM10,VOC,PMC_TOT'
  else
  #version 700 nc directly from CAMx
    VAR='TFLAG,CO,NO2,SO2,O3,PNO3,PSO4,PNH4,PAR,CCRS,FCRS,CPRM,FPRM'
  fi
#camx>400, nc generated by pncgen from uamiv file
else
  VAR='TFLAG,CO,NO2,SO2,O3,PNO3,PSO4,PNH4,PAR,CCRS,FCRS,CPRM,FPRM'
fi
if ! [ -e $2 ];then
  touch $2
  $NCKS -O -v $VAR -d VAR,0,4 -d LAY,0 $1 $2
fi

檔案清理及空間維護

  • 做完濃度場的nest down後,3維濃度場(CCTM_ACONC)及粒徑分布(CCTM_APMDIAG)檔案可以只留存第一層,以備作圖。
  • 其餘檔案如不進一步偵錯或其他用途,可以全數刪除

清理項目

  • rm *DEP* CCTM_C* *cfg
  • CCTM_CGRID 之考量
    • domain3的起始濃度如果使用上層的內插,會發生塊狀不合理的濃度分布。
    • 使用過去模擬結果的CCTM_CGRID會是比較平緩變化的一個選項。
    • (似乎有留存的價值)

3維檔案之縮減

  • 只需留下地面濃度與粒徑分率,後者在combine之會也沒有留存的必要。
for nc in $(ls *nc);do ncks -d LAY,0 $nc tmpnc;mv tmpnc $nc;done

空間維護

                         Block Limits                                    |     File Limits
Filesystem type         blocks      quota      limit   in_doubt    grace |    files   quota    limit in_doubt    grace  Remarks
fs01       USR          110.8G       400G       500G     1.008G     none |    19790       0        0       85     none NCHC_AIcls.twcc.ai
fs02       USR          9.872G       200G       300G     488.4M     none |   194962       0        0       40     none NCHC_AIcls.twcc.ai

地面濃度圖製作

特殊python模組之安裝

  • wrf-pythoncartopy之安裝
    1. 安裝conda模組 module load pkg/Anaconda3
    2. 開新的環境或啟用既有的環境:conda activate ncl_stable
    3. 安裝wrf-python:conda install -c conda-forge wrf-python
  • cartopy之安裝:pip install cartopy

gif之製作

  • m3nc2gif.py之修改
    • 國網pnetcdf的儲存會發生錯誤,造成濃度檔有缺值(1.E30),程式需做因應處理。
  • $gfs/make_gifs.cs之修改
    • 如前所述,應用自行安裝套件的.py程式不能以腳本直接作為執行檔,需外加python
  for s in PM2.5 PM10 SO2 CO O3 NO2;do
    $bin/sub $pyt $bin/m3nc2gif.py $s.nc;done

結果檔案的傳輸