(十七)arcpy开发&利用arcpy在arcgis中实现对shapeifle要素复杂统计

这次我们来学习一下关于统计要素复杂性方面知识。首先、这里使用的是arcpy对要素进行遍历,根据要素的属性,这里取出一个要素的总点数,要素的几何部分数目。两个值相减。对一个shapefile文件所有的要素进行遍历。取出差值最大和最小值,相应的就可以计算出平均值,当然要素记录数目,多几何要素的统计就自然不在话下。

其中这里的测试shapefile文件如下图所示。

最后的实现代码如下所示。

#coding=utf-8
import arcpy
import sys
def calcFeatureComplexity( fc):

    print("Calculating complexity of feature geometries...")
    fCount = 0
    r = arcpy.GetCount_management(fc)
    totalCount = int(r.getOutput(0))
    maxCpx = 0
    minCpx = 0
    multipartCount = 0
    vSum = 0
    with arcpy.da.SearchCursor(fc, ['SHAPE@']) as c:
        for row in c:
            v = row[0].pointCount - row[0].partCount
            if row[0].partCount > 1:
                multipartCount += 1
            vSum += v
            fCount += 1
            sys.stdout.write('\r')
            print "要素 %s  %s (%s%s 处理中)..." % (
                fCount, totalCount, round(((fCount / totalCount) * 100), 1), '%'),
            if v > maxCpx:
                maxCpx = v
            if minCpx == 0 and v > 0:
                # 初始化最小的顶点数,保证为1

                minCpx = v
            elif v < minCpx and v > 0:
                minCpx = v
    msg = "\n最后统计:"
    msg += "总共的要素记录为 %s " % fCount
    msg += "平均要素复杂为: %s 顶点数目" % round((vSum / fCount), 2)
    msg += "最大的复杂为: %s 顶点数目" % maxCpx
    msg += "最小的复杂为: %s 顶点数目" % minCpx
    msg += "多要素几何数目为: %s found." % multipartCount
    print(msg)
    if multipartCount > 0:
        print("")
    return msg


data="D:\\Data\\中国国界和省界的SHP格式数据\\省界\\bou2_4p.shp";

calcFeatureComplexity(data)

实现结果在控制台命令中。


                                                                更多内容,请关注公众号

                                                      

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

yGIS

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值