Python astropy.coordinates.FK5 Examples
The following are 10
code examples of astropy.coordinates.FK5().
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example.
You may also want to check out all available functions/classes of the module
astropy.coordinates
, or try the search function
.
![](https://www.programcreek.com/common/static/images/search.png)
Example #1
Source File: test_utils.py From astropy-healpix with BSD 3-Clause "New" or "Revised" License | 6 votes |
def test_parse_coord_system(): frame = parse_coord_system(Galactic()) assert isinstance(frame, Galactic) frame = parse_coord_system('fk5') assert isinstance(frame, FK5) with pytest.raises(ValueError) as exc: frame = parse_coord_system('e') assert exc.value.args[0] == "Ecliptic coordinate frame not yet supported" frame = parse_coord_system('g') assert isinstance(frame, Galactic) with pytest.raises(ValueError) as exc: frame = parse_coord_system('spam') assert exc.value.args[0] == "Could not determine frame for system=spam"
Example #2
Source File: test_fitswcs.py From Carnets with BSD 3-Clause "New" or "Revised" License | 5 votes |
def test_caching_components_and_classes(): # Make sure that when we change the WCS object, the classes and components # are updated (we use a cache internally, so we need to make sure the cache # is invalidated if needed) wcs = WCS_SIMPLE_CELESTIAL assert wcs.world_axis_object_components == [('celestial', 0, 'spherical.lon.degree'), ('celestial', 1, 'spherical.lat.degree')] assert wcs.world_axis_object_classes['celestial'][0] is SkyCoord assert wcs.world_axis_object_classes['celestial'][1] == () assert isinstance(wcs.world_axis_object_classes['celestial'][2]['frame'], ICRS) assert wcs.world_axis_object_classes['celestial'][2]['unit'] is u.deg wcs.wcs.radesys = 'FK5' frame = wcs.world_axis_object_classes['celestial'][2]['frame'] assert isinstance(frame, FK5) assert frame.equinox.jyear == 2000. wcs.wcs.equinox = 2010 frame = wcs.world_axis_object_classes['celestial'][2]['frame'] assert isinstance(frame, FK5) assert frame.equinox.jyear == 2010.
Example #3
Source File: utils.py From Carnets with BSD 3-Clause "New" or "Revised" License | 5 votes |
def _celestial_frame_to_wcs_builtin(frame, projection='TAN'): # Import astropy.coordinates here to avoid circular imports from astropy.coordinates import BaseRADecFrame, FK4, FK4NoETerms, FK5, ICRS, ITRS, Galactic # Create a 2-dimensional WCS wcs = WCS(naxis=2) if isinstance(frame, BaseRADecFrame): xcoord = 'RA--' ycoord = 'DEC-' if isinstance(frame, ICRS): wcs.wcs.radesys = 'ICRS' elif isinstance(frame, FK4NoETerms): wcs.wcs.radesys = 'FK4-NO-E' wcs.wcs.equinox = frame.equinox.byear elif isinstance(frame, FK4): wcs.wcs.radesys = 'FK4' wcs.wcs.equinox = frame.equinox.byear elif isinstance(frame, FK5): wcs.wcs.radesys = 'FK5' wcs.wcs.equinox = frame.equinox.jyear else: return None elif isinstance(frame, Galactic): xcoord = 'GLON' ycoord = 'GLAT' elif isinstance(frame, ITRS): xcoord = 'TLON' ycoord = 'TLAT' wcs.wcs.radesys = 'ITRS' wcs.wcs.dateobs = frame.obstime.utc.isot else: return None wcs.wcs.ctype = [xcoord + '-' + projection, ycoord + '-' + projection] return wcs
Example #4
Source File: test_utils.py From Carnets with BSD 3-Clause "New" or "Revised" License | 5 votes |
def test_skycoord_to_pixel(mode): # Import astropy.coordinates here to avoid circular imports from astropy.coordinates import SkyCoord header = get_pkg_data_contents('data/maps/1904-66_TAN.hdr', encoding='binary') wcs = WCS(header) ref = SkyCoord(0.1 * u.deg, -89. * u.deg, frame='icrs') xp, yp = skycoord_to_pixel(ref, wcs, mode=mode) # WCS is in FK5 so we need to transform back to ICRS new = pixel_to_skycoord(xp, yp, wcs, mode=mode).transform_to('icrs') assert_allclose(new.ra.degree, ref.ra.degree) assert_allclose(new.dec.degree, ref.dec.degree) # Make sure you can specify a different class using ``cls`` keyword class SkyCoord2(SkyCoord): pass new2 = pixel_to_skycoord(xp, yp, wcs, mode=mode, cls=SkyCoord2).transform_to('icrs') assert new2.__class__ is SkyCoord2 assert_allclose(new2.ra.degree, ref.ra.degree) assert_allclose(new2.dec.degree, ref.dec.degree)
Example #5
Source File: test_utils.py From Carnets with BSD 3-Clause "New" or "Revised" License | 5 votes |
def test_skycoord_to_pixel_swapped(): # Regression test for a bug that caused skycoord_to_pixel and # pixel_to_skycoord to not work correctly if the axes were swapped in the # WCS. # Import astropy.coordinates here to avoid circular imports from astropy.coordinates import SkyCoord header = get_pkg_data_contents('data/maps/1904-66_TAN.hdr', encoding='binary') wcs = WCS(header) wcs_swapped = wcs.sub([WCSSUB_LATITUDE, WCSSUB_LONGITUDE]) ref = SkyCoord(0.1 * u.deg, -89. * u.deg, frame='icrs') xp1, yp1 = skycoord_to_pixel(ref, wcs) xp2, yp2 = skycoord_to_pixel(ref, wcs_swapped) assert_allclose(xp1, xp2) assert_allclose(yp1, yp2) # WCS is in FK5 so we need to transform back to ICRS new1 = pixel_to_skycoord(xp1, yp1, wcs).transform_to('icrs') new2 = pixel_to_skycoord(xp1, yp1, wcs_swapped).transform_to('icrs') assert_allclose(new1.ra.degree, new2.ra.degree) assert_allclose(new1.dec.degree, new2.dec.degree)
Example #6
Source File: test_funcs.py From Carnets with BSD 3-Clause "New" or "Revised" License | 5 votes |
def test_constellations(recwarn): from astropy.coordinates import ICRS, FK5, SkyCoord from astropy.coordinates.funcs import get_constellation inuma = ICRS(9*u.hour, 65*u.deg) n_prewarn = len(recwarn) res = get_constellation(inuma) res_short = get_constellation(inuma, short_name=True) assert len(recwarn) == n_prewarn # neither version should not make warnings assert res == 'Ursa Major' assert res_short == 'UMa' assert isinstance(res, str) or getattr(res, 'shape', None) == tuple() # these are taken from the ReadMe for Roman 1987 ras = [9, 23.5, 5.12, 9.4555, 12.8888, 15.6687, 19, 6.2222] decs = [65, -20, 9.12, -19.9, 22, -12.1234, -40, -81.1234] shortnames = ['UMa', 'Aqr', 'Ori', 'Hya', 'Com', 'Lib', 'CrA', 'Men'] testcoos = FK5(ras*u.hour, decs*u.deg, equinox='B1950') npt.assert_equal(get_constellation(testcoos, short_name=True), shortnames) # test on a SkyCoord, *and* test Boötes, which is special in that it has a # non-ASCII character bootest = SkyCoord(15*u.hour, 30*u.deg, frame='icrs') boores = get_constellation(bootest) assert boores == 'Boötes' assert isinstance(boores, str) or getattr(boores, 'shape', None) == tuple()
Example #7
Source File: test_funcs.py From Carnets with BSD 3-Clause "New" or "Revised" License | 5 votes |
def test_concatenate(): from astropy.coordinates import FK5, SkyCoord, ICRS from astropy.coordinates.funcs import concatenate # Just positions fk5 = FK5(1*u.deg, 2*u.deg) sc = SkyCoord(3*u.deg, 4*u.deg, frame='fk5') res = concatenate([fk5, sc]) np.testing.assert_allclose(res.ra, [1, 3]*u.deg) np.testing.assert_allclose(res.dec, [2, 4]*u.deg) with pytest.raises(TypeError): concatenate(fk5) with pytest.raises(TypeError): concatenate(1*u.deg) # positions and velocities fr = ICRS(ra=10*u.deg, dec=11.*u.deg, pm_ra_cosdec=12*u.mas/u.yr, pm_dec=13*u.mas/u.yr) sc = SkyCoord(ra=20*u.deg, dec=21.*u.deg, pm_ra_cosdec=22*u.mas/u.yr, pm_dec=23*u.mas/u.yr) res = concatenate([fr, sc]) with pytest.raises(ValueError): concatenate([fr, fk5]) fr2 = ICRS(ra=10*u.deg, dec=11.*u.deg) with pytest.raises(ValueError): concatenate([fr, fr2])
Example #8
Source File: test_frames.py From Carnets with BSD 3-Clause "New" or "Revised" License | 5 votes |
def test_fk5_time(tmpdir): tree = {'coord': FK5(equinox="2011-01-01T00:00:00")} assert_roundtrip_tree(tree, tmpdir)
Example #9
Source File: utils.py From Carnets with BSD 3-Clause "New" or "Revised" License | 4 votes |
def _wcs_to_celestial_frame_builtin(wcs): # Import astropy.coordinates here to avoid circular imports from astropy.coordinates import (FK4, FK4NoETerms, FK5, ICRS, ITRS, Galactic, SphericalRepresentation) # Import astropy.time here otherwise setup.py fails before extensions are compiled from astropy.time import Time if wcs.wcs.lng == -1 or wcs.wcs.lat == -1: return None radesys = wcs.wcs.radesys if np.isnan(wcs.wcs.equinox): equinox = None else: equinox = wcs.wcs.equinox xcoord = wcs.wcs.ctype[wcs.wcs.lng][:4] ycoord = wcs.wcs.ctype[wcs.wcs.lat][:4] # Apply logic from FITS standard to determine the default radesys if radesys == '' and xcoord == 'RA--' and ycoord == 'DEC-': if equinox is None: radesys = "ICRS" elif equinox < 1984.: radesys = "FK4" else: radesys = "FK5" if radesys == 'FK4': if equinox is not None: equinox = Time(equinox, format='byear') frame = FK4(equinox=equinox) elif radesys == 'FK4-NO-E': if equinox is not None: equinox = Time(equinox, format='byear') frame = FK4NoETerms(equinox=equinox) elif radesys == 'FK5': if equinox is not None: equinox = Time(equinox, format='jyear') frame = FK5(equinox=equinox) elif radesys == 'ICRS': frame = ICRS() else: if xcoord == 'GLON' and ycoord == 'GLAT': frame = Galactic() elif xcoord == 'TLON' and ycoord == 'TLAT': # The default representation for ITRS is cartesian, but for WCS # purposes, we need the spherical representation. frame = ITRS(representation_type=SphericalRepresentation, obstime=wcs.wcs.dateobs or None) else: frame = None return frame
Example #10
Source File: parangles.py From VIP with MIT License | 4 votes |
def compute_paral_angles(header, latitude, ra_key, dec_key, lst_key, acqtime_key, date_key='DATE-OBS'): """Calculates the parallactic angle for a frame, taking coordinates and local sidereal time from fits-headers (frames taken in an alt-az telescope with the image rotator off). The coordinates in the header are assumed to be J2000 FK5 coordinates. The spherical trigonometry formula for calculating the parallactic angle is taken from Astronomical Algorithms (Meeus, 1998). Parameters ---------- header : dictionary Header of current frame. latitude : float Latitude of the observatory in degrees. The dictionaries in vip_hci/conf/param.py can be used like: latitude=LBT['latitude']. ra_key, dec_key, lst_key, acqtime_key, date_key : strings Keywords where the values are stored in the header. Returns ------- pa.value : float Parallactic angle in degrees for current header (frame). """ obs_epoch = Time(header[date_key], format='iso', scale='utc') # equatorial coordinates in J2000 ra = header[ra_key] dec = header[dec_key] coor = sky_coordinate.SkyCoord(ra=ra, dec=dec, unit=(hourangle,degree), frame=FK5, equinox='J2000.0') # recalculate for DATE-OBS (precession) coor_curr = coor.transform_to(FK5(equinox=obs_epoch)) # new ra and dec in radians ra_curr = coor_curr.ra dec_curr = coor_curr.dec lst_split = header[lst_key].split(':') lst = float(lst_split[0])+float(lst_split[1])/60+float(lst_split[2])/3600 exp_delay = (header[acqtime_key] * 0.5) / 3600 # solar to sidereal time exp_delay = exp_delay*1.0027 # hour angle in degrees hour_angle = (lst + exp_delay) * 15 - ra_curr.deg hour_angle = np.deg2rad(hour_angle) latitude = np.deg2rad(latitude) # PA formula from Astronomical Algorithms pa = -np.rad2deg(np.arctan2(-np.sin(hour_angle), np.cos(dec_curr) * \ np.tan(latitude) - np.sin(dec_curr) * np.cos(hour_angle))) #if dec_curr.value > latitude: pa = (pa.value + 360) % 360 return pa.value