.
Arcgis空间数据处理案例
空间数据处理 (2)
第1步裁剪要素 (2)
第2步拼接图层 (4)
第3步要素融合 (5)
第4步图层合并 (7)
第5步图层相交 (9)
定义地图投影 (10)
第6步定义地理坐标系统 (10)
第7步投影变换,(地理坐标系->北京1954坐标系转换->西安80坐标系) (11)
补充:图层相减,计算面积 (12)
空间数据处理
●数据:云南县界.shp; Clip.shp西双版纳森林覆盖.shp 西双版纳县界.shp
●步骤:
将所需要的数据下载后,解压到到 e:\gisdata,
设定工作区:在ArcMap中执行菜单命令:<地理处理>-><环境>,在“环境设置”选项页里,
点击“工作空间”按钮,在工作空间对话框中的常规设置选项中,设定“临时工作空间”为
e:\gisdata
第1步裁剪要素
◆在ArcMap中,添数据GISDATA\云南县界.shp,添加数据GISDATA\Clip.shp (Clip 中有四
个要素)
◆激活Clip图层。
选中Clip图层中的一个要素,注意确保不要选中“云南县界”中的要素!
点击打开ArcToolbox,
指定输出要素类路径及名称,这里请命名
为“云南县界_Clip11”
指定输入类:云南县界
指定剪切要素:Clip(必须是多边形要素)
依次选中Clip主题中其它三个要素,重复以上的操作步骤,完成操作后将得到共四个图层(“云
南县界_Clip11” , “云南县界_Clip12”,“云南县界_Clip21”,“云南县界_Clip22”
)。
注:1.观察剪切后面积是否有变化;
2.如果用split是否可以,如可以,需要怎么做?(用文本型字段进行split)
第2步 拼接图层
◆ 在ArcMap 中新建地图文档,加载你在剪切要素操作中得到的 四个图层
◆ 点击打开ArcToolbox
在ArcToolbox 中执行“追加”命令
(在数据管理工具——常规——追
输出要素:设定为 云南县界
_Clip1,
加)
输入要素:依次添加其它三个图层注:比较union和数据管理工具集下
的append和合并两个命令之区别;
Union:包括图形之间的运算,和属
性追加;append:将一个图层添加到
目标图层,不生成新的图层,append
要注意合并方案参数;记录数加和,
追加属性字段,但值不变;合并:与
append同,但生成新的图层。
右键点击图层“云南县界_Clip1”,在出现的右键菜单中执行“数据”->”导出数据”
指定导入数据的路径和名称:YNOK.shp
通过以上操作我们就完成了将4个图层拼接为一个图层的处理。
新建一地图文档,加载数据YNOK.shp,查看图层及打开其属性表看看与“云南县界”中的属性表有何区别。
区别:“云南县界”有125条记录,“ynok”有158条记录,产生的原因是什么?
第3步要素融合
◆在拼接图层的基础上继续
◆执行“融合”命令
◆输入要素:指定为YNOK
◆融合字段:选择为“所属州”,将根据这个字段的值对要素进行融合,YNOK图层中“所
属州”相同的要素将合并成一个要素
以上操作,根据指定字段的值,对现有图层中的要素进行融合,产生新的图层――YNOK_Dissovle,打开并查看其属性表
如果要确定每个州包含有多少个县该如何操作?
注:为解决“云南县界”与“ynok”记录不一致问题,以字段CHINESE为融合字段,看
看结果有何不同,并查找原因?[永胜,在云南县界中确定chinese名称相同的值,summarize]
第4步图层合并
◆在ArcMap中新建一个地图文档,加载数据 GISDATA\西双版纳森林覆盖.shp 和 GISDATA\西
双版纳县界.shp
◆调整图层顺序,将西双版纳县界置于下方
◆打开ArcToolbox,在ArcToolbox执行“联合”命令
◆在联合对话框中
输入要素:依次添加“西双版纳森林覆盖”“西双版纳县界”两个图层
输出要素类:设置为 Union.shp
查看输出要素类:Union的的属性表,并检查属性“Type”,其中为“Y”的表示有植被覆盖的区域,右键点击图层Union,修改属性->符号(设置为唯一值图例,字段设置为TYPE)
思考题:勐海县的总面积是多少平方公里?其中有森林覆盖的区域面积是多少?没有森林覆盖的区域面积是多少?
第5步图层相交
◆在图层合并练习的基础继续
◆在ArcToolbox中,执行“相交”命令
◆在“相交对话框”中
输入要素:依次添加“西双版纳森林覆盖”“西双版纳县界”两个图层
输出要素类:设置为 Intersect.shp
查看输出要素类InterSect,并与“西双版纳森林覆盖”及“图层合并”操作所得结果――“Union”进行比较,并进一步思考这类操作适合求解哪一些现实问题。
注:Union得到193条记录、intersect得到190条记录,相差3条记录,为没有森林覆盖的图斑;
定义地图投影
第6步定义地理坐标系统
(1)在ArcMap中新建地图文档,添加第4步成生成的图层:Union.shp
(2)在TOC中,右键点击图层“Union”,查看属性,
在属性对话框中,点击“源”选项页,查看这
图层是什么坐标系
(3)打开ArcToolbox,执行命令“定义投影”命令
在定义投影对话框中,选择要素类:Union,点击坐标系输入框右边的按钮,
在出现的“空间参考属性”对话框中,选择一个地理坐标系,GCS_BEJING_1954
(注意:前提是我们已知道图层Union是使用北京1954地理坐标系)
点击“选择按钮”,从预定义的坐标系中选择(坐标系统\Geographic Coordinate Systems\Asia\Beijing 1954.prj)
(4)在TOC中,右键点击图层“Union”,查看属性,在属性对话框中,点击“源”选项页,查看这个图层的坐标系是否已经被指定为“北京1954地理坐标系”
第7步投影变换,(地理坐标系->北京1954坐标系转换->西安80坐标系)
(1)在第6步的基础上进行
(2)打开ArcToolbox,执行命令“定义投影”命令
(3) 在“投影”对话框中,依次设定输入要素类为――Union ,输出要素类为――
Union_PRJ_BJ54.shp , 输出坐标系选择为――“BEJING_1954_GK_ZONE_17N ” 从预定义的坐标系中选择(坐标系统\Projected Coordinate Systems\Gauss Kruger\Beijing 1954\Beijing 1954 GK Zone 17N.prj )
(4) 确定后,完成由地理坐标系GCS_BEJING_1954 到 投影坐标系
BEJING_1954_GK_ZONE_17N 的变换。
补充:图层相减,计算面积
第4步中要求,没有森林覆盖的区域面积是多少?
提示:
面积单位是什么?如何转换成平方公里?
面积计算方法:
(0)求面积,首先必须保证数据层有投影坐标系统(建议对坐标系统为unknown的,先用定义投影确定地理坐标系统,然后用feature下面的project命令,定义投影坐标系统)(1)对于三个县的面积,可以在union表中对Chinese字段进行summarize统计,得到每一个县的面积;
(2)对于每个县森林覆盖的面积,可以先选择出某个县的斑块,如select * from union where chinese=’勐海县’ and type=’y’,然后在统计面积。
西双版纳三县总面积:19213.62
总的森林覆盖面积:2895.07(按type统计)
总的非森林覆盖面积:16318.55(按type统计)
勐海县面积:5379.97(按chinese统计)
勐腊县面积:6918.18(按chinese统计)
景洪县面积:6915.47(按chinese统计)
勐海县森林覆盖面积:847.065(先选择勐海记录,然后进行summarize,按type进行)勐海县非森林覆盖面积:4532.908
(1)对云南限界进行裁剪后面积是否有变化??
(2)通过图层拼接得到的ynok图层与云南限界图层的记录数有什么变化,产生的原因是什么?
(3)如何解决不一致问题?
为解决“云南县界”与“ynok”记录不一致问题,以字段CHINESE为融合字段,看看结果有何不同,并查找原因?[永胜,在云南县界中确定chinese名称相同的值,summarize]
(4)Union和Intersect两个图层的记录有什么区别,为什么?
(5)如何对union图层求面积,要先设置地理坐标系统,然后设置投影坐标系统?
(6)总的森林覆盖面积:2895.07(按type统计)
总的非森林覆盖面积:16318.55(按type统计)
勐海县面积:5379.97(按chinese统计)
勐腊县面积:6918.18(按chinese统计)
景洪县面积:6915.47(按chinese统计)
勐海县森林覆盖面积:847.065(先选择勐海记录,然后进行summarize,按type进行)
勐海县非森林覆盖面积:4532.908
注:有用的命令
数据管理工具集——常规——删除相同的,可以将某一个属性字段或多个属性字段值相同的重复记录删除掉,仅留下唯一一个;
案例数据:QQ723274243。