王 鈺
(1. 江西省氣象數(shù)據(jù)中心,330096,南昌;2. 江西省氣象檔案館,330096,南昌)
氣象臺(tái)站歷史沿革數(shù)據(jù)是氣象臺(tái)站自建站以來有關(guān)臺(tái)站名稱、臺(tái)站級(jí)別、隸屬機(jī)構(gòu)、臺(tái)站位置、臺(tái)站環(huán)境、觀測要素、觀測儀器、觀測時(shí)制及其他影響觀測數(shù)據(jù)質(zhì)量的變動(dòng)情況記錄,是關(guān)于氣象臺(tái)站的元數(shù)據(jù),其變化直接影響氣象觀測數(shù)據(jù)序列的比較性和均一性。氣象臺(tái)站歷史沿革數(shù)據(jù)為用戶分析、選擇和利用氣象資料,提供了科學(xué)依據(jù),是氣候變化研究的基礎(chǔ)[1-3]。我國一直都十分重視氣象臺(tái)站歷史沿革數(shù)據(jù)的編研,形成了一套氣象臺(tái)站歷史沿革數(shù)據(jù)編制、審核、管理和服務(wù)的工作流程和制度。但由于沿革數(shù)據(jù)項(xiàng)目多、時(shí)間跨度長、信息來源渠道眾多,內(nèi)容涉及氣象觀測的全過程,沿革內(nèi)容和變化復(fù)雜[3-5],數(shù)據(jù)的完整性、規(guī)范性、準(zhǔn)確性多依賴于數(shù)據(jù)質(zhì)量檢查人員人工檢查和檢查規(guī)則與程序代碼綁定方式的質(zhì)量控制[6-7],影響到質(zhì)量控制效率,為此提出基于規(guī)則引擎的氣象臺(tái)站歷史沿革數(shù)據(jù)質(zhì)量控制方法。
氣象臺(tái)站歷史沿革數(shù)據(jù)文件簡稱“L文件”,由首部和沿革數(shù)據(jù)組成。首部由臺(tái)站檔案號(hào)、區(qū)站號(hào)、省名、站名、建站和撤站時(shí)間6數(shù)據(jù)組成。沿革數(shù)據(jù)由20個(gè)項(xiàng)目組成,各項(xiàng)目名稱及標(biāo)識(shí)碼見表1。每個(gè)項(xiàng)目由一條或多條記錄組成,每條記錄由若干數(shù)據(jù)組成,各數(shù)據(jù)組之間用“/”分隔,每組數(shù)據(jù)長度有固定或規(guī)定的最大字符數(shù)。
表1 臺(tái)站歷史沿革文件各項(xiàng)目標(biāo)識(shí)碼及名稱
規(guī)則引擎起源于基于規(guī)則的專家系統(tǒng),屬于人工智能的范疇,它模仿人類的推理方式,使用試探性的方法進(jìn)行推理,并使用人類能夠理解的術(shù)語解釋和證明它的推理結(jié)論。規(guī)則引擎的應(yīng)用簡化了人類向計(jì)算機(jī)表述復(fù)雜業(yè)務(wù)邏輯的過程,它通過規(guī)則文件來存儲(chǔ)業(yè)務(wù)邏輯,又通過對(duì)規(guī)則文件的解析來處理業(yè)務(wù),從而實(shí)現(xiàn)業(yè)務(wù)邏輯與處理邏輯的分離[8]。
規(guī)則集的定義和規(guī)則的編寫是規(guī)則集構(gòu)建的兩個(gè)主要方面[9]。物理結(jié)構(gòu)上,規(guī)則集是一張或幾張二位數(shù)據(jù)表。邏輯功能上,是用于存儲(chǔ)記錄待檢查數(shù)據(jù)質(zhì)量使用到的最基本規(guī)則[10]。依據(jù)氣象行業(yè)標(biāo)準(zhǔn)《氣象臺(tái)站歷史沿革數(shù)據(jù)文件格式》《氣象臺(tái)站歷史沿革數(shù)據(jù)文件編制說明(簡稱:編制說明)》,梳理各時(shí)期氣象觀測規(guī)范及月、年數(shù)據(jù)文件形成校驗(yàn)指標(biāo),制定氣象臺(tái)站歷史沿革各數(shù)據(jù)項(xiàng)質(zhì)量控制規(guī)則,構(gòu)建質(zhì)量控制規(guī)則集,并將規(guī)則以數(shù)據(jù)庫表的形式存儲(chǔ)管理, 以提高規(guī)則庫的靈活性和可維護(hù)性,數(shù)據(jù)庫表的邏輯結(jié)構(gòu)如圖1所示。
根據(jù)圖1的邏輯結(jié)構(gòu),從數(shù)據(jù)格式、時(shí)間一致性、內(nèi)部一致性、數(shù)據(jù)的合理性編制氣象臺(tái)站沿革數(shù)據(jù)質(zhì)量控制規(guī)則。
圖1 規(guī)則庫數(shù)據(jù)表邏輯結(jié)構(gòu)
2.2.1 數(shù)據(jù)格式檢查 檢查數(shù)據(jù)格式與氣象行業(yè)標(biāo)準(zhǔn)中沿革數(shù)據(jù)格式的一致性。1)文件名檢查,氣象臺(tái)站歷史沿革數(shù)據(jù)文件名:LXIIiiixY1 Y1 Y1 Y1Y2 Y2 Y2 Y2.TXT,其長度為20字符,各字符含義固定,首字母固定為“L”,第2個(gè)字符是臺(tái)站類型識(shí)別碼,為“D”或“G”或“R”,第3~7位氣象臺(tái)站區(qū)站號(hào),第8位專用識(shí)別碼,為“1”或“0”,第9~12位和13~16位為文件數(shù)據(jù)開始、終止年份,且第9~12位小于13~16位,第17位為“.”,第18~20位為“TXT”,沿革數(shù)據(jù)文件名需符合上述命名規(guī)則,否則設(shè)置“格式有誤”提示。2)數(shù)據(jù)項(xiàng)完整性檢查,判斷文件首部和數(shù)據(jù)項(xiàng)是否完整。缺少,則設(shè)置“xx項(xiàng)缺少”提示。3)數(shù)據(jù)組檢查,計(jì)算首部和每條記錄中數(shù)據(jù)組分隔符“/”的數(shù)量,比對(duì)氣象行業(yè)標(biāo)準(zhǔn)中各項(xiàng)數(shù)據(jù)的組數(shù),檢查各條記錄數(shù)據(jù)組的完整性。4)數(shù)據(jù)組長度檢查。計(jì)算首部和每條記錄中各組數(shù)據(jù)長度,檢查首部和數(shù)據(jù)項(xiàng)各組數(shù)據(jù)的長度是否與氣象行業(yè)標(biāo)準(zhǔn)規(guī)定的長度一致。5)數(shù)據(jù)項(xiàng)重復(fù)記錄檢查,檢查各數(shù)據(jù)項(xiàng)是否包含重復(fù)記錄即是否存在2條或以上相同記錄。6)非法特殊字符檢查,檢查各項(xiàng)目中使用的分隔符、標(biāo)識(shí)符,如“/”“;”“?”“(”等是否均為半角;“厘米”和“毫米”等計(jì)量單位是否為使用英文大寫“CM”和“MM”;數(shù)據(jù)文件中16個(gè)方位是否符合氣象觀測規(guī)范的縮寫規(guī)則,否則提示“xx項(xiàng)有非法字符”。
2.2.2 時(shí)間一致性檢查 檢查項(xiàng)目間開始、終止時(shí)間變化的同步性。1)項(xiàng)目時(shí)間一致性檢查,數(shù)據(jù)文件相關(guān)聯(lián)項(xiàng)目的開始時(shí)間與結(jié)束時(shí)間應(yīng)一致,若文件名、文件首部中開始、終止時(shí)間與臺(tái)站名稱、區(qū)站號(hào)、臺(tái)站級(jí)別、所屬機(jī)構(gòu)、臺(tái)站位置、臺(tái)站周圍障礙物、觀測時(shí)制、觀測時(shí)間、守班情況、觀測記錄、觀測規(guī)范的第一條開始時(shí)間和最后一條終止時(shí)間不一致,則設(shè)置信息提示。2)時(shí)間連續(xù)性檢查,同一數(shù)據(jù)項(xiàng)中,若后一條記錄的開始年月日和前一條記錄的終止年月日不連續(xù),且在12項(xiàng)中無說明,則設(shè)置疑誤信息。3)觀測要素時(shí)間檢查,觀測要素07項(xiàng)中各觀測要素最早的開始時(shí)間與首部信息不一致,且在12項(xiàng)中無說明,則設(shè)置疑誤信息。4)觀測儀器時(shí)間檢查,觀測儀器開始終止時(shí)間需與對(duì)應(yīng)觀測要素的開始終止時(shí)間保持一致,否則提示可疑。
2.2.3 內(nèi)部一致性檢查 檢查數(shù)據(jù)文件中關(guān)聯(lián)項(xiàng)目、同一項(xiàng)目或同一條數(shù)據(jù)的內(nèi)部一致性。1)臺(tái)站名稱一致性檢查,檢查臺(tái)站名稱是否和月、年報(bào)數(shù)據(jù)文件的臺(tái)站名稱一致。2)區(qū)站號(hào)一致性檢查,檢查數(shù)據(jù)文件中區(qū)站號(hào)與文件名、文件首部中區(qū)站號(hào)的一致性;檢查數(shù)據(jù)文件中區(qū)站號(hào)與對(duì)應(yīng)的月、年報(bào)數(shù)據(jù)文件中的區(qū)站號(hào)是否一致。3)臺(tái)站級(jí)別與10項(xiàng)觀測時(shí)間一致性檢查,當(dāng)臺(tái)站級(jí)別與10項(xiàng)中的觀測次數(shù)不相符時(shí),提示“03項(xiàng)臺(tái)站級(jí)別稱謂與10項(xiàng)內(nèi)容不一致”。4)臺(tái)站位置標(biāo)識(shí)符與數(shù)據(jù)組“距原址距離;方向”一致性檢查,當(dāng)標(biāo)識(shí)符為“05”時(shí),同一條記錄中的“距原址距離;方向”若為“00000;000”,或標(biāo)識(shí)符為“55”時(shí),“距原址距離;方向”若不為“00000;000”,都提示“05項(xiàng)內(nèi)容不一致”。5)臺(tái)站位置與臺(tái)站周圍障礙物一致性檢查,當(dāng)臺(tái)站位置遷移變化標(biāo)志符為“05”時(shí),而障礙物未隨之同步變化,則提示“05項(xiàng)環(huán)境變化06項(xiàng)障礙物未變”。6)觀測要素與觀測儀器一致性檢查,若07項(xiàng)觀測要素是器測要素,08項(xiàng)必編報(bào)對(duì)應(yīng)的觀測儀器項(xiàng),否則設(shè)置疑誤信息,反之亦然。7)觀測儀器與觀測記錄一致性檢查,當(dāng)使用儀器不與14項(xiàng)觀測記錄相匹配時(shí),如某年代08項(xiàng)使用某自記儀器,而14項(xiàng)同時(shí)段沒有該儀器觀測記錄載體的編報(bào),且在12項(xiàng)中無說明,則提示疑誤信息。8)10項(xiàng)觀測次數(shù)與11項(xiàng)一致性檢查,若10項(xiàng)中的觀測次數(shù)與11項(xiàng)中的守班情況不匹配時(shí),如10項(xiàng)觀測時(shí)間中的觀測次數(shù)為“4”,而11項(xiàng)守班情況為“不守班”,則設(shè)置疑誤信息提示。
2.2.4 數(shù)據(jù)的合理性檢查 按照沿革數(shù)據(jù)項(xiàng)目內(nèi)容[11]和編制說明中各類參考表內(nèi)容,檢查數(shù)據(jù)名稱、數(shù)據(jù)內(nèi)容規(guī)范性、合理性。1)開始、終止時(shí)間合理性檢查,檢查開始、終止年份數(shù)組是否符合年份的特征數(shù)字,其日期應(yīng)配合小月不出現(xiàn)31日;2月應(yīng)判斷是否有閏日,同時(shí)開始時(shí)間應(yīng)小于終止時(shí)間。2)名稱合理性檢查,臺(tái)站級(jí)別、觀測要素、觀測儀器設(shè)備、觀測記錄載體名稱等稱謂應(yīng)與編制說明中各稱謂參考表內(nèi)的名稱一致。3)臺(tái)站位置合理性檢查,檢查項(xiàng)目中的經(jīng)度、緯度、觀測場海拔高度與對(duì)應(yīng)月、年數(shù)據(jù)文件中的是否一致;“臺(tái)站地理環(huán)境”應(yīng)與編制說明中臺(tái)站地理環(huán)境參考表內(nèi)的名稱一致;“距原址距離;方向”應(yīng)與通過臺(tái)站前后兩點(diǎn)的經(jīng)緯度計(jì)算得出的距原址距離、方向一致,否則設(shè)置疑誤信息。4)周圍障礙物合理性檢查,當(dāng)障礙物為山體時(shí),高度應(yīng)小于等于3 000 m;障礙物為建筑物時(shí),高度應(yīng)小于等于60 m,障礙物為樹木時(shí),高度應(yīng)小于等于18 m,否則提示疑誤信息;障礙物仰角小于3度時(shí),提示不為障礙物;障礙物寬度角方位使用16方位表示,且每個(gè)方位不大于23度,否則提示疑誤信息。5)觀測儀器距地高度合理性檢查,觀測儀器距地高度均需符合氣象觀測規(guī)范中各類儀器安裝高度,同時(shí)需與對(duì)應(yīng)的月、年數(shù)據(jù)文件中儀器高度一致,對(duì)儀器高度長期未變化的,設(shè)置疑誤信息。6)觀測時(shí)制合理性檢查,觀測時(shí)制以氣象觀測規(guī)范的定時(shí)觀測時(shí)制為準(zhǔn),如:1951—1953年的地面定時(shí)觀測時(shí)制有120E標(biāo)準(zhǔn)時(shí)、105E標(biāo)準(zhǔn)時(shí)及90E標(biāo)準(zhǔn)時(shí)3種;1954年01月01日—1960年06月30日地面定時(shí)觀測時(shí)制為“地方平均太陽時(shí)”;1960年07月01日后地面定時(shí)觀測時(shí)制為“北京時(shí)”,否則提示錯(cuò)誤。7)觀測規(guī)范合理性檢查,觀測規(guī)范名稱及執(zhí)行時(shí)間應(yīng)與編制說明中規(guī)范參考表內(nèi)的名稱及時(shí)間一致,否則設(shè)置疑誤信息。
進(jìn)行質(zhì)量檢查時(shí),首先依據(jù)各條項(xiàng)目中分隔符“/”,將L文件的各條項(xiàng)目數(shù)據(jù)組進(jìn)行分解,去除3個(gè)預(yù)留項(xiàng)目,按數(shù)據(jù)文件01-20標(biāo)識(shí)碼,分別存放到17個(gè)二維數(shù)據(jù)中,“行”為各項(xiàng)目記錄條數(shù),“列”為項(xiàng)目的數(shù)據(jù)組個(gè)數(shù)。規(guī)則引擎從規(guī)則數(shù)據(jù)庫中提取規(guī)則,逐項(xiàng)檢查,對(duì)錯(cuò)誤和可疑信息進(jìn)行確認(rèn)、定位、分析、處理、數(shù)據(jù)修改、標(biāo)識(shí),最后生成質(zhì)量控制后的L文件。
圖2 基于規(guī)則引擎的質(zhì)量控制流程圖
基于規(guī)則引擎研發(fā)的氣象臺(tái)站歷史沿革數(shù)據(jù)質(zhì)量控制軟件在《全國基礎(chǔ)氣象資料建設(shè)》中應(yīng)用于地面氣象臺(tái)站歷史沿革數(shù)據(jù)的質(zhì)量檢查,完成全國2 400余個(gè)國家級(jí)地面氣象臺(tái)站歷史沿革數(shù)據(jù)的審核,檢查出錯(cuò)誤、可疑信息數(shù)萬條。通過軟件的錯(cuò)誤定位功能,人機(jī)交互界面,對(duì)錯(cuò)誤、可疑信息進(jìn)行核對(duì)、判斷,完成了數(shù)據(jù)修正工作,大大提高了審核工作效率,保證了歷史沿革數(shù)據(jù)的規(guī)范性、完整性和準(zhǔn)確性,為全國基礎(chǔ)氣象資料提供了質(zhì)量可靠的臺(tái)站元數(shù)據(jù),滿足數(shù)據(jù)共享服務(wù)需求。該方法具有規(guī)則庫維護(hù)的靈活性,能較好地滿足氣象臺(tái)站觀測元數(shù)據(jù)后續(xù)變化的需要,在近年的“歷史與實(shí)時(shí)資料一體化”“氣象臺(tái)站歷史沿革數(shù)據(jù)階段編研”等業(yè)務(wù)中發(fā)揮著積極作用,實(shí)踐證明,方法的應(yīng)用是行之有效的。
基于規(guī)則引擎的氣象臺(tái)站歷史沿革數(shù)據(jù)質(zhì)量控制方法,能高效地檢查、過濾氣象臺(tái)站歷史沿革數(shù)據(jù)文件中不符合氣象行業(yè)標(biāo)準(zhǔn)及相關(guān)規(guī)范的數(shù)據(jù),確保沿革數(shù)據(jù)的真實(shí)性、規(guī)范性,解決了氣象臺(tái)站元數(shù)據(jù)質(zhì)量控制效率低的問題。該方法不僅提供便捷、直觀、完整的信息提示,還提供數(shù)據(jù)質(zhì)控規(guī)則編制接口,便于規(guī)則的增加與改進(jìn),實(shí)現(xiàn)規(guī)則庫動(dòng)態(tài)交互,以適應(yīng)氣象臺(tái)站歷史沿革數(shù)據(jù)規(guī)則的完善及檢查規(guī)則不斷更新變化的需求。