第二届全国大学生GIS应用技能大赛(下午)解题步骤
阅读原文时间:2021年04月24日阅读:1

第二届全国大学生GIS应用技能大赛内容及规程

一、 技能大赛内容

创建TINTIN转栅格,填挖,流向,流量,盆域分析,栅格河网矢量化、河流链接、分水岭

题目:空间分析技术的应用与GIS系统设计

某地区拟对X流域综合治理规划设计,需进行流域分区,并进行流域地形特征分析。现有该区域的地形数据,请按照要求进行数据处理,并制作专题图;同时梳理上述问题及其解决过程,规划出科学合理的GIS应用系统,进行系统功能及界面设计。

数据说明如下:

l  terlk_l为等高线数据,terlk_p为高程点数据,elev为高程字段;

l  outlet为流域出水口。

具体竞赛要求如下:

①     以outlet为出水口,提取出流域集水区范围。

②     提取出流域范围内汇水面积累积量在2.0km2以上的河道,并对河网进行分级。

③     以提取的河道网络为出水口,对流域进行子流域划分,对于面积<10hm2的微子流域,按照边长最大优先原则对其进行合并处理。

④     以表格形式统计流域中每一个子流域的地形高度特征(最小高度、最大高度、平均高度)。

⑤     制作专题图,专题图要求以地形特征为背景,体现出流域河流水系和子流域分区特征,并将专题图以jpg图片格式输出。

⑥     基于问题的解决方案,进行GIS应用系统的功能及界面设计。系统功能模块原则上不要求代码实现,但地图加载、放大、缩小、漫游、全图等功能要求实现。

⑦     提交文件包括:专题图文件(含数据文件、地图文档),GIS应用系统开发工程文件及技术文档。

⑧     技术文档应包括解题思路、解题过程、系统设计等内容。技术文档中,请尽可能以附图说明。附图请使用Word图片裁剪工具使附图内容仅为说明区域。

二、 技能大赛规程

1、参赛团队现场抽签,按抽签上的标号到指定机位就座。

2、所有决赛试题都已存放在每台参赛计算机,由组委会人员现场抽取题号作为决赛试题。

3、比赛时间3小时,中间休息时间由各团队自己掌握。

4、比赛过程中请各位选手注意以下事项(若违反则团队成绩记为零分):

1)  参赛选手必须服从工作人员安排,不得干扰比赛进行。

2)  所有选手不得离开指定的区域范围。

3)  同组选手之间可以小声讨论,不得大声喧哗,影响到其他参赛团队。

4)  不同组选手之间严禁任何交流,不得开启手机。

5)  决赛时所有资料已存放计算机,参赛时的过程文件和结果文件存放在指定目录,严禁参赛选手使用移动设备拷贝资料。

6)  参赛过程中,网络仅限于互相访问同组成员计算机,不得访问他人计算机。

7)  比赛文档中不能出现学校名称、带队老师等个人信息,仅写组号。

解题步骤:

摘要:基于ArcGIS软件应用水文分析模块,运用已有的地形数据对研究区河流进行不同流量的流域提取及流域分区,并通过流域出水口对流域进行不同面积的流域划分及合并处理。基于分区统计工具,对子流域的地形高度特征进行统计,后结合河流流域水系及分区特征,制作子流域分区专题图。在河流流域提取过程中,进行流域地形特征分析,以得到综合治理规划设计。

流程图

1提取流域集水区范围

1.1生成DEM数据

加载数据,点击【3D Analyst工具】/【数据管理】/【TIN】/【创建TIN】,输入要素为terlk_p和terlk_l,设置输出路径并命名为tin(图1.1);点击【3D Analyst工具】/【转换】/【由TIN转出】/【TIN转栅格】,输入要素为tin,设置输出路径并命名为dem(图1.2);

图1.1 创建TIN对话框

图1.2 TIN转栅格对话框

1.2提取流域集水区

(1)点击【Spatial Analyst工具】/【水文分析】/【填洼】工具,输入dem数据,设置输出路径并命名为fill_dem(图1.3),填洼结果如图1.4所示;

图1.3 填洼工具对话框

图1.4 填洼结果

(2)点击【Spatial Analyst工具】/【水文分析】/【流向】工具,输入填洼后的fill_dem数据,设置输出路径并命名为FlowDir(图1.5),流向结果如图1.6所示;

图1.5 流向工具对话框

图1.6 流向结果

(3)点击【Spatial Analyst工具】/【水文分析】/【流量】工具,输入流向分析后的FlowDir数据,设置输出路径并命名为FlowAcc(图1.7),流量结果如图1.8所示;

图1.7 流量工具对话框

图1.8 流量结果

