来源:ArcGIS地理信息系统空间分析实验教程(第2版)
工具 :ArcGIS10.2
空间数据的处理常常是复杂而费时的,而且其过程具有很强的重复性,基于窗口的应用程序极大程度上限制了处理数据的能力,有必要进行自动化的处理。任何可以支持COM的脚本语言都可以执行ArcGIS的地理处理工具,如Python、Jscript 和VBSeript等。这些脚本语言都是公开的,而且易学易用,脚本可以将大批量的处理,通过流程化的方式,动态的传人传出参数,达到批量、自动处理数据的目的。

ArcGIS地理信息系统空间分析实验教程(第2版)_汤国安著_随书光盘下载链接
链接:https://pan.baidu.com/s/1L7yMJPXtIBlkFUw7Q2OsUQ
提取码:p5vt

利用Python创建脚本文件
1单数据处理
所谓单数据处理,是指处理过程中只涉及到单个数据集的处理,数据可以是Geo-database中的要素类、栅格数据集、ArcView 的shapefile,也可以是Arc/Info的cov-erage等。下面以从DEM中自动提取坡度小于15°的栅格为例。

(1)编写脚本:

#导入arcpy模块
import arcpy
#查看任何必要的许可证
arcpy.CheckOutExtension("spatial")
#脚本参数
InPutData = arcpy.GetParameterAsText(0)
OutPutData = arcpy.GetParameterAsText(1)
if OutPutData == '#' or not OutPutData:OutPutData = "C:\\Users\\yws31415926\\Documents\\ArcGIS\\Default.gdb\\LessTha_Slop1"
#此处加载的模型因安装ESRI系统的磁盘位置不同而不同
#Local variables: 定义变量
InputDataOrConst = "15"
#Slope 坡
OutSlope = "D:\\1\\Chp12\\tutor2\\result\\Slope15"
# Process:计算坡度
arcpy.gp.Slope_sa(InPutData, OutSlope, "DEGREE", "1")
#Process:坡度小于15度
arcpy.gp.LessThan_sa(OutSlope, InputDataOrConst, OutPutData)

注意:路径中不要有中文,
(2)添加script
右击【工具箱】中的【我的工具箱】新建【工具箱】
右键 新建的【工具箱】添加 【脚本】。得到如下图。

双击【脚本】 设置名称,下一步

选择脚本文件,下一步。

输入要素,完成。



双击【脚本】

设置路径,确定。

执行脚本得到结果如下。

得到结果如下图。其中绿松色为坡度大于15°的区域,紫色为坡度小于15°的


原数据图。

2.批处理
所谓批处理就是成批处理文件或操作,是一次操作多个相同格式数据的过程。脚本提供了一种便捷的方式用于批处理,只要在脚本中加入循环语句即可.下面以两幅DEM提取坡度为例说明在Python中的实现过程。其中DEM数据存储在随书光盘… \ Chp12 \ tutor3 \ DEM\中,分别为dem50和dem100。结果存储在… .\ Chp12 \ tutor3 \ result\目录中,脚本文件为… \ Chpl2\ tutor3 \ batch1.py.。
代码如下:

# 导入arcpy模型
import arcpy
# 加载变量
# 数据文件所在的路径
Raster1= "D:\\1\\Chp12\\tutor3\\DEM\\"
# 数据输出所在的路径
OutPutData="D:\\1\\Chp12\\tutor3\\result"
# 数据文件名称
names=['DEM50','DEM100']
for k in names:# 源文件名称InputData= Raster1+k# 输出文件名称
OutputData= OutPutData+"slope"
# 执行处理过程
arcpy.gp.Slope_sa(InputData,OutputData, "DEGREE", "1")

右键单击[工具箱],选择[添加]下的[脚本]命令。右键单击[脚本],选择[属性]命令,在弹出的对话框中输人名字、标签、描述、风格等信息,单击[下一步]按钮;浏览到所要选择运行的脚本,单击[吓一步]按钮。由于是批处理不需要设置参数,单击[确定]。双击[脚本]图标号,运行程序。

3.Python脚本应用实例

通过使用Python的逻辑控制语句,可以实现基于ArcPy的自动处理应用,用户通过ArcGIS自带的程序IDE,打开对应的.py文件,直接按F5即可运行该脚本。下面以实现批量Raster栅格到ASCII文本的脚本文件为例,演示Python的应用,读者可以将其存储为convert. py后运行。本实验的数据存放在… \ Chp12 \ tutor3 \ DEM\中,分别为dem50和dem100.结果存储在… \ Chp12 \ tutor4\ result\目录中,脚本文为… \ Chp12 \ tutor4 \ convert.py.

# 导入系统模型
import arcpy
# 加载所需的工具箱
arcpy.gp.AddToolbox("D:/program安装/arcgis/Desktop10.2/ArcToolbox/Toolboxes/Conversion Tools.tbx")# 模型随着系统安装ArcGIS的位置不同而不同
# 输出的数据文件所在路径
OutPutData="D:\\1\\Chp12\\tutor4\\result"
# 数据文件名称
names=['DEM50','DEM100']
for k in names:# 源文件名称Raster1 = "D:\\1\\Chp12\\tutor3\\DEM"# 输出文件名称Raster1_txt= OutPutData+k+".txt"# 执行处理过程
arcpy.gp.ASCIIToRaster_conversion(Raster1_txt, names, "FLOAT")

执行如2个一样

遇到问题:
问题1:
ExecuteError:执行失败。参数无效。
ERR0R 000878: 输出栅格: 【路径】 中格网基本名称的长度超过了13。
执行(Slope)失败。
原因:

