Example #1
0
def calcPositionAngleEofNRelativeToCenterInDegreesSpherical(vec,center):
	from math import pi, cos, sin, acos
	from physics import calcAngularSeparation
	if len(vec) != 2:
		print "ERROR in calcPositionAngleEofNRelativeToCenterInDegrees: Vector not of dimension 2!"
		return
	try:
		if (vec == center):
			return None

		if (vec[0] == center[0]):
			return 90.0

		if (vec[1] == center[1]):
			return 0.0

		# Convert coordinates to radians and calculate relative to equator
		a = (90.0 - vec[1]) * pi/180.
		b = (90.0 - center[1]) * pi/180.

		c = calcAngularSeparation(vec[0],vec[1],center[0],center[1])

		# Using spherical law of cosines to calculate the angle A
		cosAngleA = ( cos(a) - cos(c)*cos(b) ) / ( sin(c)*sin(b) )

		angleA = acos(cosAngleA)
		positionAngle = angleA * 180./pi

		return positionAngle
	except ValueError:
		print "ERROR in calcPositionAngleEofNRelativeToCenterInDegrees: Type error!"
		print "BCG position = ", center
		print "Galaxy position = ", vec
		print "Position difference = [", center[0]-vec[0], ", ", center[1]-vec[1], "]"
		return