ax file (GTS)

Data directory structure

The ax files are organized every 60 minutes :

[hailang@sya01n01 ~/chinawise/nwprod/decoders]$ls -la /sya/g3/wrf/data/obs/2001*.ax
 ......
-rw-r--r-- 1 wrf work 4183866 Jan 26 03:32 /sya/g3/wrf/data/obs/20012512.ax
-rw-r--r-- 1 wrf work 1566223 Jan 26 03:32 /sya/g3/wrf/data/obs/20012513.ax
-rw-r--r-- 1 wrf work 1583806 Jan 26 03:32 /sya/g3/wrf/data/obs/20012514.ax
-rw-r--r-- 1 wrf work 2342846 Jan 26 03:32 /sya/g3/wrf/data/obs/20012515.ax
-rw-r--r-- 1 wrf work 1535829 Jan 26 03:32 /sya/g3/wrf/data/obs/20012516.ax
-rw-r--r-- 1 wrf work 1540626 Jan 26 03:32 /sya/g3/wrf/data/obs/20012517.ax
-rw-r--r-- 1 wrf work 3959697 Jan 26 03:32 /sya/g3/wrf/data/obs/20012518.ax
-rw-r--r-- 1 wrf work 1466181 Jan 26 03:32 /sya/g3/wrf/data/obs/20012519.ax
-rw-r--r-- 1 wrf work 1464897 Jan 26 03:31 /sya/g3/wrf/data/obs/20012520.ax
-rw-r--r-- 1 wrf work 2309281 Jan 26 03:31 /sya/g3/wrf/data/obs/20012521.ax
-rw-r--r-- 1 wrf work 1555754 Jan 26 03:31 /sya/g3/wrf/data/obs/20012522.ax
-rw-r--r-- 1 wrf work 1470354 Jan 26 03:31 /sya/g3/wrf/data/obs/20012523.ax
-rw-r--r-- 1 wrf work 3975865 Jan 26 03:31 /sya/g3/wrf/data/obs/20012600.ax
-rw-r--r-- 1 wrf work 1655233 Jan 26 03:31 /sya/g3/wrf/data/obs/20012601.ax
-rw-r--r-- 1 wrf work 1430912 Jan 26 03:31 /sya/g3/wrf/data/obs/20012602.ax
-rw-r--r-- 1 wrf work  849702 Jan 26 03:31 /sya/g3/wrf/data/obs/20012603.ax

Data format

样例文件 2020-01-26_00Z 报文

ZCZC 734

SAKB31 NGTT 260000

METAR NGTA 260000Z 04003KT 9999 FEW018TCU 32/26 Q1008 RMK TCU TO NE=




NNNN

ZCZC 741

SASO31 AGGG 260000

METAR 260000

METAR AGGH 260000Z 34006KT 9999 2CU020 31/25 Q1007=




NNNN

ZCZC 860

SAAU69 AMMC 260000

METAR YSTW 260000Z AUTO 32005KT 9999 // SCT061 28/22 Q1015=

METAR YSWG 260000Z AUTO 29005KT 230V340 9999 // NCD 29/05 Q1013=

METAR YTEF 260000Z AUTO 13013KT 9999 // NCD 33/08 Q1010=

METAR YTNK 260000Z AUTO 15013KT 9999 // NCD 29/19 Q1011=

METAR YTRE 260000Z AUTO 07005KT 9999 // NCD 31/21 Q1012=

METAR YWGT 260000Z AUTO 04005KT 360V120 9999 // NCD 27/09 Q1013=

METAR YWHA 260000Z AUTO 14010KT 9999 // BKN017 22/16 Q1016=

METAR YWLM 260000Z AUTO 34007KT 9999 // NCD 32/20 Q1012=




NNNN

ZCZC 861

SAAU62 AMMC 260000

METAR YBTL 260000Z AUTO 22004KT 190V250 9999 -SHRA OVC096 26/25 Q1010=

METAR YBUD 260000Z AUTO 07011KT 9999 // SCT033 SCT041 BKN049 29/20 Q1013=

METAR YBWP 260000Z AUTO 30007KT 9999 // SCT022 SCT029 BKN032 32/26 Q1010=

METAR YBWX 260000Z AUTO 25007KT //// // ////// 29/24 Q1008=

METAR YCAR 260000Z AUTO 20015KT 9999 // NCD 26/21 Q1009=

METAR YCAS 260000Z AUTO 05010KT //// // ////// 28/21 Q1015=

METAR YCBA 260000Z AUTO 19009KT 9999 // NCD 32/12 Q1012=

METAR YCBB 260000Z AUTO 36012KT 9999 // SCT021 BKN032 26/20 Q1016=

METAR YCBP 260000Z AUTO 13011KT 9999 // NCD 30/// Q1015=

METAR YCCY 260000Z AUTO 11006KT 9999 // BKN008 28/24 Q1009=




NNNN

ZCZC 862

SASO31 AGGG 260000

METAR 260000

METAR AGGM 260000Z 00000KT 9999 FEW018 31/25 Q1008=




NNNN

ZCZC 863

SANC01 NWWW 260000

