首页 > 编程知识 正文

arcpy之python介绍(arrPython)

时间:2023-12-20 12:40:58 阅读:318276 作者:PBMG

本文目录一览:

怎样使用 python arcpy 根据属性选择要素

SQL语句存在问题,参见下图示例代码:

SQL语句最外层由双引号包含,然后是相应sql语句。

另外,对于文件存放位置也有要求:

最后,是我自己的测试,图层文件(layer)位于文件夹,不在数据库中:

如何用python读取arcgis中shapefile文件的属性表

可以用arcpy模块中的SearchCursor读取shp的属性表。

Python(英语发音:/ˈpaɪθən/), 是一种面向对象、解释型计算机程序设计语言,由Guido van Rossum于1989年发明,第一个公开发行版发行于1991年。

Python是纯粹的自由软件, 源代码和解释器CPython遵循 GPL(GNU General Public License)协议。

ESRI公司的Shapefile文件是描述空间数据的几何和属性特征的非拓扑实体矢量数据结构的一种格式。

一个Shapefile文件最少包括三个文件:

主文件(*.shp)、--存储地理要素的几何图形的文件。

索引文件(*.shx)、--存储图形要素与属性信息索引的文件。

dBASE表文件(*.dbf),--存储要素信息属性的dBase表文件。

怎么用python开发arcgis

在Pyhton写的一些代码,用户交互不方便,用户体验比较差,不方便重用。在ArcGIS中可以将用写的Python代码导入到ToolBox中,这样用起来就比较方便了。这里用按要素裁剪栅格的Python来演示如何导入ArcGIS中。代码如下:

import sys

reload(sys)

sys.setdefaultencoding( "utf-8" )

import arcpy

import string

from arcpy.sa import *

try:

raster = arcpy.GetParameterAsText(0) #要裁剪的栅格

clip_feat = arcpy.GetParameterAsText(1) #裁剪要素类

field = arcpy.GetParameterAsText(2) #命名字段

outworkspace = arcpy.GetParameterAsText(3) #命名字段裁剪后输出目录

for row in arcpy.SearchCursor(clip_feat):

mask=row.getValue("Shape")

outPath=outworkspace+"\"+str(row.getValue(field))

outExtractByMask = ExtractByMask(raster,mask)

outExtractByMask.save(outPath)

except arcpy.ExecuteError:

print arcpy.GetMessages()

在用户工具箱中新建工具箱(在系统工具箱中不能新建),在工具箱右键,添加脚本;

输入名称、标签、描述等信息。下一步,选择脚本文件。(这里需要注意的是:一定要勾选"存储相对路径名"这个选项)

设置参数,这是最重要的一步。其中参数即代码中GetParameterAsText(n),并选择合适的数据类型,在参数属性中也可以进行相关设置。如果输出栅格名称按裁剪要素中的某个字段,需要设置"获取息"属性,还要进行过滤一下。

设置好一切参数过后,就可以来进行测试了。在本机上测试通!

接下来便是怎样移植到其他电脑了的问题了。前面我说说过要存储为相对路径,否则,将报错00576:脚本工具使用的脚本未处于所需位置。创建脚本工具时,有一个选项用于存储相对路径名(而不是绝对路径名)。设置此选项后,脚本的相对位置和保存脚本工具的工具箱必须保持不变。执行工具时移动两者中的任何一个都会出现此错误。

但改为相对路径后,在其他电脑上也能正常运行,但弹出了警告窗口。原因是客户机上没有勾选扩展模块相应的功能。这个示例需要勾选空间分析模板,因为使用了按掩膜提取这个工具。这个脚本实现的详情参考:使用Python脚本批量裁切栅格

发布给他人,涉及到个人知识产权的问题,怎样让他人使用工具,又不能看到脚本代码?如果编辑调试完成了,在脚本工具右键可导入脚本。

设置密码后,即可。

ArcGIS 应用Python中arcpy模块

涉及到读取要素属性内容其实就是访问要素,要用到arcpy.da里的seachcursor方法,也就是arcpy里的游标,seachcursor将要素图层所有要素(若有选择会只对选择部分起效)返回游标,利用for in 循环可以遍历每一个要素,利用row[0....n]的就可以读取各个要素的字段0一直到字段n的属性值。

python调用 arcpy

你好,请使用栅格计算器,

在空间分析工具箱,

地图代数,

栅格计算器。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。