在三维场景中浏览数据更加直观和真实,对于同样的数据,三维可视化将使数据能够提供一些平面图上无法直接获得的信息。可以很直观地对区域地形起伏的形态及沟、谷、鞍部等基本地形形态进行判读,比二维图形如等高线图更容易为大部分读图者所接受。
ArcScene 是ArcGIS 三维分析模块的一部分,通过在3D Analyst 菜单条中点击按钮打开。它具有管理3D GIS 数据、进行3D 分析、编辑3D 要素、创建3D 图层以及把二维数据生成3D 要素等功能。
一、要素立体显示
有时需要将要素数据在三维场景中以透视图显示出来进行观察和分析。要素数据与表面数据的不同之处在于,要素数据描述的是离散的对象如点对象、线对象、面对象(多边形)等。它们通常具有一定的几何形状和属性。常见的点要素有通信塔台、泉眼等在地图上通常表现为点状符号;线状要素更为常见,如道路、水系、管线等等;多边形要素如湖泊、行政区及大比例尺地形图上的居民地等。
在三维场景中显示要素的先决条件是要素必须被以某种方式赋予高程值或其本身具有高程信息。因此,要素的三维显示主要有两种方式:1)具有三维几何的要素,在其属性中存储有高程值,可以直接使用其要素几何中或属性中的高程值,实现三维显示;2)对于缺少高程值的要素,可以通过叠加或突出两种方式在三维场景中显示。所谓叠加,即将要素所在区域的表面模型的值作为要素的高程值,如将所在区域栅格表面的值作为一幅遥感影像的高程值,可以对其做立体显示;突出则是指根据要素的某个属性或任意值突出要素,如要想在三维场景中显示建筑物要素,可以使用其高度或楼层数这样的属性来将其突出显示(图1)。
图1 建筑物二维图形按高度突出
另外,有时研究分析可能需要使用要素的非高程属性值作为三维Z值,在场景中显示要素。最常见的是在社会、经济领域的应用。如对某省行政范围内每个市县的经济总量值 作为Z 值进行三维立体显示(图2),可直观地观察和分析全省总体的情况。
图2某地区各个城镇人口数突出显示
由前所述,添加到三维场景中的数据并不一定会自动以三维方式显示。具有三维几何 的要素及TIN表面将自动以三维方式进行绘制时,会放置在一个平坦的三维平面上,若要以三维方式查看它们,需首先定义其Z 值。
ArcGIS 的三维分析功能在要素属性对话框中提供了要素图层在三维场景中的三种显示方式:1)使用属性设置图层的基准高程;2)在表面上叠加要素图层设置基准高程;3)突出要素。还可以结合多种显示方式,如先使用表面设置基准高程,然后在表面上再突出显示要素。在城市景观三维显示中,以表面设置基准高程,然后在表面上突出显示要素建筑物,可以更加自然真实显示城市景观。
1. 通过属性设置基准高程显示要素图层
在要素属性对话框(Properties)中,选择基准高程选项卡(Base Heights),设置以常量或表达式作为基准高程,填写或点击Calculate 按钮生成提供Z 值的字段或表达式即可,见图3。
之后,二维要素将以所设定属性或表达式的值为Z 值在三维场景中显示,图4是以等高线的高程属性作为基准高程显示的等高线三维透视图。
图3设置要素图层的基准高程
图4等高线要素的三维显示
2.使用表面设置基准高程显示要素图层
在设置基准高程时选择由表面获取要素图层的高程,点击Obtain heights for layers frome surface 选择所需表面即可(图5)。要素将会以表面所提供的高程在场景中显示。
图5 使用表面设置要素的基准高程
3. 要素的突出显示
在图层属性对话框的突出(Extrusion)标签中,选中对图层中的要素进行突出复选框(图6)。
图6 突出表达式生成器
二、设置场景属性
在实现要素或表面的三维可视化时,需要注意以下一些问题,包括:
1.添加到场景中的图层必须具有坐标系统才能正确显示;
2.为更好地表示地表高低起伏的形态,有时需要进行垂直拉伸,以免地形显示地过于陡峭或平坦;
3.为全面地了解区域地形地貌特征,可以进行动画旋转;
4.为增加场景真实感,需要设置合适的背景颜色;
5.根据不同分析需求,设置不同的场景光照条件,包括入射方位角,入射高度角及表面阴影对比度;
6.为提高运行效率,需要尽可能地减小场景范围,去除一些不需要的信息。以下就ArcScene中常用的场景设置内容做一详细介绍。
1. 场景坐标系统
如果场景中要显示的数据都处于相同的坐标系统之下,则直接将数据添加显示即可,不需考虑图层的叠加是否正确。如果各个图层存在不同的坐标系统,则须进行适当的转换以确保ArcScene能够正确显示它们。通常,当在一个空的场景中加入某图层时,该图层的坐标系统就决定了场景的坐标系统。在这之后可以根据应用需求再对场景的坐标系统进行更改。当随后加入其它图层到场景中时,ArcScene 将会自动将图层的坐标系统转换使与场景的坐标系统一致。若新加入图层没有坐标系统,将不能正确显示,此时可人为地确定数据的坐标系统。
如果数据本身没有任何坐标系统的信息,ArcScene 将会检查图层的坐标值,看其X 值 是否落在-180 度到180 度之间,Y值是否在-90 度到90 度之间。如果满足上述条件,则 ArcScene 将该数据认为是经纬度坐标数据。否则,将认为该数据为平面坐标数据。
(1) 查询当前场景坐标系统
打开场景的属性对话框(图7)。选择其中的坐标系统(Coordinate System)选项卡,将显示当前使用的坐标系统的详细信息。(图8)
图7 打开场景的属性对话框
(2)在图8 所示的场景属性对话框中,双击预定义(Predefined),选择预定义坐标系统,之后,所有加载到场景中的数据都将使用该坐标系统进行显示。
图8 将显示当前使用的坐标系统的详细信息
需要注意的是,改变场景的坐标系统,并不会改变图层源数据其坐标系统,只是以场景坐标系统对其进行显示。
2. 垂直拉伸
垂直拉伸一般用于强调表面的细微变化。在进行表面的三维显示时,如果表面的水平范围远大于其垂直变化,则表面的三维显示效果可能不太明显,此时,可以进行垂直拉伸以利于观察分析。另外,当表面垂直变化过于剧烈不便于分析应用时也可以进行垂直拉伸,不过垂直拉伸系数 应设置为分数。垂直拉伸对场景内所有图层都产生作用,如果要对单个图层做垂直拉伸,可以通过改变图层的高程转换系数来实现。
打开场景属性对话框,在General 选 项卡中选择垂直拉伸(Vertical Exag geration)系数(图9),或者点击 Calculate From Extent 按钮,系统将根据场景范围与高程变化范围自动计算垂直拉伸系数。图10 为原始表面与设置拉伸系数为2 时的显示效果的对比。
图9 垂直拉伸(Vertical Exag geration)系数
图10 原始表面与拉伸后的表面
3. 使用动画旋转
通过对场景进行旋转观察,可以获得表面总体概况。ArcScene 可以使场景围绕其中心旋转,旋转速度与察看角度可以人为调整,并可在旋转的同时进行缩放。
欲使用动化旋转,需要先对该功能进行激活。打开场景属性对话框后,在General 选
项卡中选中Enable Animated Rotation 选项即可激活动画旋转功能(图11)
激活之后,可以使用场景漫游工具(Navigate)将场景左右拖动之后,即可开始进行 旋转,旋转的速度决定于鼠标释放前的速度,在旋转的过程中也可以通过键盘的Page Up键和Page Down 键进行调节速度。点击场景即可停止其转动。
图11 激活动画旋转功能
图12 设置场景的光照
4. 设置场景背景颜色
同样地,打开场景属性对话框,在General 选项卡中,选择背景色(Background),同时还可以将所选颜色设置为场景默认背景色(选中Use as default in all new scenes 复选框)。
5. 改变场景的光照
通过设置光源的方位角、高度角及对比度可以调整场景的照明情况。在场景属性对话 框的Illumination 选项卡中,可以通过手动输入方位角(Azimuth)和高度角(Altitude)或 通过鼠标滑动改变这两个参数。另外,同时在此还可设置对比度。以上操作见图12 所示。
6. 改变场景范围
设置合适的场景范围,可以消除一些无关信息,增加绘图时的性能。默认情况下,场 景的范围为场景中所有图层的范围。可以根据应用需求改变场景的范围,使之与某个图层的范围一致,或通过X、Y 坐标的最大最小值来指定。
打开场景属性对话框后,选择Extent 选项卡,在此设置场景范围(图13)。如前所述可以两种方式进行设置:1)在Layers 下拉列表中选择某一图层(图a);2)点击自定义(Custom),输入最大最小X、Y 坐标,从而确定场景范围(图b)。
a b
图13 设置设置场景范围的两种方式
三、飞行动画
通过使用动画,可以使场景栩栩如生,能够通过视角、场景属性、地理位置以及时间 的变化来观察对象。例如,可以创建一个动画来观察运动着的卫星在它们的轨道上是如何 相互作用的,也可以用动画来模拟地球的自转及随之的光照变化。
1. 如何制作动画
在ArcScene 中提供了制作动画的工具条Animation。默认情况下,它没有添加到 ArcScene 的视图中,可以通过在工具栏上点击右键,在弹出的快捷菜单中选择Animation 项打开它。能够制作数据动画、视角动画和场景动画。动画是由一条或多条轨迹组成,轨 迹控制着对象属性的动态改变,例如,场景背景颜色的变化,图层视觉的变化或者观察点 的位置的变化。轨迹是由一系列帧组成,而每一帧是某一特定时间的对象属性的快照,是 动画中最基本的元素。在ArcScene 中可以通过以下几种方法生成三维动画:
(1) 通过创建一系列帧组成轨迹来形成动画:
在动画工具条中提供了创建帧的工具。可以通过改变场景的属性(例如场景的背景颜 色、光照角度等)、图层的属性(图层的透明度、比例尺等)以及观察点的位置来创建不 同的帧。然后用创建的一组帧组成轨迹演示动画。动画功能会自动平滑两帧之间的过程。 如,可以改变场景的背景颜色由白变黑,同时改变场景中光照的角度来制作一个场景由白天到黑夜的动画。
实现过程如下:
1) 设置动画第一帧的场景属性;
2) 点击Animation 下拉菜单,选择Create Keyframe 命令(图14);
图15 选择帧类型
图14 创建帧工具
3) 在Type 栏中选择帧类型为Scene,由不同场景构成动画的帧(图9.65);
4) 点击New 按钮,创建一个动画,此时弹出Animation Track 对话框(图9.66),键入动画名称;
5)点击Create抓取一个新的帧 ;
6) 再次改变场景属性,之后点击Create,抓取第二帧,根据需要抓取全部所需的帧。
7) 抓取完全部的帧之后,点击Close,关闭创建帧对话框;
(2)通过录制导航动作或飞行创建动画:
点击动画控制器上(Animation Controls,图17)的录制按钮开始录制,在场景中通过导航工具进行操作或通过飞行工具进行飞行,操作结束后点击录制按钮停止录制。这个工具类似录相器,将场景中的导航操作或飞行动作的过程录制下来形成动画。
图16 命名动画
图17 动画控制工具条
(3) 通过捕捉不同视角,并自动平滑视角间过程创建动画:
通过导航工具将场景调整到某一合适的视角,用动画工具条上的捕捉视角命令捕捉此视角,然后将场景调整到另一个合适的视角,再次用捕捉命令捕捉视角,依次可捕捉多个视角。动画功能会自动平滑两视角间的过程,形成一个完整的动画过程。
(4) 通过改变一组图层的可视化形成动画效果:
通过动画制作工具条中的创建组合动画命令,选择图层控制一组图层使他们按照顺序逐个显示通过效果调整实现动画效果。例如,可以用一组显示洪水淹没过程的图层生 成洪水演进的动画效果。
实现过程如下:
1) 在场景中添加相关图层,并按照动画设计的播放顺序从上到下依次调整图层顺序;。
2)点击 Animation 下拉菜单下的Create Group Animation 命令(图18),弹出创建图层动画对话框(图19);
图18Create Group Animation 命令
图19 创建图层动画对话框
3)在Base name for tracks 栏中键入动画名称;
4)设置起止时间;
5)根据需要条调整图层出现的方式(Transitions);
6)利用动画控制工具条对生成的动画进行预览。
(5)通过导入路径的方法生成动画:
选择场景中存在的矢量要素,用动画工具条中的沿路径飞行命令制作沿路径飞行的动画效果,此时可以设置飞行时的一些参数来控制飞行过程中的视觉效果。或用图层沿路径移动命令制作某一图层沿路径移动的动画轨迹。此种方法一般用来制作场景行走动画。
实现过程如下:
1) 选择场景中的矢量要素;
2) 点击Animation 下拉菜单下的Camera Flyby from path 命令(图20),弹出沿路径飞行动画对话框(图21);
图20 导入路径生成动画工具
图21 沿路径飞行动画对话框
3) 在Vertical offset 栏中键入视高(视点距离地面的垂直距离),建议视高选择3-10; 4) 在Path destination 选项栏中设置路径目的地;
有三种方式:沿指定路径同时移动摄像机和目标地物、沿指定路径围绕目标地物移动 摄像机、目标地物沿指定路径围绕摄像机移动。
5) 点击Import 输入路径。
6) 预览动画,方法同前。
以上是ArcGIS 中五种基本的动
2. 编辑和管理动画属性
对其进行组合搭配,达到最好的表达效果。
动画的帧或轨迹创建完成之后,可以用动画管理器编辑和管理组成动画的帧和轨迹。 另外,通过它也能改变帧的时间属性,并可预览动画播放效果。
(1) 启动动画管理器。单击Animation 下拉菜单中的Animation Manager 项(图22)。
图22打开动画管理器
(2) 打开的动画管理器如图23 所示。
图23动画管理器
3.保存动画
在ArcScene 中制作的动画可以存储在当前的场景文档中,即保存在SXD 文档中;也能存储成独立的ArcScene 动画文件(*.asa)用来与其他的场景文档共享;同时也能将动画导出成一个AVI 文件,被第三方的软件调用。
(1) 将动画存储为独立的ArcScene 动画文件。
步骤如下: 1) 在Animation 下拉菜单下选择Save Animation File 项(图24);
图24 存储动画文件
2) 在弹出的对话框中指定存储路径及文件名即可(图25)。
图25 存储动画文件对话框
(2)将动画导出为AVI 文件。
步骤如下:
3) 点击Animation 菜单下的Export to Video 项(图26);
图26 导出动画文件
4) 在弹出的导出对话框中指定保存路径及文件名即可(图27)。
图27 导出动画文件对话框
4. 使用Fly工具进行飞行
此外,ArcScene 工具条提供了飞行(Fly)工具 ,使用它可以实现对场景的飞行浏览。选择该工具后,鼠标将变为一只小鸟的形状,单击之后,鼠标会再次变形。此时,可以通过鼠标的移动控制飞行方向与速度。再次单击鼠标,则可从当前视点沿鼠标所指方向 向下方向飞行,途中,点击左键加快飞行速度,右键减速。