使用角度

様々な座標オブジェクトの角度成分は Angle 級友たち。座標オブジェクトの文脈で遭遇する可能性は最も高いが Angle 角度表示が必要な場所では,オブジェクトを単独で使用することも可能である.

創作

1つを作ることができます Angle Objectは非常に柔軟であり,複数の入力オブジェクトタイプやフォーマットをサポートしている.入力角度のタイプは、配列、スカラ、タプル、文字列であってもよい Quantity あるいはもう1つは Angle それがそうです。この点は、多くの有効な方法の例を用いて最もよく説明されており、これらの方法は作成することができる Angle それがそうです。

実例.

様々な方法で作成することができます Angle **

>>> import numpy as np
>>> from astropy import units as u
>>> from astropy.coordinates import Angle

>>> Angle('10.2345d')              # String with 'd' abbreviation for degrees  
<Angle 10.2345 deg>
>>> Angle(['10.2345d', '-20d'])    # Array of strings  
<Angle [ 10.2345, -20.    ] deg>
>>> Angle('1:2:30.43 degrees')     # Sexagesimal degrees  
<Angle 1.04178611 deg>
>>> Angle('1 2 0 hours')           # Sexagesimal hours  
<Angle 1.03333333 hourangle>
>>> Angle(np.arange(1., 8.), unit=u.deg)  # Numpy array from 1..7 in degrees  
<Angle [1., 2., 3., 4., 5., 6., 7.] deg>
>>> Angle('1°2′3″')               # Unicode degree, arcmin and arcsec symbols  
<Angle 1.03416667 deg>
>>> Angle('1°2′3″N')               # Unicode degree, arcmin, arcsec symbols and direction  
<Angle 1.03416667 deg>
>>> Angle('1d2m3.4s')              # Degree, arcmin, arcsec.  
<Angle 1.03427778 deg>
>>> Angle('1d2m3.4sS')              # Degree, arcmin, arcsec, direction.  
<Angle -1.03427778 deg>
>>> Angle('-1h2m3s')               # Hour, minute, second  
<Angle -1.03416667 hourangle>
>>> Angle('-1h2m3sW')               # Hour, minute, second, direction  
<Angle 1.03416667 hourangle>
>>> Angle((-1, 2, 3), unit=u.deg)  # (degree, arcmin, arcsec)  
<Angle -1.03416667 deg>
>>> Angle(10.2345 * u.deg)         # From a Quantity object in degrees  
<Angle 10.2345 deg>
>>> Angle(Angle(10.2345 * u.deg))  # From another Angle object  
<Angle 10.2345 deg>

表示法

♪the Angle オブジェクトは,角度値を浮動小数点数や文字列として表現する様々な方式をサポートしている.

実例.

表現できる方法はたくさんあります Angle **

>>> a = Angle(1, u.radian)
>>> a  
<Angle 1. rad>
>>> a.radian
1.0
>>> a.degree  
57.29577951308232
>>> a.hour  
3.8197186342054885
>>> a.hms  
hms_tuple(h=3.0, m=49.0, s=10.987083139758766)
>>> a.dms  
dms_tuple(d=57.0, m=17.0, s=44.806247096362313)
>>> a.signed_dms  
signed_dms_tuple(sign=1.0, d=57.0, m=17.0, s=44.806247096362313)
>>> (-a).dms  
dms_tuple(d=-57.0, m=-17.0, s=-44.806247096362313)
>>> (-a).signed_dms  
signed_dms_tuple(sign=-1.0, d=57.0, m=17.0, s=44.806247096362313)
>>> a.arcminute  
3437.7467707849396
>>> a.to_string()
'1rad'
>>> a.to_string(unit=u.degree)
'57d17m44.8062s'
>>> a.to_string(unit=u.degree, sep=':')
'57:17:44.8062'
>>> a.to_string(unit=u.degree, sep=('deg', 'm', 's'))
'57deg17m44.8062s'
>>> a.to_string(unit=u.hour)
'3h49m10.9871s'
>>> a.to_string(unit=u.hour, decimal=True)
'3.81972'

用法

適切な算術演算についても,角度は正しく実行される.

例を引く

使用 Angle 算術演算におけるオブジェクト:

>>> a = Angle(1.0, u.radian)
>>> a + 0.5 * u.radian + 2 * a  
<Angle 3.5 rad>
>>> np.sin(a / 2)  
<Quantity 0.47942554>
>>> a == a  
array(True, dtype=bool)
>>> a == (a + a)    
array(False, dtype=bool)

Angle オブジェクトは、座標オブジェクトを作成するために使用されてもよい。

例を引く

座標オブジェクトを作成するステップ Angle **

>>> from astropy.coordinates import ICRS
>>> ICRS(Angle(1, u.deg), Angle(0.5, u.deg))  
<ICRS Coordinate: (ra, dec) in deg
    (1., 0.5)>

包絡線と境界

境界を有するべき角度を処理するために使用することができる2つの実用的な方法がある。♪the wrap_at() 方法は、1つまたは複数の角度を取り、それを単一の360度スライス内に包むことを可能にする。♪the is_within_bounds() 方法は、1つまたは複数の角度が指定された範囲内にあるかどうかを示すブール値を返す。

経度と緯度オブジェクト

Longitude そして Latitude 2つの専門的なサブクラスです Angle クラスの新しい例では、これらのクラスは、すべての球面座標クラスに使用される。 Longitude 赤道座標、銀河経度、方位等の値(それぞれ赤道座標、銀河座標、Alt−Az座標を表す)を表す。 Latitude 赤緯、銀河緯度、標高に使われています。

経度.経度

A Longitude 対象と純 Angle 1つで wrap_angle 財産です。♪the wrap_angle 指定されたオブジェクトが表すすべての角度値は以下の範囲内となる.

wrap_angle - 360 * u.deg <= angle(s) < wrap_angle

デフォルト設定 wrap_angle 360度です。設ける 'wrap_angle=180 * u.deg' 代わりに-180度と+180度の間の値である.設ける wrap_angle 既存の Longitude 対象はその場での再包装角値につながる。例えば:

>>> from astropy.coordinates import Longitude
>>> a = Longitude([-20, 150, 350, 360] * u.deg)
>>> a.degree  
array([340., 150., 350.,   0.])
>>> a.wrap_angle = 180 * u.deg
>>> a.degree  
array([-20., 150., -10.,   0.])

緯度.緯度.

Latitudeオブジェクトは純粋なLatitudeオブジェクトとは異なる Angle 有界なので、

-90.0 * u.deg <= angle(s) <= +90.0 * u.deg

この範囲を超えた値を設定しようとするいかなる試みも ValueError それがそうです。