沿纵断面线标记拐点

2024-09-28 21:59:14 发布

您现在位置:Python中文网/ 问答频道 /正文

我将以这样一个事实作为开场白:我是一个GIS专家,具有使用ArcPy模块使用Python的初级到中级经验

我有一个三维的流中心线文件,这意味着每个顶点都有一个与之关联的高程值。我正在尝试使用ArcGIS Pro和/或Python 3沿纵断面标记拐点,特别是在高程变化0.5英尺或更大的地方。以下是我所说的拐点的一些例子:

enter image description here

我有一个表,每个表都有顶点和高程。我添加了一个名为“Flag”的字段来存储哪些顶点是拐点

enter image description here

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


Tags: 模块文件标记经验pro事实专家顶点
1条回答
网友
1楼 · 发布于 2024-09-28 21:59:14

我不确定您的数据目前在您的程序中是如何表示的。如果可以将其转换为numpy数组,^{}计算元素之间的离散差

如果列表中有值,则转换为numpy数组非常简单

my_numpy_array = np.array(my_list)

假设y轴值在数组y中,x轴值在数组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, (0, x.shape[0]), mode='constant', constant_values=(np.nan))

然后可以使用numpy的^{}检查f2_p == 0f1_p > 0.5

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

相关问题 更多 >