APP下载

基于 GDAL 开源库的流域地貌特征提取

2018-01-02胡友兵王秀庆阚光远赵梦杰

水利信息化 2017年6期
关键词:水文学空间数据栅格

胡友兵 ,王秀庆 ,阚光远 ,苏 翠 ,赵梦杰

(1. 淮河水利委员会水文局(信息中心),安徽 蚌埠 233001;2. 淮河水利委员会沂沭泗水利管理局,江苏 徐州 221009;3. 中国水利水电科学研究院防洪抗旱减灾研究所,北京 100038)

基于 GDAL 开源库的流域地貌特征提取

胡友兵1,王秀庆2,阚光远3,苏 翠1,赵梦杰1

(1. 淮河水利委员会水文局(信息中心),安徽 蚌埠 233001;2. 淮河水利委员会沂沭泗水利管理局,江苏 徐州 221009;3. 中国水利水电科学研究院防洪抗旱减灾研究所,北京 100038)

GDAL 是一个在 X/MT 许可协议下读写栅格、矢量空间数据的开源库,针对水文学上流域地貌特征提取研究中与栅格、矢量数据的频繁交互,引入 GDAL 地理空间开源库。分析 GDAL 模型库结构,空间数据打开、读写及转换等数据交互常用接口,在底层将上述接口与地貌参数提取算法无缝耦合。在 .Net 平台上,利用轻型SharpMap 开源空间数据渲染控件作为显示窗体,开发独立地貌参数提取应用程序;在 ArcGIS 平台上通过 ArcPy脚本语言包搭建地貌参数提取工具箱,通过图解建模工具可以将其中的工具与 ArcGIS 相关工具进行组合,构建一键地貌提取模型,为流域地貌特征的提取计算提供一条简便实用的技术路径。

GDAL;开源库;流域;地貌特征;应用程序;插件

0 引言

在水文学的发展进程中,流域地貌特征研究是一条贯穿始终的生命线[1]。为定量表征流域水文响应规律,水文学上先后提出了大量的流域地貌参数,如在水系拓扑特征研究中提出的 Strahler 和Sherve 2 种分级为代表的河流分级数,流域形状特征研究中提出的流域面积、长度、宽度、伸长比[2],及半分布式水文模型 TOPMODEL 中使用的地形指数等[3]。水文学产汇流规律模型均直接或间接地反映流域地貌规律,如地貌瞬时单位线理论[4],新安江模型中流域概化方式及反映地貌特征的蓄水容量、消退系数等参数[5],水文相似理论更是将流域几何结构作为重要判别指标[6]。因此,流域地貌特征提取计算,是水文学研究中的一项重要的基础工作。

近年来,随着计算机、3S 技术的发展,SRTM(航天飞机雷达地形测绘使命)及 ASTER GDEM(先进星载热发射和反射辐射仪全球数字高程模型)高精度免费数据产品不断涌现,基于 DEM 的水文分析方法逐渐成为水文学研究的热点[7-9]。为便于流域地貌提取计算,地理学软件中均提供水文分析模块,如 ArcGIS 中水文分析模块、Archydrotools和 Rivertools 等[10-11]。由于流域地貌参数种类繁多,这些软件均难以全面覆盖,为此引入 GDAL(Geospatial Data Abstraction Library)地理空间开源库中丰富灵活的空间数据读取、转换等操作接口,将流域地貌参数提取算法和用户层的可视化空间图形文件进行无缝耦合,提出一套实用可行的流域地貌参数提取的技术路径。

1 GDAL 地理空间开源库介绍

GDAL 最初由加拿大 Frank Warmerdam 开发[12],在 GDAL1.3.2 版本之后,正式由开源空间信息基金会 OSGeo(Open Source Geospatial Foundation)下的 GDAL/OGR 项目管理委员会对其进行维护升级。GDAL 是一个独立专业开源库,是一个在 X/MT 许可协议下读写空间数据(包括栅格和矢量数据)的转换库,利用一套栅格/矢量抽象数据模型表达所支持的各种文件格式。GDAL 中对矢量数据读写支持由 OGR(OGR Simple Features Library)库支持。很多著名的 GIS 类产品都使用该库,包括 ESRI 的ArcGIS 系列,Erdas,Google Earth,以及跨平台的GRASS GIS 和 Quantumn GIS 系统等。

GDAL 支持的空间数据类型多达上百种,支持的栅格数据格式有 GeoTIFF,Erdas Imagine,Arc/Info ASCII Grid,ASCII dem 等,支持的矢量数据格式有 ESRI(Shapef i le,ArcSDE 及 FileGDM),MapInfo(tab,mid 及 mif),GML,KML 和 PostGIS 等。

G D A L 使用的抽象数据模型有数据集(Dataset)、坐标系统(Coordinate System)、仿射地理坐标变换(Affine GeoTransform)、大地控制点(GCPs)、元数据(Metadata)、颜色表(Color Table)、栅格波段(Raster Band)、子数据集域(Subdatasets Domain)、图像结构域(Image Structure Domain)、XML 域(XML Domains)、RPC 域(RPC Domain)及快视图(Overviews)[13]。

GDAL 中的类均是从 GDALMajorObject 派生的,核心类体系结构如图 1 所示,其中最常用的是GDALDataset 和 GDALRasterBand。

图 1 GDAL 核心类体系

OGR 中所有的类都是以 OpenGIS 提供的简单要素 API 为蓝本实习的,由 OGRGeometry(封装几何对象)、OGRSpatialReference(封装空间参考)、OGRFeature(封装几何要素)、OGRFeatureDefn(封装集合要素类定义)、OGRLayer(封装图层)、OGRDataSource(封装数据源)及 OGRSFDriver(封装矢量格式驱动)七大类组成。

2 GDAL 在流域地貌参数提取中的接口

GDAL 作为一套优秀的开源库,提供了一系列规范的调用接口,包括读取、存储、转换、栅格处理、矢量栅格转化、图像校正等,可供各专业研究人员使用熟悉的开发语言进行调用。

2.1 地理数据打开接口

使用 GDAL 打开地理空间数据之前均需要注册驱动,即针对 GDAL 支持的数据格式,对栅格和矢量数据可分别调用 OGRRegisterAll ( ) 和GDALAllRegister ( ) 函数实现。在获取驱动之后,使用 OGRSFDriver 和 GDALDriver 类提供的函数创建相应的数据集(OGRDataSoure/GDALDataset)对象,最后利用数据集对象进行数据的读写和地理参数设置。

2.2 数据信息读取接口

在得到矢量数据集(OGRDataSource)对象后,使用该对象提供的 GetLayer ( ) 方法得到图层对象,对图层的 GetNextFeature ( ) 方法进行遍历即可得到图层中的所有要素。GDAL 读写栅格图像函数由GDALDataset 的 RasterIO ( ) 接口实现,该接口的声明为:CPLErr RasterIO(GDALRWFlag eRWFlag, int nXoff, int nYoff, int nXSize, int nYSize, void* pData, int nBufXSize, int nBufYSize, GDALDataType eBufType,int nBandCount, int* panBandMap, int nPixelSpace, int nLineSpace, int nBandSpace)。

该接口中,第 1 个参数表示读取或写入操作,第 2 和 3 个参数表示读写图像的起始行列位置,第 4和 5 个参数表示读写图像的行列数目,第 6 个参数是指向读写数据对象的指针,第 7 和 8 个参数是读写数据过程中缓冲区大小,第 9~11 个参数用于存取的内存数据的排列顺序。

2.3 栅格转矢量接口

GDAL 库中栅格转矢量由接口 GDALPolygonize( ) 实现,声明为:CPLErr GDALPolygonize(GDALRasterBandH hSrcBand, GDALRasterBandH hMaskBand, OGRLayerH hOutLayer, int pPixValField,char** papszOption, GDALProgressFunc pfnProgress,void* pProgressArg)。

该接口中,第 1 个参数为输入栅格波段对象,第 2 个参数为输入栅格掩码波段,第 3 个为输出矢量文件图层,第 4 个为矢量图层中保存像元值的字段序号,第 5 个参数为转化算法,一般为“8CONNECTED”,第 6 和 7 个参数为显示计算进度的回调函数。

3 GDAL 在地貌参数提取中的应用

