第九届全国大学生GIS应用技能大赛——雷尼尔山国家公园地形图

本文主要是介绍第九届全国大学生GIS应用技能大赛——雷尼尔山国家公园地形图,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

1. 案例背景

2. 出图展示

3. 数据说明

4. 要求

4.1 使扫描图有正确的坐标值和坐标系(20 分)

4.2 绘制冰川区域、等高线、高程点和河流数据(30 分)

4.3 创建 DEM 数据并制作地形图(30 分)

4.4创建该地区的三维模型(20 分)

5. 步骤

5.1 数据预处理

5.1.1 定义投影

5.1.2 地理配准

5.2 矢量化地形要素

5.2.1 矢量化操作

5.2.2 换算高程单位

5.3 创建DEM与制作地形图

5.3.1 创建DEM

5.3.2 制作地形图

5.4 创建三维模型

5.4.1 设置DEM基本高度属性

5.4.2 提取栅格范围并拉伸显示

5.4.3 获取底部面要素

5.4.4 制作三维地形图表面效果

6. 整饰出图


1. 案例背景

雷尼尔山国家公园是一座以雷尼尔山为中心的公园,雷尼尔山是美国最高的火山,拥有除了阿拉斯加以外最大的单一冰河以及最大的冰河系统。
雷尼尔山国家公园

我们现在有一份雷尼尔山国家公园地形图的一部分扫描图。我们需要利用该扫描图制作三维模型用来分析和展示。
任务一:使扫描图有正确的坐标值和坐标系。
任务二:绘制冰川区域、等高线、高程点和河流数据。
 
任务三:创建 DEM 数据(20 米分辨率)并制作地形图。
 
任务四:创建该地区三维模型。

2. 出图展示

第九届全国大学生GIS应用技能大赛——雷尼尔山国家公园地形图
雷尼尔山国家公园三维模型

3. 数据说明

topo_map.jpg:雷尼尔山国家公园的扫描地形图。雷尼尔山国家公园位于美国华盛顿州,地理坐标系是 WGS1984,投影是 UTM 分度带投影。雷尼尔山国家公园的经度范围在西经 121 度-西经 122 度之间。扫描图上的高程值单位是英尺,1 英尺=0.3048 米。

4. 要求

4.1 使扫描图有正确的坐标值和坐标系(20 分)

①扫描图上的横线和竖线是方里格网,间隔是 2km,左上角的交叉点坐标值是(596000,5194000 )。

②请创建一份正确的扫描地形图数据,命名为“TopoMap”。

③请在您提交的步骤文档中,一定要附上 RMS 误差表。  

4.2 绘制冰川区域、等高线、高程点和河流数据(30 分)

请对地图进行数字化工作,绘制冰川区域、等高线、高程点和河流数据,具体要求如下:

①冰川区域和河流不需要额外添加属性字段;

②等高线只需要绘制计曲线(即加粗的等高线),请添加高程值属性字段;

③高程点需添加高程值属性字段。


4.3 创建 DEM 数据并制作地形图(30 分)

①创建 DEM 栅格数据,分辨率为 20 米,像元值代表高程(米)。

②使用创建好的矢量和栅格数据,重新制作地形图。
    a.要求和扫描图尽可能一致,请仔细观察地图。
    b.没有矢量化的露营点、首曲线、步道等矢量信息不需要体现。
    c.山峰、冰川和河流的名字需要在地图上显示出来。
    d.不需要排版出图,请您直接将地图截图放入提交的步骤文档当中。

4.4创建该地区的三维模型(20 分)

①请创建如下图所示的三维模型。请仔细观察,完全还原。

②示例图中我们看到的表面是遥感影像,本试题请使用扫描地形图代替。

三维模型示例图

5. 步骤

5.1 数据预处理

5.1.1 定义投影

首先加载显示原始数据,然后查看原始数据的空间参考信息,如下图所示。

加载原始数据

原始数据的空间参考信息

从原始数据的属性中可以得知该扫描图不包含空间参考信息,既没有基准面,也没有坐标信息。波段数为3,像素类型为无符号整型、位深为8位。为了使扫描图具有正确的坐标值和坐标系,接下来需要对其定义投影和地理配准。