METAR NWWW 260000Z AUTO 14009KT 060V190 9999 BKN054 31/18 Q1010

TEMPO 4000 SHRA FEW030TCU=

Data extractor

Decoder source code

  1. Source code directory:
> cd /g5/nwpc_ep8/obsproc/nwprod/decoders/decod_dccimisssurf/sorc
  1. Subroutines to decode surface data

    • lsdcod.f

注解

  • The cimiss.tbl and decod_WMO.Res40.headers are not used, although they are required as arguments and read in.
  • The path and file name of cimiss_data_surface file are hard coded in the subroutines.
  1. Compile the code
> make

Decode and convert to BUFR format

  1. enter into the exec directory
> cd /g5/nwpc_ep8/obsproc/nwprod/decoders/decod_dccimisssurf/exec
> ls -la
total 2028
drwxr-xr-x. 3 zwtd zwtd     211 Dec 20 22:45 .
drwxr-xr-x. 6 zwtd zwtd      82 Dec 20 22:42 ..
lrwxrwxrwx. 1 zwtd zwtd      34 Dec  9 23:48 bufrtab.000 -> ../../decod_shared/fix/bufrtab.000
-rw-r--r--. 1 zwtd zwtd 1121683 Dec  9 23:48 cimiss.tbl
lrwxrwxrwx. 1 zwtd zwtd      31 Dec  9 23:48 decod_WMO.Res40.headers -> ../parm/decod_WMO.Res40.headers
-rwxr-xr-x. 1 zwtd zwtd  940696 Dec 20 00:24 decod_dccimiss
-rw-r--r--. 1 zwtd zwtd     462 Dec 20 22:45 decod_dccimiss.log
-rwxr-xr-x. 1 zwtd zwtd     484 Dec 20 00:30 run.ksh
-rwxr-xr-x. 1 zwtd zwtd     776 Dec 20 22:44 run_dccimisssurf.py
drwxr-xr-x. 2 zwtd zwtd      58 Dec 20 22:45 tmp
  1. we provide a script to run the decoder in batch mode:
> ./run_dccimisssurf.py -s 2018121600 -e 2018121700 -i 1

注解

  • given the starting datetime and ending datetime, it iterates all cycles (every 1 hours)
  • the units of interval is hour (-i)
  • this script call run.ksh
  1. run the decoder script
> run.ksh

> cat run.ksh
!/bin/bash
export DBNBUFRT=120
export TRANJB=/g5/nwpc_ep8/obsproc/nwprod/ush/tranjb
export tank_dir=/g5/nwpc_ep8/obsproc/nwprod/dcom/us007003
export DBNROOT=`pwd`
rm tmp/*
rm decod_dccimiss.log
./decod_dccimiss -d decod_dccimiss.log -b 240 -c $1 bufrtab.000 cimiss.tbl decod_WMO.Res40.headers
ls -la tmp/*

BUFR_FILES=$(echo tmp/BUFR*)
echo ${BUFR_FILES}

for file in ${BUFR_FILES}
do
  ${TRANJB} ${tank_dir} ${file}
done

注解

  • -c $1 : Set the current time (201809011600) used to calculate the time departures of the obs. data.
  • -b 240 : Number of hours to decode prior to “current” time (default)
  • The observations with date/time between current time - 240 hours and current time + 3 are kept.
  1. The generated BUFR format file will be saved at
> ls -la tmp
-rw-r--r--  1 xinzhang  staff  4199744 Sep 21 18:45 tmp/BUFR.0.cimiss.1.6436.1536097072.8

Transfer bufr data to BUFR Tanks

  • put data in BUFR tanks:
> /g5/nwpc_ep8/obsproc/nwprod/ush/tranjb /g5/nwpc_ep8/obsproc/nwprod/dcom/us007003 tmp/BUFR.0.cimiss.1.6436.1536097072.8

> ls -al /g5/nwpc_ep8/obsproc/nwprod/dcom/us007003/20180901/b000/xx01
-rw-r--r-- 1 vagrant vagrant 4235328 Sep 27 04:42 /g5/nwpc_ep8/obsproc/nwprod/dcom/us007003/20180901/b000/xx001

注解

  • if environmental variable SCREEN=ON :
    • Define Run Time is the system time when the tranjb is running.
    • Only observations with date/time between Run Time - 10 days and Run Time + 12 hours are kept.
  • for retrospective run, set SCREEN=OFF

  • /g5/nwpc_ep8/obsproc/nwprod/dcom/us007003/yyyymmdd/bmmm/xxsss (where mmm is WMO BUFR message type and xxx is local BUFR message subtype)

  • 000.001 (in dump group mnemonic adpsfc): Surface synoptic fixed land reports

  • BUFR format

  • Arranged by UTC day and continuously grow throughout the day, if you run decoders many time, the content of the file will grow

  • No QC (other than rudimentary checks inside decoders)

  • No duplicate checking

  • Interested users can use utility debufr to check the content of the bufr file:

    > /g5/nwpc_ep8/obsproc/nwprod/util/exec/debufr /g5/nwpc_ep8/obsproc/nwprod/dcom/us007003/20180901/b000/xx001
    

    the output is in debufr.out.