def filterVals(latlonvals): includeindicies=[0] base = 0 skip = 2 while(base+skip < len(latlonvals)): pred = ((latlonvals[base][0]+latlonvals[base+skip][0])/2, (latlonvals[base][1]+latlonvals[base+skip][1])/2) err = CDutils.greatCircDist(pred[0], pred[1], latlonvals[base+skip-1][0], latlonvals[base+skip-1][1]) if(err > 10): includeindicies.append(base+skip-1) base = base+skip-1 skip = 2 else: skip = skip + 1 newlist = [latlonvals[item] for item in includeindicies] if(newlist[0] != newlist[-1]): newlist.append(newlist[0]) return newlist
def filterVals(latlonvals): includeindicies=[0] base = 0 skip = 2 while(base+skip < len(latlonvals)): mfact = (skip-1.0)/skip predlat = latlonvals[base][0]+(latlonvals[base+skip][0]-latlonvals[base][0])*mfact predlon = latlonvals[base][1]+(latlonvals[base+skip][1]-latlonvals[base][1])*mfact pred = (predlat, predlon) err = CDutils.greatCircDist(pred[0], pred[1], latlonvals[base+skip-1][0], latlonvals[base+skip-1][1]) if(err > 10): includeindicies.append(base+skip-1) base = base+skip-1 skip = 2 else: skip = skip + 1 newlist = [latlonvals[item] for item in includeindicies] if(newlist[0] != newlist[-1]): newlist.append(newlist[0]) #print "filtered from "+str(len(latlonvals))+" to "+str(len(newlist)) return newlist