基于ArcGIS统计格网中不同土地利用类型占比
- 数据准备
- ArcGIS操作步骤
- 1、创建渔网(Create Fishnet)
- 2、建立唯一标识
- 3、选择格网
- 4、提取不同类别土地利用类型
- 5、各类用地面积计算
- 参考
- 另:可能出现的问题总结
- Q1:ArcGIS获取唯一值(Get Unique Value)失败
数据准备
1、研究区矢量边界
2、土地利用数据
数据下载-The 30 m annual land cover datasets and its dynamics in China from 1985 to 2022
- 空间位置:中国
- 地理坐标系: D_WGS_1984
- 投影坐标系: Albers_Conic_Equal_Area
- 数据格式:栅格(.tif)
- 空间分辨率:30*30米
土地利用类型: 9类
编号 | 类别 |
---|---|
1 | Cropland |
2 | Forest |
3 | Shrub |
4 | Grassland |
5 | Water |
6 | Snow/Ice |
7 | Barren |
8 | Impervious |
9 | Wetland |
ArcGIS操作步骤
1、创建渔网(Create Fishnet)
通过绘制渔网我们可以统计出网格所占要素的多少,并符号化显示。
运行ArcToolbox,选择【数据管理工具】,点击【样例】中的【创建渔网】工具,进行参数设置。
范围选择流域研究区;像元宽度与高度选择1 km×1 km;几何类型选择面
渔网创建完成如下:
2、建立唯一标识
创建完渔网后,为了确保每个网格有一个固定标识,将其生成的ID字段进行计算,利用字段计算输入下图所示公式:
3、选择格网
图中有多余的网格中并没有我们需要计算的土地利用类型要素,所以应该提取对应图层范围的渔网。
点击界面的【选择】—【按位置选择(Select By Location)】,打开此属性面板
【按位置选择(Select By Location)】,选择与研究区边界相交的渔网。
目标图层选择渔网,而来源图层我们选择研究区,之后应用就可以看到需要的渔网范围已经被选中,之后导出渔网数据即可
右键点击渔网,在调出的面板中选中【导出】—【导出数据】,弹出的面板中保存输出路径,存为shp文件,ok即可
渔网范围被提取出来显示如下,
修改符号化。点击提取渔网,将其颜色改为无色即可。
4、提取不同类别土地利用类型
运行ArcToolbox,打开【空间分析工具】,选择【提取】工具的【按属性提取】工具,调出面板后进行参数设置。输入栅格选择研究区;打开语法建立面板,在里面进行语法设置。这里以提取耕地(Cropland)为例!(“编号”= 1)
举例1:输入SQL代码即可:Value IN ( 1 , 3 , 5 , 10 , 12 , 17),含义:提取Value等于1、3、5、10、12、17的对象。
提取结果如下:
其它各类土壤类型提取原则相同。
5、各类用地面积计算
运行ArcToolbox,打开【空间分析工具】,选择【邻域分析】里面的【表格显示统计方法】调出界面,进行参数设置。输入栅格或邻域要素数据选择提取的范围渔网,邻域字段选择具有标识的FID,输入用途栅格为提取的耕地要素;设置输出路径,应用即可
耕地面积统计表导出成功,我们打开查看属性表的数据,显示如下,每一个FID字段都有相应的面积、数量等要素统计值。
需要说明的是统计得到FID与渔网数并不相同,当渔网内数据为空时,不做统计。
使用同样的方法计算其它土地利用类型要素的统计表。
参考
1、知乎-【ArcGIS教程】(66)利用渔网统计不同土地利用类型面积
另:可能出现的问题总结
Q1:ArcGIS获取唯一值(Get Unique Value)失败
按属性提取时,,SQL代码咋写Verify都是错误的,界面如下:
推测可能是土地利用数据有点问题吧。土地利用分类对应的应该是直方图,IRasterBand.Histogram,IRasterHistogram.Counts属性会获得一个256长的数组,里面保存了每个值的count。因此可见这里只能针对0-255的整形栅格,浮点栅格就比较难了,唯一值太多arcmap也崩溃。
**解决方案:**将土地利用类型数据更改为唯一值,再执行按属性提取时,可用