几个Arcpy代码应用案例

5ee084c1f56a05b19089ce081573f42e.png

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)

代码解释:

        1. 导入arcpy模块,这是用于使用 ArcGIS 的 Python 站点包。

        2. 定义了一个变量selectedParcels来存储将要创建的临时要素图层的名称。

        3. 根据变量的值构造 SQL 表达式projectName。

        4. 创建一个selectedParcels使用MakeFeatureLayer_management函数命名的要素层。要素图层是从EasementsLyr图层创建的,该图层假定为 ArcGIS 环境中预先存在的图层。

        5. selectedParcels使用函数根据属性表达式选择图层中的要素SelectLayerByAttribute_management。

        6. 使用函数检查所选特征的数量GetCount_management。该int()函数用于将结果转换为整数。

        7. 如果所选要素的计数大于零,则表明存在匹配的地块,则继续下一步。

        8. selectedParcels使用函数从图层中删除选定的行DeleteRows_management。

更多python操作arcpy的教程,请参考下面这本书

代码selectedParcels根据指定的属性表达式从图层中选择和删除行。它假定存在一个名为的要素图层EasementsLyr,并对该图层执行选择和删除操作。

2

案例二:

创建缓冲区

a9c4373d774e2d59ce1150d51049ce0b.png

缓冲区是地理信息系统 (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

代码解释:

    1. ‍该代码首先定义一个基于projectName变量的表达式,然后使用 来选择与该表达式匹配的特定中心线特征SelectLayerByAttribute_management。

    2. 它计算使用的选定中心线特征的数量GetCount_management并将结果存储在matchcount变量中。

    3. 如果有选定的特征 ( matchcount > 0),代码将继续使用 对选定的中心线特征执行缓冲区分析Buffer_analysis。生成的缓冲区保存在outFile要素类中。

    4. 搜索游标用于迭代缓冲要素 ( tempCursor) 并使用插入游标 ( ) 将信息插入另一个要素类insertCursor.insertRow。插入的信息包括缓冲区 、、、、、、projectName和“活动”等值row[1]。statecountybufferValue

    5. 最后,使用删除插入游标del insertCursor。

总之,代码根据特定项目选择中心线要素,对所选要素执行缓冲区分析以创建道路,并将有关道路的信息插入到要素类中。‍

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

GIS 数据栈

谢谢打赏!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值