本文整理汇总了Python中astropy.coordinates.Angle方法的典型用法代码示例。如果您正苦于以下问题:Python coordinates.Angle方法的具体用法?Python coordinates.Angle怎么用?Python coordinates.Angle使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类astropy.coordinates
的用法示例。
在下文中一共展示了coordinates.Angle方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: setup_class
# 需要导入模块: from astropy import coordinates [as 别名]
# 或者: from astropy.coordinates import Angle [as 别名]
def setup_class(self):
self.impact_reco = ImPACTReconstructor(root_dir=".")
self.horizon_frame = AltAz()
self.h1 = HillasParametersContainer(
x=1 * u.deg,
y=1 * u.deg,
r=1 * u.deg,
phi=Angle(0 * u.rad),
intensity=100,
length=0.4 * u.deg,
width=0.4 * u.deg,
psi=Angle(0 * u.rad),
skewness=0,
kurtosis=0,
)
# @pytest.mark.skip('need a dataset for this to work')
示例2: __init__
# 需要导入模块: from astropy import coordinates [as 别名]
# 或者: from astropy.coordinates import Angle [as 别名]
def __init__(self, x, y, length, width, psi):
"""Create 2D Gaussian model for a shower image in a camera.
Parameters
----------
centroid : u.Quantity[length, shape=(2, )]
position of the centroid of the shower in camera coordinates
width: u.Quantity[length]
width of shower (minor axis)
length: u.Quantity[length]
length of shower (major axis)
psi : convertable to `astropy.coordinates.Angle`
rotation angle about the centroid (0=x-axis)
Returns
-------
a `scipy.stats` object
"""
self.x = x
self.y = y
self.width = width
self.length = length
self.psi = psi
示例3: circle2circle
# 需要导入模块: from astropy import coordinates [as 别名]
# 或者: from astropy.coordinates import Angle [as 别名]
def circle2circle(line):
"""
Parse a string that describes a circle in ds9 format.
Parameters
----------
line : str
A string containing a DS9 region command for a circle.
Returns
-------
circle : [ra, dec, radius]
The center and radius of the circle.
"""
words = re.split('[(,\s)]', line)
ra = words[1]
dec = words[2]
radius = words[3][:-1] # strip the "
if ":" in ra:
ra = Angle(ra, unit=u.hour)
else:
ra = Angle(ra, unit=u.degree)
dec = Angle(dec, unit=u.degree)
radius = Angle(radius, unit=u.arcsecond)
return [ra.degree, dec.degree, radius.degree]
示例4: test_against_jpl_horizons
# 需要导入模块: from astropy import coordinates [as 别名]
# 或者: from astropy.coordinates import Angle [as 别名]
def test_against_jpl_horizons():
"""Check that Astropy gives consistent results with the JPL Horizons example.
The input parameters and reference results are taken from this page:
(from the first row of the Results table at the bottom of that page)
http://ssd.jpl.nasa.gov/?horizons_tutorial
"""
obstime = Time('1998-07-28 03:00')
location = EarthLocation(lon=Angle('248.405300d'),
lat=Angle('31.9585d'),
height=2.06 * u.km)
# No atmosphere
altaz_frame = AltAz(obstime=obstime, location=location)
altaz = SkyCoord('143.2970d 2.6223d', frame=altaz_frame)
radec_actual = altaz.transform_to('icrs')
radec_expected = SkyCoord('19h24m55.01s -40d56m28.9s', frame='icrs')
distance = radec_actual.separation(radec_expected).to('arcsec')
# Current value: 0.238111 arcsec
assert distance < 1 * u.arcsec
示例5: test_search_around_scalar
# 需要导入模块: from astropy import coordinates [as 别名]
# 或者: from astropy.coordinates import Angle [as 别名]
def test_search_around_scalar():
from astropy.coordinates import SkyCoord, Angle
cat = SkyCoord([1, 2, 3], [-30, 45, 8], unit="deg")
target = SkyCoord('1.1 -30.1', unit="deg")
with pytest.raises(ValueError) as excinfo:
cat.search_around_sky(target, Angle('2d'))
# make sure the error message is *specific* to search_around_sky rather than
# generic as reported in #3359
assert 'search_around_sky' in str(excinfo.value)
with pytest.raises(ValueError) as excinfo:
cat.search_around_3d(target, Angle('2d'))
assert 'search_around_3d' in str(excinfo.value)
示例6: generate_IRAF_input
# 需要导入模块: from astropy import coordinates [as 别名]
# 或者: from astropy.coordinates import Angle [as 别名]
def generate_IRAF_input(writefn=None):
dt = test_input_time.utc.datetime
coos = _get_test_input_radecs()
lines = []
for ra, dec in zip(coos.ra, coos.dec):
rastr = Angle(ra).to_string(u.hour, sep=':')
decstr = Angle(dec).to_string(u.deg, sep=':')
msg = '{yr} {mo} {day} {uth}:{utmin} {ra} {dec}'
lines.append(msg.format(yr=dt.year, mo=dt.month, day=dt.day,
uth=dt.hour, utmin=dt.minute,
ra=rastr, dec=decstr))
if writefn:
with open(writefn, 'w') as f:
for l in lines:
f.write(l)
else:
for l in lines:
print(l)
print('Run IRAF as:\nastutil\nrvcorrect f=<filename> observatory=Paranal')
示例7: test_Ellipse2D
# 需要导入模块: from astropy import coordinates [as 别名]
# 或者: from astropy.coordinates import Angle [as 别名]
def test_Ellipse2D():
"""Test Ellipse2D model."""
amplitude = 7.5
x0, y0 = 15, 15
theta = Angle(45, 'deg')
em = models.Ellipse2D(amplitude, x0, y0, 7, 3, theta.radian)
y, x = np.mgrid[0:30, 0:30]
e = em(x, y)
assert np.all(e[e > 0] == amplitude)
assert e[y0, x0] == amplitude
rotation = models.Rotation2D(angle=theta.degree)
point1 = [2, 0] # Rotation2D center is (0, 0)
point2 = rotation(*point1)
point1 = np.array(point1) + [x0, y0]
point2 = np.array(point2) + [x0, y0]
e1 = models.Ellipse2D(amplitude, x0, y0, 7, 3, theta=0.)
e2 = models.Ellipse2D(amplitude, x0, y0, 7, 3, theta=theta.radian)
assert e1(*point1) == e2(*point2)
示例8: test_quantity_subclass
# 需要导入模块: from astropy import coordinates [as 别名]
# 或者: from astropy.coordinates import Angle [as 别名]
def test_quantity_subclass():
"""Check that subclasses are recognized.
This sadly is not done by matplotlib.units itself, though
there is a PR to change it:
https://github.com/matplotlib/matplotlib/pull/13536
"""
plt.figure()
with quantity_support():
plt.scatter(Angle([1, 2, 3], u.deg), [3, 4, 5] * u.kg)
plt.scatter([105, 210, 315] * u.arcsec, [3050, 3025, 3010] * u.g)
plt.plot(Angle([105, 210, 315], u.arcsec), [3050, 3025, 3010] * u.g)
assert plt.gca().xaxis.get_units() == u.deg
assert plt.gca().yaxis.get_units() == u.kg
示例9: test_nested
# 需要导入模块: from astropy import coordinates [as 别名]
# 或者: from astropy.coordinates import Angle [as 别名]
def test_nested():
with quantity_support():
with quantity_support():
fig = plt.figure()
ax = fig.add_subplot(1, 1, 1)
ax.scatter(Angle([1, 2, 3], u.deg), [3, 4, 5] * u.kg)
assert ax.xaxis.get_units() == u.deg
assert ax.yaxis.get_units() == u.kg
fig = plt.figure()
ax = fig.add_subplot(1, 1, 1)
ax.scatter(Angle([1, 2, 3], u.arcsec), [3, 4, 5] * u.pc)
assert ax.xaxis.get_units() == u.arcsec
assert ax.yaxis.get_units() == u.pc
示例10: get_lst_for_time
# 需要导入模块: from astropy import coordinates [as 别名]
# 或者: from astropy.coordinates import Angle [as 别名]
def get_lst_for_time(jd_array, latitude, longitude, altitude):
"""
Get the lsts for a set of jd times at an earth location.
Parameters
----------
jd_array : ndarray of float
JD times to get lsts for.
latitude : float
Latitude of location to get lst for in degrees.
longitude : float
Longitude of location to get lst for in degrees.
altitude : float
Altitude of location to get lst for in meters.
Returns
-------
ndarray of float
LSTs in radians corresponding to the jd_array.
"""
lst_array = np.zeros_like(jd_array)
jd, reverse_inds = np.unique(jd_array, return_inverse=True)
times = Time(
jd,
format="jd",
location=(Angle(longitude, unit="deg"), Angle(latitude, unit="deg")),
)
if iers.conf.auto_max_age is None: # pragma: no cover
delta, status = times.get_delta_ut1_utc(return_status=True)
if np.any(
np.isin(status, (iers.TIME_BEFORE_IERS_RANGE, iers.TIME_BEYOND_IERS_RANGE))
):
warnings.warn(
"time is out of IERS range, setting delta ut1 utc to "
"extrapolated value"
)
times.delta_ut1_utc = delta
lst_array = times.sidereal_time("apparent").radian[reverse_inds]
return lst_array
示例11: hours_min_to_decimal
# 需要导入模块: from astropy import coordinates [as 别名]
# 或者: from astropy.coordinates import Angle [as 别名]
def hours_min_to_decimal(val):
hours, minutes = val.split(':')
angle = Angle('{0}h{1}m'.format(hours, minutes))
return angle.to(u.degree).value
示例12: deg_to_sexigesimal
# 需要导入模块: from astropy import coordinates [as 别名]
# 或者: from astropy.coordinates import Angle [as 别名]
def deg_to_sexigesimal(value, fmt):
"""
Displays a degree coordinate value in sexigesimal, given a format of hms or dms.
"""
a = Angle(value, unit=u.degree)
if fmt == 'hms':
return '{0:02.0f}:{1:02.0f}:{2:05.3f}'.format(a.hms.h, a.hms.m, a.hms.s)
elif fmt == 'dms':
rep = a.signed_dms
sign = '-' if rep.sign < 0 else '+'
return '{0}{1:02.0f}:{2:02.0f}:{3:05.3f}'.format(sign, rep.d, rep.m, rep.s)
else:
return 'fmt must be "hms" or "dms"'
示例13: to_python
# 需要导入模块: from astropy import coordinates [as 别名]
# 或者: from astropy.coordinates import Angle [as 别名]
def to_python(self, value):
try:
a = float(value)
return a
except ValueError:
try:
if self.c_type == 'ra':
a = Angle(value, unit=u.hourangle)
else:
a = Angle(value, unit=u.degree)
return a.to(u.degree).value
except Exception:
raise ValidationError('Invalid format. Please use sexigesimal or degrees')
示例14: get_dispersion_PA
# 需要导入模块: from astropy import coordinates [as 别名]
# 或者: from astropy.coordinates import Angle [as 别名]
def get_dispersion_PA(self, decimals=0):
"""Compute exact PA of the dispersion axis, including tilt of the
trace and the FLT WCS
Parameters
----------
decimals : int or None
Number of decimal places to round to, passed to `~numpy.round`.
If None, then don't round.
Returns
-------
dispersion_PA : float
PA (angle East of North) of the dispersion axis.
"""
from astropy.coordinates import Angle
import astropy.units as u
# extra tilt of the 1st order grism spectra
x0 = self.conf.conf['BEAMA']
dy_trace, lam_trace = self.conf.get_beam_trace(x=507, y=507, dx=x0,
beam='A')
extra = np.arctan2(dy_trace[1]-dy_trace[0], x0[1]-x0[0])/np.pi*180
# Distorted WCS
crpix = self.direct.wcs.wcs.crpix
xref = [crpix[0], crpix[0]+1]
yref = [crpix[1], crpix[1]]
r, d = self.direct.wcs.all_pix2world(xref, yref, 1)
pa = Angle((extra +
np.arctan2(np.diff(r)*np.cos(d[0]/180*np.pi),
np.diff(d))[0]/np.pi*180)*u.deg)
dispersion_PA = pa.wrap_at(360*u.deg).value
if decimals is not None:
dispersion_PA = np.round(dispersion_PA, decimals=decimals)
self.dispersion_PA = dispersion_PA
return dispersion_PA
示例15: from_table
# 需要导入模块: from astropy import coordinates [as 别名]
# 或者: from astropy.coordinates import Angle [as 别名]
def from_table(cls, url_or_table, **kwargs):
"""
Load a CameraGeometry from an `astropy.table.Table` instance or a
file that is readable by `astropy.table.Table.read()`
Parameters
----------
url_or_table: string or astropy.table.Table
either input filename/url or a Table instance
kwargs: extra keyword arguments
extra arguments passed to `astropy.table.read()`, depending on
file type (e.g. format, hdu, path)
"""
tab = url_or_table
if not isinstance(url_or_table, Table):
tab = Table.read(url_or_table, **kwargs)
return cls(
camera_name=tab.meta.get("CAM_ID", "Unknown"),
pix_id=tab["pix_id"],
pix_x=tab["pix_x"].quantity,
pix_y=tab["pix_y"].quantity,
pix_area=tab["pix_area"].quantity,
pix_type=tab.meta["PIX_TYPE"],
pix_rotation=Angle(tab.meta["PIX_ROT"] * u.deg),
cam_rotation=Angle(tab.meta["CAM_ROT"] * u.deg),
)