百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术资源 > 正文

ArcGIS 一个独立运行的Python程序编写和打包

off999 2024-09-18 22:38 46 浏览 0 评论

  1. 写代码

#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. 设置参数,过滤器 ,在工具右键属性→参数标签页,找到面图层,如图1-14所示,下面过滤器,设置面参数的要素过滤器,如图1-15所示。

图1-14 参数设置

图1-15 参数设置

在图1-14上面参数选择“字段”,下面参数属性“获取自”取“面图层”, 如图1-16所示。过滤器中字段,设置双精度,如图1-17所示

图1-16 要素类过滤器设置面要素

图1-17 字段过滤器设置双精度

  1. 发布考虑版本,如1-18所示,可以另存为其他低版本,但不要使用低版本没有的工具。

图1-18 工具箱版本另存

  1. 导入脚本,如图1-19所示。

图1-19 工具箱中工具导入脚本

导入脚本后,就不需要外部.py文件,不然需要一块拷贝,不拷贝对应文件,运行工具失败,如图1-20所示,同时需要设置成相对路径,如图1-21所示。导入脚本,需要源代码,虽然可以修改,但不太方便。

图1-20 工具箱中工具没有导入脚本运行错误

图1-21 工具箱中设置相对路径

  1. 设置密码

设置密码如图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

容器,例如地理数据库或文件夹。

参数属性说明

  1. 参数Type 选项
  • Required必选 - 必须提供具体值才能执行工具。
  • Optional可选 - 不需要为参数提供值。
  • Derived派生 - 该参数只适用于输出参数(请参阅下文的方向参数)。派生的输出参数不会显示在工具对话框中。
  1. 参数方向(direction)选项
  • Input输入参数
  • Output输出参数
  1. Multivalued多值,false是只能输入一个,True可以输入多个

输入要素图层多值如图1-23所示:

图1-23 输入要素多值界面

如果是字段,多值界面如图1-24所示。

图1-24 字段多值界面

1.7.3 过滤器

存在六种类型的参数过滤器。使用何种类型的过滤器由参数的数据类型决定。

  1. 值列表 - 预定义关键字列表。 用于字符串,如图1-25所示。

图1-25 字符串的值列表设置

  1. 范围 - 有效数值的范围。包括范围边界值,这表示最小值和最大值也是有效数据。 用于数字,如图1-26所示。

图1-26 整数的范围设置

  1. 要素类 - 允许的要素类的类型列表:点、多点、折线 (polyline)、面、多面体 (multipatch)、注记和维度,如图1-27所示。

