張 亮,王宗榮,周漢華,龔 卉,李 智,肖 峰
(1.湖北省測(cè)繪工程院,湖北 武漢 430074;2.鄂州市地理信息中心,湖北 鄂州 436000;3.武漢市蔡甸區(qū)勘察測(cè)繪設(shè)計(jì)院,湖北 武漢 430100)
地理信息數(shù)據(jù)庫(kù)的元數(shù)據(jù)是4D成果的重要組成部分,記錄了圖名、圖號(hào)、圖廓點(diǎn)坐標(biāo)、接邊情況等大量描述信息,是4D產(chǎn)品檢索的重要依據(jù),也是4D成果質(zhì)量評(píng)定的重要一環(huán)。不少學(xué)者從不同角度對(duì)元數(shù)據(jù)進(jìn)行了研究,如宋華偉等研究了國(guó)內(nèi)外地理信息元數(shù)據(jù)的標(biāo)準(zhǔn),提出建立地理信息元數(shù)據(jù)系統(tǒng)模型[1];吳學(xué)峰等結(jié)合新疆基礎(chǔ)測(cè)繪項(xiàng)目,研究了元數(shù)據(jù)自動(dòng)化生產(chǎn)的方法[2];陳明東針對(duì)人工管理元數(shù)據(jù)效率低的問(wèn)題,提出基于MDB的4D產(chǎn)品信息庫(kù)設(shè)計(jì)方案[3];王漢財(cái)依據(jù)元數(shù)據(jù)信息獲取的方式和檢查內(nèi)容進(jìn)行分析、探討,通過(guò)編程實(shí)現(xiàn)元數(shù)據(jù)質(zhì)量控制[4]。這些研究制作元數(shù)據(jù)時(shí)創(chuàng)建的表結(jié)構(gòu)相對(duì)固定,沒(méi)有實(shí)現(xiàn)元數(shù)據(jù)表的動(dòng)態(tài)定制,而且僅僅只針對(duì)屬性數(shù)據(jù)進(jìn)行處理,沒(méi)有將空間數(shù)據(jù)和屬性數(shù)據(jù)相關(guān)聯(lián),在處理方式上尚不夠靈活。本文分析了元數(shù)據(jù)生產(chǎn)要解決的主要問(wèn)題,充分發(fā)揮GIS的優(yōu)勢(shì),將空間數(shù)據(jù)和屬性數(shù)據(jù)有機(jī)結(jié)合,設(shè)計(jì)并編寫(xiě)程序?qū)崿F(xiàn)了元數(shù)據(jù)的快速生產(chǎn)。
以1︰1萬(wàn)DLG元數(shù)據(jù)制作為例,元數(shù)據(jù)項(xiàng)多達(dá)100多項(xiàng),其中有些項(xiàng)是固有不變的,如產(chǎn)品生產(chǎn)日期、產(chǎn)品版本、出版日期等,而對(duì)于變化項(xiàng)則需要進(jìn)行相關(guān)的統(tǒng)計(jì)和計(jì)算。針對(duì)元數(shù)據(jù)項(xiàng)中的變化項(xiàng),需要解決以下幾個(gè)方面的問(wèn)題:
1)文件操作。主要針對(duì)元數(shù)據(jù)項(xiàng)中與文件相關(guān)的描述項(xiàng),如對(duì)與圖號(hào)相匹配的數(shù)據(jù)文件或文件夾進(jìn)行容量統(tǒng)計(jì),作為數(shù)據(jù)量項(xiàng)的填寫(xiě)依據(jù);針對(duì)BIL格式的DEM元數(shù)據(jù),讀取相應(yīng)HDR文件作為格網(wǎng)行列數(shù)項(xiàng)的填寫(xiě)依據(jù)等。
2)圖幅計(jì)算。主要包括圖幅經(jīng)緯度計(jì)算、圖廓角點(diǎn)坐標(biāo)計(jì)算、圖幅結(jié)合表圖號(hào)計(jì)算等,相關(guān)計(jì)算結(jié)果作為相應(yīng)元數(shù)據(jù)項(xiàng)的填寫(xiě)依據(jù)。
3)空間關(guān)系判斷。主要是判斷圖幅鄰接關(guān)系,讀取相應(yīng)圖名和圖幅接邊情況,作為相應(yīng)元數(shù)據(jù)項(xiàng)的填寫(xiě)依據(jù)。
針對(duì)以上問(wèn)題,考慮建立MDB數(shù)據(jù)庫(kù),同時(shí)制作相應(yīng)的元數(shù)據(jù)模板文件,并根據(jù)模板文件在數(shù)據(jù)庫(kù)中建立相應(yīng)的表來(lái)記錄元數(shù)據(jù)信息。表的屬性項(xiàng)對(duì)應(yīng)相關(guān)的元數(shù)據(jù)項(xiàng),屬性項(xiàng)的值記錄元數(shù)據(jù)值,表中一條記錄對(duì)應(yīng)一幅圖的元數(shù)據(jù)信息。最后,按指定格式和規(guī)則將表中記錄寫(xiě)出成元數(shù)據(jù)文件。如圖1所示。
圖1 元數(shù)據(jù)制作總體設(shè)計(jì)流程圖
2.2.1 元數(shù)據(jù)模板制作
元數(shù)據(jù)模板文件根據(jù)項(xiàng)目設(shè)計(jì)書(shū)要求創(chuàng)建,以txt文本格式存儲(chǔ),以分行形式記錄元數(shù)據(jù)項(xiàng)和元數(shù)據(jù)值,項(xiàng)和值之間以tab或空格進(jìn)行分隔。模板文件要求將固定項(xiàng)的值直接填寫(xiě),變化項(xiàng)的值不填。
2.2.2 數(shù)據(jù)庫(kù)和數(shù)據(jù)表的創(chuàng)建
在指定目錄下創(chuàng)建一個(gè)Microsoft Access的mdb數(shù)據(jù)庫(kù)文件,命名為Metadata。讀取元數(shù)據(jù)模板文件,利用String.Split函數(shù)將元數(shù)據(jù)模板文件中的元數(shù)據(jù)項(xiàng)和值進(jìn)行分離,以其中的元數(shù)據(jù)項(xiàng)為表屬性項(xiàng)在數(shù)據(jù)庫(kù)中創(chuàng)建指定表名的空數(shù)據(jù)表,并將模板文件記錄的固項(xiàng)和值以Dictionary數(shù)據(jù)結(jié)構(gòu)進(jìn)行記錄。
2.2.3 結(jié)合表制作
選擇在GIS環(huán)境下制作相應(yīng)的圖幅結(jié)合表[5],并在ArcGIS下內(nèi)嵌開(kāi)發(fā)相應(yīng)的結(jié)合表制作程序。圖幅結(jié)合表以面層形式展現(xiàn),一個(gè)面對(duì)應(yīng)一個(gè)圖幅。根據(jù)項(xiàng)目設(shè)計(jì)書(shū),面的屬性表需要?jiǎng)?chuàng)建圖名、圖號(hào)、舊圖號(hào)、原圖圖名、等高距、接邊標(biāo)識(shí)等字段,分別記錄每幅圖的相應(yīng)項(xiàng)信息。圖幅結(jié)合表制作要求在生產(chǎn)范圍邊界外擴(kuò)一個(gè)圖幅,以獲取生產(chǎn)范圍邊界處鄰接圖幅的相關(guān)信息。因項(xiàng)目生產(chǎn)范圍內(nèi)部圖幅一般必須接邊,以屬性值“1”作為接邊標(biāo)識(shí),外擴(kuò)圖幅則根據(jù)實(shí)際情況以“0”或“1”標(biāo)識(shí)接邊情況。
2.2.4 可變項(xiàng)值的獲取
可變項(xiàng)中與文件數(shù)據(jù)相關(guān)的值,可通過(guò)統(tǒng)計(jì)程序或直接讀取對(duì)應(yīng)文件的相關(guān)信息來(lái)獲取,如“數(shù)據(jù)量”、“格網(wǎng)行列數(shù)”等;而與空間信息相關(guān)項(xiàng)的值則需要通過(guò)讀取結(jié)合表來(lái)獲取,借助ArcGIS Engine 組件式開(kāi)發(fā)可以方便地對(duì)結(jié)合表shp數(shù)據(jù)進(jìn)行操作[6]。主要計(jì)算項(xiàng)獲取方法如下:
1)在遍歷數(shù)據(jù)文件的同時(shí)通過(guò)圖號(hào)查詢結(jié)合表,讀取對(duì)應(yīng)圖幅的圖名、圖號(hào)、舊圖號(hào)、原圖圖名、等高距、接邊標(biāo)識(shí)等信息作為元數(shù)據(jù)相應(yīng)項(xiàng)的填寫(xiě)依據(jù);
2)相應(yīng)圖幅的圖廓角點(diǎn)坐標(biāo)直接在結(jié)合表中讀?。?/p>
3)利用IRelationalOperator接口的Touches方法獲取鄰接圖幅,通過(guò)本圖幅中心點(diǎn)坐標(biāo)與鄰接圖幅中心點(diǎn)坐標(biāo)的比較,判斷圖幅間位置關(guān)系[7];
4)依據(jù)對(duì)應(yīng)鄰接圖幅的相關(guān)信息填寫(xiě)與本幅圖相關(guān)的相應(yīng)元數(shù)據(jù)項(xiàng);
5)根據(jù)1︰1萬(wàn)地圖分幅編號(hào)法則,計(jì)算其4個(gè)角的經(jīng)緯度,以獲取圖幅經(jīng)緯度范圍。
2.2.5 數(shù)據(jù)寫(xiě)入與元數(shù)據(jù)文件寫(xiě)出
將每幅圖獲取的可變項(xiàng)值連同模板記錄的固定項(xiàng)值一并寫(xiě)入數(shù)據(jù)表中,一幅圖對(duì)應(yīng)表中一行,每行都記錄了一幅圖的所有元數(shù)據(jù)值。
將數(shù)據(jù)表中記錄連同元數(shù)據(jù)頭一并寫(xiě)出,保存成設(shè)計(jì)書(shū)要求的元數(shù)據(jù)格式,生成對(duì)應(yīng)的元數(shù)據(jù)文件。
根據(jù)以上思路,開(kāi)發(fā)了相應(yīng)的元數(shù)據(jù)制作程序。同時(shí),以某地區(qū)790幅1︰1萬(wàn)DLG元數(shù)據(jù)生產(chǎn)進(jìn)行實(shí)驗(yàn)。經(jīng)過(guò)實(shí)踐,從元數(shù)據(jù)模板制作、結(jié)合表制作到完成元數(shù)據(jù)的生產(chǎn),只需半個(gè)工作日,且元數(shù)據(jù)項(xiàng)填寫(xiě)準(zhǔn)確無(wú)誤,大大提高了生產(chǎn)效率和產(chǎn)品的質(zhì)量。
通過(guò)模板定制和數(shù)據(jù)庫(kù)技術(shù)實(shí)現(xiàn)了4D產(chǎn)品元數(shù)據(jù)項(xiàng)的自由定制,通過(guò)ArcGIS Engine下組件開(kāi)發(fā)技術(shù)實(shí)現(xiàn)了結(jié)合表數(shù)據(jù)的查詢、運(yùn)算和空間分析。2者的結(jié)合準(zhǔn)確無(wú)誤地獲取了對(duì)應(yīng)元數(shù)據(jù)項(xiàng)的值,實(shí)現(xiàn)了4D產(chǎn)品元數(shù)據(jù)的快速生產(chǎn)。方案中還存在不足之處,如對(duì)圖幅結(jié)合表文件制作要求高,需要圖幅結(jié)合表詳盡記載圖幅的相關(guān)信息,并保證坐標(biāo)準(zhǔn)確無(wú)誤。下一步可進(jìn)一步作數(shù)據(jù)關(guān)聯(lián),從多數(shù)據(jù)源中提取關(guān)聯(lián)信息,并建立數(shù)據(jù)庫(kù)管理系統(tǒng),同時(shí)結(jié)合多源數(shù)據(jù)進(jìn)行更深入的數(shù)據(jù)分析和挖掘應(yīng)用,以產(chǎn)生更大的經(jīng)濟(jì)效益。
[1]宋華偉,周莎,馬德濤.淺議地理信息元數(shù)據(jù)[J].地理空間信息,2008,6(1):74-76
[2]吳學(xué)峰,胡紅艷,趙淑玲.新疆基礎(chǔ)測(cè)繪元數(shù)據(jù)自動(dòng)化生產(chǎn)技術(shù)研究[J].測(cè)繪與空間地理信息,2011,34(4):56-61
[3]陳明東.4D產(chǎn)品元數(shù)據(jù)自動(dòng)生成方法及實(shí)現(xiàn)[J].測(cè)繪與空間地理信息,2012,35(3):93-95
[4]王漢財(cái).基礎(chǔ)測(cè)繪元數(shù)據(jù)檢查方法探析[J].長(zhǎng)春工程學(xué)院學(xué)報(bào):自然科學(xué)版,2013,14(2):101-103
[5]王波,張亮,孫霞.CAD向GIS數(shù)據(jù)的轉(zhuǎn)換入庫(kù)[J].地理空間信息,2011,9(3):24-26
[6]吳建華.基于ArcGIS Engine的GIS軟件開(kāi)發(fā)方法[J].測(cè)繪通報(bào),2010(11):54-57
[7]曹健,李國(guó)忠,徐效波,等.基于ArcGIS Engine的多幅數(shù)字地形圖接邊算法研究[J].測(cè)繪與空間地理信息,2010,33(2):76-78