基于ArcEngine的三维地形可视化系统的研究与应用毕业论文
2020-04-09 15:29:19
摘 要
随着数字城市的不断建设发展,传统的纸质和电子形式的二维地形数据已无法满足日益复杂的各种需求,因此建立一个三维地形可视化系统是十分有意义的。
本文基于软件工程的思想,对三维地形的可视化系统进行了系统设计,具体包括框架设计、功能设计、数据库设计、界面设计,利用基于C#和ArcEngine开发的三维地形可视化系统,构建了该地区的三维地形,并实现了三维地形的生成、三维场景的构建和漫游以及三维地形分析等功能,并详细叙述了实现这些功能的具体方法。
三维地形的生成主要是利用研究区域的等高线数据生成不规则三角网(TIN),再由TIN数据生成数字高程模型(DEM),同时还实现了打开*.sxd文档、矢量数据(shp文件)、TIN数据、DEM数据以及影像的加载等功能。三维场景构建主要实现了垂直拉升、背景颜色、高度角和方位角的设置,三维场景的浏览主要是实现了一些基本的地图操作功能,如平移、漫游、放大、缩小等功能。三维地形分析主要实现了属性查询、坡度分析、坡向分析、山体阴影、通视分析、剖面分析、水淹分析、等值线生成以及高程统计等功能。
文章最后以大理市为研究区域,根据该地区的等高线数据和影像数据,利用可视化系统进行了系统的应用,并对构建的三维地形以及三维分析结果图进行研究评价,取得了较好的效果,为该区域的发展规划建设提供了辅助决策。
关键字:三维可视化、ArcEngine、TIN、DEM、地理信息系统
Abstract
With the continuous development of digital cities, traditional paper and electronic forms of two-dimensional terrain data can no longer meet the increasingly complex needs, so it is very meaningful to establish a three-dimensional terrain visualization system.
Based on the idea of software engineering, this paper systematically designs the visualization system of three-dimensional terrain, including frame design, function design, database design, and interface design. The three-dimensional terrain visualization system developed based on C# and ArcEngine is used to construct the three-dimensional region of the region. Terrain, and the realization of the three-dimensional terrain, three-dimensional scene construction and roaming, and three-dimensional terrain analysis and other functions, and detailed description of the specific methods to achieve these functions.
The generation of three-dimensional terrain is mainly to use the contour data of the study area to generate a triangulated irregular network (TIN), and then to generate a digital elevation model (DEM) from the TIN data. At the same time, the open *.sxd document, vector data (shp file) is also realized. ), TIN data, DEM data, and image loading functions. The three-dimensional scene construction mainly realizes the vertical pull-up, background color, height angle and azimuth setting. The browsing of the three-dimensional scene mainly realizes some basic map operation functions such as panning, roaming, zooming in, and zooming out. Three-dimensional terrain analysis mainly achieves the functions of attribute query, slope analysis, slope direction analysis, mountain shadow, visual analysis, profile analysis, flood analysis, isoline generation, and elevation statistics.
At the end of the article, Dali City was taken as the study area. Based on the contour data and image data of the region, the system was applied using the visualization system, and the constructed 3D terrain and 3D analysis result maps were studied and evaluated, and better results were obtained. The effect provides auxiliary decision-making for the development planning of the area.
Key Words:3D Visualization;ArcEngine;TIN;DEM;GIS
目 录
第1章 绪论 1
1.1 研究目的及意义 1
1.2 国内外研究现状 1
1.2.1 地形可视化技术 1
1.2.2 地形可视化技术的应用 2
1.2.3 地形可视化系统的研发 2
1.3 研究内容和技术方案 3
1.3.1 研究内容 3
1.3.2 技术方案 3
第2章 理论技术研究 5
2.1 开发方式的选择 5
2.2 ArcEngine组件式开发技术 5
第3章 系统设计 7
3.1 系统框架设计 7
3.2 系统功能设计 7
3.3 系统数据库设计 8
3.4 系统界面设计 8
第4章 功能实现 10
4.1 三维地形可视化 10
4.1.1 文件管理 10
4.1.2 三维地表生成 11
4.1.3 三维场景构建 12
4.1.4 三维地形浏览 13
4.1.5 影像叠加 14
4.1.6 数据渲染 14
4.2 三维分析功能 15
4.2.1 属性查询 15
4.2.2 坡度分析 16
4.2.3 坡向分析 17
4.2.4 山体阴影 17
4.2.5 通视分析 18
4.2.6 剖面分析 18
4.2.7 水淹分析 19
4.2.8 等值线生成 20
4.2.9 高程统计 20
第5章 系统应用 21
第6章 总结与展望 27
6.1 总结 27
6.2 不足 27
致 谢 28
参考文献 29
第1章 绪论
1.1 研究目的及意义
地球是人类赖以生存的家园,人类的日常活动都需要在地球表面进行。地形能够真实而准确的反映地表的各种物体的分布位置和状态,因此在各行各业都有着十分广泛的应用和重要的参考价值[1]。传统的地形显示一般是对数据进行抽象概括和投影变换,然后利用纸质媒介或者电子媒介来显示,但是都是二维的,而且显示的数据内容一般是固定的,与用户的交互效果很差,对于处理复杂多变的实际问题的能力是远远达不到要求的。随着城市的发展日益加快,各种工程项目日趋复杂,二维GIS数据的局限性也越来越明显。与二维数据相比,三维地形数据更能真实的反映研究区域真实复杂的地形地貌,表达更加直观生动,可以为各种工程项目提供根据真实且形象具体的参考信息。随着计算机技术以及科学技术的发展和进步,通过一定的方法手段,对地形进行三维模拟,创建三维地形模型,来实现三维地形的可视化已经成为可能。然而,从实际项目需求的角度来看,仅仅通过模拟来展示研究区域的地形是远远不够的,应该通过一定的三维分析手段,来挖掘更多隐藏的地理信息,来提供更有帮助的辅助决策方案。
三维地形可视化技术是利用一定的数学方法和空间分析算法,对研究区域相关的数据进行分析处理加工,获取其特征属性,从而对地表的地理实体进行模拟,通过一定的比例缩放,再现事物的真实形态和位置分布。相比于传统的二维地图数据,三维地形在进行投影变化的过程中,面积、长地和角度的变化成都要小的多,因此与真实的地形地貌更加接近。同时,三维地形可视化技术还可以对地形进行三维分析,以挖掘更深层次的信息,如坡度分析可以获取研究区域的坡度值,帮助工程实施队伍全方位了解地形地貌;坡向分析可以反映一个地区受到的太阳的光照强度,而这一因素可以决定该区域的气候特征,因此坡向分析是影像农业生产的一个重要因子。随着计算机技术、GIS相关理论和数学理论的不断发展,三维地形可视化技术一直在不断的进步,发展前景也越来越好。因此,对三维可视化技术的理论和应用进行研究具有一定的实际意义。
1.2 国内外研究现状
1.2.1 地形可视化技术
目前常用的三维地形可视化技术主要包括以下三种:
(1)利用曲面来生成三维地形。人们很早就在使用利用曲面生成三维地形的技术,它是通过获取一定数量的已知控制点,采用数学方法中的曲面拟合和空间插值的方法来生成光滑且连续的曲面,这是早期人们生成三维地形的常用方法[2]。这种方法有一定的缺陷性:首先其数学计算方式非常的复杂,在面对复杂的地形场景时,计算量大大增加;同时,要得到曲面的计算方程和几何参数也十分的困难,计算得到的曲面与实际的拟合度也很低。因此,该方法只适合小规模的三维地形生成。
(2)利用分形技术来生成三维地形。1973年,芒德勃罗(B.B.Mandelbrot)在法兰西学院讲课时,首次提出了分维和分形的设想[3]。分形几何采用递归算法,对于自然界中不规则的对象,采用一定的迭代方程式,不断的进行细分、碎片化,从而模拟其真实的形态。分形显示自然景物具有逼真的特点,因此目前地形景观生成的方法主要是采用分形技术来实现[4]。
(3)基于数字高程模型的地形生成技术。数字高程模型 (Digital Elevation Model,简称DEM)。DEM是表示区域上三维向量的有限序列, 是对地球表面地形地貌的一种离散的数字表达形式, 是数字地面模型(Digital Terrain Model,简称DTM)的一个分支[5]。DEM将研究区域内的一定数量的点的平面坐标(x,y)和其对应的高程z之间形成一定的数学关系,通过z值的变化来模拟实际的地形地貌。数字高程模型的数据一般有两种存储方式:规则网格和不规则三角网。
1.2.2 地形可视化技术的应用
目前,地形可视化技术的应用十分广泛。在城市建设方面,地形可视化技术可用于城市规划、地下管线的搭建与管理、复杂道桥模拟等;军事方面,地形可视化技术用于模拟真实的战场环境、提前进行战争演练、同时也可用于武器性能的评估等;环境监测方面,可用于空气环境污染状况监测、地下水资源监测等;地形分析方面,可用于矿山水文动态监测、表达复杂的三维地质构造形态等;在交通方面,可用于帮助人们实时了解交通状况,便于人们选择最优路径,改善交通问题,合理分配交通资源,提高生活质量;旅游方面,地形可视化技术可用于景点的模拟,并显示相关信息,使得游客可以提前进行景点的了解,帮助其作出合理的路线规划。
1.2.3 地形可视化系统的研发
目前,很多著名的GIS软件公司都开发出了功能完善的三维GIS软件和平台。
ESRI公司ArcGIS桌面系列产品中的ArcGlobe和ArcScene是众多三维GIS软件中比较优秀的两款。ArcGlobe使用的是一个特殊的投影坐标系,将要显示的数据投影到球体表面。由于是球体,与地球实际的形状更加接近,所以该投影方式可以十分逼真的展现地球的表面,因此ArcGlobe适合大型数据集和超大型数据集的显示,如市级、省级乃至国家级的数据展示。而ArcScene与ArcMap相同,都是将数据投影到平面坐标系中来显示,默认情况下会根据当前文档中的第一个图层的坐标系来进行投影,因此ArcScene主要用来研究特定的小范围区域或者小型的数据集[6]。
北京超图公司的SuperMap的iDesktop系列产品支持三维数据浏览、三维分析实时动态展示、三维场景构建等[7]。具体功能包括查询功能:可以实现“图查属性、属性查图”;量算功能:三维距离、面积、平面角度等量算功能;标会功能:对二维对象、三维对象进行动态标绘;二维三维一体化:实现二维三维一体化同步浏览、联动查询;空间分析功能:通视分析、填挖方分析、光照分析和地形路径分析等。
1.3 研究内容和技术方案
1.3.1 研究内容
三维地形可视化理论方法的研究主要对ArcEngine二次开发(主要是三维方面)、空间数据库、三维地形的数据获取、模型构建以及实践应用等方面进行深入研究。
基于ArcEngine进行三维地形可视化系统中各项功能的开发,根据研究目的进行系统设计,然后是对系统中的各项功能包括三维地表生成、三维场景浏览设置、三维地形分析等进行开发。
将所开发的三维地形可视化系统进行实际应用。选取一个研究区域,获取研究将要用到的相关原始数据,并对原始数据进行预处理,叠加遥感图像,生成三维地表,实现研究区域的三维地形可视化。然后对研究区域的三维地形进行分析,如属性查询、坡度分析、坡向分析、阴影分析、通视分析、坡面分析、水淹分析等,最后对得到的结果进行正确性分析,对系统的实用性进行评价。
1.3.2 技术方案
本系统将主要采用 Visual C#.NET 为开发环境与 Arc Engine 二次开发组件相结合的方法,同时采用DevExpress第三方控件,设计开发具有三维地形可视化功能和地形分析功能的三维地形可视化系统。
数据库将采用ESRI公司研发的地理空间数据库模型:Geodatabase,相关研究区域的矢量数据和栅格数据以文件夹的形式存储。
系统的主要功能,如三维地表生成、三维地形分析等功能主要是调用ArcEngine在三维分析模块(3D Analyst)封装好的接口中提供的各种方法和属性来实现。
系统开发完成之后,选取一块研究区域,获取该区域的等高线和影像数据,对其原始数据进行预处理,然后实现三维地形可视化,进行实际的应用,并对结果进行分析和评价。
图1.1 技术路线图
第2章 理论技术研究
2.1 开发方式的选择
当前GIS软件的开发主要有三种方式,一种是基于VC 和 OpenGL开发,完全从底层开发,不借助任何第三方组件和开源库[[8]。从数据存储与管理,分析处理到结果展示,完全由开发人员自己实现。这种方式的优点是开发的程序运行效率高,并且可是实现跨平台。但是其缺点也是显而易见的:费时费力,开发人员会有非常大的编码量,而且要求开发人员对开发环境非常的熟悉,同时还要精通相关GIS方面的理论知识。
二是在三维可视化系统上以插件形式加载数据显示和查询功能模块,同时利用系统开放的一些标准接口来定制自己的功能[9]。
第三种是借助别人已经封装好的接口,类等,直接进行调用,实现自己需要的功能,来设计自己的软件。对于比较成熟的二次开发产品来说,其中已经封装好了大量常用的接口和方法,满了一般的需求。开发人员只需要根据自己的特定需求,对相应的接口与方法进行调用,即可定制自己的GIS软件。这种开发方式大大减小开发人员的工作量,节省了项目的工期,大大提高了生产效率。
通过以上对比可以看到,采用二次开发的方式进行GIS的软件开发,不仅能够大大的提高开发效率,而且开发出来的软件稳定性高,可靠性好、运行效率高。因此,三维地形可视化系统采用基于ArcEngine进行二次的方式。
2.2 ArcEngine组件式开发技术
ArcGISEngine是ESRI公司开发的一套二次组件的开发包,主要的用户是GIS开发人员。
在ArcGISEngine产品出现之前,用户也可以基于ArcGIS系列产品开发针对特定需求的自定义软件,主要通过以下三种方式:
(1)ArcGIS产品中的Desktop系列软件自带VBA(Visual Basic for Application)环境,用户可以在该环境中编写处理特定问题的脚本语言来提高工作效率。
(2)采用支持COM(Component Object Model,组件对象模型)标准协议的语言如C#等,通过编写程序来实现ArcObjects所规定的标准接口,然后将其编译为DLL(Dynamic Link Library,动态链接库文件)文件,最后再嵌入到ArcGIS桌面系列产品当中来实现特定功能。
(3)安装ArcGIS桌面系列产品中包含的ArcObjects SDK(Software Development Kit)开发包,用户可以调用其封装好的控件如SceneControl、MapControl、TOCControl和PageLayoutControl快速构建自己的窗体应用程序,同时可以通过添加引用的方式使用ArcGIS编译好的DLL文件,其中包含了大量封装好的空间分析算法和专业的GIS操作,用户可以自己编写也可以调用ArcObjects中的接口和类来实现解决特定需要的功能
采用以上三种方式,普通GIS开发者虽然可以定制自己的GIS软件,但是前提是必须购买ESRI公司整套的ArcGIS桌面系列产品来进行软件的安装部署,成本十分高昂,同时这也给基于ArcObjects的二次开发应用的推广造成了很大的障碍。
以上是毕业论文大纲或资料介绍,该课题完整毕业论文、开题报告、任务书、程序设计、图纸设计等资料请添加微信获取,微信号:bysjorg。
相关图片展示: