ArcGIS 一个独立运行的Python程序编写和打包
off999 2024-09-18 22:38 55 浏览 0 评论
- 写代码
#coding=utf8
# -*- coding: UTF-8 -*-
import arcpy
from arcpy import env
import os
import sys
###############
##################################
fc= arcpy.GetParameterAsText(0)
fieldname= arcpy.GetParameterAsText(1)
rows = arcpy.da.UpdateCursor(fc,["shape@",fieldname])
i=1
try:
for row in rows:
feat = row[0]
row[1]=feat.area
arcpy.AddMessage("No:"+str(i)+":"+str(feat.area))
rows.updateRow(row)
i=i+1
del rows
except Exception as e:
arcpy.AddError(e.message)
- 设置参数,过滤器 ,在工具右键属性→参数标签页,找到面图层,如图1-14所示,下面过滤器,设置面参数的要素过滤器,如图1-15所示。
图1-14 参数设置
图1-15 参数设置
在图1-14上面参数选择“字段”,下面参数属性“获取自”取“面图层”, 如图1-16所示。过滤器中字段,设置双精度,如图1-17所示
图1-16 要素类过滤器设置面要素
图1-17 字段过滤器设置双精度
- 发布考虑版本,如1-18所示,可以另存为其他低版本,但不要使用低版本没有的工具。
图1-18 工具箱版本另存
- 导入脚本,如图1-19所示。
图1-19 工具箱中工具导入脚本
导入脚本后,就不需要外部.py文件,不然需要一块拷贝,不拷贝对应文件,运行工具失败,如图1-20所示,同时需要设置成相对路径,如图1-21所示。导入脚本,需要源代码,虽然可以修改,但不太方便。
图1-20 工具箱中工具没有导入脚本运行错误
图1-21 工具箱中设置相对路径
- 设置密码
设置密码如图1-22所示,新密码和确认密码一致,自己一定牢记密码。
图1-22 工具箱中工具密码设置
之后编辑源代码,需要输入密码,没有密码,就不能修改,也可以保护你的知识产权。为大家学习源代码,都没有密码,也没有导入脚本。
Python中参数和过滤器的设置
数据类型
数据类型如表1-2所示。
表1-2 参数数据类型列表
数据类型 | datatype 关键字 | 说明或表现 |
分析像元大小 | analysis_cell_size | 栅格工具使用的像元大小。 |
ArcMap 文档 | DEMapDocument | 包含一个地图、它的布局以及它的关联图层、表格、图表和报表的文件。 |
面积单位 | GPArealUnit | 面积单位类型和值,例如平方米或英亩。 |
布尔型 | GPBoolean | 布尔值。 |
像元大小 XY | GPCellSizeXY | 定义栅格像元的两侧。 |
复合图层 | GPCompositeLayer | 对多个子图层的引用,包括符号系统和渲染属性,选择.lyr文件 |
坐标系 | GPCoordinateSystem | 参考框架,例如 UTM 系统,由一组点、线和/或面,以及一组用于定义二维和三维空间中点的位置的规则组成。 |
数据元素 | DEType | ArcCatalog 中可见的所有的数据集,含要素类和表格。 |
数据集 | DEDatasetType | 相关数据的集合,通常被分组或存储在一起。所有数据都是数据集。 |
日期 | GPDate | 日期值。 |
dBASE 表 | DEDbaseTable | 以 dBASE 格式存储的属性数据。 |
双精度型 | GPDouble | 所有浮点数都存储为双精度 64 位值。 |
加密的字符串 | GPEncryptedString | 密码加密的字符串。 |
要素类 | DEFeatureClass | 形状类型相同的空间数据的集合:点、多点、折线和面。 |
要素数据集 | DEFeatureDataset | 共享公共的地理区域和相同的空间参考系统的要素类集合。 |
要素图层 | GPFeatureLayer | 对要素类 的引用,包括符号系统和渲染属性。可以是要素,也可以图层 |
要素集 | GPFeatureRecordSetLayer | 工具运行时绘制要素的交互式要素。 |
字段 | Field | 表中的列,用于存储单个属性的值。 |
文件 | DEFile | 磁盘上的文件。 |
文件夹 | DEFolder | 指定数据在磁盘上的存储位置。 |
图层组 | GPGroupLayer | 图层组:组织地图、指定高级绘制顺序选项和分享图层用于其他地图变得更加容易。 |
索引 | Index | 用于加快在地理数据集和数据库中搜索记录的速度的数据结构。 |
LAS 数据集 | DELasDataset | LAS 数据集存储对磁盘上一个或多个 LAS 文件以及其他表面要素的引用。LAS 文件是一个二进制文件,存储机载激光雷达数据。 |
LAS 数据集图层 | GPLasDatasetLayer | 引用磁盘上的 LAS 数据集的图层。此图层可将过滤器应用于 LAS 数据集引用的雷达文件和表面约束。 |
图层 | GPLayer | 对数据源的引用,例如 shapefile、coverage、地理数据库要素类或栅格,包括符号系统和渲染属性。 |
图层文件 | DELayer | 图层文件存储了图层定义,包括符号系统和渲染属性。 |
线性单位 | GPLinearUnit | 线性单位类型和值,例如米或公里。缓冲区等使用 |
长整型 | GPLong | 一个整数值。 |
点 | GPPoint | x,y 坐标对。 |
投影文件 | DEPrjFile | 存储空间数据的坐标系统信息的文件。 |
栅格数据图层 | GPRasterDataLayer | 栅格数据图层。 |
栅格数据集 | DERasterDataset | 根据一个或多个栅格构建的单个数据集。 |
栅格图层 | GPRasterLayer | 对栅格的引用,包括符号系统和渲染属性。 |
Shapefile | DEShapefile | shapefile 格式的空间数据。 |
空间参考 | GPSpatialReference | 用于存储空间数据集(包括空间域)的坐标系。和坐标系一样 |
SQL 表达式 | GPSQLExpression | 定义和操纵关系数据库中的数据的语法。 |
字符串 | GPString | 文本值。 |
字符串已隐藏 | GPStringHidden | 以 * 字符掩盖的字符串。和加密的字符串一样 |
表 | DETable | 表格数据。 |
表视图 | GPTableView | 用于查看和编辑的表格数据表现形式,存储在内存或磁盘中。 |
文本文件 | DETextfile | 以 ASCII 格式存储的数据。 |
Tin 图层 | GPTinLayer | 对 TIN 的引用,包括拓扑关系、符号系统和渲染属性。 |
工具 | DETool | 地理处理工具。 |
Toolbox | DEToolbox | 地理处理工具箱。 |
工作空间 | DEWorkspace | 容器,例如地理数据库或文件夹。 |
参数属性说明
- 参数Type 选项
- Required必选 - 必须提供具体值才能执行工具。
- Optional可选 - 不需要为参数提供值。
- Derived派生 - 该参数只适用于输出参数(请参阅下文的方向参数)。派生的输出参数不会显示在工具对话框中。
- 参数方向(direction)选项
- Input输入参数
- Output输出参数
- Multivalued多值,false是只能输入一个,True可以输入多个
输入要素图层多值如图1-23所示:
图1-23 输入要素多值界面
如果是字段,多值界面如图1-24所示。
图1-24 字段多值界面
1.7.3 过滤器
存在六种类型的参数过滤器。使用何种类型的过滤器由参数的数据类型决定。
- 值列表 - 预定义关键字列表。 用于字符串,如图1-25所示。
图1-25 字符串的值列表设置
- 范围 - 有效数值的范围。包括范围边界值,这表示最小值和最大值也是有效数据。 用于数字,如图1-26所示。
图1-26 整数的范围设置
- 要素类 - 允许的要素类的类型列表:点、多点、折线 (polyline)、面、多面体 (multipatch)、注记和维度,如图1-27所示。
图1-27 要素类过滤器
- 文件 - 有效文件扩展名列表,如 .txt(简单文本文件)或 .csv(分割符是分号”;”。 不用加“.” 文件扩展说明,如图1-28所示。
图1-28 文件过滤器设置
- 字段 - 允许的字段类型列表:短整型、长整型、单精度、双精度、文本、日期、OID、几何、BLOB、栅格、、GUID、全局 ID 和 XML,如图1-29所示。
图1-29 字段过滤器设置
- 工作空间 - 模型参数所允许的工作空间类型,如图1-30所示。
图1-30 工作空间滤器设置
arcpy开发缺点
- 界面定制依靠ArcGIS平台,不够灵活。
- 鼠标交互,如没有事件mousemove,mousedown,mouseup,很不方便。
- arcpy很多接口没有开发,不像arcengine丰富,只能做一些简单,弱开发,只适合于批量数据处理,不合适于大项目,只能作为大项目辅助开发方式。
- 汉字乱码问题比较多,使用ArcGIS Pro中arcpy好多了。
Arcengine C#调用arcpy的工具方法
调用上面的面积计算工具为例,使用Arcengine,C#调用arcpy代码如下,代码下载可以扫码右边的二维码。
private static bool CalArea(IFeatureClass pFeatureClass, string FieldName)
{
string tbxFileName = @"F:\2020book\原始资料\data\1Python基础\工具箱.tbx";
if (!File.Exists(tbxFileName))
{
MessageBox.Show("文件" + tbxFileName + "不存在");
return false;
}
IGeoProcessor gp = new GeoProcessor();
gp.OverwriteOutput = true;
gp.AddOutputsToMap = false;
gp.AddToolbox(tbxFileName);
// Create a variant - data are in the workspace
IVariantArray parameters = new VarArray();
parameters.Add(pFeatureClass);//参数
parameters.Add(FieldName);//参数
string toolname="计算面积";//工具名称,建议工具名称为英文,标签为中文,
//object sev = null;
try
{
gp.Execute(toolname, parameters, null);
}
catch (Exception ex)
{
MessageBox.Show("错误:" + ex.Message + ",\n请自己允许" + tbxFileName + "/" + toolname);
//string errorMsgs = gp.GetMessages(ref sev);
//MessageBox.Show(errorMsgs);
return false;
}
finally
{
gp = null;
//MessageBox.Show("ok");
}
return true;
}
返回True运行成功,false运行失败,函数的参数都可以修改为object类型。
相关推荐
- 安全教育登录入口平台(安全教育登录入口平台官网)
-
122交通安全教育怎么登录:122交通网的注册方法是首先登录网址http://www.122.cn/,接着打开网页后,点击右上角的“个人登录”;其次进入邮箱注册,然后进入到注册页面,输入相关信息即可完...
- 大鱼吃小鱼经典版(大鱼吃小鱼经典版(经典版)官方版)
-
大鱼吃小鱼小鱼吃虾是于谦跟郭麒麟的《我的棒儿呢?》郭德纲说于思洋郭麒麟作诗的相声,最后郭麒麟做了一首,师傅躺在师母身上大鱼吃小鱼小鱼吃虾虾吃水水落石出师傅压师娘师娘压床床压地地动山摇。...
-
- 哪个软件可以免费pdf转ppt(免费的pdf转ppt软件哪个好)
-
要想将ppt免费转换为pdf的话,我们建议大家可以下一个那个wps,如果你是会员的话,可以注册为会员,这样的话,在wps里面的话,就可以免费将ppt呢转换为pdfpdf之后呢,我们就可以直接使用,不需要去直接不需要去另外保存,为什么格式转...
-
2026-02-04 09:03 off999
- 电信宽带测速官网入口(电信宽带测速官网入口app)
-
这个网站看看http://www.swok.cn/pcindex.jsp1.登录中国电信网上营业厅,宽带光纤,贴心服务,宽带测速2.下载第三方软件,如360等。进行在线测速进行宽带测速时,尽...
- 植物大战僵尸95版手机下载(植物大战僵尸95 版下载)
-
1可以在应用商店或者游戏平台上下载植物大战僵尸95版手机游戏。2下载教程:打开应用商店或者游戏平台,搜索“植物大战僵尸95版”,找到游戏后点击下载按钮,等待下载完成即可安装并开始游戏。3注意:确...
- 免费下载ppt成品的网站(ppt成品免费下载的网站有哪些)
-
1、Chuangkit(chuangkit.com)直达地址:chuangkit.com2、Woodo幻灯片(woodo.cn)直达链接:woodo.cn3、OfficePlus(officeplu...
- 2025世界杯赛程表(2025世界杯在哪个国家)
-
2022年卡塔尔世界杯赛程公布,全部比赛在卡塔尔境内8座球场举行,2022年,决赛阶段球队全部确定。揭幕战于当地时间11月20日19时进行,由东道主卡塔尔对阵厄瓜多尔,决赛于当地时间12月18日...
- 下载搜狐视频电视剧(搜狐电视剧下载安装)
-
搜狐视频APP下载好的视频想要导出到手机相册里方法如下1、打开手机搜狐视频软件,进入搜狐视频后我们点击右上角的“查找”,找到自已喜欢的视频。2、在“浏览器页面搜索”窗口中,输入要下载的视频的名称,然后...
- 永久免费听歌网站(丫丫音乐网)
-
可以到《我爱音乐网》《好听音乐网》《一听音乐网》《YYMP3音乐网》还可以到《九天音乐网》永久免费听歌软件有酷狗音乐和天猫精灵,以前要跳舞经常要下载舞曲,我从QQ上找不到舞曲下载就从酷狗音乐上找,大多...
- 音乐格式转换mp3软件(音乐格式转换器免费版)
-
有两种方法:方法一在手机上操作:1、进入手机中的文件管理。2、在其中选择“音乐”,将显示出手机中的全部音乐。3、点击“全选”,选中所有音乐文件。4、点击屏幕右下方的省略号图标,在弹出菜单中选择“...
- 电子书txt下载(免费的最全的小说阅读器)
-
1.Z-library里面收录了近千万本电子书籍,需求量大。2.苦瓜书盘没有广告,不需要账号注册,使用起来非常简单,直接搜索预览下载即可。3.鸠摩搜书整体风格简洁清晰,书籍资源丰富。4.亚马逊图书书籍...
- 最好免费观看高清电影(播放免费的最好看的电影)
-
在目前的网上选择中,IMDb(互联网电影数据库)被认为是最全的电影网站之一。这个网站提供了各种类型的电影和电视节目的海量信息,包括剧情介绍、演员表、评价、评论等。其还提供了有关电影制作背后的详细信息,...
- 孤单枪手2简体中文版(孤单枪手2简体中文版官方下载)
-
要将《孤胆枪手2》游戏的征兵秘籍切换为中文,您可以按照以下步骤进行操作:首先,打开游戏设置选项,通常可以在游戏主菜单或游戏内部找到。然后,寻找语言选项或界面选项,点击进入。在语言选项中,选择中文作为游...
欢迎 你 发表评论:
- 一周热门
-
-
抖音上好看的小姐姐,Python给你都下载了
-
全网最简单易懂!495页Python漫画教程,高清PDF版免费下载
-
飞牛NAS部署TVGate Docker项目,实现内网一键转发、代理、jx
-
win7系统还原步骤图解(win7还原电脑系统的步骤)
-
Python 3.14 的 UUIDv6/v7/v8 上新,别再用 uuid4 () 啦!
-
python入门到脱坑 输入与输出—str()函数
-
16949认证费用是多少(16949审核员太难考了)
-
linux软件(linux软件图标)
-
Python三目运算基础与进阶_python三目运算符判断三个变量
-
windows7旗舰版多少钱(win7旗舰版要多少钱)
-
- 最近发表
- 标签列表
-
- python计时 (73)
- python安装路径 (56)
- python类型转换 (93)
- python进度条 (67)
- python吧 (67)
- python的for循环 (65)
- python格式化字符串 (61)
- python静态方法 (57)
- python列表切片 (59)
- python面向对象编程 (60)
- python 代码加密 (65)
- python串口编程 (77)
- python封装 (57)
- python写入txt (66)
- python读取文件夹下所有文件 (59)
- python操作mysql数据库 (66)
- python获取列表的长度 (64)
- python接口 (63)
- python调用函数 (57)
- python多态 (60)
- python匿名函数 (59)
- python打印九九乘法表 (65)
- python赋值 (62)
- python异常 (69)
- python元祖 (57)
