Arcgis栅格转矢量面积时面积修改

1、问题简述

每个国土空间规划都需要进行双评价,最后甲方爸爸都会要求将双评价的图层入库,图层要求为矢量图层,需要提供矢量图层中的每个图斑面积,而我们在进行双评价时,最终的图层往往是栅格图层,通过计算每个图斑的几何面积,然后汇总该区域的所有图斑面积会发现:汇总的几何面积和实际图斑面积对应不上,因此需要对几何面积进行平差处理。
因此,本篇文章就是基于python对几何面积进行平差处理,最终使得一个区域范围内的图斑面积之和等于实际区域的面积。

2、思路

目的是为了保证每个村的图斑面积字段要和村镇面积一致,因此,在计算措勤镇的一个图斑面积利用公式:
该图斑面积=几何面积/所在村的几何面积之和*所在村的村镇面积。确定这个思路后,就好写代码了。

3、步骤

①根据所在的矢量图层,新建一个面积字段,然后利用“按属性选择”获取到每个村的图斑,然后计算每个村的几何面积之和,将得到的数据填入b数组
在这里插入图片描述

②获取到每个村的面积后,完成b数组的更改,a数组是每个行政区域的面积,一般甲方爸爸会给。
③右键面积字段,打开字段计算器,然后运行代码,其中的XZQMC是对应的行政区名称字段,Shape_Area是对应的图斑面积字段。
在这里插入图片描述

4、代码

a = [2805614243.79,3597771337.94,5152561706.77,3602584127.8,7735442721.3] ##五个乡镇的图斑面积,这儿是每个乡镇行政区面积
b = [2242565900.09,3143067837.89,5948992459.61,4155510460.43,7635875505.27] ##每个乡镇的几何面积之和
def areae(name,area):
    if name==("滨哥乡".decode('utf-8')):
        return area*a[0]/b[0]
    elif name==("垚哥乡".decode('utf-8')):
        return area*a[1]/b[1]
    elif name==("宇哥乡".decode('utf-8')):
        return area*a[2]/b[2]
    elif name==("锐哥乡".decode('utf-8')):
        return area*a[3]/b[3]
    else :##其
        return area*a[4]/b[4]

总的来说,这个代码还是非常简单的,但是刚开始不愿意去思考如何用程序来处理数据,导致在进行双评价过程中,花费了大量的无用功。还是得多尝试尝试!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值