注釈
クリック here 完全なサンプルコードをダウンロードします
天体の高度·方位角の測定とマッピング¶
この例は、実行計画の観察を容易にするために、座標変換および可視性曲線の作成を示す。
この例では私たちは SkyCoord
M 33の例である.そして以下の方法を用いて高さ-方位角座標を見つける astropy.coordinates.EarthLocation
そして astropy.time.Time
物体です。
この例はデモを目的としています astropy.coordinates
package. For more convenient and/or complex observation planning, consider the astroplan 小包です。
作者:エリック·トレドカイル·クルツ
ライセンス:BSD
風景が絵のようなアメリカニューヨーク熊山州立公園を見学する計画を立てていると仮定しましょう。望遠鏡を持っているとM 33が良い観測目標だと言われていますあなたはたまたま現地時間の夜11時に空いていることを知っていて、あなたはそれがオンラインになるかどうかを知りたいです。Astropyはこの質問に答えることができる。
Numpyとmatplotlibを導入する.後者の場合、より良い印刷パラメータのセットを使用して、印刷/変換量のサポートを設定してください。
import numpy as np
import matplotlib.pyplot as plt
from astropy.visualization import astropy_mpl_style, quantity_support
plt.style.use(astropy_mpl_style)
quantity_support()
出て:
<astropy.visualization.units.quantity_support.<locals>.MplQuantityConverter object at 0x7feda4ba2c50>
探索座標と座標変換に必要なパケットの導入
import astropy.units as u
from astropy.time import Time
from astropy.coordinates import SkyCoord, EarthLocation, AltAz
astropy.coordinates.SkyCoord.from_name
SIMBADを用いて対象名を解析し,座標を検索する.
M 33の座標を取得する:
m33 = SkyCoord.from_name('M33')
使用 astropy.coordinates.EarthLocation
熊山の位置を提供し、時間を米東部サマータイム2012年7月12日午後11時に設定した。
bear_mountain = EarthLocation(lat=41.3*u.deg, lon=-74*u.deg, height=390*u.m)
utcoffset = -4*u.hour # Eastern Daylight Time
time = Time('2012-7-12 23:00:00') - utcoffset
astropy.coordinates.EarthLocation.get_site_names
そして get_site_names
主要天文台の位置を取得するために使用することができる。
使用 astropy.coordinates
2012年7月12日午後11時に熊山から観測されたM 33のAlt,Az座標を見つけるために。
m33altaz = m33.transform_to(AltAz(obstime=time,location=bear_mountain))
print(f"M33's Altitude = {m33altaz.alt:.2}")
出て:
M33's Altitude = 0.13 deg
M 33が現在地平線上にあることが証明されたので、これは役に立つ。夜間にM 33の気団を発見することはより多くの情報を提供する。
アメリカ東部サマータイムの夜10時から朝7時までの間に100倍均一に分布するM 33のALT,AZ座標を見つける:
midnight = Time('2012-7-13 00:00:00') - utcoffset
delta_midnight = np.linspace(-2, 10, 100)*u.hour
frame_July13night = AltAz(obstime=midnight+delta_midnight,
location=bear_mountain)
m33altazs_July13night = m33.transform_to(frame_July13night)
Alt,azを気団に変換する使用 secz
属性:
時間関数として気団を作成します
plt.plot(delta_midnight, m33airmasss_July13night)
plt.xlim(-2, 10)
plt.ylim(1, 4)
plt.xlabel('Hours from EDT Midnight')
plt.ylabel('Airmass [Sec(z)]')
plt.show()
使用 get_sun
7月12日昼から7月13日昼までの1000個の等間隔で太陽の位置を見つけます。
from astropy.coordinates import get_sun
delta_midnight = np.linspace(-12, 12, 1000)*u.hour
times_July12_to_13 = midnight + delta_midnight
frame_July12_to_13 = AltAz(obstime=times_July12_to_13, location=bear_mountain)
sunaltazs_July12_to_13 = get_sun(times_July12_to_13).transform_to(frame_July12_to_13)
同じ方法で get_moon
月が昇る時間を見つける。これは、月の正確な位置を得るために、インターネットから10 MBのファイルをダウンロードする必要があることに注意されたい。
from astropy.coordinates import get_moon
moon_July12_to_13 = get_moon(times_July12_to_13)
moonaltazs_July12_to_13 = moon_July12_to_13.transform_to(frame_July12_to_13)
同じ時間にM 33のAlt,Az座標を見つけた:
夜とその間のM 33と太陽の高さを説明する美しい図形を描きます
plt.plot(delta_midnight, sunaltazs_July12_to_13.alt, color='r', label='Sun')
plt.plot(delta_midnight, moonaltazs_July12_to_13.alt, color=[0.75]*3, ls='--', label='Moon')
plt.scatter(delta_midnight, m33altazs_July12_to_13.alt,
c=m33altazs_July12_to_13.az, label='M33', lw=0, s=8,
cmap='viridis')
plt.fill_between(delta_midnight, 0*u.deg, 90*u.deg,
sunaltazs_July12_to_13.alt < -0*u.deg, color='0.5', zorder=0)
plt.fill_between(delta_midnight, 0*u.deg, 90*u.deg,
sunaltazs_July12_to_13.alt < -18*u.deg, color='k', zorder=0)
plt.colorbar().set_label('Azimuth [deg]')
plt.legend(loc='upper left')
plt.xlim(-12*u.hour, 12*u.hour)
plt.xticks((np.arange(13)*2-12)*u.hour)
plt.ylim(0*u.deg, 90*u.deg)
plt.xlabel('Hours from EDT Midnight')
plt.ylabel('Altitude [deg]')
plt.show()
出て:
/pb1/rst_repos/git/astropy/examples/coordinates/plot_obs-planning.py:146: MatplotlibDeprecationWarning: Auto-removal of grids by pcolor() and pcolormesh() is deprecated since 3.5 and will be removed two minor releases later; please call grid(False) first.
plt.colorbar().set_label('Azimuth [deg]')
スクリプトの総実行時間: (0分2.080秒)