徐 楊,孫 群,馮克忠,于 樂
(1.信息工程大學測繪學院,河南鄭州450052;2.測繪信息中心,北京100088)
基于OGR的交換格式數(shù)據(jù)驅動的設計與實現(xiàn)
徐 楊1,2,孫 群1,馮克忠2,于 樂2
(1.信息工程大學測繪學院,河南鄭州450052;2.測繪信息中心,北京100088)
交換格式是測繪行業(yè)部門為實現(xiàn)與其他行業(yè)部門進行信息交換與共享而設計的一種明碼文件格式,需要根據(jù)不同的GIS軟件開發(fā)不同的處理程序進行數(shù)據(jù)處理。針對這一情況,提出基于OGR庫開發(fā)一個交換格式數(shù)據(jù)驅動,實現(xiàn)交換格式數(shù)據(jù)與商用GIS數(shù)據(jù)格式之間的自由轉換,以提高交換格式數(shù)據(jù)使用的效率,降低數(shù)據(jù)使用成本,擴大數(shù)據(jù)使用的范圍與影響。
OGR;OGC;交換格式;BeyonDB
交換格式通常是行業(yè)部門為了實現(xiàn)與其他行業(yè)部門進行信息交換或共享而設計的一種明碼文件格式,這種交換格式通常在行業(yè)內部也有大量的應用。本文所指的交換格式為測繪部門矢量數(shù)據(jù)供應的主要形式,在多個部門與單位中有著廣泛的應用。它不能夠直接在現(xiàn)有的商用GIS軟件及數(shù)據(jù)分析、應用軟件中使用,須首先開發(fā)格式轉換、導入程序,將交換格式數(shù)據(jù)轉換為GIS軟件所支持的數(shù)據(jù)格式,或者錄入到GIS軟件所支持的數(shù)據(jù)庫系統(tǒng)中,然后才能使用交換格式數(shù)據(jù)。這一方式的主要缺點在于所開發(fā)的數(shù)據(jù)轉換、入庫程序具有很強的針對性,只適用于某一特定的GIS軟件,當數(shù)據(jù)應用在其他GIS軟件中時,還需要再開發(fā)針對其他GIS軟件的數(shù)據(jù)轉換、入庫程序。而在實際應用中,交換格式數(shù)據(jù)通常會在多個GIS軟件平臺中應用。針對這一情況,本文提出開發(fā)一個基于OGR庫的交換格式數(shù)據(jù)驅動,實現(xiàn)交換格式與各種商用GIS軟件或數(shù)據(jù)分析應用軟件的自由轉換,而不需要再進行額外的格式轉換開發(fā)。由于采用這種方式不需要用戶學習交換格式,因此降低了數(shù)據(jù)使用的成本,提高了數(shù)據(jù)應用的效率,從而擴大了交換格式數(shù)據(jù)使用的范圍與影響。
GDAL(geospatial data abstraction library)是一個基于X/MIT許可協(xié)議的開源柵格空間數(shù)據(jù)轉換庫。它利用抽象數(shù)據(jù)模型來表達所支持的各種文件格式,并擁有一系列命令行工具用于數(shù)據(jù)轉換和處理。OGR是GDAL項目的一個分支,功能與GDAL類似,只不過它提供對矢量數(shù)據(jù)的支持。
有很多著名的GIS產品都使用了GDAL/OGR庫,包括Esri的 ArcGIS、Google Earth和跨平臺的GRASS GIS系統(tǒng)。利用GDAL/OGR庫,Linux上的地理空間數(shù)據(jù)管理系統(tǒng)可以方便地實現(xiàn)對矢量和柵格文件數(shù)據(jù)的支持。
OGR提供了對多種矢量數(shù)據(jù)格式的讀寫支持,包括:Esri Shapefile、S-57、SDTS、PostGIS、Oracle Spatial、MapInfo MID/MIF、MapInfo TAB。
OGR庫的地理幾何數(shù)據(jù)模型采用的是開放地理信息聯(lián)盟(Open Geospatial Consortium,OGC)所制定的簡單要素模型中對于幾何模型的設計,如圖1所示。OGC成立于1994年,是一個由GIS廠商、計算機廠商、數(shù)據(jù)庫廠商、數(shù)據(jù)集成商、電信公司、數(shù)據(jù)庫開發(fā)商、美國聯(lián)邦機構、標準組織以及學術界等部門代表組成的公益性行業(yè)協(xié)會,現(xiàn)有包括軟件公司、政府部門和大專院校在內的成員220多個。其所制定的簡單要素模型目前已在某種程度上成為數(shù)據(jù)模型設計的標準,具有很強的通用性和廣泛的適用性。
交換格式的地理幾何數(shù)據(jù)模型設計如圖2所示。通過對圖1、圖2的比較,可以發(fā)現(xiàn)兩者對于地理幾何數(shù)據(jù)的定義存在著很大的差異性,這也是地理幾何數(shù)據(jù)轉換過程中需要解決的難點。