已知雷尼尔山国家公园的地理坐标系是 WGS_1984坐标系,投影是 UTM 分度带投影。雷尼尔山国家公园的经度范围在西经121度~西经122度之间。因此,可推算出雷尼尔山国家公园位于WGS_1984_UTM_Zone_10N坐标系。

定义投影使用到的是【定义投影】工具,输入数据集或要素类设置为扫描图数据,坐标系设置为WGS_1984_UTM_Zone_10N坐标系,如下图所示。

定义投影参数设置

定义投影后的空间参考信息

5.1.2 地理配准

定义完投只是让扫描图数据拥有了正确的坐标系,还没有拥有正确的坐标值,现在需要对其进行地理配准来使其拥有正确的坐标值。

由于扫描图上的方里格网间隔已知为2km,左上角的交叉点坐标值已知为(596000,5194000),且当前数据框所使用显示单位为米,故可由此推算用于地理配准的其它控制点的坐标值。根据方里格网间隔值和左上角交叉点坐标值计算另外3个角的交叉点点的坐标值分别为:右上角交叉点坐标(606000,5194000)、左下角交叉点坐标(596000,5192000)、右下角交叉点坐标(606000,5192000),将这4个点都作为控制点。

地图框显示单位为米

使用【地理配准】工具依次添加这四个控制点坐标,方法是把添加控制点的光标精确放置于控制点所在的像元位置,然后右键鼠标就可以输入控制点坐标了,如下图所示。

添加第一个控制点

添加第二个控制点

添加第三个控制点

添加第四个控制点

四个控制点位置示意图

然后点击应用就可以进行地理配准了,最后还需要打开RMS误差表查看地理配准精度是否足够高,如果地理配准误差过大就需要重新进行地理配准。地理配准误差过大的原因可能是输入的坐标值与添加控制点时的光标所处的位置不对应,也可能是没有把图片放到足够大再去添加控制点导致位置偏差过大。最后,如果需要的话可以把控制点坐标导出做备份,如下图所示。

点击应用

RMS 误差表

导出控制点

地理配准控制点导出结果

根据题目要求需要创建一份正确的扫描地形图数据,命名为“TopoMap”,因此还需要将地理配准后的扫描地形图数据导出并重命名,如下图所示。

导出空间参考正确的扫描地形图

导出结果

5.2 矢量化地形要素

5.2.1 矢量化操作

该部分任务是绘制冰川区域、等高线、高程点和河流数据。结合题目要求,通过目视判读地形图可知冰川区域的几何类型为面,河流、等高线的几何类型为线,高程点的几何类型为点。通过目视判断可知等高线计曲线之间的等高距为400米,该信息可用于推算未被标注高程值的等高线对应的高程值。由于原始地形图中的高度单位为英尺,而地图文档中显示单位为米,因此需要进行高度单位的换算。(1英尺=0.3048米)

首先在数据库下新建要素数据集用来存储矢量化的冰川区域、等高线、高程点和河流数据,把要素数据集命名为DataSet,坐标系选择WGS_1984_UTM_Zone_10N坐标系,然后再在要素数据集下分别新建要素类,分别命名为冰川区域、等高线、高程点和河流,要素类类型分别为面、线、点、线,各要素类的坐标系也选择WGS_1984_UTM_Zone_10N坐标系,如下图所示。

新建要素数据集

新建要素数据集

新建要素类

创建冰川区域面要素

创建等高线线要素

创建高程点点要素

创建河流线要素

要素类创建结果

然后就可以开始矢量化冰川区域、等高线、高程点和河流数据了,如下图所示。(注意,在矢量化等高线的时候每一条等高线需要分开进行矢量化,也就是说在矢量化完一条等高线以后右键选择的是完成草图而不是完成部件,因为后续还需要在属性表中为每一条等高线添加高程数据,如果不同的等高线矢量化为同一条线数据,那么就没有办法为等高线添加高程数据。)

开始矢量化要素

高程点矢量化结果

河流矢量化结果

等高线矢量化结果

冰川区域矢量化结果

5.2.2 换算高程单位

按照题目要求需要为等高线和高程点数据添加高程数据,那么就需要分别为等高线和高程点数据各新建两个字段,分别为整型字段“高程(英尺)”和双精度字段“高程(米)”。然后通过仔细判读扫描地形图的内容来获取和推算每一个高程点和每一条等高线的高程数据,并依次把以英尺为单位的高程数据录入“高程(英尺)”字段中。接下来需要换算高程单位,使用的是【计算字段】功能,右键“高程(米)”字段选择【计算字段】,按照1英尺=0.3048米来计算出“高程(米)”字段的数值,如下图所示。

单位转换计算

高程点属性表

等高线属性表

5.3 创建DEM与制作地形图

5.3.1 创建DEM

首先,根据已有的等高线和高程点矢量数据创建不规则三角网TIN。其次,由TIN转出栅格,得到分辨率为20米的DEM栅格数据。创建不规则三角网TIN使用的是【创建TIN】工具,坐标系选择WGS_1984_UTM_Zone_10N坐标系,输入要素类分别输入高程点和等高线的矢量数据,高度字段都选择“高程(米)”字段,高程点的类型选择Mass_Points,等高线的类型选择Hard_Line,标签字段选择<None>,如下图所示。

创建TIN参数设置

创建TIN的结果

由不规则三角网TIN得到DEM栅格数据使用的是【TIN转栅格】工具,输入TIN设置为上一步得到的不规则三角网TIN数据,输出数据类型选择浮点型,方法选择线性,采样距离选择像元大小,采样值输入20,如下图所示。

TIN转栅格参数设置

TIN转栅格得到的DEM数据

5.3.2 制作地形图

首先,通过插入文本在原始栅格地形图上分别找到山峰的位置、冰川区域与河流的文本标注位置,以文本形式标注并设置其标注字体、放置属性,使其和原始地形图基本保持一致。然后,标注图层中的要素,为高程点和等高线设置标注字段为“高程(英尺)”。接下来调整文本标注的字体、颜色和放置的方向与位置。最后,修改DEM栅格数据的色带,如下图所示。

添加文本注记

5.4 创建三维模型

该操作使用的是ArcScene软件。

5.4.1 设置DEM基本高度属性

首先打开ArcScene软件,加载之前创建好的DEM数据,在DEM的图层属性窗口中选择“基本高度”选项卡,将“从表面获取的高程”设置为在自定义表面上浮动,并选择自定义表面为该DEM数据,点击应用,如下图所示。

添加DEM数据

设置DEM基本高度属性

显示结果

5.4.2 提取栅格范围并拉伸显示

首先,使用【栅格范围】工具将DEM数据作为输入栅格,输出要素类型选择LINE,然后在其图层属性窗口中,勾选“拉伸图层中的要素”,并设置拉伸值为1000,设置拉伸方式为“将其用作要素的拉伸数值”,如下图所示。

提取DEM数据三维范围线

DEM数据的三维范围线

设置范围线拉伸高度

范围线拉伸效果

5.4.3 获取底部面要素

上面得到的数据只有侧面而没有底面,现在需要设法获取底面的数据,如下图所示。

底面是缺失的

首先,使用【栅格范围】工具,将DEM数据作为输入栅格,输出要素类型选择POLYGON,得到和DEM数据的高度保持一致的面要素。然后,在其图层属性窗口中选择“基本高度”选项卡,并修改“从要素获取的高程”为常量值1000。最后调整侧面和底面的颜色属性,如下图所示。

提取DEM数据三维表面

DEM数据三维表面

设置DEM三维表面数据的基本高度属性

设置好的三维表面基本高度

5.4.4 制作三维地形图表面效果

将TopoMap.jpg地形图数据添加到ArcScene软件中,在其图层属性窗口中选择“基本高度”选项卡,设置自定义浮动表面为DEM数据,这样即可得到的雷尼尔山国家公园的三维模型,如下图所示。

添加扫描地形图数据

设置扫描地形图数据的基本高度属性

显示结果

雷尼尔山国家公园三维模型

6. 整饰出图

第九届全国大学生GIS应用技能大赛——雷尼尔山国家公园地形图

雷尼尔山国家公园三维模型

这篇关于第九届全国大学生GIS应用技能大赛——雷尼尔山国家公园地形图的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/364500

相关文章

