Mar-21-2019, 06:30 PM
Reference is made to the python code listed here http://reionization.org/wp-content/uploa...st2ra.html and, in details, to this piece one http://imgbox.com/uaj4dzLS
By running the file below, and being checked the proper indentations which match the original, surprisingly I obtain next awful prompt:
By running the file below, and being checked the proper indentations which match the original, surprisingly I obtain next awful prompt:
Output:C:\Training>python bryna.py File "bryna.py", line 35
return cirs_ra
^
TabError: inconsistent use of tabs and spaces in indentationWhere is my fault? Thx in advance# ---------bryna.py ------------
import numpy as np
from astropy.coordinates import SkyCoord, Angle, EarthLocation
from astropy.time import Time
from astropy import units
#
mjd = 55780.1
latitude = Angle('-26d42m11.94986s')
longitude = Angle('116d40m14.93485s')
#
obs_time = Time(mjd, format='mjd', location = (longitude, latitude))
lst_apparent = obs_time.sidereal_time('apparent')
print(lst_apparent)
# Output1: 7h11m46.2716s
#
# The frame radio astronomers call the apparent or current epoch is the
# "true equator & equinox" frame, notated E_gamma in the USNO circular 179
# (http://aa.usno.navy.mil/publications/docs/Circular_179.php)
# astropy doesn't have this frame but it's pretty easy to adapt the CIRS frame
# by modifying the ra to reflect the difference between
# GAST (Grenwich Apparent Sidereal Time) and the earth rotation angle (theta).
# The earth rotation angle is most clearly explained in the 2nd paragraph of Chapter 6
# of the USNO circular (page 50)
# The relationship between E_gamma and CIRS is shown in the figure on page 57 of the circular
def egamma_to_cirs_ra(egamma_ra, time):
from astropy import _erfa as erfa
from astropy.coordinates.builtin_frames.utils import get_jd12
era = erfa.era00(*get_jd12(Time(mjd, format='mjd'), 'ut1'))
theta_earth = Angle(era, unit='rad')
assert(isinstance(time, Time))
gast = time.sidereal_time('apparent', longitude=0)
cirs_ra = egamma_ra - (gast-theta_earth)
return cirs_ra
# If we define a source at RA = apparent LST and Dec = latitude it should be at zenith
loc_obj = EarthLocation.from_geodetic(lon=longitude, lat=latitude)
# use CIRS but with a different ra to account for the difference between LST & earth's rotation angle
cirs_ra = egamma_to_cirs_ra(lst_apparent, Time(mjd, format='mjd'))
egamma_zenith_coord = SkyCoord(ra=cirs_ra, dec=latitude, frame='cirs',
obstime=Time(mjd, format='mjd'), location = loc_obj)
egamma_zenith_coord
# Output2
#<SkyCoord (CIRS: obstime=55780.1): (ra, dec) in deg
# (107.78961213, -26.70331941)>
#
# check where it is in altaz (should be near zenith):
egamma_zenith_altaz = egamma_zenith_coord.transform_to('altaz')
egamma_zenith_altaz
# Output3
#<SkyCoord (AltAz: obstime=55780.1, location=(-2559302.5737783727, 5095070.526830904, -2848887.400942108) m, pressure=0.0 hPa, temperature=0.0 deg_C, relative_humidity=0, obswl=1.0 micron): (az, alt) in deg
# (28.60732437, 89.99985797)>
#
(egamma_zenith_altaz.alt - Angle('90d')).to_string(unit=units.degree, sep=('deg', 'm', 's'))
# Output4
# '-0deg00m00.5113s'
#
# ------ EOF: bryna.py ----------