圖1 OGC地理幾何數(shù)據(jù)模型

圖2 交換格式地理幾何數(shù)據(jù)模型
兩種幾何數(shù)據(jù)模型定義的主要差異體現(xiàn)在以下兩個方面。
1.幾何數(shù)據(jù)存儲差異
交換格式對于點對象的定義有兩種:entity point為實體點,與 OGR中的 point是一樣的;direction point指的是有向點,用于指定地理實體在屏幕或紙質圖上符號化顯示時符號放置的方向,OGR中沒有對應的有向點定義。
實體點在坐標文件中的存儲方式為“實體點坐標+0 0”;有向點在坐標文件中的存儲方式為“定位點坐標+方向點坐標”。在交換格式數(shù)據(jù)驅動編寫過程中,需要擴展OGRFeature的定義,增加方向點坐標項,以供GIS軟件進行符號化顯示時使用。
2.環(huán)數(shù)據(jù)存儲結構差異
交換格式中對于環(huán)狀面中各個面的順逆時針方向沒有要求,只是固定地認為第一個多邊形為外包多邊形,其他都為第一個多邊形的內部多邊形。而OGR庫通過順、逆時針進行多邊形類型判斷,如果多邊形組中順時針或逆時針多邊形個數(shù)為1,其余為多個時,則該多邊形為環(huán)島;否則為復合多邊形。
因此,在交換格式驅動編寫過程中,須判斷所讀到的第一個多邊形的方向,并將其余多邊形設為相逆方向存儲。
交換格式數(shù)據(jù)按要素類分層,每一類要素組成一個要素層,存儲在一組文件中:以SX文件存儲要素類的屬性信息;以ZB文件存儲要素類的地理信息;以TP文件存儲要素間的拓撲信息;以MS文件存儲要素類的描述信息。要素類中的所有點、線、面要素存儲在同一文件中,以P、L、A標志區(qū)分,在每個類型標志后注明實際要素個數(shù)。其大致格式描述如下

OGR庫則認為所操作的數(shù)據(jù)源符合簡單要素模型規(guī)范要求。一個數(shù)據(jù)文件只存儲一種幾何類型的數(shù)據(jù),即對應一個FeatureLayer,其類型可以由FeatureLayer的類型來獲得,要素個數(shù)等信息也可以由FeatureLayer的屬性信息來獲得。其數(shù)據(jù)讀取方式如下

