arcpy中同一数据集中所有对象的重叠(st_overlaps)
创始人
2024-09-12 11:02:04
0

下面是使用arcpy模块的代码示例,可以找出同一数据集中所有对象的重叠。

import arcpy

# 设置工作空间和要素类路径
workspace = "C:/data"
feature_class = "C:/data/my_data.gdb/my_feature_class"

# 创建空间参考对象
spatial_reference = arcpy.Describe(feature_class).spatialReference

# 使用游标遍历要素类中的所有要素
with arcpy.da.SearchCursor(feature_class, ["OID@", "SHAPE@"]) as cursor:
    for row1 in cursor:
        oid1 = row1[0]
        shape1 = row1[1]
        
        # 使用另一个游标遍历要素类中的其他要素
        with arcpy.da.SearchCursor(feature_class, ["OID@", "SHAPE@"], '"OID@" <> {}'.format(oid1)) as cursor2:
            for row2 in cursor2:
                oid2 = row2[0]
                shape2 = row2[1]
                
                # 检查两个要素是否重叠
                if shape1.overlaps(shape2):
                    print("Object {} overlaps with object {}".format(oid1, oid2))

上述代码中,首先设置了工作空间和要素类路径。然后创建了一个空间参考对象,以获取要素类的空间参考信息。

随后,使用两个嵌套的游标遍历要素类中的所有要素。第一个游标用于遍历要素类中的每个要素,第二个游标用于遍历其他要素。在每次循环中,获取了要素的OID和几何形状。

最后,通过使用overlaps方法检查两个要素是否重叠,并打印出重叠的要素的OID。

请确保将代码中的工作空间和要素类路径替换为实际的路径,并根据需要修改字段名称。

相关内容

热门资讯

前端-session、jwt 目录:   (1)session (2&#x...
linux入门---制作进度条 了解缓冲区 我们首先来看看下面的操作: 我们首先创建了一个文件并在这个文件里面添加了...
关于测试,我发现了哪些新大陆 关于测试 平常也只是听说过一些关于测试的术语,但并没有使用过测试工具。偶然看到编程老师...
前缀和与对数器与二分法 1. 前缀和 假设有一个数组,我们想大量频繁的去访问L到R这个区间的和,...
nodejs:本地安装nvm实... 一、背景-使用不同版本node的原因 vue3+ts、nuxt3版本,node...
JAVA集合知识整理 Java集合知识整理 HashMap相关 HashMap的底层数据结构:jdk1.8之...
无刷直流电机介绍及单片机控制实... 无刷直流电机介绍及单片机控制实例前言基本概念优势与劣势使用寿命基本结构使用单片机控制实例电子调速器&...
fwdiary(2) dp2 1.传纸条  AcWing 275. 传纸条 - AcWing 走两条路,走一条最大的...
常用的DOS命令 常用的DOS命令 DOS(Disk Operating System,磁...
<C++> 类和对象(下) 1.const成员函数将const修饰的“成员函数”称之为const成员函数,cons...