采用 GDAL 中丰富的数据信息读取接口,将地理空间数据转换为地貌参数提取算法层需求的内存数组,再将算法层计算的结果数组转换为用户层需求的可视化图形文件,即可实现数据层、算法层和用户层的无缝耦合,结构图如图 2 所示。采取独立应用程序和商用软件内嵌工具箱 2 种开发方式,搭建可视化流域地貌参数提取软件。

图 2 流域地貌参数提取软件结构图

3.1 独立应用程序

在 .Net 2.0 平台上,采用轻型 SharpMap 开源空间数据渲染控件作为显示窗体,开发了一套独立性的流域地貌特征提取软件。主要有空间数据文件加载,地形和水文分析等功能。地形分析功能实现了基于 DEM 数据的坡度、坡向及地形阴影计算,水文分析功能实现了洼地处理、流向计算、水系提取、河道分级。

图 3 流域地貌参数提取应用程序示意图

该软件以经典的图形对话框的形式与用户进行交互,典型输入界面及计算结果如图 3 所示。地貌提取结果利用 GDAL 栅格生成工具直接转换为影像格式,如图 4 a 和 b 所示,可形象直观地查看计算结果,同时对于需求的地貌统计特征,系统计算完成后按文本文件的方式输出,如图 4 c 所示。

图 4 典型地貌提取计算成果

3.2 插件机制

插件是一种遵循一定规范的应用程序接口编写出来的应用程序,目前很多成熟软件均支持插件开发机制,ArcGIS 作为一套可伸缩全面的 GIS 平台,支持多种插件开发机制。在 10.1 版本中对传统 Python 脚本进行再封装构建 ArcPy 脚本包,能够以更加实用高效的方式通过 Python 执行地理数据分析、转换、管理等功能[14]。

通过 ArcPy 脚本语言编写 ArcGIS 地貌参数提取工具箱 HuDEM,如图 5 所示,同时,利用 ArcGIS平台中的图解建模工具,将 ArcGIS 中已有的相关工具与地貌参数提取工具耦合,即可实现流域地貌信息提取的一键计算。

图 5 ArcGIS 平台插件机制流域地貌提取工具箱

流域数字化及地貌特征提取工具界面友好,使用简便,实现了提取流域信息时的可视化计算。编制完成后,已经在河南、安徽等省多个中小流域得到实例验证,均取得良好的应用效果。同时利用地貌特征提取工具可为流域水文模型的应用提供技术支撑。

3.3 应用效果

近年来,中小河流因降雨引发的洪水灾害问题日益突出,且大多位于资料短缺的山丘区,洪水具有突发性强,汇流时间快,预见期短及分布广等特点。为做好中小河流洪水预警工作,可行的路径是通过判断流域间的相似性规律,将有资料地区预报方法移用于中小河流地区。采用本研究建立的地貌参数提取软件,对流域间的地貌特征进行计算,并统计地形指数频率分布特征进行相似流域判断。目前已完成河南省丹江流域军马河和江苏省洪泽湖周边维桥等小流域共 20 多个中小河流地区水文预报方案建设,为无资料地区洪水预警提供了重要参考。

4 结语

通过分析 GDAL 开源库中丰富灵活的数据操作接口,构建对地理空间数据进行直接读写、转换的技术方法,实现了流域地貌参数提取算法层和可视化应用层的无缝拼接。在 .Net 平台上利用轻型SharpMap 渲染控件,开发了轻型可视化独立应用程序;在 ArcGIS 平台上利用 ArcPy 脚本搭建了专业工具箱,并在无资料地区洪水预警中进行应用,完成了 20 多个中小河流地区水文预报方案建设。

流域地貌特征是水文学中贯穿始终的一条生命线,构建一套简便灵活的地貌特征提取技术方法,将水文学的理论方法应用于生产实践,对水文学发展具有重要意义。下一步将针对不同水文学模型的流域概化特点,丰富地貌特征计算内容,为水文学方法应用提供方便。并在此基础上,对模型变量与地貌特征进行分析统计,为无资料地区不同水文方法应用提供技术途径。

[1] 芮孝芳. 水文学原理[M]. 北京:中国水利水电出版社,2004: 18-43.