由上可見,交換格式地理數(shù)據(jù)組織方式與OGR對數(shù)據(jù)源的要求不一致:交換格式中每個要素層所包含的幾何要素為點、線、面3類,即一個交換格式文件要對應其他格式數(shù)據(jù)的3層;OGR庫則認為一個要素層中的所有要素都為同一幾何類型,所讀取的數(shù)據(jù)文件結束即為當前幾何類型的要素讀取完畢。因此,要實現(xiàn)基于OGR的交換格式驅動,就必須進行判斷,確定當前幾何類型的要素讀取是否結束,而不能單獨依靠文件結束標志來判斷當前幾何類型要素是否讀取完畢。此外,所編寫的交換格式驅動應該能夠真正地集成在OGR庫中,以保證庫的對外接口不變,不受OGR庫版本更新以及接口變動的影響。交換格式地理數(shù)據(jù)轉換流程如圖3所示。

圖3 交換格式驅動中地理數(shù)據(jù)轉換流程
BeyonDB數(shù)據(jù)庫是面向國家空間信息基礎設施建設的重大需求所研發(fā)的具有自主知識產權、企業(yè)級、跨平臺、分布式、高安全的地理空間數(shù)據(jù)庫管理系統(tǒng)平臺。數(shù)據(jù)庫能夠在統(tǒng)一的數(shù)據(jù)庫集成管理平臺上進行空間數(shù)據(jù)、屬性數(shù)據(jù)的一體化管理,對矢量數(shù)據(jù)、柵格數(shù)據(jù)進行一體化空間展現(xiàn)與處理。
基于OGR庫的交換格式驅動主要就是用來幫助BeyonDB數(shù)據(jù)庫實現(xiàn)對交換格式數(shù)據(jù)的支持。基于交換格式驅動實現(xiàn)地理實體的空間信息轉換,通過 BeyonDB.NET Provider和 OpenAPI接口對BeyonDB中的各個元數(shù)據(jù)表進行操作,很好地設計與實現(xiàn)了BeyonDB對交換格式的支持(如圖4所示)。

圖4 交換格式入庫功能的實現(xiàn)
基于OGR庫的交換格式驅動通過對OGR庫進行擴展,實現(xiàn)了交換格式數(shù)據(jù)與商用GIS數(shù)據(jù)格式之間的轉換,而無需進行額外的程序開發(fā),減輕了交換格式對用戶的要求,降低了數(shù)據(jù)使用成本,擴展了數(shù)據(jù)使用的領域,提高了數(shù)據(jù)使用的效率與影響。在此基礎上所開發(fā)的交換格式數(shù)據(jù)入庫與提取程序,豐富了BeyonDB數(shù)據(jù)庫所支持的空間數(shù)據(jù)種類,為BeyonDB在測繪行業(yè)內部的推廣使用打下了堅實的基礎。
[1] 易善楨,李琦,承繼成.空間信息的共享與互操作[J].測繪通報,2000(8):17-19.
[2] 孫立堅,朱翊,劉紀平,等.GIS數(shù)據(jù)交換理論與系統(tǒng)架構的研究[J].測繪通報,2007(9):57-60.
[3] 孔毅,張志強,趙崇亮.基于ArcGIS的CAD數(shù)據(jù)入庫研究[J].測繪通報,2010(5):58-60.
[4] 陳軍,王東華,商瑤玲,等.國家1∶50 000數(shù)據(jù)庫更新工程總體設計研究與技術創(chuàng)新[J].測繪學報,2010,39(1):11-14.
[5] Open Geospatial Consortium.OpenGIS Implementation Specification for Geographic Information-Simple feature access-Part 1:Common architecture(V1.2.0)[S].[S.l.]:Open Geospatial Consortium Inc,2006.
[6] Open Geospatial Consortium.OpenGIS Implementation Specification for Geographic Information-Simple feature access-Part 2:SQL option(V1.2.0)[S].[S.l.]:Open Geospatial Consortium Inc,2006.
Design and Implementation of an Interchange Format Driver Based on OGR
XU Yang,SUN Qun,F(xiàn)ENG Kezhong,YU Le
0494-0911(2011)06-0054-03
P208
B
2010-12-14
徐 楊(1979—),男,江蘇鹽城人,博士生,工程師,主要從事地理空間數(shù)據(jù)庫技術與應用研究。