Python语言的基本情况python和Arcpy编程.doc

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Python语言的基本情况python和Arcpy编程
python语言的基本情况Python和arcpy编程简介Python简介ArcPy简介开发示例Python简介Python是一种面向对象的脚本语言,由荷兰GuidovanRossum于20世纪80年代后期构思并于2000年推出。

Python编程语言继承了传统编译语言的功能和通用性,同时也从脚本和解释语言的易用性中吸取了教训。

目前,Python已经广泛应用于科学计算、网站开发、系统管理等领域。

它被TIOBE编程语言排行榜评为年度编程语言。

有几个版本的Python集成到了ArcGIS中。

Python版本是。

特性Python有以下特性:开源。

Python完全开源的用户可以询问Python网站。

Python文档中的模块列表主要是内部的:系统模块系统在这里是指Python系统,而不是操作系统。

os模块和ospath模块定义了一组与目录操作相关的功能。

ospath模块是os模块的一个属性,在os模块加载时会自动加载。

字符串模块:字符串模块用于操作字符串。

字符串模块中的许多函数被设计为字符串对象。

数学模块:包含大量数学函数。

随机模块:用于生成不同分布的随机数,包括生成一定数值范围内的随机数、随机选择序列中的元素、随机抽样序列、随机排列序列中的元素等。

Urllib模块:用于打开和复制url表示的网络对象。

Re模块:re(正则表达式)是由字符和特殊符号组成的字符串。

re模块基于正则表达式为字符串操作提供多个字符串匹配函数,例如find 、分离和替换。

函数解释url打开(URL,数据)打开由URL表示的网络对象也可以打开本地文件。

网址检索(网址、文件名、报告挂钩)将网址表示的网络对象复制到本地文件。

importurlliburlretrieve()URL模块的主要功能是importurllibwebfile = URL liburopen(web file = URL liburopen(URL)S = web file read()ls = refin Dall(http:,S) Forlins: printlwebfileclose()仅显示主页地址(即不包括开头http:和结尾之间带有、和符号的字符串)。

该符号表示除方括号中列出的字符集之外的其他字符集。

仅显示主页地址的外部模块是指python软件中不包含的模块。

要调用外部模块,首先需要将外部模块复制到查找路径。

外部模块通常集成到包中。

包通常放在libsitepackages文件夹下。

通用python软件包:用于阵列操作的NumPy。

SciPy数值计算库。

符号运算。

Matplotlib制图TVTK 3D可视化Vpython 3D动画OpenCV
图像处理和计算机视觉IMPORTMATPLOTLIB PYPLOTASPTX =,,,,,,,,PLTPOT (X,Y)pltshow()使用matplotlib python制图的示例介绍ArcPy简介开发示例Pythonaddins什么是ArcPyArcPy ESRI 公司在ArcGIS中推出的Python包。

安装后,ArcGISDesktop在安装目录下有一个arcpy文件夹。

ArcPy包含Python函数、类和模块。

ArcGIS的函数、类、模块(每个模块包含多个函数和类)。

实际上,ArcPy封装了与ArcObjects相关的类,因此用户可以使用Python语言调用与ArcObjects相关的类。

ArcPy提供的功能:可以访问所有地面处理工具、数据转换和数据管理、数据分析和自动制图。

Python和ArcPy可用于开发大量用于处理地理数据的实用程序。

在ArcGIS的帮助文档(地理处理)中详细描述了ArcPy,包括ArcPy的函数、类和数据访问模块、映射模块、空间分析模块、地质统计分析模块和时间模块。

同一个目录中的Python介绍了如何使用Python和ArcPy来执行各种处理。

ArcPy帮助文档ArcPy函数ArcPy按类型提供许多函数,包括:环境设置、获取和设置工具参数、信息和错误处理、工具和工具箱等。

这些功能可以在ArcGIS中使用,有助于了解其具体用途(地理处理和制图)。

ArcPy函数列表函数数据列表函数数据列表函数的详细信
息用于返回当前工作区的数据列表和数据集中的字段、索引列表。

其中数据列表可以指定数据类型,字段列表可以通过使用通配符来限制列表数据来指定字段类型。

工作区可以是文件夹或数据库。

函数解释器列表文件(通配符)返回当前工作区中的文件列表。

列表数据集(通配符、要素类型)返回当前工作区中的数据集列表。

列表要素类(通配符,要素类型)返回当前工作区中的要素类列表。

列表栅格(通配符,rastertype)返回当前工作空间中的栅格数据列表。

ListTables(通配符,Tabletype)返回当前工作区中的表数据列表。

ListWorkspacees(通配符,工作空间类型)返回当前工作空间中的工作空间列表。

Listfields(数据集,{通配符},{fieldtype})返回数据集中的字段列表。

列表索引(数据集,{通配符})返回数据集中的索引列表。

列表版本(sdeworkspace)返回版本列表。

数据列表功能ArcGIS支持的字段类型有:importerCyFromMarcheimportenWorkSpace = C:DataUsafcs =
ArcpylistFeatureClass()Forcinfcs:print fc显示指定文件夹中的所有要素类importerCyfds = ArcpylistFields(C:Datausstateshp,,String)Fordinfds:print fdname显示状态的所有字符串字段名称ArcPy 类ArcPy当前已定义了几个类,包括:envSpatialReferenceCursor和行几何对象类(包括点几何、多点、折线= 0)
有三种类型:search、insert和update分别用于查询表数据、insert和update。

行对象表示表数据中的记录可以通过游标对象的迭代获得。

游标对象方法游标类型方法解释搜索下一行()返回当前位置的下一行对象重置()返回第一个位置的行对象插入新行()生成空行对象插入行(行)插入新行对象下一个()重置()到游标更新删除行(行)删除行对象更新行(行)使用行更新当前对象下一个()重置()方法解释获取值(字段名)或字段名以获取字段值设置值(字段名,对象)将字段值设置为(fieldname)字段值设置为(fieldname)将字段值设置为行对象方法importercpyfromcpyimportennvworkspace = c:data uscure = arcpysearch cursor(state HP)Forrowing:printrowstatename,rowpop打印每个状态的名称,而人口几何对象则支持点、多点、线和折线等几何类型。

点几何类型的记录只有一个点,而多点几何类型的记录可以由多个点组成。

折线和多边形几何类型中的记录可以由多个部分组成,每个部分都由点组成。

ArcPy中的几何对象类包括点几何、多点、折线、多边形和几何,其中几何是其他类的父类。

与几何对象相关的类:点类和数组类。

点不是几何对象类,但所有几何对象都是基于点对象构建的。

所有几何对象的坐标值也通过点对象读取。

生成点对象的语法:点({X}、{Y}、{M}、{Z}、{ID})默认情况下,X、Y,ID为M,Z为无。

数组是一个数组对象,它可以包含任意数量的点对象和其他对象(如数组对象、空间引用对象等)。

)。

add、append、remove等方法用于构造由多个点组成的几何对象。

语法解释点几何(输入,{空间参考}、{hasz}、{hasm})生成点几何对象。

Inputs是生成对象的坐标数据类型,PointsspatialReference 是空间参考对象hasZ,hasM是布尔对象,指示是否支持z和m值。

多点(输入、{空间参考}、{hasz}、{hasm})生成多点几何对象。

输入数据类型为点或数组。

其他参数与点几何相同。

折线(输入、{空间参考}、{hasz}、{hasm})生成线几何对象。

参数同上。

多边形(输入,{空间参考}、{hasz}、{hasm})生成多边形几何对象。

参数同上。

几何(几何、输入、{空间参考}、{hasz}、{hasm})几何是几何类型(点、多边形、折线或多点)其他参数同上。

创建点、多点、线和面几何对象函数使用复制要素工具将几何对象或几何对象列表写入要素类。

copyFeaturesManagement(in captures,outfeatureclass,{configkeyword},{spatialgrid},{spatialgrid})生成点要素类()land useid = land use = x = y = input file = open(c:data samplest XT,r)for input file:L = split,、LANDuseIDappend(L)land useappend(L)xappend(L)yap pend(L)RecordNum = len(land use)inputfileclose()importRcpyCreateFeaturesPython编程基础知识概述ArcPy开发示例简介Pythona ddins Python和ArcPy编程的主要目的:批处理构建工作流新工具批处理大多数工具的ArcGIS数据处理是输入一个数据,然后输出一个数据。

不能对多个数据进行相同或不同的处理(不同的参数)。

批处理是对多个数据进行相同的处理,对同一数据进行不同的处理(不同的参数)。

示例1:对一个文件夹中的数据(要素类)执行批量切割(裁剪)。

输出数据存储在另一个文件夹中。

每个数据的名称是剪辑加上原始数据的文件名。

