免费视频|新人指南|投诉删帖|广告合作|地信网APP下载

查看: 3618|回复: 4
收起左侧

[技术交流] 一种基于ArcGIS Python根据角度条件批量提取小班拐点坐标方法的研究

[复制链接]

14

主题

4349

铜板

8

好友

助理工程师

Rank: 5Rank: 5

积分
350
发表于 2018-3-20 07:15 | 显示全部楼层 |阅读模式
总体思路:首先将所有小班的顶点坐标提取出来,之后对每个小班的顶点坐标按顺序依次取三个点的坐标,每个点对应三角形的一个顶点,计算每两个点之间的距离,之后计算中间点的角度。计算中间点的角度通过余弦定理[4]来实现的。依次循环操作从而计算出该小班的所有顶点的角度。具体实现方法如下:
第一步,将所有小班的顶点获取出来,新建一个所有小班的顶点的图层。
第二步,遍历第一小班,依次按顺序取该小班的三个顶点POINT1POINT2POINT3POINT1对应角度APOINT2对应角度BPOINT3对应角度C)。
第三步,在等距离投影下分别计算POINT1POINT2POINT3之间的距离,使用每个点的坐标计算两点间的距离。
第四步,利用余弦定理计算中间点(POINT1)对应的角度A(这里为了处理的方便,计算出来的角度都和90度进行比较,所有点的角度都转换为0-90度之间。)。
第五步,依次再按顺序取该小班的三个顶点,循环执行,计算出该小班的每个顶点的角度值,之后将所有角度值更新到顶点图层中
第六步,根据用户输入的角度阈值、拐点个数等条件,提取用户需要的拐点。
上述步骤中需要特别注意的两点:1、计算点之间距离的时候一定要注意图层的投影坐标系一定要设置为等距离投影才能计算准确的距离,否则距离计算会不准确。2、观察小班的顶点矩阵数组可以发现,首尾实际为同一个点,我们取三点构成三角形时,需要注意我们只需要从数组的下标0开始循环到倒数第一个点(即数组下标为第n-1的点)就可以了。

1

主题

1232

铜板

1

好友

助理工程师

Rank: 5Rank: 5

积分
123
发表于 2022-7-14 09:51 | 显示全部楼层
老师您好,您这个小班拐点批量提取的工具可不可以共享的嘛?
回复 支持 反对

使用道具 举报

0

主题

5148

铜板

1

好友

地信院士

Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15

积分
2100
发表于 2022-7-18 22:51 | 显示全部楼层
谢谢分享,学习学习
回复 支持 反对

使用道具 举报

0

主题

6650

铜板

24

好友

至尊VIP

Rank: 24Rank: 24Rank: 24Rank: 24Rank: 24Rank: 24

积分
544
发表于 2022-7-19 09:36 | 显示全部楼层
说白了,直接抽稀就完了,有这么复杂?
回复 支持 反对

使用道具 举报

3

主题

4195

铜板

16

好友

至尊VIP

Rank: 24Rank: 24Rank: 24Rank: 24Rank: 24Rank: 24

积分
652
发表于 2022-7-19 09:43 | 显示全部楼层
学习学习
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

在线客服
快速回复 返回顶部 返回列表