解决方式:将输出文件名改短一些

有关ArcPy参考文档地址:
https://desktop.arcgis.com/zh-cn/arcmap/latest/analyze/arcpy/what-is-arcpy-.htm

在Arcgis中利用Python编写脚本批量化处理数据实例相关推荐

  1. 利用Python编写脚本批量下载公众号中的音频

    欢迎大家光临我的博客,大家一起交流学习哦 陈京九的博客 首先声明我只是一个小菜鸡,把自己琢磨一些功能的过程发到了这里当做记录,希望大神们轻喷,能给我一些指导就更好啦~ 上一篇博客教大家下载了公众号中的 ...

  2. 如何利用python 编写脚本增加微信读书的时长。

    第一步: 安装mumu模拟器,[可在软件管家中下载] 等待安装- 第二步:搜索框所谓微信读书,并下载. 第三步:安装Python3, 下载方法1: https://www.python.org/dow ...

  3. python数据包分析_用python编写脚本分析网络数据包

    业务范围:QQ122353503---淘宝搜索店铺:小七软件园 1:MATLAB优化,数值计算,GUI界面设计/Simulink模拟仿真,模式识别等 2:电子电力系统仿真,通信,自动化,电气,FPGA ...

  4. 利用python编写手机脚本

    利用python编写手机脚本 adb连接安卓模拟器 在手机里编写python脚本控制手机 如何使用python控制手机(以微信游戏跳一跳为例) adb连接安卓模拟器 链接(转载)https://www ...

  5. python爬虫简单实例-Python 利用Python编写简单网络爬虫实例3

    利用Python编写简单网络爬虫实例3 by:授客 QQ:1033553122 实验环境 python版本:3.3.5(2.7下报错 实验目的 获取目标网站"http://bbs.51tes ...

  6. 用python写脚本看什么书-终于知晓python编写脚本入门教程

    PyQt5是基于Digia公司强大的图形程式框架Qt5的python接口,由一组python模块构成.PyQt5本身拥有超过620个类和6000函数及方法.在可以运行于多个平台.PyQt5拥有双重协议 ...

  7. 在ArcGIS中创建Python工具(一)

    ArcGIS Desktop 自带有大量的工具,可以执行各种各样的地理处理任务.通过 python 我们可以灵活地调用这些工具,把工具组织成自己的工作流,甚至创建一些新的工具.今天就说说在 ArcGI ...

  8. 利用Python编写代码实现消息自动回复

    前言   利用python编写一小段代码可代码实现QQ.微信好友自动发消息的功能,从而达到"消息轰炸"的效果.代码很简单也很有趣,快来一起看看吧 目录 准备条件   焦点获取  代 ...

  9. python数据预测_利用Python编写一个数据预测工具

    利用Python编写一个数据预测工具 发布时间:2020-11-07 17:12:20 来源:亿速云 阅读:96 这篇文章运用简单易懂的例子给大家介绍利用Python编写一个数据预测工具,内容非常详细 ...

  10. java jmf 视屏监控的核心代码_Java中利用JMF编写摄像头拍照程序_java

    我把程序分为两种,有趣的和无趣的,最近做了几个有趣的项目,其中一个,应当就算是摄像头拍照程序了.用于现场拍照,生成照片,主要用到java Media Framework(JMF). 首先到SUN下载最 ...

最新文章

  1. BZOJ 1874: [BeiJing2009 WinterCamp]取石子游戏(SG函数)
  2. 3、MySQL查看或显示数据库(SHOW DATABASES语句)
  3. 《OKR源于英特尔和谷歌的目标管理利器》读书笔记
  4. 人大计算机在职考研好考吗,人大在职研究生好考吗?通过率高吗?
  5. “租房帮”产品体验报告
  6. 读《构建之法》第四,十七章有感
  7. Fast DDS Fast DDS主要包括以下内容DDS API、Fast DDS-Gen、RTPS Wire Protocol
  8. Google知识集锦
  9. 【20CSPS提高组】儒略日
  10. sklearn逻辑回归参数详解,及用逻辑回归制作评分卡
  11. [ActionScript 3] 【开源】D5Power RPG网页游戏开发套件
  12. linux中萌翻了的cowsay命令
  13. 算法竞赛常用STL库
  14. 社区产品如何搭建内容体系?看看懂球帝与虎扑如何做
  15. 开关面板如何自己印字_墙壁开关上的商标是怎么印上去的
  16. win7 自建wifi
  17. php实现国外邮箱,发送电子邮件 · 国外PHP框架Nette官网教程 · 看云
  18. python语言通过()来体现语句逻辑关系_【单选题】Python语言通过( )来体现语句之间的逻辑关系。...
  19. python 抢票代码 猫眼演出_Python爬虫-猫眼电影排行
  20. java配置odbc数据源,ODBC 常见数据源配置整理

热门文章

  1. jntoo.php,小舍微信分销拼团系统V6.0三级分销系统最新版源码+支持多商户入驻+拼团+微商城+分销...
  2. 等宽字体与非等宽字体_我最喜欢的等宽字体
  3. 算法学习笔记:连通图详解
  4. 深入理解Nginx~Nginx配置的通用语法
  5. 使用Animation编辑器编辑动画
  6. 股票基金历史数据下载接口集合
  7. 苹果cmsv10仿美剧吧自适应好看的免费高端简约模板
  8. DataGraph for Mac v4.3.0 强大的统计分析软件
  9. Linux内核发包软件,pktgen--内核态发包工具
  10. C语言入门1:Hello World