第十二章ArcView的三维分析模块三维分析模块是ArcView一个重要的扩展模块,ArcView的三维分析模块可以完成三维点、线、面文件的创建。利用该模块所生成三维形文件可完成连续表面模型的生成,还可以从透视三维的角度对空间数据进行可视化观察,直观地显示和查询数据,实现对表面模型的分析。三维形文件,是三维分析模块所支持的一种新的文件形式,它除了存储物体的x,y坐标外,还可以存储z值(z值可以是高程值,也可以是物体的其它属性值),从而可以更精确地描述地学信息。三维分析模块向ArcView接口中增加了一种新的观察数据的窗口一一三维场景,它可以提供一个新的交互观察器来显示空间数据,如:它可以以透视的原理来显示三维数据,可以对值进行伸缩显示,还可以对三维视图进行实时操纵和移动等。本章对该模块的主要功能与应用例证进行介绍。第一节三维透视观察三维场景(3DScene)和ArcView的视图(View)一样,是用来显示和查询地理数据的组件。“3DScene”和ArcView中的“View”、“Table”、“Chart”、“Layout”、“Script”等项目并列,打开ArcView后,位于ArcView的项目窗口左侧,公为“3DScene”的图标。以下句举例子来说明ArcView三维显示的基本方法。一、打开已建有三维场景(3DScene)的工程如果某个工程中已经包含有三维场景,3d-mianapr周口区则可以按照如下步骤打开三维场景。NewOpenPrint1、在开始启动ArcView时,可以通过选择3DScene3A口“Open an existingproject”,或从【File】菜单中选择【OpenProject】。TabieD2、在打开工程的对话框中,选择工程所在Charts的路径,双击工程文件(如3D-mian.APR)R文件。3、移动工程左侧的滚动条,找到3DSceneayu国的图标并激活(单击):Scripts4、在工程的右侧即可看到这个工程所包括A的三维场景模块(如图12-1),双击这个3D Scene三维场景,即可打开该模块。一-图12-1ArcView中三维场景模块1
1 第十二章 ArcView 的三维分析模块 三维分析模块是 ArcView 一个重要的扩展模块,ArcView 的三维分析模块可以完成三 维点、线、面文件的创建。利用该模块所生成三维形文件可完成连续表面模型的生成,还 可以从透视三维的角度对空间数据进行可视化观察,直观地显示和查询数据,实现对表面 模型的分析。三维形文件,是三维分析模块所支持的一种新的文件形式,它除了存储物体 的 x,y 坐标外,还可以存储 z 值(z 值可以是高程值,也可以是物体的其它属性值),从而 可以更精确地描述地学信息。三维分析模块向 ArcView 接口中增加了一种新的观察数据的 窗口——三维场景,它可以提供一个新的交互观察器来显示空间数据,如:它可以以透视 的原理来显示三维数据,可以对 z 值进行伸缩显示,还可以对三维视图进行实时操纵和移 动等。本章对该模块的主要功能与应用例证进行介绍。 第一节 三维透视观察 三维场景(3D Scene)和 ArcView 的视图(View)一样,是用来显示和查询地理数据 的组件。“3D Scene”和 ArcView 中的“View”、“Table”、“Chart”、“Layout”、“Script” 等 项目并列,打开 ArcView 后,位于 ArcView 的项目窗口左侧, 为“3D Scene”的 图标 。 以下句举例子来说明 ArcView 三维显示的基本方法。 一、打开已建有三维场景(3D Scene)的工程 如果某个工程中已经包含有三维场景, 则可以按照如下步骤打开三维场景。 1、在开始启动 ArcView 时,可以通过选择 “Open an existing project”,或从【File 】 菜单中选择【Open Project】。 2、在打开工程的对话框中,选择工程所在 的路径,双击工程文件(如 3D-mian.APR) 文件。 3、移动工程左侧的滚动条,找到 3D Scene 的图标并激活(单击); 4、在工程的右侧即可看到这个工程所包括 的三维场景模块(如图 12-1),双击这个 三维场景,即可打开该模块。 图 12-1ArcView 中三维场景模块
打开三维场景模块后,即可看到有两个窗口属于三维场景(如图12-2)。一个窗口是三维场景的内容列表,名字是3DScene3,它和视图的内容列表一样,列举了场景中的主题及其图例。第二个窗口是三维场景观察器,名字是3DScene3-Viewerl,用来显示三维场景中3D Scene3口30SSe3-ViowsYJianzhushpOm国网回972o80980Selets features dsplayed ina图12-2三维场景的显示的各主题主题。三维场景观察器根据需要,可以打开多个,也可把其拖到ArcView应用窗口的外边。在三维场景观察器内,有许多工具可以对三维模型进行操作,主要有::用于进行属性查询。同视图中的查询功能相同,必须先激活要查询的主题,再点击此工具,然后用鼠标单击任一想查询的地理特征(可以是一个建筑体,也可以是一个栅格的信息);:对地理特征进行选择。同样,也须先激活要操作的主题,再点击此工具,然后用鼠标单击任一想选择的地理特征,当选择的同时按着shift键,则可增加选择。再点击打开图表的按钮,则选择的要素会被高亮显示::选择图形要素::可进行三维景观的浏览如平移、缩放、旋转等。具体方法如下:旋转:按住鼠标左键,并拖动,可对三维景观进行旋转;缩放:按住鼠标右键,并拖动,可对三维景观进行放缩,其中,向右上方拖动,为缩小,向左下方拖动,为放大。平移:同时按住鼠标左右键,可对三维景观进行平移:如果是三键鼠标,按住中间的键则可:另外,也可以在按住CTRL键的同时,按住键盘上的上、下、左、右键之一,来进行上移、下移、左移、右移。2
2 打开三维场景模块后,即可看到有两个窗口属于三维场景(如图 12-2)。一个窗口是三 维场景的内容列表,名字是 3D Scene3,它和视图的内容列表一样,列举了场景中的主题及 其图例。第二个窗口是三维场景观察器,名字是 3D Scene3-Viewer1,用来显示三维场景中 的各主题主题。三维场景观察器根据需要,可以打开多个,也可把其拖到 ArcView 应用窗 口的外边。 在三维场景观察器内,有许多工具可以对三维模型进行操作,主要有: :用于进行属性查询。同视图中的查询功能相同,必须先激活要查询的主题,再点 击此工具,然后用鼠标单击任一想查询的地理特征(可以是一个建筑体,也可以是 一个栅格的信息); :对地理特征进行选择。同样,也须先激活要操作的主题,再点击此工具,然后用 鼠标单击任一想选择的地理特征,当选择的同时按着 shift 键,则可增加选择。再 点击打开图表 的按钮 ,则选择的要素会被高亮显示; :选择图形要素; :可进行三维景观的浏览如平移、缩放、旋转等。具体方法如下: 旋转:按住鼠标左键,并拖动,可对三维景观进行旋转; 缩放:按住鼠标右键,并拖动,可对三维景观进行放缩,其中,向右上方拖动,为 缩小,向左下方拖动,为放大。 平移:同时按住鼠标左右键,可对三维景观进行平移;如果是三键鼠标,按住中间 的键则可;另外,也可以在按住 CTRL 键的同时,按住键盘上的上、下、左、右键 之一,来进行上移、下移、左移、右移。 图 12-2 三维场景的显示
另外,还可以先按住CTRL键,再用鼠标左键点击某个感兴趣的目标,则这个目标就会被移到视图的中心。:所有主题的内容都显示在三维视图的范围内::把当前主题的内容显示在三维视图的范围内:米:视图以窗口为中心放大一倍:图:视图以窗口为中心缩小一倍;园点击此按钮,可把目前视图动态旋转播放,按右下方的stop键则可停止。圆:存盘按钮。此按钮可把三维视图当作一个图象文件存在硬盘上,用于制图或打印。除了利用三维场景观察器中的各种工具对三维场景进行查询、选择、观测外,还可以通过修改三维场景的属性来进一步改进观察效果。三维场景的属性可以通过【3DScene】下的【properties】命令来修改(如图12-3)。三维场景的属性主要包括三维场景的名称(Name)、创建者(Creator)、创建日期(Creationdate)、制图单位(Mapunit)、二维投影(2Dprojection)、垂直放缩因子(Verticalexaggerationfactor)、背景色(Backgroundcolor)、太阳方位角(Sunazimuth)、太阳高度角(Sunaltitude)。3D Scene FroportiesxOKName:3DScene3CreatorApplyCancelCreation date2001年08月13日11:15:20HelpunknownMap urats.NoneSelect..2D projection9.396912CalculateVertical exaggeration factor:Select.BackgroundcolotNortheast33.69Sun azinuthAatdegreesLow29.02Sun altitude:atdegreesComments口司图12-3修改三维场景的属性二、创建三维场景根据已有的数据情况,创建三维场景可以分为两种不同的方法。3
3 另外,还可以先按住 CTRL 键,再用鼠标左键点击某个感兴趣的目标,则这个目标 就会被移到视图的中心。 :所有主题的内容都显示在三维视图的范围内; :把当前主题的内容显示在三维视图的范围内; :视图以窗口为中心放大一倍; :视图以窗口为中心缩小一倍; :点击此按钮,可把目前视图动态旋转播放,按右下方的 stop 键则可停止。 :存盘按钮。此按钮可把三维视图当作一个图象文件存在硬盘上,用于制图或打印。 除了利用三维场景观察器中的各种工具对三维场景进行查询、选择、观测外,还可以 通过修改三维场景的属性来进一步改进观察效果。 三维场景的属性可以通过【3D Scene】下的【properties】命令来修改(如图 12-3)。 三维场景的属性主要包括三维场景的名称(Name)、创建者(Creator)、创建日期(Creation date)、制图单位(Map unit)、二维投影(2D projection)、垂直放缩因子(Vertical exaggeration factor)、背景色(Background color)、太阳方位角(Sun azimuth)、太阳 高度角(Sun altitude)。 二、创建三维场景 根据已有的数据情况,创建三维场景可以分为两种不同的方法。 图 12-3 修改三维场景的属性
方法一:如果组成三维场景的各个主题不是存在一个工程中的某个视图中,则可通过新建三维场景文档,再为三维场景添加数据的方式来建立三维场景。步骤如下:1、打开ArcVieW,点击【File】下的【Extensions】中的“3DAnalyst”复选框来添加三维分析模块。2、激活位于工程左侧的3DScenes(三维场景)图标;3、单击NEW打开一个新的三维场景:4、按下+(AddTheme图标按钮);5、将DataSourceType设置为FeatureDataSource,浏览至river.shp所在的目录下,选取river.shp文件,则把主题river添加到三维场景中;6、将DataSourceType设置为GridDataSource,浏览至calc18.grd所在的目录下,选取cal18.grd文件,则把DEM主题添加到三维场景中:7、打开并点击三维场景中的按钮,以显示这两个主题;3D Scene2Viewer!采网园回O边图12-4没有对主题进行三维属性定义之前的三维场景浏览器river.shp主题是一个3DShapeFile,文件中的每一条河流都包含了三维的特征,并且是以它们的Z值为支撑高度(通常以DEM或TIN为依据)。可以通过三维场景观察器中的各个工具按钮和定义3DScene的属性来修改三维场景观察器中的内容。但一般来说,这是不够的(如图12-4,river.shp主题是三维的,DEM主题则还是一个平面),还须对每一个主题定义其三维属性(3DProperties)。在定义某一个主题的三维属性之前,必须先激活这个主题,再点击【Theme】菜单下的【3DProperties】]。图12-5是3DProperties的界面,其中每一项功能的介绍如下:4
4 方法一: 如果组成三维场景的各个主题不是存在一个工程中的某个视图中,则可通过新建三维 场景文档,再为三维场景添加数据的方式来建立三维场景。步骤如下: 1、打开 ArcView,点击【File】 下的【Extensions】 中的“3D Analyst”复选框来添 加三维分析模块。 2、激活位于工程左侧的 3D Scenes(三维场景)图标; 3、单击 NEW 打开一个新的三维场景; 4、按下 (Add Theme 图标按钮); 5、将 Data Source Type 设置为 Feature Data Source,浏览至 river.shp 所在的目录下, 选取 river.shp 文件,则把主题 river 添加到三维场景中; 6、将 Data Source Type 设置为 Grid Data Source,浏览至 calc18.grd 所在的目录下,选 取 cal18.grd 文件,则把 DEM 主题添加到三维场景中; 7、打开并点击三维场景中的按钮 ,以显示这两个主题; river.shp 主题是一个 3D Shape File,文件中的每一条河流都包含了三维的特征,并且 是以它们的 Z 值为支撑高度(通常以 DEM 或 TIN 为依据)。 可以通过三维场景观察器中的各个工具按钮和定义 3D Scene 的属性来修改三维场景 观察器中的内容。但一般来说,这是不够的(如图 12-4,river.shp 主题是三维的,DEM 主 题则还是一个平面),还须对每一个主题定义其三维属性(3D Properties)。在定义某一个主 题的三维属性之前,必须先激活这个主题,再点击【Theme】菜单下的【3D Properties】。 图 12-5 是 3D Properties 的界面,其中每一项功能的介绍如下: 图 12-4 没有对主题进行三维属性定义之前的三维场景浏览器
xa Thene PropertiTheme:Map Calculation1Assign base heights bys口回CValue orexpression0日业Suffacec:windows/tempicalc18CExising3Dshepe1.0000ZfactorOffset heights口回0by value orexpression:0Extrudefeatures口国byvalueoexpression0口ExtrudebyShow shading for featuresAdvanced...HelpOKCancelApply图12-53Dproperties的界面给BaseHeights赋值(AssignBaseHeights):BaseHeights是指主题的基本高程值。它可以通过三种方式来赋值:D一个值或表达式。值可以是主题里的某个字段值(变量),也可以是一个常数。(1)但常数的结果是三维模型中的所有物体都具有同样的高程值。表达式则可以通过菜单右面的工具来定义。②Surface文件。如果这个主题是TIN文件或GRID文件,则要用此选项。③已存在的3DShapes文件(Existing3DShapes)。如果这个主题是已生成的3DShapes文件,而且你已决定用这个主题的某个字段来作为Z值来显示,则要用此选项。除了这三项外,还须给定Z因子(ZFactor)的值。BaseHeights最终的值是用前面赋的高程值乘以Z因子的值。Z因子等于1,则说明x,V的坐标单位与BaseHeights的坐标单位相同。如Z因子不等于1,则可以通过给定一个Z因子值,把两个单位转化为同一个单位。如,x,y的坐标单位是米,BaseHeights的坐标单位是英尺,则Z因子值可给为0.3048设定高程的偏移量(OffsetHeights):·偏移量是指主题的高程值以Base Heights为基础垂直向上或向下偏移的数值。常用在两个单独的主题,因其BaseHeights比较接近,则可通过给定一个偏移量,来达到比较好的显示效果。偏移量可以通过一个值或一个表达式来给定。偏移量大于零,则主题位于BaseHeights之上。偏移量小于零,则主题位于BaseHeights之下。高程的偏移量也可以通过两种方法来确定:一个值或一个表达式。表达式也可以通过菜单右面的工具来定义。5
5 ⚫ 给 Base Heights 赋值(Assign Base Heights): Base Heights 是指主题的基本高程值。它可以通过三种方式来赋值: ① 一个值或表达式。值可以是主题里的某个字段值(变量),也可以是一个常数。 但常数的结果是三维模型中的所有物体都具有同样的高程值。表达式则可以通过 菜单右面的工具 来定义。 ② Surface 文件。如果这个主题是 TIN 文件或 GRID 文件,则要用此选项。 ③ 已存在的 3D Shapes 文件(Existing 3D Shapes)。如果这个主题是已生成的 3D Shapes 文件,而且你已决定用这个主题的某个字段来作为 Z 值来显示,则要用此 选项。除了这三项外,还须给定 Z 因子(Z Factor) 的值。Base Heights 最终 的值是用前面赋的高程值乘以 Z 因子的值。Z 因子等于 1,则说明 x,y 的坐标 单位与 Base Heights 的坐标单位相同。如 Z 因子不等于 1,则可以通过给定一 个 Z 因子值,把两个单位转化为同一个单位。如,x,y 的坐标单位是米,Base Heights 的坐标单位是英尺,则 Z 因子值可给为 0.3048. ⚫ 设定高程的偏移量(Offset Heights): 偏移量是指主题的高程值以 Base Heights 为基础垂直向上或向下偏移的数值。常用在 两个单独的主题,因其 Base Heights 比较接近,则可通过给定一个偏移量,来达到比较好 的显示效果。偏移量可以通过一个值或一个表达式来给定。偏移量大于零,则主题位于 Base Heights 之上。偏移量小于零,则主题位于 Base Heights 之下。高程的偏移量也可以通过 两种方法来确定:一个值或一个表达式。表达式也可以通过菜单右面的工具 来定义。 图 12-5 3D properties 的界面