使用python测量polyfit()生成的线的长度

时间:2015-03-26 02:30:14

标签: python measure

我正在尝试测量我使用Python中的polyfit()函数生成的数量级为2的“最佳拟合”线的长度,以便我可以将该长度与原始长度进行比较线。

我尝试过导入shapely.geometry并使用LineString然后使用.length,但是在给定polyfit()行变量的情况下,LineString给出了一个错误。

我想知道是否有办法测量polyfit()生成的一条线的总长度。

这是我生成和测量的原始行的代码:

negative5contour = contour(mgX,mgY,dem,levels=linspace(-5,-5,1))
pointsn5 = negative5contour.collections[0].get_paths()[205].vertices
linen5 = LineString(pointsn5[:,0:2])
print 'length of original -5 contour:', linen5.length, '(m)'


                                       length of original -5 contour: 961613.847282 (m)

这是我用来为高程轮廓生成最佳拟合线2的代码:

neg5X = pointsn5[:,0]
neg5Y = pointsn5[:,1]
plot(neg5X,neg5Y,'g')
fitneg5= polyfit(neg5X,neg5Y,2)
fit_final_neg5 = poly1d(fitneg5)

我尝试在fit_final_neg5上使用LineString和Length:

n5Best = LineString(fit_final_neg5)

n5Best.Length  

但错误说:

 ValueError                                Traceback (most recent call last)
 <ipython-input-71-6b72c644625d> in <module>()
  6 
  7 
 ----> 8 n5Best = LineString(fit_final_neg5)


ValueError: Input            2
3.529e-06 x - 22.44 x + 3.614e+07 is the wrong shape for a LineString

有没有人有关于我如何解决/解决这个问题的想法?

仅供参考:我对python很新。

感谢您的帮助!

0 个答案:

没有答案