Example #1
0
def GISroll():
	"""Implements the method commercial GISsoftware uses to evaluate the slope.
	That is use neighboring cells in a weighted scheme"""
	roadwidth=4.0
	alpha=atan2((p2[0]-p1[0]),(p2[1]-p1[1]))
	length=sqrt((p2[1]-p1[1])**2+(p2[0]-p1[0])**2)
	p11=getCa([-roadwidth/2,0], direction=pi/2.-alpha, origin=p1,fromLocalCart=True)
	p12=getCa([roadwidth/2,0], direction=pi/2.-alpha, origin=p1,fromLocalCart=True)
	p21=getCa([-roadwidth/2,0], direction=pi/2.-alpha, origin=p2,fromLocalCart=True)
	p22=getCa([roadwidth/2,0], direction=pi/2.-alpha, origin=p2,fromLocalCart=True)
	x1=np.linspace(p11[0], p21[0], points)
	x2=np.linspace(p12[0], p22[0], points)
	y1=np.linspace(p11[1], p21[1], points)
	y2=np.linspace(p12[1], p22[1], points)
	z1=interpol.ev(x1,y1)
	z2=interpol.ev(x2,y2)
	roll=[]
	for ent in range(len(z1)):
		if ent==0: continue
		elif ent==len(z1)-1: break
		roll.append(180*(1/pi)*atan(((z2[ent-1]+2*z2[ent]+z2[ent+1])-(z1[ent-1]+2*z1[ent]+z1[ent+1]))/(8*roadwidth/2.)))
	#to get the correct dimensions for plotting
	roll.insert(0,roll[0])
	roll.insert(-1,roll[-1])
	return roll,p11,p12
Example #2
0
def naiveroll():
	"""plot ugly sometimes. depending on direction"""
	roadwidth=4.0
	alpha=atan((p2[1]-p1[1])/(p2[0]-p1[0])) #this or
	alpha2=atan2((p2[0]-p1[0]),(p2[1]-p1[1])) #this?
	print 180/pi*alpha, 180/pi*alpha2
	length=sqrt((p2[1]-p1[1])**2+(p2[0]-p1[0])**2)
	p11=getCa([-roadwidth/2,0], direction=pi/2.-alpha2, origin=p1,fromLocalCart=True)
	p12=getCa([roadwidth/2,0], direction=pi/2.-alpha2, origin=p1,fromLocalCart=True)
	p21=getCa([-roadwidth/2,0], direction=pi/2.-alpha2, origin=p2,fromLocalCart=True)
	p22=getCa([roadwidth/2,0], direction=pi/2.-alpha2, origin=p2,fromLocalCart=True)
	x1=np.linspace(p11[0], p21[0], points)
	x2=np.linspace(p12[0], p22[0], points)
	y1=np.linspace(p11[1], p21[1], points)
	y2=np.linspace(p12[1], p22[1], points)
	z1=interpol.ev(x1,y1)
	z2=interpol.ev(x2,y2)
	roll=[]
	for ent in range(len(z1)):
		roll.append(180*(1/pi)*atan((z2[ent]-z1[ent])/roadwidth))
	return roll, p11, p12