我想得到一个连续线段的列表,这些线段是线串(QGIS,Shapefile)的一部分,并建立线串的一个近似直线的部分
在这一刻,我可以计算出方位角的部分,并把他们列在一个列表
az_list = [260,263,260,209,245,339,337,343]
所以一开始我想用az_list
的元素填充一个新的列表,直到方差太大为止
示例:
前三个值az_list
260、263、260构成了一条直线的近似直线段。我用以下公式检查这三个值的方差:
import numpy as np
np.var([260, 263, 260]) # result: 2.0
最后三个一:
np.var([339,337,343]) # result: 6.22...
知道了这一点,我可以确定对于方差var
,当var > 0
和var < 10
并且如果列表为空(这将是起点)math.isnan(np.var(az_list))
返回False
时,一个部分是直的
我开始把前三个值从az_list
放到新列表straight_list
。使用此代码,我试图使其运行,但它返回一个空列表
straight_list = []
while not math.isnan(np.var(straight_list)) and np.var(straight_list) != 0 and np.var(straight_list) < 10:
for i in az_list:
straight_list.append(i)
最后,我们希望实现一个列表,其中存储直线段,如:
straight_list = [[260,263,260],[339,337,343]]
我建议您采用以下解决方案:
相关问题 更多 >
编程相关推荐