python 遍历输出arcgis中线或面的折点坐标

利用python遍历输出arcgis中线或面的折点坐标
先上代码,后附详解
在这里插入图片描述
运行结果:
在这里插入图片描述
import arcpy
导入模块,因为用到 arcpy,因此请在 python2.7 环境中运行此代码

fc = r’E:\a\cs.gdb\cs’
输入FeatureClass,此处用到 E盘中 cs.gdb中的 cs 图层

for row in arcpy.da.SearchCursor(fc,[“OID@”,“SHAPE@”]):
SearchCursor 函数用于在要素类或表上建立只读游标。SearchCursor 可用于遍历 Row 对象并提取字段值,注意的是自 ArcGIS 10.1 起,此功能已由 arcpy.da.SearchCursor 取代

 print("Feature{}:".format(row[0]))

输出要素编号,即上图运行结果中的Feature1,2,3

 part_num = 1
 for part in row[1]:
     print("Part{}:".format(part_num))

判断图形是否由多个图形合并,如有合并将输出多个part,如上图运行结果中的Feature3示例

     pt_num = 1
     for point in part:
         if point:
             print("Point{}:{},{}".format(pt_num,point.X,point.Y))
         else:
             print("Interior Ring:")
             pt_num -= 1
         pt_num += 1
     part_num += 1

循环输出折点坐标,坐标输出顺序方式为顺时针输出
当然,我们最终也可以直接将坐标信息直接输出到文本中,加几行代码而已。

完整代码:

import arcpy
fc = r’E:\a\cs.gdb\cs’
for row in arcpy.da.SearchCursor(fc,[“OID@”,“SHAPE@”]):
print(“Feature{}:”.format(row[0]))
part_num = 1
for part in row[1]:
print(“Part{}:”.format(part_num))
pt_num = 1
for point in part:
if point:
print(“Point{}:{},{}”.format(pt_num,point.X,point.Y))
else:
print(“Interior Ring:”)
pt_num -= 1
pt_num += 1
part_num += 1

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值