一、背景

在进行区域土地开发时,需要对整个区域的土壤稳定性评估。应用GIS空间分析方法,能够快速有效地对影响土壤稳定性的因子进行制图并评估打分,通过构建评价体系,利用叠加分析,形成土壤稳定性专题图,以为土地开发保护提供决策支持。

二、数据

某区域的数字高程模型和土地利用图,数字高程模型为GRID格式数据,土地利用数据为landuse. shp(\Chp13\Ex3\)。

三、要求

经专家研究,土壤稳定性评估原则如下:

(1)坡度越陡,稳定性越低。坡度分级临界值分别为:3、6°、11°、20°和30°;

(2)阴坡比阳坡稳定;

(3)土地利用类型的稳定性级别由高到低分别为:森林、水域、草原、居住用地和农耕地。

各个因子的量化分值随地理位置、重要性程度、所占比例等的不同而需分别制定,本例中使用的分值及权重见下文。最后要求做出土壤稳定性级别图,级别的制定也需人为确定,这里不做具体规定,重在了解问题解决思路和过程。

四、工作流程

基于DEM提取坡度数据,按照分级临界值进行重分类,并对每个坡度区间设定权重值;基于DEM提取坡向数据,重分类划分阴阳坡,并对两个坡向设定权重值。

将土地利用的矢量数据按照土地利用类型转换为栅格数据,再重分类设定每种土地利用类型的权重值。

综合坡度、阴阳坡和土地利用类型进行空间叠加分析加权求和,得到该区域土壤稳定性数据,最终划分等级制作土壤稳定性专题图。

工作流程如下图所示:

五、模型构建器

六、ArcPy实现

# -*- coding: utf-8 -*-
# ---------------------------------------------------------------------------
# 13-3 土壤稳定性评估.py
# Created on: 2021-10-12 15:28:28.00000
# (generated by ArcGIS/ModelBuilder)
# Description:
# --------------------------------------------------------------------------- # Import arcpy module
import arcpy
import os
import shutil
import time print time.asctime()
path = raw_input("请输入数据所在文件夹的绝对路径:").decode("utf-8")
# 开始计时
time_start = time.time()
paths = path + "\\result"
if not os.path.exists(paths):
os.mkdir(paths)
else:
shutil.rmtree(paths)
os.mkdir(paths) # Local variables:
dem = path + "\\dem"
landuse = path + "\\landuse.shp" # 注意,直接读取shapefile文件,需要加后缀格式,不然后报错
Slope_dem = "Slope_dem"
Rec_Slope = "Rec_Slope"
Aspect_dem = "Aspect_dem"
Rec_Aspect = "Rec_Aspect"
land_ToRaster = "land_ToRaster"
Rec_landuse = "Rec_landuse"
stability = "stability" # Set Geoprocessing environments
print "Set Geoprocessing environments"
arcpy.env.scratchWorkspace = paths # 临时工作空间
arcpy.env.workspace = paths # 工作空间
arcpy.env.extent = dem # 处理范围
arcpy.env.cellSize = dem # 像元大小
arcpy.env.mask = dem # 掩膜 # Process: 坡度
print "Process: 坡度"
arcpy.gp.Slope_sa(dem, Slope_dem, "DEGREE", "1", "PLANAR", "METER") # Process: 重分类
print "Process: 重分类"
arcpy.gp.Reclassify_sa(Slope_dem, "Value", "0 3 10;3 6 8;6 11 7;11 20 5;20 30 3;30 60 1", Rec_Slope, "DATA") # Process: 坡向
print "Process: 坡向"
arcpy.gp.Aspect_sa(dem, Aspect_dem, "PLANAR", "METER") # Process: 重分类 (2)
print "Process: 重分类 (2)"
arcpy.gp.Reclassify_sa(Aspect_dem, "Value", "-1 5;0 90 10;90 270 1;270 360 10", Rec_Aspect, "DATA") # Process: 面转栅格
print "Process: 面转栅格"
arcpy.PolygonToRaster_conversion(landuse, "LANDUSE", land_ToRaster, "CELL_CENTER", "NONE", dem) # Process: 重分类 (3)
print "Process: 重分类 (3)"
arcpy.gp.Reclassify_sa(land_ToRaster, "LANDUSE", "agriculture 2;river 8;grass 6;forest 10;urban 4", Rec_landuse, "DATA") # Process: 加权总和
print "Process: 加权总和"
arcpy.gp.WeightedSum_sa("Rec_Slope Value 0.3;Rec_Aspect Value 0.3;Rec_landuse VALUE 0.4", stability) save = ["stability"]
rasters = arcpy.ListRasters()
for raster in rasters:
if raster.lower() not in save:
print u"正在删除{}图层".format(raster)
arcpy.Delete_management(raster)
# 结束计时
time_end = time.time()
# 计算所用时间
time_all = time_end - time_start
print time.asctime()
print "执行完毕!>>><<< 共耗时{:.0f}分{:.2f}秒".format(time_all // 60, time_all % 60)

七、结果





再简单丰富一下色彩:



制作土壤稳定性专题地图

点击视图区左下角的【布局视图】按钮点或点击【菜单栏】|【视图】|【布局视图】,将视图切换为布局视图。仅显示 stability.图层;将stability图层的标签名称改为“土壤稳三定性等级”,选中图层数据框后逐个添加:“指北针”、“比例尺”“图例”及“图名”,制作过程略。

实验结束 byebye~~~

最新文章

  1. ASP.NET Cookie(二)--控制Cookie的范围
  2. UI/UE/ID/UED/UCD的区别
  3. BCB 中测量Richedit 的文本总行高
  4. innosetup安装之前关闭进程
  5. mysql SQL SERVER 的算法
  6. 百度面试题&mdash;&mdash;top K算法
  7. Visual Studio跨平台开发实战(2) - Xamarin.iOS基本控制项介绍
  8. Hibernate 之强大的HQL查询
  9. 转 layout_weight体验(实现按比例显示)
  10. JavaSe:UncaughtExceptionHandler
  11. kmeans算法思想及其python实现
  12. iOS 中判断应用程序是否为第一次打开
  13. 解决ssh连接问题1
  14. echarts画图时tooltip.formatter参数params不会更新(转载)
  15. 【redis专题(4)】命令语法介绍之sorted_set
  16. Spring RedisTemplate操作-发布订阅操作(8)
  17. Linux下安装中文宋体
  18. __attribute__ ((attribute-list))
  19. NSArray的排序方法
  20. 反向代理负载均衡-----nginx

热门文章

  1. 【SpringMVC】域对象共享数据
  2. springboot全局异常封装案例
  3. redis 《scan命令》
  4. 六、Abp vNext 基础篇丨文章聚合功能上
  5. 关闭 Scroll Lock
  6. MySQL-后知知觉的索引
  7. 发布日志 - kratos v2.0.4 版本发布
  8. C# 给PPT中的图表添加趋势线
  9. uboot命令简介
  10. 加载映射文件几种方式和mapper接口注解执行sql语句