1
案例一
删除特定记录
使用 arcpy 从 ArcGIS 中的图层中删除特定记录。可以使用更新游标(UpdateSursor)和 SQL 查询来识别和删除所需的记录。以下是如何删除特定图层记录的示例
import arcpy
selectedParcels='selectedParcels'
expression = "project = '{}'".format(projectName)
arcpy.MakeFeatureLayer_management(EasementsLyr.url,selectedParcels)
arcpy.SelectLayerByAttribute_management(selectedParcels,"NEW_SELECTION",expression)
if int(arcpy.GetCount_management(selectedParcels)[0]) > 0:
arcpy.DeleteRows_management(selectedParcels)
代码解释:
-
-
-
导入arcpy模块,这是用于使用 ArcGIS 的 Python 站点包。
定义了一个变量selectedParcels来存储将要创建的临时要素图层的名称。
根据变量的值构造 SQL 表达式projectName。
创建一个selectedParcels使用MakeFeatureLayer_management函数命名的要素层。要素图层是从EasementsLyr图层创建的,该图层假定为 ArcGIS 环境中预先存在的图层。
selectedParcels使用函数根据属性表达式选择图层中的要素SelectLayerByAttribute_management。
使用函数检查所选特征的数量GetCount_management。该int()函数用于将结果转换为整数。
如果所选要素的计数大于零,则表明存在匹配的地块,则继续下一步。
selectedParcels使用函数从图层中删除选定的行DeleteRows_management。
-
-
更多python操作arcpy的教程,请参考下面这本书
代码selectedParcels根据指定的属性表达式从图层中选择和删除行。它假定存在一个名为的要素图层EasementsLyr,并对该图层执行选择和删除操作。
2
案例二:
创建缓冲区
缓冲区是地理信息系统 (GIS) 中用于定义沿特定路线或中心线的线性区域的空间概念。它表示路线周围的一个区域,其中可以包括用于分析和可视化目的的附加要素或属性。缓冲区通常用于交通规划、公用事业管理和环境研究。
#Buffer Analysis on Centerline
expression = “Project = ‘{}’”.format(projectName)
arcpy.SelectLayerByAttribute_management(selectedCenterLine,”NEW_SELECTION”,expression)
matchcount = int(arcpy.GetCount_management(selectedCenterLine)[0])
#Match count of Project CenterLine Parcels
if matchcount > 0:
arcpy.Buffer_analysis(selectedCenterLine, outFile, bufferValue+" Feet", "FULL", "ROUND", "LIST")
with arcpy.da.SearchCursor(outFile,tempFields) as tempCursor:
for row in tempCursor:
insertCursor.insertRow(('Corridor',projectName,row[1],state,county,bufferValue,'Active'))
#Delete Insert Cursor
del insertCursor
代码解释:
-
该代码首先定义一个基于projectName变量的表达式,然后使用 来选择与该表达式匹配的特定中心线特征SelectLayerByAttribute_management。
它计算使用的选定中心线特征的数量GetCount_management并将结果存储在matchcount变量中。
如果有选定的特征 ( matchcount > 0),代码将继续使用 对选定的中心线特征执行缓冲区分析Buffer_analysis。生成的缓冲区保存在outFile要素类中。
搜索游标用于迭代缓冲要素 ( tempCursor) 并使用插入游标 ( ) 将信息插入另一个要素类insertCursor.insertRow。插入的信息包括缓冲区 、、、、、、projectName和“活动”等值row[1]。statecountybufferValue
最后,使用删除插入游标del insertCursor。
总之,代码根据特定项目选择中心线要素,对所选要素执行缓冲区分析以创建道路,并将有关道路的信息插入到要素类中。