梁志強
(黑龍江省自然資源權益調查監測院,黑龍江 哈爾濱 150080)
林地保護利用規劃(以下簡稱林保)從2010—2017年均采用Xian1980坐標系,從2018年度開始國家林業局要求數據采用CGCS2000坐標系,并統一將省級層面的2017年度林保成果數據依據測繪部門轉換軟件(參數)轉換為CGCS2000坐標系,以此作為省級林地年度更新工作的基礎資料,地方林業主管部門獲取省局下發的林保數據就會有同一個年度的Xian1980和CGCS2000坐標系,即為轉換前和轉換后的數據,可根據該數據進行同名點獲取。
地方林業部門除林保之外的其他業務工作(如營造林、森林經營管理等資料)數據多且雜,基本都是Xian1980坐標系,根據業務要求也統一采用CGCS2000坐標系,都需要實現數據轉換。傳統的坐標轉換方法是依靠轉換參數完成坐標轉換,而根據《中華人民共和國測繪法》,坐標轉換參數為保密數據,對地方林業部門來說很難獲得轉換參數,對以往數據的轉換存在著一定的轉換難度[1]。對此,借助現有資料可通過同名點獲取的方法,運用GIS軟件實現局部范圍內的其他業務數據的坐標轉換。
GDAL(Geospatial Data Abstraction Library,地理空間數據抽象庫)是一個在X/MIT許可協議下的開源空間數據(柵格數據和矢量數據)轉換庫,包括讀取、寫入、轉換、處理各種柵格和矢量數據格式[2]。
OGR(OGR Simple Features Library)是GDAL的項目的一個分支,提供對矢量數據的讀/寫操作。其體系結構包括Drivers(驅動)、Data Source(數據源)、Spatial Reference(空間參考)、Layer(圖層)、Geometry(幾何圖形)、Feature(要素)、Feature Definition(要素定義)等。
可通過GDAL讀取兩期矢量圖斑要素屬性及幾何圖形坐標節點等空間及屬性信息。
SQLite是一款開放源代碼的基于C語言開發的輕量型嵌入式關系數據庫引擎,是目前使用較廣泛的嵌入式數據庫[3]。相對于傳統數據庫,SQLite具有更好的實時性、系統開銷小、底層控制能力強等優點,且能高效地利用有限資源,提高數據的存取速度,增強系統安全性。SQLite在使用前無須安裝數據庫引擎,數據庫是一個單獨的支持2TB的數據存儲普通磁盤文件,支持多種開發語言,可移植性好。
可通過SQLite數據庫,實現矢量圖斑的空間及屬性信息的存儲。
采用分別讀取同一區域林保2017年度兩個坐標系的矢量數據,獲取滿足相同圖斑且點序一致的坐標點,作為同名點,形成原始坐標與目標坐標對照表;獲取同名點盡量分布均勻,滿足GIS軟件空間校正及地理配準的需要,以達到轉換誤差滿足數據轉換精度要求。
在Visual Studio開發環境中調用GDAL開源類庫Gdal_csharp.dll、Org_csharp.dll,使用C#代碼實現對GDAL注冊和相應函數的使用。GDAL可以遍歷矢量的所有圖斑,讀取每個圖斑的屬性信息,求算投影圖形面積及各節點的X、Y坐標(圖1)。

圖1 C#+GDAL讀取SHAPE文件
分別讀取Xian1980、CGCS2000投影坐標系的矢量數據,以每個林保圖斑的林業局、林場、林班、小班(即lin_ye_ju、Lin_Chang、Lin_Ban、Xiao_Ban)作為唯一關鍵值信息;遍歷林保圖層中的所有圖斑要素,將圖斑關鍵值信息、圖斑面積、節點坐標進行讀取和計算,并進行入庫操作。為了減少數據量,僅對圖斑的第一個節點的橫縱坐標進行獲取。
在Visual Studio開發環境中調用System.Data.SQLite.DLL,采用C#實現對SQLite數據庫的使用(圖2)。

圖2 C#+SQLite數據入庫
3.2.1 創建“坐標對照表”,用于存儲兩套數據讀取的信息,字段為關鍵字 Text(50)、面積1980 numeric(30,10)、橫坐標 1980 numeric(30,10)、縱坐標1980numeric(30,10)、面積2000 numeric(30,10)、橫坐標2000 numeric(30,10)、縱坐標2000 numeric(30,10)。
3.2.2 分別將讀取兩套林保矢量的圖斑信息及節點坐標寫入到“坐標對照表”的相應字段內。
3.2.3 計算兩組坐標點直線距離,并將計算結果取整。
3.3.1 為了避免同名點坐標點對出現異常的情況,通過“坐標對照表”計算出的取整后的坐標直線距離,分類統計計算,求算出直線距離個數最多的值,并記錄該整數直線距離值,作為同名點對的一個篩選條件。
3.3.2 為了減少同名點對的數據量,將兩組面積誤差較大的也進行排除,控制面積誤差為0.02 m2,作為同名點對的一個篩選條件。
3.3.3 將滿足上述篩選條件的同名點對的坐標點進行讀取并輸出為GIS軟件識別的文本文件,編碼格式為ANSI,否則不會被識別。
3.3.4 同名點的選取必須覆蓋整個縣域范圍,盡量均勻分布。
同名點對對應的是Xian1980和CGCS2000坐標系下的源坐標與目標坐標的對應值,林業技術人員可以將業務數據源矢量文件,導入GIS軟件,并加載計算獲得同名點對,實現相關業務數據的轉換,其轉換結果可以通過CGCS2000坐標系的林保數據或者已知其他類型數據進行核對,確保精度可以達到轉換要求。
本文通過對2種坐標系的林地保護利用規劃數據進行分析,通過GDAL技術、SQLite數據技術實現兩套數據的同名點對的獲取,該同名點對的值可以作為其他林業及其他相關業務的數據轉換參數,達到Xian1980坐標系向CGCS2000坐標系轉換的目的和精度,使林業部門在無法獲取涉密轉換參數的情況下,依靠現有數據資料實現本部門局部區域其他類型數據的坐標轉換。