title: line smoothing algorithm in python?
body: <p>I am doing research on line generalization, which will be applied to obtain generalized Road Network map from large scale map to small scale map. I am using two operation and two algorithms. It is done in python programming language using shapefile library, it is for vector data in 2d. 
  Operation: Selection and Elimination.
  For selection I am using condition like, all the roads, width more than 7 meters selected, it is connected with attribute features of the roads.
  Same with elimination, like all the roads, width less than 5 meter, eliminated.
  So far it was no much problem.</p>
  
  <p>After selection and elimination operations applied, we will have shape file, roads which passed the condition. 
  I am using two algorithms, Line simplification and line Smoothing.
  For simplification of line I am using Douglas-Peucker's line simplification algorithm. it is taking vector data (coordinates) and based on tolerance removing some points. I an doing it using Python programming language. After getting simplified lines it needs some editing like line smoothing. 
  Here, I am using Gaussian algorithm, however it is returning  some error, which i don't understand, as i am new in programming environment</p>
  
  <pre><code>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)
  </code></pre>
  
  <p>Any, ideas, please.
  Or if there any other algorithms in python which smooths lines in vector data using coordinates of the each point in the line</p>
  
  <p>Any answers appreciated!</p>