基于组件GIS的海岸线分形计算系统设计与实现
2015-02-18李崇巍宋宜全
周 江,李崇巍,宋宜全
(天津师范大学城市与环境科学学院,天津300387)
随着地理信息系统(GIS)技术的不断发展和成熟,组件式GIS已成为GIS软件技术的主流趋势之一,广泛应用于城市规划、资源利用、环境监测和林业管理等诸多方面[1-5].组件式GIS是将GIS模块划分为多个控件,与Visual Basic、Visual C++等程序开发语言无缝链接,能够快速提高软件开发效率和质量.SuperMap Objects是北京超图地理信息技术有限公司基于ActiveX/COM技术开发的大型、全组件式GIS开发平台,具有易于开发、独立分发运行、高度可伸缩性、内嵌大型空间数据库引擎以及面向对象与面向拓扑相结合等特点,成为众多系统开发人员的重要选择[6-9].
自1967年被美国科学家Mandelbrot提出后[10],分形理论在很多学科领域中得到应用[11-13].近年来,该理论被广泛应用于研究中国海岸线性质[14-18],其中部分学者应用GIS技术对海岸线实现分形图像模拟和分维计算.海岸线性质研究包括形态模拟、分维以及长度等方面,目前大多研究只侧重其中之一进行分析,尚显不够全面和深入.因此,开发基于组件GIS的分形计算系统可以高效、准确地实现对海岸线分形性质进行全面系统的分析.
本研究简要介绍了分形插值方法,并对海岸线分形计算系统集成方式、数据组织和数据库设计以及结构和功能设计进行探讨,选择Visual Basic作为开发环境,通过对SuperMap Objects组件进行二次开发实现海岸线分形计算系统,近而实现图形图像输入输出、空间查询和分析以及海岸线分形图像模拟、分维和长度计算等功能,并通过实例验证系统的可靠性和实用性.
1 海岸线分形性质研究方法
基于Mandelbrot早期提出的一种对统计性分形维数的估计公式[10],测量海岸线分维的常用计算方法为:
式(1)中:L为海岸线分形长度;r为测量标尺长度;D为维数;N为待定常数.该计算方法的不足之处在于计算效率低,依赖于度量选取,导致精度也难于保证[14].
Barnsley基于迭代函数理论提出分形插值函数,并给出求解分形插值函数以及该函数图像维数的算法[19-20].该方法可以精确计算仿射性分形的分形维数,不依赖度量尺度,计算精度相对较高,非常适用于海岸线图像拟合和分维计算.
不同比例尺地图上海岸线分形长度计算遵循以下关系[21]:
式(2)中:M1和M2为地图比例尺,LM1和LM2为相应分形的曲线长度,D为分形曲线的分维.
2 系统设计
2.1 软件平台选择
SuperMap Objects主要由 SuperMap.ocx、Super-Layout.ocx、SuperWorkspManage.ocx、SuperLegend.ocx、SuperGridView.ocx、SmxLockInfo.ocx、SuperTopo.ocx、Super3D.ocx和SmxAssistant.dll等多个组件库组成.SuperMap Objects具有强大的图形显示、浏览、编辑和可视化功能,提供地理数据的空间查询和分析方法,支持多种常用开发语言,支持多种数据格式和存储管理海量空间数据.系统以可视化开发工具VB为开发平台,将SuperMapObjects组件与分形计算模型结合,应用SuperMap Objects组件实现地图的空间数据管理和分析功能,利用VB程序语言完成分形计算功能.将SuperMap Objects组件、分形计算模型和其他专业组件嵌入到应用程序中实现系统内部真正的无缝高效集成,集成方式如图1所示.
图1 组件式系统集成Fig.1 System integration of component
2.2 数据组织和数据库设计
SuperMap Objects通过数据源和数据集存储空间数据,1个数据源通常包括多个不同类型的数据集,而数据集主要分为非空间数据集、矢量数据集和栅格数据集三大类.非空间数据集属于纯属性数据集,无几何对象;矢量数据集用于存储点、线、面、文本和三维点等数据;栅格数据集用于存储影像类和格网等数据.通常数据集可通过地图窗口显示为图层.系统采用SuperMap Objects的SDB数据存储方式,SDB属于双文件图库结构,可以存放多个数据集,即将海岸线控制点存储至点数据集,将模拟生成的分形曲线存储至线数据集.
2.3 结构和功能设计
基于国产超图GIS软件SuperMap Objects组件开发平台,与可视化软件开发环境Visual Basic集成开发分形计算系统,计算系统由4个主要功能模块组成,包括输入处理模块、地图处理模块、分形计算模块和输出打印模块,如图2所示.
图2 分形计算系统功能结构图Fig.2 Function structure image of the fractal calculation system
(1)输入处理模块主要包括数据导入子模块和图像转换子模块.数据导入子模块主要实现海岸线地图图像的输入:扫描已有影像图后,将其矢量化并存储;对于已有数据文件(如Mapinfo、AutoCad、ArcView和Arc/Info等文件)矢量图形,通过标准数据格式转入转出工具来实现导入.图像转换子模块支持各种通用投影方式与不同投影坐标系之间的转换,通过影像配准功能实现输入图像的坐标转换,使图形图像处于真实的地理位置,从而获得精确的海岸线控制点坐标.
(2)地图处理模块主要包括图形编辑子模块和图文查询子模块.图形编辑子模块主要实现地图可视化功能,具有图形生成、浏览、移动、旋转、放大和缩小,图层添加、删除、控制显示以及活动层设置等功能,可以完成将模拟生成的分形图与原海岸线地图进行叠加显示,实现模拟分形图与原图像的比较分析.图文查询子模块具有属性数据和空间数据的双向查询功能,通过鼠标选择地图中各种图形元素得到数据库中相应的属性数据,当给定条件后能够迅速查询到相应的图形数据,查询结果可以存储和输出.
(3)分形计算模块主要包括图像模拟子模块、分维计算子模块和长度归算子模块.图像模拟子模块主要通过调用分形插值函数计算生成最佳的模拟图像;分维计算子模块主要根据分形插值函数计算海岸线分维值;长度归算子模块根据式(2)将不同比例尺地图上海岸线的分形长度归算出其实际距离.
(4)输出打印模块主要包括图形输出子模块和表格输出子模块.图形输出子模块可以将模拟生成的图形图像分别以矢量和栅格标准格式转出,实现存储、输出和打印;而表格输出子模块可以将分维计算值和海岸线长度数据等以表格形式存储、输出和打印.
3 系统实现
基于以上分析,开发实现的分形计算系统主要界面如图3所示.
图3 分形计算系统界面Fig.3 Interface of the fractal calculation system
3.1 输入处理实现
SuperMap Objects提供数据转入转出工具数据泵对象(soDataPump)将数据文件转换形成统一格式的数据文件,形成SuperMap统一管理的数据系统,显示为地图的各图层文件.以将ArcView的shp文件转入到工作空间为例,部分关键代码如下:
3.2 图像配准实现
将海岸线影像图或矢量图形文件转入后,可应用由SuperMap Objects提供的配准功能实现其真实的地理坐标定位.栅格数据集的配准采用重采样(Rectify)方法,矢量数据集的配准采用坐标转换(Transform)方法.当栅格数据集objDtRaster、数据源objDS和控制点已确定时,可以使用重采样方法实现栅格数据集objDtRaster的线性配准,部分关键代码如下:
3.3 地图处理实现
将SuperMap Objects核心组件调入到VB工具箱后,可极为便利地开发实现地图处理功能,其中空间数据和属性数据的双向查询是地图处理的主要特色之一.SuperMap Objects的查询模式可分为图查属性和属性查图.
(1)图查属性:在地图窗口中选择空间对象后,激发SuperMap_GeometrySelected事件,使用soSelection方法,部分关键代码如下:
(2)属性查图:通过对记录集对象soRecordset进行操作,使用soSelection方法,基于SQL查询方式使满足查询条件的空间对象呈高亮显示,部分关键代码如下:
3.4 分形计算实现
分形计算首先针对地图海岸线选择控制点,生成数据集Datapoints后,对垂直因子di附初始值,使di绝对值之和等于1;然后在分形插值函数中选择不同的迭代次数,计算生成相应的随机插值点值和分维值D,结果可存储于数据库Point.mdb;最后模拟生成海岸线分形图像,并对其真实长度进行实际归算,分形计算的界面如图4所示.
图4 分形计算界面Fig.4 Interface of the fractal calculation
以1∶50000天津市地图为例输入处理后,基于随机算法和分形计算程序模块对天津市海岸线进行处理,可以快速生成模拟分形图像,模拟结果如图5所示.同时计算出天津市海岸线分维值为1.04,实际长度为179.65km,此结果与徐进勇等[18]得到的天津市2008年海岸线分维值1.06和长度178.81km的结果比较符合.
图5 天津市海岸线分形模拟图像Fig.5 Fractal simulation image of Tianjin coastline
4 结语
通过对分形插值函数进行简要介绍,详细探讨海岸线分形计算系统集成方式、数据组织和数据库设计以及结构和功能设计,选择Visual Basic为开发环境,结合SuperMap Objects组件开发实现分形计算系统,近而实现图形图像输入输出、空间查询分析以及海岸线分形图像模拟、分维和长度计算等功能.经过对天津市海岸线分形计算的实际验证证明,系统运算效率较高,计算简便,可以精确且快速地得到海岸线的模拟图像、分维值和长度,为海岸线分形性质的研究提供帮助.
[1] 白亚茹,陆鑫.基于ArcObjects组件的GIS应用软件开发[J].计算机工程,2009,35(14):66-68.
[2]况代智.基于MO的城市公交查询系统的设计与开发[J].测绘科学,2009,34(4):210-211.
[3] 张仁贡,程夏蕾.全国水能资源区划评价决策支持系统的设计与应用[J].水力发电学报,2013,32(5):70-76.
[4] 王爽,王晴,斯蔼,等.基于GIS的天津市突发性地质灾害预警预报系统设计与实现[J].地质调查与研究,2012,35(3):206-209.
[5] 王佳,易正晖,冯仲科.利用组件GIS和构件技术建立林业GIS系统[J].测绘科学,2011,36(5):141-143.
[6] 侯春华,李富平.基于SuperMap平台组件式开发尾矿资源管理系统[J].矿产保护与利用,2011(1):13-17.
[7] 王敏,张博雅,杨永国.基于SuperMap的校园导航系统的设计与实现[J].城市勘测,2010,5:65-68.
[8] 易正晖,王佳,冯仲科,等.基于SuperMap林业地理信息平台的设计与实现[J].测绘科学,2011,36(2):187-188.
[9] 朱小菲,刘涛,乔佩利.基于SuperMap Object平台的物流配送辅助系统设计与实现[J].地理空间信息,2011,9(4):13-15.
[10]MANDELBROT B B.How long is the coast of Britain?Statistical selfsimilarity and fractional dimension[J].Science,1967,156(3775):636-638.
[11]秦耀辰,刘凯.分形理论在地理学中的应用研究进展 [J].地理科学进展,2003,22(4):426-436.
[12]魏龙,刘其,张鹏高.基于分形理论的滑动摩擦表面接触力学模型[J].机械工程学报,2012,17:106-113.
[13]刘耀民,刘中良,黄玲艳.分形理论结合相变动力学的冷表面结霜过程模拟[J].物理学报,2010,59(11):7991-7997.
[14]陆娟,王建,石丽.基于GIS和分形理论的海岸线模拟方法研究[J].中国图像图形学报,2003,8(6):692-696.
[15]朱晓华,蔡运龙.中国海岸线分维及其性质研究[J].海洋科学进展,2004,22(2):156-162.
[16]陈正华,毛志华,陈建裕.利用4期卫星资料监测1986—2009年浙江省大陆海岸线变迁[J].遥感技术与应用,2011,26(1):68-73.
[17]刘勇,黄海军,严立文.不同空间尺度下石臼陀岛海岸线提取的遥感应用研究[J].遥感技术与应用,2013,28(1):144-149.
[18]徐进勇,张增祥,赵晓丽,等.2000—2012年中国北方海岸线时空变化分析[J].地理学报,2013,68(5):651-660.
[19]BARNSLEY M F.Fractal functions and interpolation[J].Constructive Approximation,1986,2(2):303-329.
[20]BARNSLEY M F.Fractals Everywhere[M].Orlando:Academic Press,1988.
[21]肯尼思·法尔科内.分形几何——数学基础及其应用[M].沈阳:东北工学院出版社,1991.