Skip to main content
 首页 » 编程设计

python之Relief Ratio之帮助找到 'polygon zm' 内离流出点最远的点

2025年05月04日652php

我正在尝试在这里做一些不同的事情..

首先,我在 shapefile 中有一个分水岭多边形“shape”字段的值数组。

Rarray = watershed.shape.getPart(0) 

我假设流出点将是具有最低 ZMin 的值。因此,ZMin 坐标将是流出点 (p1)。

我试图做的是在多边形数组中找到距离该 x,y,z 流出点最远的点 (p2)。它应该是数组中的值之一

从那里,我试图计算 p1(流出)和 p2(最远)之间的距离,以便我可以使用该值使用此公式计算分水岭的缓解率

ReliefRat = (max elevation - min elevation) / Length of longest axis 

到目前为止我有这个...

Rarray = watershed.shape.getPart(0) 
ReliefRat = (ZMax-ZMin)/(((p2.X-p1.X)**(2.0)) + ((p2.Y-p1.Y)**(2.0)))**(0.5) 

...其中p1是流出点。我只是不知道如何找到 p2。

如果有人可以引导我完成此过程,将不胜感激!

请您参考如下方法:

如果p1确实是一个包含ZMin的流出点的x,y值的对象,如果p2包含x,y对于ZMax最远点,则表达式

(((p2.X-p1.X)**(2.0)) + ((p2.Y-p1.Y)**(2.0)))**(0.5) 

确实是两点之间的距离。这只是 Pythagorean theorem 的一个表达式,因为两点 p1 和 p2 之间的直线是以 p2.X-p1.X 和高 p2.Y-p1.Y 为底的直角三角形的斜边。注意,参见“Which is faster in Python: x**.5 or math.sqrt(x)? ” 如果对几种计算平方根的方法感兴趣。

如果您还没有定义一类具有 X 和 Y 属性的点对象,请单独询问或修改问题,同样,如果您不知道如何在多边形上找到距离某些点最远的点其他点。