三维GIS与虚拟GIS的应用实践.docx
《三维GIS与虚拟GIS的应用实践.docx》由会员分享,可在线阅读,更多相关《三维GIS与虚拟GIS的应用实践.docx(46页珍藏版)》请在冰豆网上搜索。
三维GIS与虚拟GIS的应用实践
第4章三维GIS与虚拟GIS的应用实践
4.1三维GIS与计算机仿真和虚拟现实的关系
计算机仿真是指利用计算机建立、校验、运行实际系统的模型以得到模型的行为特征,从而达到分析、研究该实际系统之目的的一种技术。
这里的“系统”是广义的,它包括工程系统,如电气系统、计算机系统等,也包括非工程系统,如生态系统、经济系统等。
虚拟现实是一种由计算机生成的高技术模拟系统。
它构成一个以视觉感受为主,也包括听觉、触觉等的综合可感知的环境,使演练者通过专门的设备,在这个人工环境中实现观察、操作、触摸和检测等实践,使其具有身临其境的感觉。
虚拟现实与一般的计算机图形显示技术相比有着显著的不同,在计算机图形系统中,用户是外部观察者,只能通过屏幕来观察由计算机生成的环境,而虚拟现实则通过多通道、多传感器,让用户称为虚拟环境中的一个内部的参与者。
计算机仿真和三维GIS的应用基本属于宏观决策范畴。
目前虚拟现实的应用均属于微观范畴,多数学者认为虚拟现实不太适用于宏观决策。
计算机仿真、虚拟现实和三维GIS的共同点在于都需要模拟实际环境。
从操作方式看,三维GIS更接近于计算机仿真。
但VR技术带来了人家交互的新概念、新内容、新方式和新方法,使得人机交互的内容更加丰富、形象,方式更加自然、和谐。
VR技术虽然是多学科综合体,但其仍以计算机仿真为核心,可以被看成是一种类型的仿真系统,在仿真中虚拟现实可以被看作是三维仿真模型的高级用户界面。
而三维GIS主要体现在三维可视化的仿真技术应用上,可视化表达是三维GIS的核心内容。
计算机仿真中的环境仿真包括地形地貌、气象条件、大气、电磁干扰等环境的仿真。
其中,地形地貌的仿真又是三维GIS的核心内容。
仿真侧重于场景的模拟,而三维GIS处理除了表达地形环境外,还需要提供三维地形空间分析与操作等地理信息服务。
可以说,仿真是一种广义的概念,三维GIS可视化研究的内容属于计算机仿真的一个特定领域。
因此,地形仿真与三维可视化均是三维GIS和虚拟GIS的重要功能。
4.2基于ArcView的地形分析与三维可视化
4.2.1目的
DEM是对地形地貌的一种离散的数字表达,是对地面特性进行空间描述的一种数字方法、途径,它的应用可遍及整个地学领域。
通过对本次实习的学习,我们应:
加深对DEM建立过程的原理、方法的认识;熟练掌握ARCVIEW中建立DEM、TIN的技术方法。
结合实际、掌握应用DEM解决地学空间分析问题的能力。
4.2.2实验准备
软件准备:
Arcview
数据准备:
图层feapt-clip1,图层terlk-clip1,图层:
cal2
注意:
需要加载空间分析及3D分析模块
新建一个视图
4.2.3实验内容
1、DEM及TIN的建立
(1)由采样点数据建立表面
在视图目录表中添加并激活采样点图层feapt-clip1.shp。
执行菜单命令[Surface]>>[InterpolateGrid]。
在出现的OutputGridSpecification对话框中设定输出主题的范围、栅格单元大小及栅格行、列数。
接下来出现的InterpolateSurface对话框中,从Method列表中选择Spline(注意:
在菜单中只有IDW和Spline两种内插方法可以选择)。
在ZValueField列表中选择Elev(高程)字段,单击OK。
生成新的栅格主题Surfacefromfeapt-clip1.shp(如图1)。
将得到的结果图层与原始的DEM图层(Calc2)相减,得到结果图层(MapCalculation1)如图2所示:
由点、线数据生成TIN转为GRID
新建一个视图
添加并激活点要素图层feapt-clip1和线要素图层terlk-clip1。
(同时选中:
在点击的同时按住Shift),加载Grid数据:
Calc2
点击【Surface】菜单下的【CreateTINfromfeatures】;
在“CreateNewTIN”对话框中定义每个主题的数据使用方式;
在“CreateNewTIN”对话框中,指定每个主题中的一个字段作为高程源(HeightSource),设定表面特征输入(Inputas)方式,可以选定某一个值的字段作为属性信息(可以为None)。
(见图3)
确定生成文件的名称及其路径,生成新的图层tin-point。
(见图4)
点击【Theme】菜单下的【Converttogrid】,确定生成文件的名称及其路径,生成新的Grid图层。
(见图5)
网格大小选择为:
SaveAsCalc2
将新生成的Grid图层与原始的DEM图层(Calc2)相减,得到结果图层(MapCalculation1)如图6所示:
2、DEM的应用
地形指标的提取
坡度
具体的方法步骤如下:
添加Dem数据:
Calc2并激活它。
执行菜单命令[Surface]>>[DeriveSlope]
生成新的坡度主题slopeofCalc2。
双击左边的图例,在弹出的LegendEditor对话框中可重新调整坡度分级(如图7)。
坡向
具体的方法步骤如下:
在视图目录表中添加dem数据:
Calc2并激活它。
执行菜单命令:
[Surface]>>[DeriveAspect]。
显示并激活生成的坡向主题AspectofCalc2(如图8)。
平面曲率
激活坡向数据。
执行菜单命令:
[Surface]>>[DeriveSlope]。
生成平面曲率图层SlopeofAspectofCalc2。
(见图9)
剖面曲率
具体的方法步骤如下:
激活坡度数据。
执行菜单命令:
[Surface]>>[DeriveSlope]。
显示并激活生成的剖面曲率图层SlopeofSlopeofCalc2(如图10)。
提取等高线
具体的方法步骤如下:
在视图目录表中添加dem数据:
Calc2并激活它。
执行菜单命令:
[Surface]>>[CreateContours]。
在出现的ContoursParameters对话框中输入等高距Contourinterval和基础等高线的值BaseContours。
生成等高线主题ContoursofCalc2(如图11)。
地形表面的阴影图
具体的方法步骤如下:
在视图目录表中添加dem数据:
Calc2并激活它。
执行菜单命令:
[Surface]>>[ComputeHillshade]。
图12ComputeHillshade对话框
在ComputeHillshade对话框(如图12)中,输入计算Hillshade的参数值。
生成地表阴影主题HillshadeofCalc2(如图13)。
可视性分析
通视性分析
在Arcview中,进行通视性分析有两种具体操作
第一种操作:
例如:
分析某区域内S与P两点间的通视情况。
添加Dem或TIN主题作为通视性分析的地形表面并激活它(这里请添加DEM数据:
Calc2)。
从工具栏选择Lineofsight工具
。
在出现的LineofSight对话框中输入观察者Observer与目标物Target距地面的距离(如图14),单击OK。
图14Lineofsight对话框
按住鼠标左键,屏幕上将会出现十字光标,将光标从观察点S移向目标点P,然后释放光标。
在观察点到目标点之间将会出现一条视线,其中可视的部分为红色,不可视的部分为绿色。
并且,在Arcview窗口底部的状态栏显示了从观察点到目标点是否可视。
若不可视,在视线上将会用圆点表示第一个障碍物的位置,它的xy坐标将会在状态栏显示(如图15)。
第二种操作:
首先需要将C:
\ESRI\AV_GIS30\ARCVIEW\Samples\ext下的vistools.avx复制到C:
\ESRI\AV_GIS30\ARCVIEW\EXT32下。
执行菜单命令:
[File]>>[Extensions]。
在Extensions的对话框中选择VisibilityTools扩展模块。
加载DEM数据:
Calc2
在Arcview工具条中出现Lineofsight工具
。
选择此工具,在AvailableGrids对话框中选择栅格主题:
Calc2作为通视性分析的地形表面(如图16)。
在出现的SetVisibilityParameters对话框中输入观察者与目标物距地面的距离。
单击OK。
按住鼠标左键,将光标从观察点A移向目标点A′,然后释放光标。
在观察点到目标点之间将会出现一条视线,其中可视的部分为红色,不可视的部分为绿色(如图17)。
同时,Arcview
会自动绘出A—A′两点间的通视剖面图(如图18)。
图17
图18
可视区分析
具体操作如下:
在视图中,加载矢量数据Observer.shp和DEM数据:
Calc2
同时激活Observer和Calc2主题。
执行菜单命令:
[Surface]>>[CalculateViewshed]。
图19可视区分析
生成可视区栅格主题visibilityofObserver(如图19)。
4.3基于ArcGIS的地形分析与三维可视化
4.3.1实验目的
DEM是对地形地貌的一种离散的数字表达,是对地面特性进行空间描述的一种数字方法、途径,它的应用可遍及整个地学领域。
通过对本次实习的学习,我们应:
加深对TIN建立过程的原理、方法的认识;熟练掌握ArcGIS中建立DEM、TIN的技术方法。
掌握根据DEM或TIN计算坡度、坡向的方法。
结合实际,掌握应用DEM解决地学空间分析问题的能力。
4.3.2实验准备
软件准备:
ArcGISDesktop9.x---ArcMap(3D分析模块)
实验数据:
矢量图层:
高程点Elevpt_Clip.shp,高程Elev_Clip.shp,边界Boundary.shp,洱海Erhai.shp
4.3.3实验内容及步骤
1.TIN及DEM生成
1.1由高程点、等高线矢量数据生成TIN转为DEM
在ArcMap中新建一个地图文档
添加矢量数据:
Elevpt_Clip、Elev_Clip、Boundary、Erhai(同时选中:
在点击的同时按住Shift)
激活“3DAnalyst”扩展模块(执行菜单命令[工具]>>[扩展],在出现的对话框中选中3D分析模块),在工具栏空白区域点右键打开[3D分析]工具栏
执行工具栏[3D分析]中的菜单命令[3D分析]>>[创建/修改TIN]>>[从要素生成TIN];
在对话框[从要素生成TIN中]中定义每个图层的数据使用方式;
在[从要素生成TIN中]对话框中,在需要参与构造TIN的图层名称前的检查框上打上勾,指定每个图层中的一个字段作为高度源(HeightSource),设定三角网特征输入(Inputas)方式。
可以选定某一个值的字段作为属性信息(可以为None)。
在这里指定图层[Erhai]的参数:
[三角网作为:
]指定为[硬替换],其它图层参数使用默认值即可。
确定生成文件的名称及其路径,生成新的图层tin,在TOC(内容列表)中关闭除[TIN]和[Erhai]之外的其它图层的显示,设置TIN的图层(符号)得到如下的效果。
执行工具栏[3D分析]中的命令[转换]>>[TIN转换到栅格],指定相关参数:
属性:
[高程],像素大小:
[50],输出栅格的位置和名称:
[TinGrid]
确定后得到DEM数据:
TinGrid,其中,每个栅格单元表示50m×50m的区域
1.2TIN的显示及应用
在上一步操作的基础上进行,关闭除[TIN]之外的所有图层的显示,编辑图层[tin]的属性,在图层属性对话框中,点击[符号]选项页,将[边界类型]和[高程]前面检查框中的勾去掉;点击[添加]按钮
在[添加渲染]对话框中,将[所有边用同一符号进行渲染]和[所有点用同一符号进行渲染]这两项添加么TIN的显示列表中,
将TIN图层局部放大,认真理解TIN的存储模式及显示方式
TIN转换为坡度多边形
新建地图文档,加载图层[tin],参考上一步操作,将[面坡度用颜色梯度表进行渲染]和[面坡向用颜色梯度进行渲染]这两项添加到TIN的显示列表中,
请参照上图进行设置
在上面的对话框中,选中Slope,点击[分类]按钮,在下面的对框中,将[类]指定为5,然后在[间隔值]列表中输入间隔值:
[8,15,25,35,90],如下图所示
点击两次[确定]后关闭图层属性对话框,图层[tin]将根据指定的渲染方式进行渲染,效果如下图所示:
执行[3D分析]工具栏中的命令[转换]>>[TIN转换到矢量],按下图所示指定各参数:
得到多边形形图层:
[tinSlopef],它表示研究区内各类坡度的分布状况,结果是矢量格式,打开其属性表可以看到属性[SlopeCode]为数值[1,2,3,4,5]
查看矢量图层:
tinSlopef中要素属性表,其中属性[SlopeCode]1,2,3,4,5分别表示坡度范围(0-8)、(8-15)、(15-25)、(25-35)、(>35)
Eliminate合并破碎多边形(选做,需要8-10分钟)
新建地图文档,加载坡度多边形图层:
TinSlopef,打开TinSlopef的属性表,添加一个字段Area(类型为Double),通过[计算值]操作,计算各个多边形的面积:
选中高级,输入VBA代码到[Pre-LogicVBAScriptCode],输入变量[dblArea]到[Area=]下的输入框中。
以下的操作将会把面积小于10000平方米的多边形合并到周围与之有最长公共边的多边形中:
执行菜单命令[选择]>>[通过属性选择],查询”Area”<=10000(平方米)的图斑
被选中的多边形以高亮方式显示,这些小的图斑将会被合并到与之相邻且有最大公共边的多边形。
当然也可以选择合并到相邻的面积最大的多边形。
打开Arctoolbox,执行[消除]命令
指定输入图层:
tinSlopef,输出要素类:
TinSlopef_Elminate.shp
Eliminate(合并破碎多边形)操作原理
原始多边形
合并后多边形,选中的(面积<=10000m2)多边形被合并到与之相邻的面积最大的多边形中
将地图适当放大,比较原始图层:
tinSlopef与合并后的图层:
tinSlopef_Eliminate
TIN转换为坡向多边形
参照以上第(4)步,得到坡向多边形图层
得到的坡向多边形中属性AspectCode的数值(-1,1,2,3,4,5,6,7,8,9)分别表示当前图斑的坡向(平坦、北、东北、东、东南、南、西南、西、西北、北),其中1,9是相同的可以合并为1
2.DEM的应用
2.1坡度:
Slope
新建地图文档,加载[1.2(6)]中得到的DEM数据:
TINGrid
加载3D分析扩展模块,打开[3D分析]工具栏,执行菜单命令[3D分析]>>[表面分析]>>[坡度],参照下图所示,指定各参数
得到坡度栅格slopeofTinGrid:
坡度栅格中,栅格单元的值在[0-90]度间变化
右键点击图层[Slopeoftingrid],执行[属性命令],设置图层[符号],重新调整坡度分级(参考[1.2(4)]中的步骤进行分类)
以下计算剖面曲率:
执行菜单命令:
[3D分析]>>[表面分析]>>[坡度]。
按如下所示,指定各参数:
得到剖面曲率栅格:
[SlopeofSlopeoftingrid]
2.2坡向:
Aspect
在上一步的基础上进行,关闭[Slopeoftingrid]的显示。
执行菜单命令:
[3D分析]>>[表面分析]>>[坡向],按下图所示,指定各参数:
得到坡向栅格:
[Aspectoftingrid]
坡向栅格
以下计算平面曲率:
执行菜单命令:
[3D分析]>>[表面分析]>>[坡度],按下图所示指定各参数:
生成平面曲率栅格:
[SlopeofAspectoftingrid]:
2.3提取等高线
新建地图文档,加载DEM数据:
[tingrid]。
〔在执行以下操作时确保,3D分析扩展模块已激活〕
打开Arctoolbox,执行命令:
[3DAnalystTools]>>[RasterSurface]>>[等高线]
按上图所示指定各参数
生成等高线矢量图层:
Contour_tingrid:
2.4计算地形表面的阴影图
在上一步基础上进行,打开[3D分析]工具栏
执行菜单命令:
[3D分析]>>[表面分析]>>[山影],按下图所示指定各参数:
生成地表阴影栅格:
[HillshadeoftinGrid]:
DEM渲染:
如以下第2幅图所示,关闭除[tingrid]和[Hillshadeoftingrid]以外所有图层的显示,并将[tingrid]置于[Hillshadeoftirngrid]之上,右键点击[tingrid],在出现的右键菜单中执行[属性],在[图层属性]对话框中,参照下图所示设置[符号]选项页中颜色。
打开工具栏[效果],如下图所示,设置栅格图层[tingrid]的透明度为:
[40%]左右。
2.5可视性分析
A.通视性分析
在上一步的基础上进行,打开[3D分析]工具栏,从工具栏选择[通视线](Lineofsight)工具:
在出现的[通视线]LineofSight对话框中输入[观察者偏移量]和[目标偏移量],即距地面的距离,如图:
在地图显示区中从某点[A]沿不同方向绘制多条直线,可以得到观察点[A]到不同目标点的通视性:
绿色线段表示可视的部分,红色线段表示不可见部分
B.可视区分析:
移动发射基站信号覆盖分析
在上一步基础上进行,在内容列表区[TOC]中关闭除[tingrid]之外的所有图层,加载移动基站数据-矢量图层:
[移动基站.shp]
在[3D分析]工具栏中,执行菜单命令:
[3D分析]>>[表面分析]>>[视域],按下图所示指定各参数:
生成可视区栅格:
[ViewShedof移动基站]:
其中绿色表示现有发射基站信号已覆盖的区域,淡红色表示,无法接收到手机信号的区域
2.6地形剖面
在上一步基础上进行,打开[3D分析]工具栏,点击[插入线]工具,跟踪一条线段,这条线段可以从DEM:
[TINGRID]中得到高程值,
点击[创建剖面图]按钮,得到上一步所生成的3D线段的剖面图:
4.3.4实验报告要求
结合此次实验所学内容设计一个算法求解如下的实际问题。
将所做工作以幻灯片形式做以汇报,内容包括原理、过程、结果。
问题:
某县决定坡度大于25的耕地要退耕还林,试设计一个算法计算每个乡可能退耕还林面积。
请写出在ArcView求解此问题的步骤并用框图表示处理过程。
原始数据用矩形表示,数据处理用椭圆表示、处理结果用圆角矩形表示。
数据:
DEM数据ynDem;乡镇界线:
Town.shp;耕地数据:
landuse.shp;
3D可视分析
4.3.5实验目的
(1)对地理数据进行透视观察、三维浏览;
(2)熟悉ArcScene用户界面;
(3)了解制作飞行动画基本操作。
(4)如何将图像作为纹理贴在地形表面;
4.3.6实验准备
预备知识:
ArcGlobe是ArcGIS桌面系统中3D分析扩展模块中的一个部分,提供了全球地理信息的连续、多分辨率的交互式浏览功能。
像ArcMap一样,ArcGlobe也是使用GIS数据层,显示geodatabase和所有支持的GIS数据格式中的信息。
ArcGlobe具有地理信息的动态3D视图。
将所有的GIS数据源整合到一个通用的全球的框架中。
它能处理数据的多分辨率显示,使数据集能够在适当的比例尺和详细程度上可见。
与ArcMap类似,ArcScene是ArcGISDesktop中专门用于显示三维数据的独立程序。
ArcScene的功能:
浏览三维数据、创建表面、进行表面分析、三维飞行模拟。
ArcScene可以看成是ArcGlobe的一个子集。
它们都依赖于ArcGIS的3D分析模块。
软件准备:
ArcGIS3DAnalyst扩展模块;ArcScene:
三维分析及三维建模环境。
实验数据:
图层(Roads,bldg,ortho.lan,dtm_tim),三维场景文件――Animation.sxd
4.3.7实验内容及步骤
1.GIS数据三维显示
运行程序:
[开始菜单]>>[所有程序]>>[ArcGIS]>>[ArcScene],打开ArcScene
在ArcScene中执行命令:
[工具]>>[扩展],选中[3DAnalyst]扩展模块,在ArcScene中点击[添加数据]按钮
(如下图红色前头所指),将图层(Roads,bldg,ortho.lan,dtm_tim)添加到当前场景中。
关闭图层[dtm_tin]显示
在图层列表面板(TOC)中右键点击图层[ortho.lan],打开图层属性对话框,在[基表面高度]选项页中,将高度设置为:
[从表面为图层获取高度],并选择当前场景中的TIN数据图层:
[dtm_tin](如下图所示),在[Z单位转换]中设定高程的夸张系数为[2],高程将被夸大2倍。
点[确定]退出
以相同方法设置图层[Roads]、[bldg]的属性,夸张系数统一设置为[2]
对图层[bldg],还需要进一步设置[拉伸]选项和[符号]选项
通过设置拉伸表达式为[HEIGHT*2],建筑的高度将根据属性字段[HEIGHT]的数据确定
通过设置[符号]选项,为每不同的建筑赋不同的颜色
完成后的效果如下图所示:
可以点击[工具栏]上的查询按钮,查询每个建筑物的属性
通过操作,熟悉[工具]中各按钮的功能
其中[飞行]按钮
有两种状态,
表示停止飞行,
表示正在飞行状态,通过点击鼠标左键可以加快飞行速度,通过占击鼠标右键可以减慢飞行速度,直至停止,通过移动鼠标可以调整飞行方位、高度。
ArcScene中的三维场景可以导出为二维图片或三维VRML文件[.wrl],VRML文件可以用GLView进行浏览或查看,普通的互联网浏览器也可以通过安装插件的方式进行浏览,因此导出为VRML的三维场景可以发布到因特网上
2.三维飞行动画制作
录制飞行过程生成动画:
在ArcScene打开三维场景文档[Animation.sxd],在工具栏显示区点右键,打开[3D分析]、[动画]、[工具]这三个工具栏
点击[动画]工具栏中的[动画控制]按钮(下图
),打开[动画控制]工具栏,
点击[动画控制]中的[录制]按钮(下图
);
在[工具]中选择[飞行]工具
然后在地图显示区中沿