C语言中位操作的实际应用举例

《C语言中位操作的实际应用举例》:本文主要介绍C语言中位操作的实际应用,总结了位操作的使用场景,并指出了需要注意的问题,如可读性、平台依赖性和溢出风险,文中通过代码介绍的非常详细,需要的朋友可以参... 目录1. 嵌入式系统与硬件寄存器操作2. 网络协议解析3. 图像处理与颜色编码4. 高效处理布尔标志集合

Java中的Lambda表达式及其应用小结

《Java中的Lambda表达式及其应用小结》Java中的Lambda表达式是一项极具创新性的特性,它使得Java代码更加简洁和高效,尤其是在集合操作和并行处理方面,:本文主要介绍Java中的La... 目录前言1. 什么是Lambda表达式?2. Lambda表达式的基本语法例子1:最简单的Lambda表

Python结合PyWebView库打造跨平台桌面应用

《Python结合PyWebView库打造跨平台桌面应用》随着Web技术的发展,将HTML/CSS/JavaScript与Python结合构建桌面应用成为可能,本文将系统讲解如何使用PyWebView... 目录一、技术原理与优势分析1.1 架构原理1.2 核心优势二、开发环境搭建2.1 安装依赖2.2 验

Java字符串操作技巧之语法、示例与应用场景分析

《Java字符串操作技巧之语法、示例与应用场景分析》在Java算法题和日常开发中,字符串处理是必备的核心技能,本文全面梳理Java中字符串的常用操作语法,结合代码示例、应用场景和避坑指南,可快速掌握字... 目录引言1. 基础操作1.1 创建字符串1.2 获取长度1.3 访问字符2. 字符串处理2.1 子字

SpringShell命令行之交互式Shell应用开发方式

《SpringShell命令行之交互式Shell应用开发方式》本文将深入探讨SpringShell的核心特性、实现方式及应用场景,帮助开发者掌握这一强大工具,具有很好的参考价值,希望对大家有所帮助,如... 目录引言一、Spring Shell概述二、创建命令类三、命令参数处理四、命令分组与帮助系统五、自定

SpringBoot应用中出现的Full GC问题的场景与解决

《SpringBoot应用中出现的FullGC问题的场景与解决》这篇文章主要为大家详细介绍了SpringBoot应用中出现的FullGC问题的场景与解决方法,文中的示例代码讲解详细,感兴趣的小伙伴可... 目录Full GC的原理与触发条件原理触发条件对Spring Boot应用的影响示例代码优化建议结论F

MySQL 分区与分库分表策略应用小结

《MySQL分区与分库分表策略应用小结》在大数据量、复杂查询和高并发的应用场景下,单一数据库往往难以满足性能和扩展性的要求,本文将详细介绍这两种策略的基本概念、实现方法及优缺点,并通过实际案例展示如... 目录mysql 分区与分库分表策略1. 数据库水平拆分的背景2. MySQL 分区策略2.1 分区概念

Spring Shell 命令行实现交互式Shell应用开发

《SpringShell命令行实现交互式Shell应用开发》本文主要介绍了SpringShell命令行实现交互式Shell应用开发,能够帮助开发者快速构建功能丰富的命令行应用程序,具有一定的参考价... 目录引言一、Spring Shell概述二、创建命令类三、命令参数处理四、命令分组与帮助系统五、自定义S

C语言函数递归实际应用举例详解

《C语言函数递归实际应用举例详解》程序调用自身的编程技巧称为递归,递归做为一种算法在程序设计语言中广泛应用,:本文主要介绍C语言函数递归实际应用举例的相关资料,文中通过代码介绍的非常详细,需要的朋... 目录前言一、递归的概念与思想二、递归的限制条件 三、递归的实际应用举例(一)求 n 的阶乘(二)顺序打印

Python中随机休眠技术原理与应用详解

《Python中随机休眠技术原理与应用详解》在编程中,让程序暂停执行特定时间是常见需求,当需要引入不确定性时,随机休眠就成为关键技巧,下面我们就来看看Python中随机休眠技术的具体实现与应用吧... 目录引言一、实现原理与基础方法1.1 核心函数解析1.2 基础实现模板1.3 整数版实现二、典型应用场景2