(4)点击【Spatial Analyst工具】/【水文分析】/【分水岭】工具,输入流向分析后的FlowDir数据和出水口数据outlet,设置输出路径并命名为Watersh(图1.9),提取出的流域集水区结果如图1.10所示。

图1.9 分水岭工具对话框

图1.10 流域集水区范围结果

2提取汇水面积累积量在2.0km2以上的河道,并对河网进行分级

2.1提取河道

点击【Spatial Analyst工具】/【条件分析】/【条件函数】工具,输入流量分析后的FlowAcc数据,表达式为“VALUE>2000”,设置输出路径并命名为FlowAcc2000(图2.1),提取出的汇水面积累积量在2.0km2以上的河道结果如图2.2所示;

图2.1 提取汇流累积量>2.0km2河道

图2.2 汇流累积量>2.0km2河道提取结果

2.2河网分级

点击【Spatial Analyst工具】/【水文分析】/【河网分级】工具,输入提取河道后的FlowAcc2000数据及流向数据FlowDir,设置输出路径并命名为Stream0_Flow1(图2.3),河网分级方法选择【STRAHLER】,河网分级结果如图2.4所示。

图2.3 河网分级对话框

图2.4 河网分级结果

3子流域划分,按照边长最大优先原则对微子流域合并

3.1提取整体流域

点击【Spatial Analyst工具】/【水文分析】/【盆域分析】工具,输入流向数据FlowDir,设置输出路径并命名为Basin2(图3.1),提取出的流域为研究区整体流域如图3.2所示;

图3.1 盆域分析对话框

图3.2 研究区整体流域提取结果

3.2提取子流域

点击【Spatial Analyst工具】/【水文分析】/【分水岭】工具,输入流向数据FlowDir及要素倾泻点数据FlowAcc2000,设置输出路径并命名为提取子流域(图3.3),提取出的子流域结果如图3.4所示;

图3.3 分水岭工具对话框

图3.4 子流域提取结果

3.3提取微子流域

(1)打开子流域提取结果属性表,选择“Area”字段,在【字段计算器】中输入“[Count]*75*75”(单个像元大小为75*75m),即可计算子流域的面积(图3.5),其面积结果如图3.6所示;

图3.5 计算子流域面积

图3.6 子流域面积计算结果

(2)点击【Spatial Analyst工具】/【条件分析】/【条件函数】工具,输入子流域提取数据,输入表达式为“Value<100000”,设置输出路径并命名为微子流域_10hm(图3.7),提取出面积<10hm2的微子流域结果如图3.8所示;

图3.7 提取微子流域

图3.8 微子流域提取结果

3.4对微子流域进行合并处理

(1)对微子流域进行合并处理需要先对栅格数据进行投影,再将栅格河网数据转为矢量数据才能计算流域边长,点击【数据管理工具】/【投影和变换】/【栅格】/【投影栅格】工具,输入微子流域数据,将坐标系投影为Xian_1980_3_Degree_GK_CM_105E,并勾选【简化面】,设置输出路径并命名为pro_微子流域10hm(图3.9);点击【转换工具】/【由栅格转出】/【栅格转面】工具,设置输出路径并命名为vec_微子流域(图3.10);

图3.9 投影栅格对话框

图3.10 栅格转面对话框

(2)打开微子流域属性表,【按属性选择】点击【Shape_Length】,选中边长最大的河流要素(图3.11),在编辑器开始编辑的状态下,对要素进行【合并】处理(图3.12),合并后的微子流域属性表结果及图像结果如图3.13所示。

图3.11 选择边长最大要素

图3.12 合并处理

图3.13 微子流域合并结果

4分区统计地形高度特征

4.1分区统计

点击【Spatial Analyst工具】/【区域分析】/【以表格显示分区统计】工具,输入要素区域数据为提取子流域数据,输入赋值栅格为dem数据,统计类型为MIN、MAX、MEAN,设置输出路径并命名为子流域地形高度特征(图4.1),子流域地形的最小高度、最大高度、平均高度如图4.2所示。

图4.1 以表格显示分区统计对话框

图4.2 子流域地形高度特征统计结果

5制作专题图

5.1栅格河网矢量化

(1)制作河流专题图首先将栅格河网矢量化,以得到更好的展示效果,点击【Spatial Analyst工具】/【地图代数】/【栅格计算器】工具,输入表达式“FlowAcc”>2000,设置输出路径并命名为FlowAcc_2000(图5.1);

图5.1 提取汇流累积量>2km2河网

(2)将汇流累积量>2km2的河网进行重分类,只保留Value值为1的栅格数据,设置输出路径并命名为Reclass_FlowAcc2000(图5.2);

图5.2 栅格河网重分类

(3)点击【Spatial Analyst工具】/【水文分析】/【栅格河网矢量化】工具,输入Reclass_FlowAcc2000河流栅格数据及FlowDir流向栅格数据,设置输出路径并命名为StreamT_Reclass1(图5.3);

