Arcgis计算面要素的面积、周长、宽度、长度及最大直径

一、在Arcgis中打开面要素文件(shp文件-投影坐标!!)

要是面要素文件一开始是经纬度坐标的,可以先将其转换为投影坐标。

我比较喜欢先用91卫图转换坐标。

1、在Arcgis中打开要素文件

2、打开面要素文件的属性表

3、打开属性表左上角的表选项

4、添加字段

5、输入字段名称、选择精度类型、确定

二、面积、周长---计算几何




上述为计算面积的过程、计算周长是一样的,只不过字段名称、计算几何中的属性是周长。其他过程都是一样的。

三、高度(长度)、宽度---字段计算器

计算长度和宽度时,在添加字段时填写对应的字段名称。

高度:!Shape.extenT.YMax! -!Shape.extenT.YMin!

宽度:



上述高度、宽度就都计算好了。可以对计算的结果用测量工具进行检验。

可见结果可靠。

四、最大直径(最大轴长)---字段计算器-显示代码块

添加字段:Max_diameter(但是这个字段名称的长度有一定要求,多出来的字符会被直接删掉)

字段计算器

显示代码块

预逻辑脚本代码:

复制代码
import math

def true_max_axis_length(shape):
    # 初始化最大长度为0
    max_length = 0.0

    # 获取面要素的第一个部分的折点数组
    # .first() 用于处理可能的多部分要素(MultiPart),我们取第一个图形
    array = shape.getPart(0)

    # 获取顶点总数
    pnt_count = array.count

    # 双层循环,遍历计算每两个点之间的距离
    for i in range(pnt_count):
        for j in range(i + 1, pnt_count): # 从i+1开始,避免重复计算和自身比较
            # 获取第i个和第j个点
            pnt_i = array.getObject(i)
            pnt_j = array.getObject(j)

            # 计算两点间的欧氏距离
            distance = math.sqrt(math.pow(pnt_i.X - pnt_j.X, 2) + math.pow(pnt_i.Y - pnt_j.Y, 2))

            # 更新最大长度
            if distance > max_length:
                max_length = distance

    # 返回计算出的最大长度
    return max_length

表达式框:

复制代码
true_max_axis_length(!Shape!)

最后点击确定就好了。

这里计算稍微慢点,尤其是当面要素文件比较大的时候。

检验结果准确。

这样所有的就都算完了。

总结就是:

面积、周长------【计算几何】

宽度、长度------【字段计算器】

最大直径------【字段计算器】------【显示代码块】------输入【预逻辑脚本代码】------输入【Max_diamet】

(需要用到python脚本代码块的时候,不论是直径还是其他字段的计算,只要需要用到自己编写的代码时,就用显示代码块,并在预逻辑脚本代码中输入代码即可。)

最后Arcgis的帮助系统

在Arcgis的帮助系统中也有一些常规的使用python计算字段的代码示例。可以现在这里面看看有没有需要的。

相关推荐
天呐草莓2 小时前
企业微信运维手册
java·运维·网络·python·微信小程序·企业微信·微信开放平台
2501_921649492 小时前
股票 API 对接, 接入德国法兰克福交易所(FWB/Xetra)实现量化分析
后端·python·websocket·金融·区块链
lbb 小魔仙2 小时前
Python 读取 Excel 文件:openpyxl 与 pandas 实战对比
python·excel·pandas
程序员miki2 小时前
Redis核心命令以及技术方案参考文档(分布式锁,缓存业务逻辑)
redis·分布式·python·缓存
热爱生活的五柒2 小时前
两个电脑(windows和linux之间)如何快速传输文件(亲测可用,方便快捷)
python·共享文件夹
洋生巅峰2 小时前
股票爬虫实战解析
爬虫·python·mysql
失心疯_20232 小时前
Pycharm打开Terminal终端无法自动进入项目虚拟环境
ide·python·pycharm·虚拟环境·terminal
BoBoZz192 小时前
Vol 建一个 3D 隐式函数体积数据
python·vtk·图形渲染·图形处理
倔强的小石头_2 小时前
Python 从入门到实战(十三):Flask + 数据库(让 Web 应用支持数据持久化与多人协作)
数据库·python·flask
jiayong232 小时前
AI应用领域编程语言选择指南:Java vs Python vs Go
java·人工智能·python