zoukankan      html  css  js  c++  java
  • Arcgis-Tools_06矢量数据按国土分解

    点此下载模型工具,如需只对部分数据操作,提前按属性选择即可(建议10.2及以上使用,同时注意GT_QTDL<0的情况)。

    需求

    在现有数据基础上建立国土地类字段名(GT_YLD、GT_GMLD、GT_QTLD、GT_GD、GT_QTDL),使用国土数据标识,并将原有面积字段(SJ_MJ)内面积按照标识结果按比例分解,结果显示在现有数据新建的字段内。

    难点

    面积分解,如何保证面积分解完成后与面积字段内面积完全一致——误差全给GT_QTDL,同时要注意可能造成GT_QTDL<0的情况

    反复建字段,字段计算器计算——构建流程。

    流程分解

    标识

    1、添加ID唯一字段、SHP_ZMJ(填写分解前几何面积)

    字段计算器ID=FID+1

    SHP_ZMJ=round(!shape.area@hectares!,4) ——Python公式

    2、标识

    添加字段GTLB(用于将国土地类分解为上述5大类)

    SHP_FMJ(填写分解后几何面积)、MJ(用于填写分解后平差面积)

    3、GTLB分类

    预逻辑脚本代码

    def Reclass(DLMC):
        if DLMC==u'有林地':
            return 'GT_YLD'
        elif DLMC==u'灌木林地':
            return 'GT_GMLD'
        elif DLMC==u'其他林地':
            return 'GT_QTLD'
        elif DLMC in [u'水田',u'旱地',u'水浇地']:
            return 'GT_GD'
        else :
            return 'GT_QTDL'
    
    image-20201209220810809

    面积分解

    1、字段计算器

    MJ=round([SJ_MJ] * [SHP_FMJ] / [SHP_ZMJ],4)

    2、汇总统计

    分解结果汇总为按照ID、GTLB分组统计的MJ和

    image-20201209221250572

    3、数据透视表工具

    将GTLB字段行转列

    image-20201209221356313

    4、连接字段工具

    将统计透视结果挂接到现有数据上

    image-20201209221647150

    5、小数位数造成误差平差,误差全给GT_QTDL

    字段计算器,GT_QTDL=SJ_MJ-GT_YLD-GT_GMLD-GT_QTLD-GT_GD

    6、解决GT_QTDL<0的情况

    解决办法:将此值全部给国土地类中的面积最大项

    a.添加max_field字段,存储最大值的国土地类字段名称

    获得最大值的国土地类字段名称Python代码

    def getMaxFieldName(GT_YLD, GT_GMLD, GT_QTLD, GT_GD):
        dic = {"GT_YLD": GT_YLD, "GT_GMLD": GT_GMLD, "GT_QTLD": GT_QTLD, "GT_GD": GT_GD}
        return max(dic, key=dic.get)
    

    预定义表达式

    getMaxFieldName(!GT_YLD!, !GT_GMLD!, !GT_QTLD!, !GT_GD!)
    

    b.再分别根据最大值情况按属性选择,将误差给最大值

    c.完成后清空GT_QTDL<0的值。

    根据流程创建模型

    如需只对部分数据操作,提前按属性选择即可。

    导出图形

  • 相关阅读:
    TCP/IP协议学习-1.概述
    Gitlab与Sonarqube整合-代码提交自动检测
    Kubernetes-4.Pods
    Kubernetes-3.安装
    Kubernetes-2.组件
    Kubernetes-1.概述
    第200题 数列极限积分
    English
    亮总语录
    RadioButton Control
  • 原文地址:https://www.cnblogs.com/bigmonk/p/14113258.html
Copyright © 2011-2022 走看看