角度

class astropy.coordinates.Angle(angle, unit=None, dtype=None, copy=True, **kwargs)[源代码]

基类:SpecificTypeQuantity

一个或多个角度值,单位等于弧度或度。

角度可以指定为数组、标量、元组(见下文)、字符串, 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>
参数
: array, scalar, Quantity, Angle数组,标量,数量,角度

角度值。如果是元组,将被解释为 (h, m, s)(d, m, s) 取决于 unit . 如果是字符串,它将按照上面描述的规则进行解释。

如果 angle 是字符串的序列或数组,结果值将在给定的 unit ,或者,如果 None ,则单位将从第一个给定值中获取。

unit单元式,可选

为角度指定的值的单位。这可能是任何字符串 Unit 理解,但最好给出一个实际的单位对象。必须是一个角度单位。

D型dtype 可选可选类型

Quantity .

copy可选的布尔

Quantity .

加薪
UnitsError

如果没有提供一个单位或它不是一个角度单位。

属性摘要

dms 

角度的值(以度为单位),作为具有 (d, m, s) 成员。

hms 

以小时为单位的角度值,作为 (h, m, s) 成员。

hour 

以小时为单位的角度值(只读属性)。

signed_dms 

角度的值(以度为单位),作为具有 (sign, d, m, s) 成员。

方法总结

is_within_bounds([lower, upper])

检查所有角度是否满足 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) 成员。这个 dms 因此总是正的,角度的符号由 sign . (这是只读属性。)

主要用于 dms 生成对负角度正确的坐标的字符串表示。

方法文件

is_within_bounds(lower=None, upper=None)[源代码]

检查所有角度是否满足 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角度状或无

指定检查的下限。它可以是任何可以初始化 Angle 对象,例如。 '180d'180 * u.degAngle(180, unit=u.deg) .

upper角度状或无

指定检查的上限。它可以是任何可以初始化 Angle 对象,例如。 '180d'180 * u.degAngle(180, unit=u.deg) .

返回
is_within_bounds布尔

True if all angles satisfy lower <= angle < upper

to_string(unit=None, decimal=False, sep='fromunit', precision=None, alwayssign=False, pad=False, fields=3, format=None)[源代码]

角度的字符串表示。

参数
unitUnitBase 可选UnitBase,可选

指定单位。必须是一个角度单位。如果未提供,将使用用于初始化角度的单位。

decimal可选的布尔

如果 True ,则将使用十进制表示形式,否则返回的字符串将为sexagesimal格式。

sep可选的STR

十六进制表示法中数字之间的分隔符。E、 如果是“:”,结果是 '12:41:11.1241' . 也可接受2或3个分隔符。例如。, sep='hms' 会给出结果的 '12h41m11.1241s' ,或sep='-:'将产生 '11-21:17.124' . 或者,如果单位是度,特殊字符串“fromunit”表示“dms”;如果单位是小时,则表示“hms”。

precision可选的

十进制精度的级别。如果 decimalTrue ,这是原始精度,否则将给出sexagesimal表示法最后一位的精度(秒)。如果 None ,或不提供,小数位数由该值决定,并根据需要在0-8位小数之间。

alwayssign可选的布尔

如果 True ,无论如何都要加上标志。如果 False ,只有在符号为负数时才包含该符号。

pad可选的布尔

如果 True ,在需要时包括前导零,以确保十六进制表示的字符数固定。

fields可选的

指定输出sexagesimal表示法时要显示的字段数。例如:

  • 字段==1: '5d'

  • 字段==2: '5d45m'

  • 字段==3: '5d45m32.5s'

默认情况下,显示所有字段。

format可选的STR

结果的格式。如果未提供,则返回未修饰的字符串。支持的值包括:

  • “latex”:返回latex格式的字符串

  • ‘LaTeX_Inline’:返回LaTeX格式的字符串,该字符串与 format='latex'Angle 实例

  • “unicode”:返回包含非ASCII unicode字符的字符串,例如度符号

返回
strreprstr或array

角度的字符串表示。如果角度是一个数组,这将是一个unicode数据类型的数组。

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.])
参数
wrap_angle角度状

指定包裹角度的单个值。它可以是任何可以初始化 Angle 对象,例如。 '180d'180 * u.degAngle(180, unit=u.deg) .

inplace布尔

如果 True 然后在适当的地方包装对象,而不是返回一个新的 Angle

返回
out角度或无

如果 inplace is False (默认值),返回新的 Angle 具有相应折回角度的对象。否则,请将其包好,然后返回 None