图5.3 栅格河网矢量化

5.2制作专题图

制作X流域分区专题图如图5.4所示。

图5.4 某地区子流域分区专题图

6 开发部分

1.1 代码实现地图加载、放大、缩小、漫游、全图

(1)   打开vs2010,新建一个窗体应用程序,名为MapViewer。

(2)   添加控件及空间布局设置

a. 在工具箱中分别双击ArcGIS Windows Forms下的 “ToolBarControl”,“TOCControl” ,“MapControl”, LicenseControl控件以及菜单和工具栏下的MenuStrip控件,将其加载到窗体上,并设置其【Dock】属性调整其在窗体中的布局。

b. 右键“ToolBarControl”控件和“TOCControl”控件,设置其属性【Buddy Control】为“axMapControl1”。

(3)绑定ArcGIS产品:双击解决资源管理器中的Program.cs,在打开的窗口中的Main函数中输入以下代码,并引入命名空间:using ESRI.ArcGIS; 绑定ArcGIS产品(图6-1)。

图6-1 绑定ArcGIS产品

       (4)在工具箱中分别双击MenuStrip,输入“文件”作为菜单的名称,在其下拉框中点击,输入“打开”菜单项,在其同级菜单中输入“放大”菜单项、“缩小”菜单项、“漫游”菜单项及“全图”等菜单项(图6-2)。选中相应菜单项,在属性框中点击“Events”按钮,在事件列表中双击“Click”事件或者直接双击该菜单项,并在方法中输入处理代码(表6-1)。

图6-2  MenuStrip添加菜单项

表6-1 地图加载、放大、缩小、漫游、全图代码

       (5)点击运行,测试各功能,结果如图6-2所示。

图6-2

1.2 代码实现地图保存、另存为、添加数据、导出地图

(1)在MenuStrip的下拉框中添加“保存”菜单项、“另存为”菜单项、“添加数据”菜单项及“导出地图”等菜单项。选中相应菜单项,在属性框中点击“Events”按钮,在事件列表中双击“Click”事件或者直接双击该菜单项,并在方法中输入处理代码(表6-2)。

表6-2  地图保存、另存为、添加数据、导出地图代码

       (2)点击运行,测试各功能,结果如图6-3所示。

图6-3 保存窗口

图6-4 添加数据窗口

图6-5 导出地图窗口

1.3 实现右键菜单

双击工具箱中的双 击ContextMenuStrip 控件,在窗体上添加了一个上下文菜单。添加 axTOCControl1 的 OnMouseDown事件。选中窗体上的 axTOCControl1,双击添加 OnMouseDown 事件并输入相应代码(图6-6).

图6-6  实现右键菜单代码

1.4 打开属性表

(1)在上下文菜单的下拉框中添加菜单项:打开属性表。右键工程文件,添加一个新窗体,命名为:AttributeTable。在设计器中添加一个DataGridView空间,设置其【Dock】属性为:fill。在其Load事件中添加代码(图6-7)。添加类型转换代码(图6-8)。并在form1中双击打开属性表,添加代码(6-9)。

图6-7  实现属性表

图6-8  类型转换

图6-9  实例化AttributeTable类,并调用该类的方法

       (2)运行工程文件,结果如图6-10所示。

图6-10  打开属性表

1.5 符号化

(1)在上下文菜单的下拉框中添加菜单项:符号化。在属性框中点击“Events”按钮,在事件列表中双击“Click”事件或者直接双击该菜单项,并在方法中输入处理代码(图6-11,图6-12)。

图6-11符号化代码1

图6-12  符号化代码2

       (2)运行工程文件,结果如图6-13,6-14所示。

图6-13符号化结果

图6-14  符号化结果

1.6 标注要素

(1)在上下文菜单的下拉框中添加菜单项:标注要素。在form1.cs中写如方法EnableFeatureLayerLabel,代如图6-15,6-16所示。 在属性框中点击“Events”按钮,在事件列表中双击“Click”事件或者直接双击该菜单项,并在方法中输入处理代码(图6-17)。

图6-15  方法EnableFeatureLayerLabel代码1

图6-16 方法EnableFeatureLayerLabel代码2

图6-17  标注要素Click事件代码

(3)   点击运行,结果如图6-18所示。

图6-18  标注要素运行结果

1.7 缓冲区

新建一各按钮,输入代码(图6-19):

图6-19 缓冲区代码

缓冲结果如图6-20所示,其中绿色为原数据,紫色为缓冲数据。

图6-20 缓冲区结果

手机扫一扫

移动阅读更方便

阿里云服务器
腾讯云服务器
七牛云服务器

你可能感兴趣的文章