首页 / 算法 / python中的行平滑算法?
python中的行平滑算法?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python中的行平滑算法?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2000字,纯文字阅读大概需要3分钟。
内容图文
![python中的行平滑算法?](/upload/InfoBanner/zyjiaocheng/702/6515a45d49e445dda55e01b5b119465d.jpg)
我正在研究线路泛化,这将用于获得从大比例尺到小比例尺的广义道路网图.我正在使用两个操作和两个算法.它是使用shapefile库在python编程语言中完成的,它用于2d中的矢量数据.
操作:选择和消除.
为了选择我使用条件,所有道路,宽度超过7米选择,它与道路的属性功能相关联.
与所有道路一样消除,宽度小于5米,消除.
到目前为止,没有太大问题.
在应用选择和消除操作后,我们将有形状文件,通过条件的道路.
我使用两种算法,线简化和线平滑.
为了简化线路,我使用了Douglas-Peucker的线简化算法.它采用矢量数据(坐标)并基于公差去除一些点.我是用Python编程语言做的.在获得简化的线条后,需要进行一些编辑,如线条平滑.
在这里,我使用高斯算法,但它返回一些错误,我不明白,因为我是编程环境的新手
import numpy
### This is the Gaussian data smoothing function I wrote ###
def smoothListGaussian(list1,degree):
window=degree*2-1
weight=numpy.array([1.0]*window)
print weight
weightGauss=[]
for i in range(window):
i=i-degree+1
frac=i/float(window)
gauss=1/(numpy.exp((4*(frac))**2))
weightGauss.append(gauss)
print weightGauss
weight=numpy.array(weightGauss)*weight
print weight
print len(list1)-window
smoothed=[0.0]*(len(list1)-window)
print smoothed
for i in range(len(smoothed)):
smoothed[i]=sum(numpy.array(list1[i:i+window])*weight)/sum(weight)
return smoothed
a=[[78.03881018900006, 30.315651467000066], [78.044901609000078, 30.31512798600005], [78.04927981700007, 30.312510579000048], [78.050041244000056, 30.301755415000059], [78.072646124000073, 30.281720353000082], [78.07902308000007, 30.273344651000059]]
smoothListGaussian(a,3)
请,任何想法.
或者,如果python中有任何其他算法,它使用行中每个点的坐标来平滑矢量数据中的行
任何答案赞赏!
解决方法:
我猜你使用了here的代码.你应该注意代码是针对单维数据点而不是多维数据点.
我不太了解高斯平滑算法,但只是简单地通过你的代码,我相信以下是你想要做的(我不确定它是否给你你想要的结果).使用以下代码替换代码的最后一部分:
smoothed=[0.0,0.0]*(len(list1)-window)
print smoothed
for i in range(len(smoothed)):
smoothing=[0.0,0.0]
for e,w in zip(list1[i:i+window],weight):
smoothing=smoothing+numpy.multiply(e,w)
smoothed[i]=smoothing/sum(weight)
内容总结
以上是互联网集市为您收集整理的python中的行平滑算法?全部内容,希望文章能够帮你解决python中的行平滑算法?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。