图1-27 要素类过滤器

  1. 文件 - 有效文件扩展名列表,如 .txt(简单文本文件)或 .csv(分割符是分号”;”。 不用加“.” 文件扩展说明,如图1-28所示。

图1-28 文件过滤器设置

  1. 字段 - 允许的字段类型列表:短整型、长整型、单精度、双精度、文本、日期、OID、几何、BLOB、栅格、、GUID、全局 ID 和 XML,如图1-29所示。

图1-29 字段过滤器设置

  1. 工作空间 - 模型参数所允许的工作空间类型,如图1-30所示。

图1-30 工作空间滤器设置

arcpy开发缺点

  1. 界面定制依靠ArcGIS平台,不够灵活。
  2. 鼠标交互,如没有事件mousemove,mousedown,mouseup,很不方便。
  3. arcpy很多接口没有开发,不像arcengine丰富,只能做一些简单,弱开发,只适合于批量数据处理,不合适于大项目,只能作为大项目辅助开发方式。
  4. 汉字乱码问题比较多,使用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类型。

相关推荐

键盘的windows键是哪一个(键盘上windows键是哪个键)
键盘的windows键是哪一个(键盘上windows键是哪个键)

windows键就是电脑键盘上ctrl键和alt键之间的按键,位于左下角。它带着微软的徽标,跟开始菜单一样的图标,它属于辅助按键,主要与其它按键组合使用,实现一些特定的功能,组合成多种快捷操作方式。这里上面所知的Win键其实就是键盘上的Wi...

2025-12-31 10:51 off999

win10打开设置快捷键(win10打开设置快捷键是什么)

1、首先打开电脑,在任务栏的语言地方点击一下再点击语言首选项。2、然后在新的界面里点击选择左侧“高级设置”按钮。3、之后在新的界面里点击选择“更改语言栏热键”按钮。4、然后在新的界面里点击选择“更改热...

flash插件下载手机版下载安装

华为手机的最新系统版本已经不再支持FlashPlayer,这是由于Adobe已于2020年底停止更新和支持FlashPlayer。因此,如果您使用最新的华为手机系统,可能无法安装和使用Flash...

官方应用商店下载(小米官方应用商店下载)

1.审核和验证:应用商店会对应用进行审核和验证,确保其质量和可靠性。开发者需要满足一定的要求才能在应用商店上架应用。而官网下载的应用没有经过此类审核和验证,因此用户需要自行评估其质量和可信度。2....

主题软件免费(主题软件免费推荐)

下载主题方法:一、打开手机找到APPStore应用软件,二、点击进去在下面找到有个搜索,点击它查找主题壁纸,三、弹出来很多主题壁纸,根据下载量和个人喜欢的应用主题选择下载相应的主题,四、下载成功后即...

一芯fc1178bc盘量产教程(一芯量产工具使用教程)

fc1178bc量产工具没有显示u盘拔下U盘,关闭量产工具,再插上U盘(先要确认卸载了安国的驱动,如果不能确认,运行LoadDriver.exe卸载),然后插上U盘,右键我的电脑---属性---硬件-...

电脑怎么样还原原来的系统(电脑怎么还原之前的系统版本)
  • 电脑怎么样还原原来的系统(电脑怎么还原之前的系统版本)
  • 电脑怎么样还原原来的系统(电脑怎么还原之前的系统版本)
  • 电脑怎么样还原原来的系统(电脑怎么还原之前的系统版本)
  • 电脑怎么样还原原来的系统(电脑怎么还原之前的系统版本)
u盘内文件损坏怎么办(u盘内文件损坏怎么办解决)

以下是8种修复U盘文件损坏的方法:1.风险自担型:试图直接复制文件如果U盘的部分文件损坏,您可能可以使用此方法。请复制文件您能打开的所有文件,并尝试将它们粘贴到桌面或其他文件夹中。但是请...

internet explorer怎么更新(22号天蝎座的运势)

1、打开IE浏览器。2、点击位于浏览器窗口的右上角的功能按钮。3、点击关于InternetExplorer。它位于下拉菜单的底部。4、勾选“自动安装新版本”复选框。它位于“关于Internet...

snapseed(snapseed手机修图软件免费版)

Snapseed是一款非常流行的手机修图工具,下面是Snapseed工具最全教程:1.打开照片:打开Snapseed,点击左上角的“打开”按钮,选择需要修图的照片。2.自动增强:点击屏幕左下角的“...

canon佳能打印机驱动下载(下载佳能打印机驱动程序)

打开开始菜单,选择运行。输入gpedit.msc,并确定。选择左边“windows设置”,右边鼠标左键双击“安全设置”。选择策略在选择安全选项再鼠标左键双击“设备:防止用户安装打印机驱动程序”。选择已...

爱思助手安卓版下载(爱思助手安卓版下载v1.21.03)

容易造成系统的崩溃在爱思助手中安装的软件都打不开或者发生闪退,很容易造成系统的崩溃需要重新刷机,所以一般不太推荐使用爱思助手。爱思助手上下载正版软件不需要AppleID,这是为了方便不会注册的用户,但...

微软拼音输入法app(微软拼音输入法App下载)
微软拼音输入法app(微软拼音输入法App下载)

1、选择微软拼音输入法的图标,点击鼠标右键,出现菜单后选择设置选项。2、在高级里把美式键盘改为微软拼音输入法,然后点击右下角的属性按钮。3、点击逐键提示选项后,选择确定按钮,在后面出现对话框中点击应用即可。微软拼音输入法是一种基于语句的智能...

2025-12-31 04:51 off999

win10怎么更新蓝牙驱动(win10 更新蓝牙驱动)

1.电脑桌面,右键【此电脑】,点击【属性】。2.然后点击【设备管理器】。3.然后展开【蓝牙】。4.然后鼠标右键【Bluetooth】,点击【更新驱动程序(P)】。5.选择一种方式更新驱动,更新完驱动就...

360免费升级正版win10(360 win10免费升级)

  XP无法直接升级到Windows10.  能否升级还需要看硬件配置是否达标。如果达标可以通过以下方法来安装。  1、去系统网站下载win10镜像文件。  2、使用软碟通软件把镜像文件里面的gho....

取消回复欢迎 发表评论: