ArcGis Python代码 使用图文(菜鸟飞吧!)
- 格式:doc
- 大小:54.50 KB
- 文档页数:1
pythnon语句arcgis生成点要在ArcGIS中使用Python生成点,您需要使用ArcPy模块。
以下是一个简单的示例代码,演示如何使用Python在ArcGIS中生成点:pythonimport arcpy# 设置工作空间和输出点要素类arcpy.env.workspace = r"C:\data"output_points = "output_points.shp"# 定义点的坐标x = 100y = 200# 使用点工具创建点要素arcpy.CreateFeatureclass_management(arcpy.env.workspace, output_points, "POINT") fc = arcpy.Describe(output_points)fields = arcpy.ListFields(fc)with arcpy.da.InsertCursor(output_points, s) as cursor:cursor.next()# 在点要素类中插入新记录cursor.insertRow([x, y])print("Point created successfully.")在这个例子中,我们首先导入ArcPy模块,并设置工作空间和输出点要素类的名称。
然后,我们定义要生成的点的坐标,并使用CreateFeatureclass_management函数创建一个空的点要素类。
接下来,我们使用Describe函数获取新创建的要素类的属性,并使用ListFields函数获取所有字段的名称。
然后,我们使用InsertCursor对象插入新记录,该记录包含点的坐标。
最后,我们打印一条成功消息。
基于Python的ArcGIS空间数据处理和分析易智瑞(中国)信息技术有限公司张舵目录1 Python介绍2 在ArcGIS中使用Python3 应用示例4 扩展内容1、Python介绍Python 基本知识Python是什么?•Python是一种面向对象、直译式的计算机2018年5月TIOBE排名程序设计语言,也是一种功能强大而完善的通用型语言,创始人为Guido vanRossm (吉多·范罗苏姆)。
为什么使用Python :Python的优点●易于学习,非常适合初学者,也特别适合专家使用●可伸缩程度高,适于大型项目或小型的一次性程序●可移植,跨平台●免费开源●可嵌入(使ArcGIS 可脚本化)●与ArcGIS深度集成●稳定成熟●用户社区规模大●胶水语言●丰富的库面向对象脚本特性解释执行Python的站点包eyed3jupyterpip OpenCV matplotlibpandas numpy jinja2Web.pypyreadline ArcPyPython的缺点强制缩进慢Python开发常用IDE•学习使用Python,选择一款好用的IDE十分重要。
Python的版本•Python自己版本之间的比较,满分5颗星2、在ArcGIS中使用Python●Python 在ArcGIS 9.0 版本中被引入到ArcGIS 产品●Esri已将Python 完全纳入ArcGIS 中,与ArcGIS深度集成●已成为ArcGIS推荐使用的脚本语言ArcGIS 中的Python ArcPy ArcGIS APIfor PythonPythonAddin1.字段计算器2.制作GP工具3.模型构建器4.Python Add-in5.Python Window6.ArcGIS Pro部分工具可加入Python代码7.在ArcGIS Server中使用Python8.在Portal/Online中使用PythonArcPy 介绍•ArcPy ——为用户提供了使用Python 语言操作所有地理处理工具(包括扩展模块)的入口,并提供了多种有用的函数和类,以用于处理和访问GIS 数据。
arcgis python字段倒序排序的字母在 ArcGIS 中,你可以使用 Python arcpy 模块来对字段进行排序。
以下是一个示例代码,用于按照字段的字母倒序进行排序:```pythonimport arcpy# 设置工作空间和输出表格arcpy.env.workspace = r"C:\data"output_table = r"C:\output\sorted_table.shp"# 定义要进行排序的字段名称field_name = "name"# 创建一个新的表格,并将要进行排序的字段添加到其中arcpy.CreateTable_management(arcpy.env.workspace, "temp_table")arcpy.AddField_management(arcpy.env.workspace, "temp_table", field_name)# 导出要进行排序的表格中的数据,并将其导入到新的表格中arcpy.TableToTable_conversion(arcpy.env.workspace, "input_table",arcpy.env.workspace + r"\temp_table.shp")# 对新表格中的数据进行排序,并将排序结果保存到输出表格中with arcpy.da.UpdateCursor(arcpy.env.workspace + r"\temp_table", [field_name]) as cursor:cursor.sort(field_name, reverse=True)for row in cursor:cursor.updateRow([row[0]])arcpy.TableToTable_conversion(arcpy.env.workspace, "temp_table", output_table) ```在这个示例代码中,我们首先定义了要进行排序的字段名称,然后创建了一个新的表格,并将该字段添加到其中。
ArcGIS标注面的边长1. 引言在ArcGIS中,标注是一种常用的地图元素,用于显示地图上的要素属性信息。
标注可以应用于点、线和面等要素上。
本文主要讨论如何在ArcGIS中标注面要素的边长。
2. ArcGIS标注面的边长方法ArcGIS提供了多种方法来标注面要素的边长。
下面将介绍两种常用的方法:使用字段计算和使用Python脚本。
2.1 使用字段计算首先,在ArcMap中打开需要标注边长的面要素图层。
步骤1:添加字段右键点击图层,选择“属性表”,然后点击“添加字段”按钮,在弹出窗口中设置一个新字段,比如命名为“边长”。
步骤2:计算边长选中新添加的“边长”字段,右键点击该字段名称,在弹出菜单中选择“计算几何属性”。
在弹出窗口中选择“长度”,并设置相应单位(如米、千米等),然后点击确定。
步骤3:标注边长在图层属性表中,找到新添加的“边长”字段,右键点击该字段名称,在弹出菜单中选择“Properties”。
在弹出窗口中选择“Labels”选项卡,并勾选“Label features in this layer”复选框。
选择“Expression”按钮,并输入以下表达式:[边长] & " m"点击确定,即可在地图上标注面要素的边长。
2.2 使用Python脚本如果需要批量标注多个面要素的边长,可以使用Python脚本来实现。
步骤1:打开ArcGIS Python窗口在ArcGIS中,点击“Geoprocessing”菜单,选择“Python”子菜单,打开ArcGIS Python窗口。
步骤2:编写脚本在Python窗口中,输入以下代码:import arcpy# 设置工作空间和图层名称arcpy.env.workspace = r"path_to_workspace"layer_name = "layer_name"# 添加字段arcpy.AddField_management(layer_name, "边长", "DOUBLE")# 计算边长arcpy.CalculateField_management(layer_name, "边长", "!shape.length!", "PYTHON_ 9.3")# 标注边长arcpy.MakeFeatureLayer_management(layer_name, "temp_layer")arcpy.mapping.AddLayer(data_frame, temp_layer)layer = arcpy.mapping.ListLayers(mxd, "temp_layer")[0]layer.showLabels = TruebelClasses[0].expression = '[边长] & " m"'请将path_to_workspace替换为工作空间的路径,并将layer_name替换为图层的名称。
python创建ArcGISshape⽂件的实现⼯作中遇到了⼀个需求,需要把⼀段json⽂本转化成ArcGIS shape⽂件,想来想去,还是考虑⽤python来实现。
直接上代码import shapefileimport jsonimport os#shapefile="polygon.shp";#jsonfile="社区⽹格.json";def run():data=readJSON()datalist=data["list"]file=shapefile.Writer(target="社区⽹格.shp",shapeType=shapefile.POLYGON,autoBalance=True);#设置属性信息file.field('nere', 'C', '40') #'SECOND_FLD'为字段名称,C代表数据类型为字符串,长度为40file.field('fileName', 'C', '40')file.field('url', 'C', '40')file.field('photo', 'C', '40')file.field('netGrnereNum', 'C', '40')file.field('color', 'C', '40')file.field('num', 'C', '40')file.field('lat', 'C', '40')file.field('lon', 'C', '40')file.field('togriga', 'C', '40')file.field('gudumji', 'C', '40')file.field('memo', 'C', '40')#写⼊数据for item in datalist:nere=item["nere"]fileName = item["fileName"]url = item["url"]photo = item["photo"]netGrnereNum = item["netGrnereNum"]color = item["color"]num = item["num"]lat = item["lat"]lon = item["lon"]togriga = item["togriga"]gudumji = item["gudumji"]memo = item["memo"]polysStr = item["hotinfo"]polys=parsing(polysStr);#写⼊file.poly(polys=polys)file.record(nere,fileName,url,photo,netGrnereNum,color,num,lat,lon,togriga,gudumji,memo)print("-------写⼊成功---------")#保存⽂件file.save("社区⽹格.shp")#读取json⽂件def readJSON():f = open("社区⽹格.json", "r",encoding="utf-8") # 设置⽂件对象_str = f.read() # 将txt⽂件的所有内容读⼊到字符串str中f.close() # 关闭⽂件print("读取json完成")if _str.startswith(u'\ufeff'):_str = _str.encode('utf8')[3:].decode('utf8')data = json.loads(_str,encoding='utf8')return data;#print(data)#数据解析def parsing(text):data=[]strs=text.split(",");for line in strs:xy=line.split(" ");x_y=[float(xy[0]),float(xy[1])]data.append(x_y)_data=[];_data.append(data)return _data;if __name__=="__main__":print("执⾏程序");run();print("程序结束");以上这篇python创建ArcGIS shape⽂件的实现就是⼩编分享给⼤家的全部内容了,希望能给⼤家⼀个参考,也希望⼤家多多⽀持。
8.4 使用几何令牌改进游标性能 175
with arcpy.da.SearchCursor(fc, ("SHAPE@XY","Facility","Name")) as cursor:
表 8-2 列出了可用的几何令牌,但并非所有的游标都支持列表中全部的令牌,可以查看ArcGIS帮助中有关每种类型的游标所支持的几何令牌信息。
SHAPE@令牌返回完整的要素几何,需谨慎使用,因为返回完整的要素几何更加耗时,并且显著影响性能。
如果不需要完整的几何,就不需要使用这个令牌。
表8-2 几何令牌
本章将使用几何令牌来提高游标的性能,并以从parcels要素类中获取每块土地的X、Y坐标和一些关于parcel的属性信息为例进行说明。
8.4.2 操作方法
下面按步骤介绍如何在游标中添加几何令牌,以提高游标的性能。
(1)打开IDLE,新建一个脚本窗口。
(2)脚本保存为C:\ArcpyBook\Ch8\GeometryToken.py。
(3)导入arcpy.da和time模块。
import arcpy.da
import time。
48 第2章 管理地图文档和图层
2.10.4 拓展 UpdateLayer()函数也提供移除一个图层并把另一个图层添加到该位置的功能,这两个图层可以完全不相关,因此不需要像定义图层符号系统一样,确保两个图层的几何类型和属性字段是相同的。这一功能在本质上与先调用RemoveLayer()函数再调用AddLayer()函数执行的操作是一样的。设置symbology_only参数的值为False,可以实现该功能。
2.11 更新图层属性
在上节中,介绍了如何更新图层的符号系统。正如前文所述,UpdateLayer()可以用来更新图层的各种属性,如字段别名、定义查询等。本节将介绍如何使用UpdateLayer()函数来改变图层的各种属性。
2.11.1 准备工作
UpdateLayer()函数可以用来更新有限数量的图层属性。所有可在“图层属性”对话框中找到的属性都可使用UpdateLayer()函数进行修改,包括字段别名、符号系统、定义查询和标注字段等。一种常见的情况是,有一个图层被添加到多个地图文档中,而GIS分析人员需要在全部地图文档中改变所有该图层实例的某个特定属性。要实现这一功能,需要在ArcMap中修改特定的图层属性并将该图层保存为图层文件,然后把保存的图层文件作为源图层,用来更新update_layer图层的属性。在本节中,首先使用ArcMap改变图层属性,保存图层文件(.lyr),然后使用Python编写脚本,调用UpdateLayer()函数,把保存的图层属性应用到将要更新的图层中。
2.11.2 操作方法
下面按步骤介绍如何使用UpdateLayer()函数更新图层属性。 (1)在ArcMap中打开C:\ArcpyBook\Ch2\Crime_Ch2.mxd。在本节中,将要使用“Burglaries in 2009”要素类,如图2-12所示。
(2)在数据框中双击“Burglaries in 2009”要素类,打开“Layer Properties”窗口,如图2-13所示。每个选项卡表示一个属性,可以在选项卡中设置相应的图层属性参数。