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