课程实验教学指导书6.docx
《课程实验教学指导书6.docx》由会员分享,可在线阅读,更多相关《课程实验教学指导书6.docx(19页珍藏版)》请在冰豆网上搜索。
![课程实验教学指导书6.docx](https://file1.bdocx.com/fileroot1/2023-5/15/4316e45b-c4be-44be-82a1-fc845cb85a33/4316e45b-c4be-44be-82a1-fc845cb85a331.gif)
课程实验教学指导书6
ArcGIS应用与实践指导书
官冬杰张学儒
重庆交通大学河海学院
资源与环境科学系、仿真实验室
实验六空间数据组织与处理
1练习:
数据更新变换
1.背景:
由于空间数据(包括地形图与DEM)都是分幅存储的,造成某一特定研究区域跨越了不同的图幅。
而当我们要获取有特定边界的研究区域时,就要对数据进行裁切、拼接、提取等操作,有时还要进行相应的投影变换。
2.目的:
获取具有投影坐标系统的特定边界的DEM数据。
3.要求:
通过两幅给定的DEM数据,提取出白水县县界范围内的DEM数据,并将数据转换成高斯克吕格投影系统。
通过练习,掌握数据提取、裁切、拼接及投影变换的
方法。
4.数据:
1幅1:
25万矢量数据,为地理坐标系统,其中大地基准是
D_North_American_1927,参考椭球体是Clarke1866,这是Arcgis为Shapefile类型的数据假设的地理坐标系统(实验数据在Chapter4/Exercise1中)。
2幅1:
25万DEM数据,为地理坐标系统,大地基准是D_Krasovsky_1940,参考椭球体是Krasovsky_1940。
5.操作步骤:
(1)白水县的行政范围的提取
1)打开1:
25万矢量数据(图2)。
图2原始矢量数据
2)利用AnalysisTools工具箱,Extract工具集中的Select工具,依据“name”字段,即SQL表达式设置为“"NAME"='白水县'”,提取出白水县(图3)。
A.展开AnalysisTools工具箱,打开Extract工具集,双击Select,打开Select对话框。
B.在InputFeatures文本框中选择输入“E:
/ChP4/Ex1/Vector”矢量数据。
C.在OutputFeatureClass文本框键入输出的数据的路径与名称“E:
/ChP4/Ex1/vector_Select”。
D.单击Expression可选文本框旁边的
按钮,打开QueryBuilder对话框,设置
SQL表达式“"NAME"='白水县'”。
E.单击OK按钮,执行Select操作。
图3白水县矢量数据
(2)DEM数据的拼接
1)打开白水县横跨的两幅DEM数据,DEM1和DEM2(图4)。
图4原始DEM数据
2)利用DataManagementTools工具箱,Raster工具集中的MosaicToNewRaster工具进行数据拼接,得到拼接结果DEM(图5)。
其中,Cellsize是默认状态,则结果数据与原始数据的栅格大小一致。
因为原始数据类型为16_BIT_UNSIGNED,所以在Pixeltype窗口选择该类型。
A.展开DataManagementTools工具箱,打开Raster工具集,双击MosaicToNewRaster,打开MosaicToNewRaster对话框。
B.在InputRasters文本框中选择输入DEM1和DEM2。
C.在OutputLocation文本框键入输出数据存储的位置“E:
/ChP4/Ex1”。
D.在Rasterdatasetnamewithextension文本框设置输出数据的名称“DEM”。
E.在Pixeltype可选窗口,设置输出数据栅格的类型为16_bit_UNSIGNED。
F.在MosaicMothod可选窗口,确定镶嵌重叠部分的方法,本次拼接方法选择MEAN,表示重叠部分的结果数据取重叠栅格的平均值。
G.单击OK按钮,执行MosaicToNewRaster操作。
图5DEM拼接结果
(3)白水县DEM的裁切
利用SpatialAnalystTools工具箱,Extraction工具集中的ExtractbyMask工具,以白水县矢量数据裁切拼接的DEM数据,获取白水县DEM(图6)。
从图6下面状态栏的坐标可以看出,白水县的DEM是以地理坐标系统显示的,为了便于量算以及与其它数据叠合分析,应该把地理坐标系统转换为投影坐标系统。
1)展开SpatialAnalystTools工具箱,打开Extraction工具集,双击ExtractbyMask,打开ExtractbyMask对话框。
2)在Inputraster文本框中选择输入需要裁切的栅格数据“E:
/ChP4/Ex1/DEM”。
3)在Inputrasterorfeaturemaskdata文本框定义进行裁切数据“E:
/ChP4/Ex1/vector_Select”。
4)在Outputraster文本框键入输出的数据的路径与名称“E:
/ChP4/Ex1/extract_dem”。
5)单击OK按钮,执行ExtractbyMask操作。
(4)白水县DEM的投影变换
利用DataManagementTools工具箱,ProjectionsandTransformations中的Raster工具集,选择其中的ProjectRaster工具,进行白水县DEM的投影变换。
我国大中比例尺地形图规定采用以克拉索夫斯基椭球体元素计算的高斯—克吕格投影。
因此,投影方式选择Xian1980GKZone19.prj(图7),即为高斯—克吕格投影,西安1980大地基准,中央经线为111°。
转换结果如图8所示,从下面状态栏的坐标可以看出,白水县的DEM已转换为平面直角坐标显示。
图7投影坐标系统的选择
(1)展开DataManagementTools工具箱,打开ProjectionsandTransformations中的Raster工具集,双击ProjectRaster,打开ProjectRaster对话框。
(2)在Inputraster文本框中选择输入进行投影变换的栅格数据“E:
/ChP4/Ex1/extract_dem”。
(3)在Outputraster文本框键入输出的栅格数据的路径与名称E:
/ChP4/Ex1/Result/project_dem”。
(4)单击Outputcoordinatesystem文本框旁边的
图标,打开SpatialReference属性对话框,单击Select按钮,打开BroweforCoordinateSystem对话框,选择
Xian1980GKZone19.prj投影。
(5)Resamplingtechnique是选择栅格数据在新的投影类型下的重采样方式,选择NEAREST。
练习2:
某地区地块的拓扑关系建立
1.背景:
拓扑关系对于数据处理和空间分析具有重要意义,拓扑经常应用于地块查询、土地利用类型更新等。
2.目的:
通过本例,让读者掌握创建一个要素数据集的拓扑关系的整个流程,并对创建拓扑后的一些工作,如拓扑错误检测、拓扑错误修改、拓扑编辑等基本操作有一个较全面的了解。
3.要求:
在Topology数据集中导入上述两个Shapefile,建立该要素数据集的拓扑关系,使拓扑生效后检测拓扑错误,修改拓扑错误,最后进行拓扑编辑。
4.数据:
Blocks.shp、Parcels.shp,存放在…/ChP3/Ex1中,请将其拷贝到E:
/ChP3/Ex1。
结果数据存放于…/ChP3/Ex1/Result中。
5.操作步骤:
(1)创建地理数据库
1)在ArcCatalog树中,右键单击Result文件夹,单击New,单击PersonalGeodatabase,输入所建的地理数据库名称:
NewGeodatabase。
如图1所示。
在新建的地理数据库中创建要素数据集,如图2所示。
2)打开NewFeatureDataset对话框,如图3所示。
将数据集命名为:
Topology。
4)单击Import按钮,选择要与之具有相同坐标系统的数据集:
Blocks.shp或Parcels.shp,如图5所示。
5)单击Add按钮,返回SpatialReference属性对话框。
这时要素数据集定义了坐标系统。
单击确定按钮。
(2)向数据集中导入数据
1)在ArcCatalog树中,右键单击Result文件夹中的Topology数据集,单击Import,单击FeatureClass(multiple),如图6所示。
2)打开FeatureClasstoGeodatabase(multiple)对话框,如图7所示。
导入Blocks和
Parcels两个Shapefile,单击OK按钮。
(3)在要素类中建立子类型由于原数据Blocks和Parcels两个有子类型,把要素分为了居民区和非居民区,
而数据导入到数据集后并没有子类型,所以在导入数据后为每个要素类建立两个子类型:
Residential和Non-Residential。
1)在Blocks要素类上单击右键,单击Properties,如图8所示。
打开FeatureClassProperties对话框,如图9所示。
2)打开FeatureClassProperties对话框(Subtypes选项卡)。
在SubtypesField下拉框中选择一个子类型字段:
Res,在DefaultSubtype窗口中出现所选字段的默认的新的子类型名称:
NewSubtype。
3)在Subtypes栏中的Code列下输入新的子类型代码及其描述,描述将自动更新
DefaultSubtypes窗口中的内容。
4)重复上述步骤,添加其他子类型。
如图10所示,添加了两个子类型:
Residential和Non-Residential。
单击确定按钮。
(4)创建拓扑
1)在ArcCatalog树中,右键单击Topology要素数据集,单击New,单击Topology。
如图11所示。
打开NewTopology对话框,它是对创建拓扑的简单介绍,如图12所示。
图11创建拓扑
2)单击下一步按钮,打开确定名称和聚类误差(ClusterTolerance)对话框,如图13所示。
输入所创建拓扑的名称和聚类误差。
聚类误差应该依据数据精度而尽量小,它决定着在多大范围内要素必须具有一致性。
3)单击下一步按钮,打开选择参与创建拓扑的要素类对话框,如图14所示。
4)单击下一步按钮,打开设置拓扑等级数目对话框,如图15所示。
设置拓扑等级
5)单击下一步按钮,打开指定拓扑规则对话框,如图16所示。
6)单击AddRule按钮,打开AddRule对话框,如图17所示。
在Featuresoffeatureclass下拉框中选择Parcels,在Rules下拉框中选择MustNotOverlap,表示一个区域不能与另一个区域重叠,可以连接在一起,也可以分开。
若两个区域重叠,则违背所定义的拓扑规则,出现拓扑错误。
在对话框的右侧面板,显示所选规则的示意图及简单介绍。
18所示。
这个规则将控制同一个要素类中的要素的拓扑关系。
8)单击AddRule按钮,创建另一个规则。
如图19所示。
在Featuresoffeatureclass下拉框中选择Parcels要素类中的Residential,在Rules下拉框中选择MustBeCoveredby,在Featureclass下拉框中选择Blocks要素类中的Residential。
MustBe
Coveredby表示一个图层中某个要素包括另一个图层中的一定要素。
在本例中,Blocks中的居民区包括了Parcels中的居民区。
9)单击OK按钮,返回指定拓扑规则对话框,可以看到已经创建了两个规则,如图
20所示。
10)单击下一步按钮,打开参数信息总结框,如图21所示。
11)单击完成按钮,出现进程条,当进程结束时,拓扑创建完成。
12)出现一对话框,询问是否立即使拓扑有效。
如图22所示。
单击否按钮,在以后的工作流程中使其生效,创建的拓扑出现在Catalog树中;单击是按钮,出现进
程条,进程结束时,拓扑已经生效,创建的拓扑出现在Catalog树中。
图22询问是否使拓扑生效
(5)查找拓扑错误
1)在ArcCatalog树中,右键单击新建的拓扑,单击Properties,如图23所示。
2)打开TopologyProperties对话框,如图24所示。
单击RemoveAll按钮,将已有的两个规则删除。
3)单击AddRule按钮,打开AddRule对话框,重新定义一个规则:
MustNotOverlapWith,如图25所示,在Featuresoffeatureclass下拉框中选择Parcels中的Non-Residential,在
Featureclass下拉框中选择Blocks中的图23创建拓扑
Residential。
这个拓扑规则表示Parcels中的非居住区必须与Blocks中的居住区不重叠。
4)单击OK按钮,返回AddRule对话框,定义了一个新规则。
如图26所示。
单击确定按钮,完成拓扑的修改。
5)在ArcMap中加载数据creatingTopology、Parcels和Blocks三层,如图27所示。
先将某个图层设为可编辑状态。
调入Topology工具栏,如图28所示。
在Topology下拉框中选择要编辑的拓扑图层creatingTopology。
6)拓扑修改(更改名字、修改规则等)后需要使拓扑生效,可以通过单击Topology
工具栏中的按钮,使图面上的指定区域拓扑生效、
按钮可以使当前可见图面的拓扑生效、按钮可以使整个拓扑生效。
生效的过程其实就是检验拓扑错误的过程,若拓扑规则有错误,则拓扑生效后,会把有错误的地方自动显示出来。
在本例中,可在加载了数据后,单击
按钮,使拓扑生效,这时视图中出现四个深色方块,即是拓扑错误的地方。
如图29所示。
图28Topology工具栏
图29显示拓扑错误的地方
7)单击Topology工具栏中的
检测拓扑错误按钮,打开ErrorInspector对话框,并单击SearchNow按钮,即可检查出拓扑错误,并在下方的表格中显示拓扑错误的详细信息。
如图30所示。
图30ErrorInspector对话框
(6)修改拓扑错误
creatingTopology的拓扑规则表示Parcels中的非居住区必须与Blocks中的居住区
不重叠。
当Parcels中的非居住区与Blocks中的居住区重叠时,产生拓扑错误。
为了修改拓扑错误,可以把Parcels层设为编辑状态,把产生拓扑错误的Parcels中的Non-Residential改为Residential,或者把Blocks层设为编辑状态,把产生拓扑错
图形窗口中的拓扑错误只剩三个。
按照上述两个步骤,修改其余三个拓扑错误。
(7)拓扑编辑
拓扑编辑包括共享结点的移动、共享边线的移动、共享边线变形、共享边线修改和共享多边形生成。
在这里介绍共享结点的移动和共享边的变形,其他的编辑参见3.4.3。
1)将Parcels设置为可编辑状态,将视图放大到一定比例,单击Topology工具栏中的
按钮,选择要进行拓扑编辑的要素,进行移动、修改等操作。
如图32所示,选中了一个点并移动这个点。
图32共享结点的移动
2)在Task下拉窗口中选择TopologyTasks中的ReshapeEdges任务,在Target选择
目标图层为Parcels。
单击
按钮,在视图中选中一条边要素,再单击
按钮,
画一条草图线与所选边两次相交,共享边就会发生变形,如图33所示。
图33共享边的变形