角度#
- class astropy.coordinates.Angle(angle, unit=None, dtype=<class 'numpy.inexact'>, copy=True, **kwargs)[源代码]#
-
一个或多个角度值,单位等于弧度或度。
角度可以指定为数组、标量、元组(见下文)、字符串,
Quantity
或者别的什么Angle
.输入解析器非常灵活,并支持多种格式。下面的示例说明了初始化
Angle
对象。首先是一些进口::>>> from astropy.coordinates import Angle >>> from astropy import units as u
现在可以提供角度值:
>>> Angle('10.2345d') <Angle 10.2345 deg> >>> Angle(['10.2345d', '-20d']) <Angle [ 10.2345, -20. ] deg> >>> Angle('1:2:30.43 degrees') <Angle 1.04178611 deg> >>> Angle('1 2 0 hours') <Angle 1.03333333 hourangle> >>> Angle(np.arange(1, 8), unit=u.deg) <Angle [1., 2., 3., 4., 5., 6., 7.] deg> >>> Angle('1°2′3″') <Angle 1.03416667 deg> >>> Angle('1°2′3″N') <Angle 1.03416667 deg> >>> Angle('1d2m3.4s') <Angle 1.03427778 deg> >>> Angle('1d2m3.4sS') <Angle -1.03427778 deg> >>> Angle('-1h2m3s') <Angle -1.03416667 hourangle> >>> Angle('-1h2m3sE') <Angle -1.03416667 hourangle> >>> Angle('-1h2.5m') <Angle -1.04166667 hourangle> >>> Angle('-1h2.5mW') <Angle 1.04166667 hourangle> >>> Angle('-1:2.5', unit=u.deg) <Angle -1.04166667 deg> >>> Angle(10.2345 * u.deg) <Angle 10.2345 deg> >>> Angle(Angle(10.2345 * u.deg)) <Angle 10.2345 deg>
- 参数:
- angle :
array
, scalar ,Quantity
,Angle
数组,标量,数量,角度 角度值。如果是元组,将被解释为
(h, m, s)
或(d, m, s)
取决于unit
. 如果是字符串,它将按照上面描述的规则进行解释。如果
angle
是字符串的序列或数组,结果值将在给定的unit
,或者,如果None
,则单位将从第一个给定值中获取。- unit : astropy:unit-like ,可选AstPy:单元式,可选
为角度指定的值的单位。这可能是任何字符串
Unit
理解,但最好给出一个实际的单位对象。必须是一个角度单位。- D型 :
dtype
可选可选类型 见
Quantity
.- copy : bool ,可选可选的布尔
见
Quantity
.
- angle :
- 加薪:
UnitsError
如果没有提供一个单位或它不是一个角度单位。
属性摘要
角度的值,以度为单位,如
(d, m, s)
命名的元组。以小时为单位的角度值,作为
(h, m, s)
成员。以小时为单位的角度值(只读属性)。
角度的值,以度为单位,如
(sign, d, m, s)
命名的元组。方法总结
is_within_bounds
([lower, upper])检查所有角度(S)是否满足
lower <= angle < upper
。to_string
([unit, decimal, sep, precision, ...])角度的字符串表示。
wrap_at
(wrap_angle[, inplace])包装
Angle
在给定的wrap_angle
.属性文档
- dms#
角度的值,以度为单位,如
(d, m, s)
命名的元组。
- hms#
以小时为单位的角度值,作为
(h, m, s)
成员。
- hour#
以小时为单位的角度值(只读属性)。
- signed_dms#
角度的值,以度为单位,如
(sign, d, m, s)
命名的元组。这个
d
,m
,s
因此始终为正,角度的符号由下式给出sign
。主要用于
dms
生成对负角度正确的坐标的字符串表示。
方法文件
- is_within_bounds(lower=None, upper=None)[源代码]#
检查所有角度(S)是否满足
lower <= angle < upper
。如果
lower
未指定(或None
)然后不执行下限检查。同样upper
可以不指定。例如::>>> from astropy.coordinates import Angle >>> import astropy.units as u >>> a = Angle([-20, 150, 350] * u.deg) >>> a.is_within_bounds('0d', '360d') False >>> a.is_within_bounds(None, '360d') True >>> a.is_within_bounds(-30 * u.deg, None) True
- 参数:
- lower : astropy:angle-like 或
None
星形:角形或 Python :无 指定检查的下限。它可以是任何可以初始化
Angle
对象,例如。'180d'
,180 * u.deg
或Angle(180, unit=u.deg)
.- upper : astropy:angle-like 或
None
星形:角形或 Python :无 指定检查的上限。它可以是任何可以初始化
Angle
对象,例如。'180d'
,180 * u.deg
或Angle(180, unit=u.deg)
.
- lower : astropy:angle-like 或
- 返回:
- to_string(unit=None, decimal=False, sep='fromunit', precision=None, alwayssign=False, pad=False, fields=3, format=None)[源代码]#
角度的字符串表示。
- 参数:
- unit :
UnitBase
可选UnitBase,可选 指定单位。必须是一个角度单位。如果未提供,将使用用于初始化角度的单位。
- decimal : bool ,可选可选的布尔
如果
False
,则返回的字符串将尽可能采用六进制形式(以度或小时为单位)。如果True
,将使用十进制表示法。在这种情况下,如果符合以下条件,则不会附加任何单位format
没有明确地给出。- sep :
str
,可选Python:字符串,可选 十六进制表示法中数字之间的分隔符。E、 如果是“:”,结果是
'12:41:11.1241'
. 也可接受2或3个分隔符。例如。,sep='hms'
会给出结果的'12h41m11.1241s'
,或sep='-:'将产生'11-21:17.124'
. 或者,如果单位是度,特殊字符串“fromunit”表示“dms”;如果单位是小时,则表示“hms”。- precision :
int
,可选PYTHON:int,可选 十进制精度的级别。如果
decimal
是True
,这是原始精度,否则将给出sexagesimal表示法最后一位的精度(秒)。如果None
,或不提供,小数位数由该值决定,并根据需要在0-8位小数之间。- alwayssign : bool ,可选可选的布尔
- pad : bool ,可选可选的布尔
如果
True
,在需要时包括前导零,以确保十六进制表示的字符数固定。- fields :
int
,可选PYTHON:int,可选 指定输出sexagesimal表示法时要显示的字段数。例如:
字段==1:
'5d'
字段==2:
'5d45m'
字段==3:
'5d45m32.5s'
默认情况下,显示所有字段。
- format :
str
,可选Python:字符串,可选 结果的格式。如果未提供,则返回未修饰的字符串。支持的值包括:
“latex”:返回latex格式的字符串
‘LaTeX_Inline’:返回LaTeX格式的字符串,该字符串与
format='latex'
为Angle
实例“unicode”:返回包含非ASCII unicode字符的字符串,例如度符号
- unit :
- 返回:
- wrap_at(wrap_angle, inplace=False)[源代码]#
包装
Angle
在给定的wrap_angle
.此方法强制所有角度值在一个连续的360度范围内,以便
wrap_angle - 360d <= angle < wrap_angle
. 默认情况下,将返回一个新的角度对象,但是如果inplace
论证是True
然后Angle
对象被包装在适当的位置,并且不返回任何内容。例如::
>>> from astropy.coordinates import Angle >>> import astropy.units as u >>> a = Angle([-20.0, 150.0, 350.0] * u.deg) >>> a.wrap_at(360 * u.deg).degree # Wrap into range 0 to 360 degrees array([340., 150., 350.]) >>> a.wrap_at('180d', inplace=True) # Wrap into range -180 to 180 degrees >>> a.degree array([-20., 150., -10.])