【ArcMap课件】Python与ArcGIS的协同工作
内部Arcpy培训课件【AI生成】本文介绍了Python与ArcGIS的协同工作方法,重点讲解了如何通过arcpy库实现地理数据处理自动化。主要内容包括:1) 课前准备,包括ArcGIS版本要求及扩展模块配置;2) Python脚本执行地理处理工具的实例,如单位换算、栅格裁剪和批处理模板;3) 批处理工具箱的使用方法,涵盖批量裁剪、投影转换和栅格计算等操作;4) 相关扩展阅读资源推荐。文章为GIS
文章目录
Python与ArcGIS的协同工作
协同工作的基础:通过ArcGIS提供的专用Python库arcpy,实现对地理数据的分析、处理和可视化等功能的自动化操作。
课前准备
-
本次教学使用的ArcMap版本为10.7,建议各位安装ArcGIS10.0及其以上版本。

下载及安装详细教程可参考ArcGIS 10.8 for Desktop 完整安装教程(含win7/8/10 32/64位+下载地址+亲测可用+汉化) | 麻辣GIS
-
开启ArcMap中的扩展模块


python执行地理处理工具
arcmap 内置了python2.x 的环境
在ArcMap中通过python脚本来运行地理处理工具
例1:单位换算
- 利用乘工具,对下载到的NDVI乘以缩放因子0.0001
import arcpy
in_raster = r"NDVIint.tif"
scale_factor = 0.0001
out_raster = r"NDVIfloat.tif"
arcpy.gp.Times_sa(in_raster, scale_factor, out_raster)
例2:裁剪栅格
import arcpy
in_raster = r"NDVIfloat.tif" # 输入:待裁剪栅格路径
mask = r"YRB.shp" # 输入:裁剪用矢量边界
out_raster = r"S:\tut\0203\year NDVI\clip_2010.tif"
arcpy.Clip_management(in_raster, "#", out_raster, mask, "#", "ClippingGeometry")
例3:批处理栅格数据的通用模板
python基本语法+arcpy调用地理处理工具 = 批处理
# params
import os
in_path = r"xxx" # str
out_path = r"xxx" # str
prefix = "xx" # str
rasters = [os.path.join(in_path,i) for i in os.listdir(in_path) if i.endswith(".tif")]
nums = len(rasters)
num = 1
for raster in rasters:
raster_name = os.path.split(raster)[1]
out_raster = os.path.join(out_path, prefix + raster_name)
if not os.path.exists(out_raster):
try:
# 这里插入要批量执行的地理处理相关的代码
arcpy.AddMessage("%d/%d | %s completed" % (num, nums, out_raster))
except Exception as err:
arcpy.AddMessage("%d/%d | %s errored, %s" % (num, nums, out_raster, err))
else:
arcpy.AddMessage("%d/%d | %s already exists" % (num, nums, out_raster))
num = num + 1
在这个模板的基础上,可以实现批量裁剪的代码
###
mask =
for raster in rasters:
###
arcpy.Clip_management(raster, "#", out_raster, mask, "#", "ClippingGeometry")

批处理工具箱的使用
工具箱的安装
添加MODIS数据处理工具箱


批量裁剪栅格工具

-
单矢量文件+多栅格
- 例:基于2000-2005全球NDVI栅格,裁剪得到黄河流域的NDVI栅格

-
多矢量文件+多栅格
- 例:基于2000-2010年鄂尔多斯高原NDVI栅格,裁剪出无定河流域、内流区、窟野河流域的NDVI

批量投影栅格工具
-
批量将无定河流域NDVI栅格投影至目标坐标系(高斯-克吕格投影3度带的第37投影带)
Xian_1980_3_Degree_GK_Zone_37

批量栅格计算器
功能
将多个栅格文件按照某以代数表达式执行栅格计算器(Raster Calculator) 工具,并将输出栅格文件保存至指定的文件夹中。该工具接受代数表达式的动态输入。通过修改代数表达式可以实现批量对栅格执行四则运算(加、减、乘、除)、计算掩膜、填充空值(固定值、插值)、设为空等操作。
关于代数表达式
提供的代数表达式需要满足栅格计算器工具代数表达式的基本语法,并且包含字符串"{A}“,字符串”{A}"代表输入栅格在代数表达式中的位置。
- 例:批量单位换算,以开氏温度转摄氏度为例
扩展阅读
-
面向ArcGIS的Python脚本编程【入门】

-
基于ArcGIS的Python编程秘笈(第2版)【进阶】

-
批处理工具箱其他工具的说明

更多推荐



所有评论(0)