Viva La Vida!|

Weltㅤ

园龄:3年3个月粉丝:83关注:12

ArcPy|使用ArcPy脚本实现分区统计并将结果添加到原有要素的属性表

概述​

使用ArcPy快速实现按区域统计,并将统计结果添加到原有属性表,因为ArcPy的接口中并没有将结果直接添加到原属性表这一选项,因此通过一个中间dbf文件存储统计得到的结果,并将中间dbf文件与原有要素连接,最后将中间文件删除来实现。

Python代码

# -*- coding: utf-8 -*-
"""
PROJECT_NAME: ArcPy 
FILE_NAME: ZonalSta
AUTHOR: welt
DATE: 2024/7/2
"""

import arcpy

# 定义输入和输出参数
zone_feature = "输入区域数据路径"
raster = "需要统计的区域数据路径"
#中间dbf文件
mid_table = "mid.dbf" # 不用管

# 运行ZonalStatisticsAsTable
arcpy.env.overwriteOutput = True
mid_table = arcpy.sa.ZonalStatisticsAsTable(zone_feature, "OBJECTID", raster, mid_table, "DATA", "MAJORITY")
# 下面是输出的每个参数的意义
# shp: 输入的区域数据(一般为矢量的区域文件),
# zoneField: 区分各个区域的字段(一般为名字或者代码),
# raster: 需要统计的区域,
# outTable: 输出的表(输出到数据库最好扩展名为.dbf),
# "DATA":{是否忽略空值,DATA表示不计算空值},
# "MAJORITY":{需要统计的类型(最大最小平均……按需选择)})

# field_name = "CLASSIFICATION"
# field_type = "DOUBLE"
# arcpy.AddField_management(zone_feature, field_name, field_type)

join_field = "OBJECTID"  # 共有字段,通常是矢量数据的FID或OID字段
fields = ["MAJORITY"]  # 要加入的字段列表

# 执行连接
arcpy.management.JoinField(zone_feature, join_field, mid_table, join_field, fields)

arcpy.Delete_management(mid_table)
print('finish')

本文作者:Weltㅤ

本文链接:https://www.cnblogs.com/tangjielin/p/18287546

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   Weltㅤ  阅读(77)  评论(0编辑  收藏  举报
历史上的今天:
2023-07-06 VUE|使用VUE和Flex实现掷骰子模拟器
2023-07-06 CSS|动画与效果
评论
收藏
关注
推荐
深色
回顶
收起
点击右上角即可分享
微信分享提示