python - 沿轮廓线标记拐点
问题描述
我有一个 3D 流中心线 shapefile,我正在尝试使用带有 Python 3 的 ArcGIS Pro 沿剖面标记拐点,特别是在海拔变化 0.5 英尺或更多的地方。以下是我正在谈论的拐点的一些示例:
我有一个表格,每个表格都有顶点和高程。我添加了一个名为“标志”的字段来存储哪些顶点是拐点。
如何标记海拔上升或下降 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)
用填充这些数组的长度,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'slogical_and
来检查f2_p == 0
和f1_p > 0.5
flag = np.logical_and(f2_p == 0, f1_p > 0.5)
推荐阅读
- python - 单个数据框中的模糊匹配行以在熊猫和 python 中查找重复项
- r - 选择以 R 中的模式开头的行
- c# - 根据 Unity 构建选项将本机 DLL 复制到不同位置
- java - 为什么我无法在 IntelliJ IDEA 中选择高于某个语言级别?
- wordpress - 由于动画,锚标记不起作用
- php - php 除非 wordpress 用户角色 = "订阅者" 显示此 html 代码
- c - OpenMP 全局私有变量
- javascript - 正则表达式:我如何不替换数字?
- android - 如何将 Gradle 任务添加到 Android 构建
- pyspark - 在调用它的函数外部定义 UDF 时出现 Pyspark 错误:方法 __getnewargs__([]) 不存在