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

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

off999 2024-09-18 22:38 40 浏览 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类型。

相关推荐

兄弟打印机怎么连接wifi(兄弟打印机怎么连接wifi手机打印)
  • 兄弟打印机怎么连接wifi(兄弟打印机怎么连接wifi手机打印)
  • 兄弟打印机怎么连接wifi(兄弟打印机怎么连接wifi手机打印)
  • 兄弟打印机怎么连接wifi(兄弟打印机怎么连接wifi手机打印)
  • 兄弟打印机怎么连接wifi(兄弟打印机怎么连接wifi手机打印)
uefi模式下找不到硬盘(uefi引导找不到硬盘)

首先你的安装盘必须是从UEFI启动的,然后它才能安装为UEFI启动。(条件:Fat32文件系统,efi文件夹)其次你MBR+BIOS的系统想换成GPT+EFI的,分区得做一点改动,腾出来100M的空...

win7怎么安装蓝牙驱动程序(win7电脑安装蓝牙驱动教程)

方法如下:  1、再开始里点击控制版面,点击【硬件和声音】找到【添加设备】  2、之后再选择你要添加的蓝牙耳机。  3、系统就会提示正在与蓝牙适配器连接,然后提示添加成功。  4、点击“开始”-“...

怎么装系统win7旗舰版(电脑怎么装win7旗舰版)

1、目前支持64位的Wincc版本有:WinccV7Sp3、WinccV11Sp2、WinccV12。2、Wincc的V11与V12两个版本不能共存,即不能同时安装在同一台电脑上。上述这两...

u盘恢复工具免费版(u盘文件恢复工具免费版)
  • u盘恢复工具免费版(u盘文件恢复工具免费版)
  • u盘恢复工具免费版(u盘文件恢复工具免费版)
  • u盘恢复工具免费版(u盘文件恢复工具免费版)
  • u盘恢复工具免费版(u盘文件恢复工具免费版)
qq特别关心查询入口电脑版(电脑版qq特别关心网站登录)
  • qq特别关心查询入口电脑版(电脑版qq特别关心网站登录)
  • qq特别关心查询入口电脑版(电脑版qq特别关心网站登录)
  • qq特别关心查询入口电脑版(电脑版qq特别关心网站登录)
  • qq特别关心查询入口电脑版(电脑版qq特别关心网站登录)
怎样恢复桌面图标原样(怎样恢复桌面图标原样显示)

桌面图标恢复原样步骤方法如下:1.右键点击图标、并点击‘属性’两字,再点击‘打开文件位置‘2.然后找到文件所在的位置,然后暂时将文件在一旁放着3.然后再去点击‘更换图标’这四个字,找到刚刚打开的文件...

消除u盘写保护(怎么解除u盘写保护)

如果您的U盘启用了写保护功能,可以尝试以下几种方法来解除写保护:1.检查U盘上的物理写保护开关:部分U盘有一个物理的写保护开关,可以在U盘的外壳上找到。请确保开关处于非写保护状态。2.使用CMD命...

microsoft国际版(微软国际版bing)

win10系统自带的edge浏览器不分国内版和国际版。搜索引擎Bing分为国内版和国际版,区别如下一、迎合不同人群的需求。国际版显得更加个性,他迎合了不同人群的需求,在收缩上更加方便化和智能化,后期可...

为什么格式化sd卡后不能用了

SD卡受损后不格式化直接修复的方法:1,当系统发现SD卡受损之后,会提示进行格式化。2,把SD卡插入读卡器,接到电脑USB后,电脑提示格式化,点取消。然后查看一下属性。直接使用属性中的工具-开始检查...

c盘删除的东西能恢复吗(c盘删掉的东西还在吗)

    1.重新安装。  如果是安装在c盘下的普通应用程序,重新下载安装即可;  2.备份恢复或重装系统。  如果是删除了系统文件,在系统备过份且知道删除...

电脑如何重装系统winxp(电脑如何重装xp系统教程)

重装XP系统的步骤如下:1.首先备份您的重要文件和数据。2.插入XP系统安装光盘,重新启动计算机。3.在启动时按下计算机制造商指定的键(通常是F2、F12、Esc等)进入BIOS设置或启动菜单。...

win8密钥永久激活工具(win8密钥永久激活工具在哪)

win8.1正式版升级win10,自动激活,win8.1的密钥不能激活win10,升级win10正式版以后,无论怎么安装win10,系统都是自动激活状态。终极PID检测产品密钥:GCRJD...

制作系统安装u盘教程(制作系统安装盘及系统安装的步骤)

答u盘做系统详细步骤如下:  1.首先我们要准备一个10G内存的空白u盘,然后在装机吧官网下载一个装机吧一键重装系统软件,安装完成后打开软件,制作模式选择”USB-HDD“分区格式为”NTFS“点击...

联想win7怎么进入bios设置(联想win7进入bios设置win10)
联想win7怎么进入bios设置(联想win7进入bios设置win10)

联想电脑win7进入bios设置的具体步骤如下: 1、首先我们打开电脑的同时,按下键盘上的“F2”。2、然后我们在弹出来的窗口中就可以进入到BIOS界面中。3、然后我们按下键盘上的“F10”,之后回车确定即可退出。联想电脑win7...

2025-11-09 14:03 off999

取消回复欢迎 发表评论: