def test_galactic_conversions(): lon, lat = angles.from_degrees(067.4482), angles.from_degrees(19.2373) ra, dec = gal_to_eq(lon, lat) lon2, lat2 = eq_to_gal(ra, dec) print "vega galactic", angles.to_degrees(lon), angles.to_degrees(lat) print "vega equtorial", angles.to_degrees(ra), angles.to_degrees(dec) print "vega galactic", angles.to_degrees(lon2), angles.to_degrees(lat2) lon3, lat3 = eq_to_gal_quaternions(ra, dec) print "vega equtorial", angles.to_degrees(ra), angles.to_degrees(dec) print "vega galactic", angles.to_degrees(lon3), angles.to_degrees(lat3)
def eq_to_gal(ra, dec): """ expects dec between -pi/2 and pi/2 compares to pyephem within 0.45 arcsec returns lon, lat in radians """ alpha = galactic_north_equatorial[0] delta = galactic_north_equatorial[1] la = angles.from_degrees(122.932 - 90.0) b = arcsin(sin(dec) * sin(delta) + cos(dec) * cos(delta) * cos(ra - alpha)) l = arctan2( sin(dec) * cos(delta) - cos(dec) * sin(delta) * cos(ra - alpha), cos(dec) * sin(ra - alpha)) + la l += 2.0 * pylab.pi * (l < 0) l = l % (2.0 * pylab.pi) return l, b
def run_test(): nside = 512 center = map(angles.from_degrees, [-92.0, -1.0]) scale = 1.0 fwhm = angles.from_arcmin(16.0) radius = angles.from_degrees(3.0) hit_map, signal_map = _generate_beam_map(nside, center, scale, fwhm, radius) guess_center = map(angles.from_degrees, [-91.5, -1.1]) guess_fwhm = angles.from_arcmin(24.0) fit = fit_map(hit_map, signal_map, guess_center, guess_fwhm) print fit_string(fit) signal_map[hit_map == 0] = pylab.nan xsize = 1000 reso_arcmin = angles.to_arcmin(radius*2.5) / float(xsize) #healpy.mollview(signal_map) healpy.gnomview(signal_map, rot=map(angles.to_degrees, center), xsize=xsize, reso=reso_arcmin) pylab.show()
def gal_to_eq(l, b): """ Inputs: l: galactic longitude b: galactic latitude Returns: ra, dec compares to pyephem within 0.45 arcsec """ alpha = galactic_north_equatorial[0] delta = galactic_north_equatorial[1] la = angles.from_degrees(122.932 - 90.0) dec = arcsin(sin(b) * sin(delta) + cos(b) * cos(delta) * sin(l - la)) ra = arctan2( cos(b) * cos(l - la), sin(b) * cos(delta) - cos(b) * sin(delta) * sin(l - la)) + alpha ra += 2.0 * pylab.pi * (ra < 0) ra = ra % (2.0 * pylab.pi) return ra, dec
#! /usr/bin/env python import os import time import pylab from pylab import cos, sin, pi, arccos, arcsin, arctan2, sqrt, array, floor from numpy import ndarray from math import floor from leap.lib.units import angles from leap.lib.geometry import point_picking from leap.lib.geometry import mollweide from leap.lib.geometry import ebex_quaternion galactic_north_equatorial = (angles.from_degrees(192.85948), angles.from_degrees(27.12825)) galactic_center_equatorial = (angles.from_degrees(266.4049948010461), angles.from_degrees(-28.93617396013869)) def eq_to_gal_quaternions(ra, dec, roll): if False: quat = [ -0.196253758775, -0.483210685419, 0.699229740143, 0.488947509127 ] rotation = ebex_quaternion.Quaternion(quat) if True: euler = [1.681402537745, -1.050488402394, 5.873385265060] rotation = ebex_quaternion.Quaternion(euler) attitude = ebex_quaternion.Quaternion([ra, dec, roll]) attitude = rotation * attitude return attitude.equatorial