函数参数ClipAnalYSiS(in features,clippeatures,outfeatureclass,{clustertolerance})输入要素类clipfeatures: cut要素类outfeatureclass: output要素类cluster tolerance:tolerance clippefunction
clip函数图importerfrommarkimportenworkspace = c:Data input clip Feature = c:Dataclipfea tureshPFCs = ArcPylistFeatureClasses()for cinfcs:OEatureRecesss = c:DataoutputClipFactorPyClipAnalYSiS(fc,ClipFeature,OEature Recesss)批处理切割操作示例2每次输入数据拆分后生成的多个数据存储在新文件夹中;文件夹名是输入数据的文件名(不包括扩展名)。

功能参数分割分析(Infeatures,split features,split field,splitfield,split field,split field,split field,split field,outworkspace,splitfeatures,output workspace,output workspace,output workspace,output,output workspace,split,outworkspace)输入要素类分割要素:分割要素类分割字段:分割字段outworkspace,output,output workspace,output,split,output,Split,output,Split,output,Split,osm dir(path)ArcPysplitanalysis
设置不同的公差参数,得到不同简化程度的海岸线。

计算每个输出海岸线的顶点数量和线长度,并与原始数据的顶点数量和线长度进行比较。

设置精度阈值,以确定满足精度要求的结果、最高数据压缩率。

简化线操作的原理图函数参数为simplifyLine(在要素、输出要素类、算法、容差、{errorprovingoption}、{collapse edpointtopic}、{errorcheckingoption})在要素:输入要素类输出要素类:输出要素类算法:简化算法点移除和弯曲简化。

公差:公差错误解决选项:拓扑错误的处理折叠点选项:零长度线是否保存为点数据。

