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