如何解决沿轮廓线标记拐点
我将以我是一个GIS专家,并具有使用Arcpy模块使用Python的中级经验作为开始的事实。
我有一个3D的流中心线文件,这意味着每个顶点都有一个与之关联的高程值。我正在尝试使用ArcGIS Pro和/或Python 3在轮廓上标记拐点,特别是在高度变化0.5英尺或更多的地方。以下是一些我正在谈论的拐点示例:
我有一张桌子,每个桌子都有顶点和高程。我添加了一个名为“标记”的字段来存储哪些顶点是拐点。
有没有一种方法可以使用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 == 0
和f1_p > 0.5
flag = np.logical_and(f2_p == 0,f1_p > 0.5)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。