错误检查:检查拓扑错误简化线工具函数IMPORTARCPYfroMARCPYIMPORTARCYIMPORTARPYMACHATI CATIASENVEWORKSPACE = C:DataOrrinRange,:tolerance = r * output = C:datatmpstr(tolerance)ShpCAsImplifyline(海岸线HP,输出,点移除,容差)cur = arcpySearchCursor(输出,)ForRowBound:GeometricToPointCountGeometryGengthDelcur,RowSet a容差(km、km、km和km)输出
importrcpyfromarcpyimportenimportercpycartographyaskaenvworkspace = C:data cur = arcpySearchCursor(海岸线hp),forrowing:Geometry = rowShapeCostLinePointS = GeometryEngthPrintCostCoraptSprintCostCostCostLength计算原始海岸线的数量和长度Accu racy = I = while精确:I = itolerance = I * output = ArcpyCreateUniqueName(C:datatmptoleranceshp)CasImplifiLine(海岸线hp,output,POINTREMOVE,
为了建立工作流工作流,工作流由多个处理工具组成。

一个工具的输出可以作为另一个工具的输入,从而可以通过一个工作流来实现最初需要使用多个工具来实现的工作。

工作流程将生成一些临时(中间)文件。

通常,这些临时文件需要在程序结束时删除。

例1:道路两侧的植被分析。

道路由缓冲工具缓冲和分析。

通过剪辑工具用道路缓冲区范围剪切植被地图。

使用汇总统计工具对砍伐的植被进行统计(按植被类型计算面积)。

函数参数statisticanalysis (intable,outtable,statisticfields,{casefield}) intable:输入表可以是要素类。

Outtable:输出表。

统计字段:统计字段的参数类型为复合列表。

子列表有两个元素。

可用的统计类型包括总和、平均值、最大值、最小值等。

案例字段:分组字段。

statisticsananalysis tool function importercopyfrommarcpyimportenworkspace = c:data input load = majordsshbuf = VEGE = VEGETYPESPOSPTFIELD = shapearea,sum,shape area。

MaxCaseField = HollandOutput = C:DataTMpstatscratchName = ArcPyCreateCratchName(xxxx,Shapefile,C:data)ArcPyBufferAnalanalysis(InputTroad,scratchName,buf)CratchName = ArcPyCreateCratchName(xxxx,Shapefile,C:data)arcpyClipanalysis(vege,CratchName,CratchName)ArcPyStatisticsAnalanalysis(CratchName,输出,statField,案例字段)ArcPyDeleteManagEment(CratchName)ArcPyDeleteManagEment(Cr
atchName)两者上的植被分析
状态类型字符串中的过滤器参数属性选择值列表并设置列表值,如总和、平均值、最大值、最小值等。

从案例字段中获取参数属性选择输入设备输出表格工具对话框参数设置示例2:分析米内没有公园分布的区域(考虑不能直接通过河流的障碍物等。

)。

空间分析工具箱提供了基于栅格的距离计算工具输出数据的栅格值表示以及到最近目标的距离,其中欧几里德距离计算栅格和目标成本之间的欧几里德距离距离计算栅格和目标之间的成本距离(即考虑通过不同栅格时的成本)。

使用成本距离工具时,有必要使用成本栅格(费用栅格数据)。

该数据的栅格值表示通过该栅格的费用空值表示不能通过(即障碍物)。

函数参数成本距离(INSOURCEDATA,INCOSTRATER,{最大距离},{ OUTBACKLINKSTRADER })INSOURCEDATA:输入数据INCOSTRATER:成本网格指示网格是否可以通过,或者网格的成本空值指示它不能通过。

成本距离工具功能步骤(首先,生成成本网格,并将河流覆盖区域的其他区域的网格值设置为空值):河流多边形到网格(多边形到网格)河流覆盖网格为非空值,其他网格为空值。

使用“是”工具将空值转换为非空值。

使用设置工具将(河流覆盖区域)设置为空值。

每个网格和公园之间的距离是使用成本距离(INCOSTER)工具计算的。

INCOSTER是具有空值(河流覆盖率)的网格数据。

使用“控制”工具将网格的距离设置为大于到。

函数描述黄精转换(in features,valuefield,outlastedataset,{cellassignment},{priorityfield},{ cell size })in features:输入要素类value field:value field outlastedataset:输出栅格数据集is (inlast) inlast:输入栅格。

此函数返回一个栅格、输入栅格、空值(无数据)栅格和其他非空栅格,设置(不兼容、无条件输入栅格数据、无条件输入栅格数据、无条件输入栅格数据、无条件输入栅格数据、无条件输入栅格数据、无条件输入栅格数据、无条件输入栅格数据、无条件输入栅格数据、无条件输入栅格数据、无条件输入栅格数据、无条件输入栅格数据、无条件输入栅格数据、无条件输入栅格数据、无条件输入栅格数据。

conn(in conditional Raster,intruerasterorconstant,{ infalserasterorconstant },{ WHERE子句}) Inconditionalraster:输入栅格:栅格或常量(用于为符合表达式的栅格赋值)in ruerasterorconstant:栅格或常量(用于为不符合表达式的栅格赋值)WHERE子句:空间分析工具函数importarcp与SQL表达式相关的函数从arcpysaimport * arcpyCheckOutExtension(空间)env workspace = C:data desc = arcpy 数值)结果保存(c:DataTMpresent)ArcpyDeleteManagEment(Sname)对稻田范围内无公园分布区域的结果分析(考虑河流等不能直接通过的障
碍物)示例3:在土地利用分类图上随机生成几个采样点,并将分类图上相应栅格的值与点数据相加以进行精度分析。

使用创建随机组合管理工具生成随机点。

通过使用外向点或外向点工具,将相应栅格的值添加到点数据中。

前者将相应栅格的值添加到新生成的点要素类,而后者将相应栅格的值添加到输入点要素类。

函数描述create rand components management(outpath、outname、{restrainingfeatureclass}、{restrainingextend}、{numberofpointsforfield}、{ minimumloweddistance }、{ createmultipointoutput }、{multipoint size}) outpath:输出路径。

Outname:输出文件名。

约束要素类:用于限制随机点范围的要素类。

限制:限制范围。

点域:点域或点域。

最小允许状态。

创建多点输出:点或多点。

多点大小:多点几何对象中的最大点数。

CreateRandomPointsmanagement工具函数描述点要素中的点外要素(点要素、主要素、点要素、{插值计算}、{addattributes})点要素:输入点要素类。

输入栅格参数类型是复合列表子列表。

有两个因素。

前一个元素是栅格名称,后一个元素是栅格值添加到点数据时添加的字段名
称。

输出点要素:输出点要素类。

插值求值:设置插值NONE是否用于指示不需要插值;插值表示使用插值。

Addattributes:将添加到输出要素类的栅格属性值V ALUEONLY设置为仅增加值ALL以增加所有值。

outsidaluestopoints工具函数描述outsidaluestopoints(in point features,inrasters,{ bilaminarinterpositionvalues })in point features:输入要素类。

输入栅格参数类型是复合列表子列表。

有两个因素。

前一个元素是栅格名称,后一个元素是栅格值添加到点数据时添加的字段名称。

双线性插值评估:是否使用插值。

提取多值点工具函数IMPORTARCPYfroMARCPYIMPORTANICOPYSAIMORT * ARCPYCHECKOUTTEXTENSION(SPACIAL)env workspace = C:data spatialext = ARCpydescript(landuse)EXTETArCPYCreaterAndCompountManageme nt(C:data SPATIAL、samplepoints、ext、)提取值停止点(samplepoints shp、land use、newsampleshp、interrelate、all)。

相关文档
最新文档