=================== 常见问题 =================== :Q: 同一时刻,比较一下NCEP处理的资料和我们处理的资料,看看被质控的情况 :A: 对于常规观测,NCEP会利用GFS/GDAS的0-9小时预报的原始预报结果来计算 :math:`y - H(x)` (OMB),根据OMB来为每个观测值设定一个质控码(QC Marker)。 GFS/GDAS的0-9小时预报的原始预报结果是*nemsio*格式(NCEP预报模式全分辨率),在为数值预报中心开发的系统中,我们修改了读取全球预报结果的接口, 使之可以读取grib2格式的GFS资料(气压层);这意味着如果我们希望使用GRAPES模式的预报结果来进行质控也是可行的。 读取全球预报模式预报结果的程序接口为: .. code-block:: bash ${ROOT_DIR}/nwprod/obsproc_prep.v5.2.1/sorc/prepobs_prepdata.fd 如果下载ncep的nemsio文件,使用NCEP原始nemsio文件,我们可以得到几乎完全一致的结果(差异在机器精度);使用grib2格式的GFS预报结果,差异在可以物理意义范围内(主要是由于给跟grib2格式的GFS资料无论在水平还是垂直分辨率上都被downgraded了) :Q: 黑名单在什么地方给?是否有现成的? :A: :code:`${ROOT_DIR}/dcom/us007003` 下的文件 :code:`sdmedit` 存储黑名单站点,:code:`sdmedit` 的具体格式可以参见以下程序,可以自己构建黑名单: .. code-block:: bash ${ROOT_DIR}/nwprod/obsproc_dump.v5.0.1/sorc/bufr_edtbfr.fd/edtbfr.f 涉及读取 :code:`sdmedit` 文件的代码如下: .. code-block:: Fortran C READ RECORDS FROM SDMEDIT FLAG FILE, ONLY STORE THOSE W/I TIME C WINDOW, PARSED ACCORDING TO REPORT TYPE C -------------------------------------------------------------- REWIND LUEDT NREC = 0 NEDT = 0 LOOP1n1: DO ! read through all cards READ(LUEDT,'(A128)',END=4,ERR=3) CARD NREC = NREC+1 IF(CARD(1:7).EQ.'STATION') CYCLE LOOP1n1 !Skip poss. hdr rec IF(CARD(25:34).EQ.'----------') THEN C .. All YYYYMMDDHHs are checked for this record EDATE = ADATE+0.001 ELSE IF(CARD(25:32).EQ.'--------') THEN C .. All YYYYMMDDs are chckd for this record but only for a specific HH READ(CARD(33:34),'(I2)',ERR=801) IHOUR ADATE_YYYYMMDD = INT(ADATE/100) BDATE_YYYYMMDD = INT(BDATE/100) JHOUR = MOD(INT(BDATE),100) EDATE = NINT((ADATE_YYYYMMDD*100)+IHOUR) IF(NINT(BDATE_YYYYMMDD).GT.NINT(ADATE_YYYYMMDD)) THEN IF(IHOUR.GE.0.AND.IHOUR.LE.JHOUR) EDATE = . NINT((BDATE_YYYYMMDD*100)+IHOUR) ENDIF ELSE IF(CARD(33:34).EQ.'--') THEN C .. All HHs are chckd for this record but only for a specific YYYYMMDD READ(CARD(25:32),'(I8)',ERR=801) IYYYYMMDD EDATE = 9999999999. IF(INT(ADATE/100).EQ.IYYYYMMDD .OR. . INT(BDATE/100).EQ.IYYYYMMDD) EDATE = ADATE+0.001 ELSE C .. Only a specific YYYYMMDDHH is checked for this record READ(CARD(25:34),'(F10.0)',ERR=801) EDATE ENDIF IF(EDATE.GE.ADATE .AND. EDATE.LE.BDATE) THEN C .. This card is w/i time window - store it according to rpt type LOOP1n2: DO ITYP=0,6 IF(CARD(37:39).EQ.CTYP(ITYP)) THEN IF(NEDT(ITYP)+1.LE.MEDT) THEN NEDT(ITYP) = NEDT(ITYP) + 1 CARDS(ITYP,NEDT(ITYP)) = CARD !Store this record ELSE IF(NEDT(ITYP)+1.EQ.MEDT+1) PRINT'(/"#####THE ", . "NUMBER OF RECORDS IN THE SDMEDIT FLAG FILE ", . "IN UNIT",I3," THAT ARE WITHIN THE TIME ", . "WINDOW FOR REPORT"/5X,"TYPE ",A," EXCEEDS ", . "THE LIMIT OF",I6," - ALL REMAINING RECORDS ", . "FOR THIS REPORT TYPE ARE IGNORED"/)', . LUEDT,CTYP(ITYP),MEDT ENDIF CYCLE LOOP1n1 ! move on to next sdmedit flag file ! card ENDIF ENDDO LOOP1n2 ! DO ITYP=0,6 ! storing cards w/i time ! window according to ! report type ENDIF CYCLE LOOP1n1 ! move on to next sdmedit flag file card :Q: 探空的辐射订正的方案?系数是否有现成的? :A: 涉及探空观测辐射订正的程序为: .. code-block::bash ${ROOT_DIR}/nwprod/obsproc_prep.v5.2.1/sorc/prepobs_cqcbufr.fd/radcor.f 在该程序中包含了目前主要的探空仪类型的辐射订正参数,例如: .. code-block:: bash C 19 ==> ONLY 1 SITE (GERMANY) GRAW M60 6(T) C 20 INDIAN MET. SERVICE TYPE MK3 C 21 (S. KOREA) VIZ/JIN YANG MARK I MICROSONDE C 22 (JAPAN) MEISEI RS2-80 1(T) C 23 (FRANCE) MENSURAL FMO 1950A C 24 (FRANCE) MENSURAL FMO 1945A C 25 (FRANCE) MENSURAL MH73A C 26 (SWITZERLAND) METEOLABOR BASORA C 27 (RUSSIA) AVK-MRZ 7(T) C 28 (RUSSIA) METEORIT MARZ2-1 8(T) C 29 (RUSSIA) METEORIT MARZ2-2 8(T) C 30 (JAPAN) OKI RS2-80 C 31 (CANADA) VIZ/VALCOM TYPE A 2(T) C 32 (CHINA) SHANGHAI RADIO 10(T) C 33 ==> NOT IN USE (U.K.) UK MET OFFICE MK3 9(T) C 34 (CZECHOSLOVAKIA) VINOHRADY C 35 VAISALA RS18 C 36 VAISALA RS21 C 37 VAISALA RS80 C 38 (U.S.) VIZ LOCATE (LORAN-C) C 39 (GERMANY) SPRENGER E076 C 40 (GERMANY) SPRENGER E084 C 41 (GERMANY) SPRENGER E085 C 42 (GERMANY) SPRENGER E086 C 43 (U.S.) AIR IS - 4A - 1680 3(T) C 44 (U.S.) AIR IS - 4A - 1680 X 3(T) C 45 (U.S.) RS MSS 4(T) C 46 (U.S.) AIR IS - 4A - 403 ... ... C (CHINA) SHANGHAI RADIO -- BASED ON JULIAN C =====> JTYPE = 32 -- ITAB = 10 <===== DATA SHANGT / C NITE -5 5 15 25 35 45 55 65 75 S.ANG C _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ C LEVEL 1 0.5, 0.3, 0.0, 0.4, 0.5, 0.9, 0.9, 0.9, 0.9, 0.9, 2 0.5, 0.6, 1.0, 1.2, 1.0, 0.9, 0.9, 0.9, 0.9, 0.9, 3 0.5, 0.9, 1.9, 2.0, 1.5, 0.9, 0.9, 0.9, 0.9, 0.9, 4 -0.1, 1.9, 2.6, 2.7, 1.8, 1.8, 1.8, 1.9, 1.9, 1.9, 5 1.2, 5.5, 6.3, 6.0, 4.9, 4.1, 4.1, 4.1, 4.2, 4.2, A 4.7, 8.8, 9.8, 9.7, 9.1, 9.0, 9.0, 9.0, 9.0, 9.0, 6 10.3, 13.7, 14.2, 14.7, 15.2, 16.0, 16.0, 16.0, 16.0, 16.0, B 13.7, 15.3, 16.4, 17.2, 18.5, 19.9, 19.9, 19.9, 19.9, 19.9, 7 16.7, 17.4, 18.0, 18.9, 21.1, 22.8, 22.8, 22.8, 22.8, 22.8, C 17.4, 17.2, 17.1, 17.6, 20.3, 22.0, 22.0, 22.0, 22.0, 22.0, 8 8.7, 8.3, 8.1, 6.0, 7.6, 7.4, 7.4, 7.4, 7.4, 7.4, D -11.5,-10.1,- 9.1,-13.9,-13.4,-13.2,-13.2,-13.2,-13.2,-13.2, 9 - 9.0,-12.6,-13.3,-20.3,-18.9,-18.9,-18.9,-18.9,-18.9,-18.9, $ 1.8,- 6.7,- 7.4,-15.3,-15.0,-17.0,-17.1,-17.1,-17.1,-17.1, T 11.4, 5.0, 2.0,- 5.0,- 6.4,-10.0,-10.0,-10.0,-10.0,-10.0, L 16.6, 13.5, 12.1, 8.5, 5.7, 4.0, 4.0, 4.0, 4.0, 4.0/ :Q: OIQC针对的是哪种资料,能否单独提出来? :A: QIQC检查以下观测: - SURFACE HEIGHT/PRESSURE DATA - UPA AND SFC TEMP AND WIND DATA - SATEM DATA 主要的程序为: .. code-block::bash ${ROOT_DIR}/nwprod/obsproc_prep.v5.2.1/sorc/prepobs_oiqcbufr.fd/oiqcbufr.f 该程序是基本是一个完整的OI程序,可以单独提取出来!