微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

沿轮廓线标记拐点

如何解决沿轮廓线标记拐点

我将以我是一个GIS专家,并具有使用Arcpy模块使用Python的中级经验作为开始的事实。

我有一个3D的流中心线文件,这意味着每个顶点都有一个与之关联的高程值。我正在尝试使用ArcGIS Pro和/或Python 3在轮廓上标记拐点,特别是在高度变化0.5英尺或更多的地方。以下是一些我正在谈论的拐点示例:

enter image description here

我有一张桌子,每个桌子都有顶点和高程。我添加一个名为“标记”的字段来存储哪些顶点是拐点。

enter image description here

有没有一种方法可以使用Python标记上升了0.5或更多的顶点?我听说过熊猫,但是对此没有太多经验。

解决方法

我不确定您的程序中当前如何显示您的数据。如果您可以将其转换为numpy数组,则diff()将计算元素之间的离散差异

如果列表中有值,则转换为numpy数组就像

my_numpy_array = np.array(my_list)

假设您在数组y中具有y轴值,在数组x中具有x轴值。

我们可以找到f'(x)

f1 = diff(y)/diff(x)

f''(x)

f2 = diff(f1) / diff(x)

Pad这些带有nan的数组的长度,以使其与x相同。

f1_p = np.pad(f1,(0,x.shape[0]),mode='constant',constant_values=(np.nan))
f2_p = np.pad(f2,constant_values=(np.nan))

然后,您可以使用numpy的logical_and检查f2_p == 0f1_p > 0.5

flag = np.logical_and(f2_p == 0,f1_p > 0.5)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。