梁志强
(黑龙江省自然资源权益调查监测院,黑龙江 哈尔滨 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坐标系转换的目的和精度,使林业部门在无法获取涉密转换参数的情况下,依靠现有数据资料实现本部门局部区域其他类型数据的坐标转换。