[2] 钱宁,张仁,周志德. 河床演变学[M]. 北京:科学出版社,1987: 1-30.

[3] BEVEN K J, KIRKBY M J. A physically based variable contributing area model of basin hydrology[J]. Hydrological Sciences Bulletin, 1970,24 (1): 43-69.

[4] 芮孝芳. 地貌瞬时单位线研究进展[J]. 水科学进展,1999,10 (3): 345-350.

[5] 何虹,夏达忠,甘郝新. 基于 MODIS 的水文特征指标提取与应用研究[J]. 水利信息化,2011 (4): 4-8.

[6] 刘金涛,宋慧卿,王爱花. 水文相似概念与理论发展探析[J]. 水科学进展,2014,25 (2): 288-296.

[7] 张朝忙,刘庆生,刘高焕,等. SRTM3 与 ASTER GDEM数据处理及应用进展[J]. 地理与地理信息科学,2012,28 (5):29-34.

[8] 钟永,杜文印. 河道数字化关键技术研究及应用[J]. 水利信息化,2015 (5): 17-21.

[9] 汤翠莲,范青松,刘莹. 一种保持地貌特征的数字高程模型生成方法[J]. 人民长江,2007,38 (10): 23-25.

[10] 李俊超,马倩,陶均. 基于 ArcGIS 的水文流域分析及应用[J]. 地理空间信息,2012,10 (6): 121-123.

[11] 李春红,任立良,达卫特,等. 数字水系构建方法浅析[J]. 水文,2002,22 (6): 1-4.

[12] FRANK W. GDAL-Geospatial Data Abstraction Library[EB/OL]. [2017-05-05]. http://www. gdal.org/.

[13] 李民录. GDAL 源码剖析与开发指南[M]. 北京:人民邮电出版社,2014: 221-297.

[14] 余咏生,彭艳丽,尹言军,等. 基于 Arcpy 的影像地图自动处理技术研究[J]. 测绘通报,2015 (3): 82-85.

Watershed geomorphic feature extraction based on open source library GDAL

HU Youbing1, WANG Xiuqing2, KAN Guangyuan3, SU Cui1, ZHAO Mengjie1
(1. Hydrologic Bureau (information center), the Huai River Resources Commission, Bengbu 233001, China;2. Management of Water Conservancy, Yi-Shu-Si, the Huai River Resources Commission, Xuzhou 221009, China;3. Research Center on Flood and Drought Disaster Reduction, China Institute of Water Resources and Hydropower Research, Beijing 100038, China)

GDAL is an open source library for raster and vector geospatial data under an X/MIT license. Against on frequent interaction between geographical raster and vector data in watershed geomorphology extraction of hydrology,the GDAL geospatial open source library is introduced. It analyzes on the model structure of GDAL and some common use interface like geospatial data open, read, write and data convert. Geomorphic parameter extraction algorithm seamlessly couples with the interface at the bottom. An independent application program is developed on .Net platform that use light SharpMap open source spatial data rendering control as a display window. A profession toolbox on ArcGIS platform with ArcPy scripting language packages for geomorphology parameter extraction is established, by combining it with other related tools through the graphical modeling tool. The one key geomorphology extraction model is built. It provides a practical technical path for geomorphology parameter extraction.

GDAL; open source library; watershed; geomorphic feature; application program; plugin

TP274;P931

A

1674-9405(2017)06-0041-05

10.19364/j.1674-9405.2017.06.008

2017-05-22

国家重点研发计划(2016YFC0402703);水利部公益性行业科研专项经费(201401027,201501007)

胡友兵(1986-),男,安徽池州人,博士,工程师,主要从事水文学及水利信息化方面工作。

猜你喜欢

水文学空间数据栅格
基于邻域栅格筛选的点云边缘点提取方法*
基于项目教学的《水文学》课程改革与实践
《水文学》课程改革的培养实践与探索
元数据驱动的多中心空间数据同步方法研究
泾河中游龙山文化晚期特大洪水水文学研究
不同剖面形状的栅格壁对栅格翼气动特性的影响
基于CVT排布的非周期栅格密度加权阵设计
基于文件系统的分布式海量空间数据高效存储与组织研究
栅格中间层数据在数字地形分析中的应用
客户端空间数据缓存策略