Arcpy基础入门-4、arcpy工具进阶
在使用arcmap工具箱里的工具的时候,如果已经加载相应的图层或者数据,就可以使用下拉列表的方式进行选择,也就是说工具会自动加载这些图层只需要选择即可。这一节就说下如何自动化的选择图层和数据。
1、 设置参数类型为相应的Featurelayer、RasterLayer等带Layer的参数
看一个实例代码:
import arcpy
#获取图层
fc = arcpy.GetParameter(0)
arcpy.RepairGeometry_management(fc)
按照教程三创建arcpy工具,设置参数时候如下进行设置:
就可以实现图层的自动选择,如下图:
2、 通过代码自动获得图层或者数据
看一个实例代码:
import arcpy, os
#Read parameters from dialog
mxdPath = arcpy.GetParameterAsText(0)
dfName = arcpy.GetParameterAsText(1)
layerName = arcpy.GetParameterAsText(2)
layerFile = arcpy.GetParameterAsText(3)
outMXD = arcpy.GetParameterAsText(4)
#Update layer symbology
mxd = arcpy.mapping.MapDocument(mxdPath)
df = arcpy.mapping.ListDataFrames(mxd,dfName)[0]
updateLayer = arcpy.mapping.ListLayers(mxd,layerName)[0]
sourceLayer =arcpy.mapping.Layer(layerFile)
arcpy.mapping.UpdateLayer(df, updateLayer,sourceLayer, True)
#Save changes to new MXD and automaticallyopen
mxd.saveACopy(outMXD)
os.startfile(outMXD)
del mxd, sourceLayer
其工具参数如下设置:
参数设置后面有个Validation
通过下面的Edit按钮可以对里面的代码进行编辑,编辑之后,点击保存,并点击下面的应用按钮即可。粘贴代码如下:
class ToolValidator:
"""Class for validating a tool's parameter values andcontrolling
thebehavior of the tool's dialog."""
def__init__(self):
"""Setup the Geoprocessor and the list of toolparameters."""
import arcpy
self.params = arcpy.GetParameterInfo()
definitializeParameters(self):
"""Refine the properties of a tool's parameters. This method is
called when the tool is opened."""
return
defupdateParameters(self):
"""Modify the values and properties of parameters beforeinternal
validation is performed. Thismethod is called whenever a parmater
has been changed."""
import arcpy
#Update Data Frames list
if self.params[0].value:
mxd = arcpy.mapping.MapDocument(self.params[0].value.value)
dataFrames = arcpy.mapping.ListDataFrames(mxd)
dfList = []
for df in dataFrames:
dfList.append(df.name)
dfList.sort()
if not self.params[1].altered:
self.params[1].filter.list = dfList
#Update Layer list (in selected data frame)
if self.params[1].value:
df = arcpy.mapping.ListDataFrames(mxd, (self.params[1].value))[0]
lyrs = arcpy.mapping.ListLayers(mxd, "", df)
layerList = []
for lyr in lyrs:
layerList.append(lyr.name)
layerList.sort()
if not self.params[2].altered:
self.params[2].filter.list = layerList
return
defupdateMessages(self):
"""Modify the messages created by internal validation foreach tool
parameter. This method is calledafter internal validation."""
return
Arcpy基础入门-4、arcpy工具进阶相关推荐
- Arcpy基础入门-3、arcpy创建地理处理工具
接着说arcpy的使用.地理处理工具是arcgis的核心所在.Arcgis桌面版软件围绕地理处理构建了一个完整的可扩展的地理处理框架:arctoolbox.Modelbuilder.Commend l ...
- 五万字15张导图Java自学路线,小白零基础入门,程序员进阶,收藏这篇就够了
本文收录于<技术专家修炼> 文中配套资料合集 路线导图高清源文件 点击跳转到文末点击底部卡片回复「资料」领取 哈喽,大家好,我是一条~ 最近粉丝问我有没有Java自学路线,有了方向才能按图 ...
- Arcpy基础入门-2、arcpy的批处理功能
教程1中我们简单的说了arcpy的使用方法,这应该特符合中国的国情吧,先会用再说.我们这一节还是讲arcpy的使用.说一下arcpy的批处理功能. ArcGIS作为世界领先的平台GIS软件,其应用的广 ...
- Arcpy基础入门-6、arcpy要素属性操作
空间数据具有三大特征:空间特征.属性特征和时间特征,同样组成一个几何要素的对象也包括空间几何.属性以及时间表达. 这一节我们以一个实例来说一下arcpy对几何对象属性的操作,属性的操作和数据库的操作基 ...
- 2023最新网络安全书单推荐——助你从零基础入门到成为网络安全工程师到进阶首席安全官
零基础入门网络安全工程师到进阶首席安全官-2023最新网络安全书单推荐 前言 开门见山,各位从零基础入门网络安全时,一定要有阅读书籍的习惯,因为你在学习时看的视频只会让你的知识体系浮于表面,而书籍的作 ...
- bigdecimal判断大于零_Python零基础入门(七):运算符
点击蓝字 一起划水 Review: Python零基础入门(一):对Python的简单认识 Python零基础入门(二):字符串基础 Python零基础入门(三):字符串进阶 Python零基础入门( ...
- java进阶 2018_Java Web基础入门2018版
步骤1: Java Web基础入门 本步骤带领大家进入Java Web的世界,除了介绍JSP和Servlet以外,还会介绍开发工具IntelliJ IDEA的使用,以及什么是XML.最后会学习MVC模 ...
- 渗透测试工具集(非常详细),从零基础入门到精通,看完这一篇就够了(附安装)
写在前面:这段时间由于发布了很多关于黑客工具教程的文章,后台经常会受到很多初学安全朋友的私信"初学者如何入门安全"."要去哪里找学习资料"等等.想起当初自己学安 ...
- 视频教程-Kali Linux渗透测试基础入门到进阶实战全程课-渗透测试
Kali Linux渗透测试基础入门到进阶实战全程课 本人有多年的服务器高级运维与开发经验,擅长计算机与服务器攻防及网络攻防技术!对网络安全领域有持续的关注和研究! 林晓炜 ¥499.00 立即订阅 ...
最新文章
- Linux下最简单的修改文件名后缀的命令行技巧
- for循环利用可迭代对象与迭代器完成工作的本质
- linux 上管理mysql_Linux下管理MySql
- 百度历年笔试面试150题
- find(),find_if(),以及巧妙的函数对象,函数适配器
- 超宽带 DWM1000模块 引脚连接
- 下载m3u8加密视频
- 移动互联网APP测试流程及测试点
- 马化腾:谈谈我创办腾讯这些年
- 初探摩根大通的企业级以太坊区块链解决方案—Quorum
- ERROR in ./node_modules/element-plus/es/components/menu-item-group/style/css2.mjs 2:0-54
- 计算机网络笔记——概述、物理层、链路层(方老师408课程)
- 让我摘下星星送给你_摘下星星送给你摘下月亮送给你是哪首歌的歌词
- 使用Python 训练OpenCV Cascade分类器 - 1
- P1423 小玉在游泳 NOIP python题解
- 代码人生之《掌控习惯》分享
- 三子棋(N子棋)游戏的保姆级超详细教程(C语言)
- 4824: [Cqoi2017]老C的键盘3167: [Heoi2013]Sao
- 《用友ERP-U8(8.72版)标准财务模拟实训》——1.4 系统管理注册和导入演示账套...
- echarts占比环形图