astropyを使って目的の天体画像を見る

astropyというモジュールを使って天体画像を見てみる。

スポンサーリンク

on-sky locationを記述する

 # Python standard-library
from urllib.parse import urlencode
from urllib.request import urlretrieve

# Third-party dependencies
from astropy import units as u
from astropy.coordinates import SkyCoord
from astropy.table import Table
import numpy as np
from IPython.display import Image

# Set up matplotlib and use a nicer set of plot parameters
from astropy.visualization import astropy_mpl_style
import matplotlib.pyplot as plt
plt.style.use(astropy_mpl_style)
%matplotlib inline

astropyのSkyCoordクラスのastropy.coordinatesパッケージを使って天球座標系を示すことができる。最初に、“Hickson Compact Group 7”略して“HCG 7”という天体名を対象にしてSkyCoordオブジェクトを作成する。ほとんどの天体名はSESAMEから得ることができる。

# initialize a SkyCood object named hcg7_center at the location of HCG 7
hcg7_center = SkyCoord.from_name('HCG 7')
type(hcg7_center)
astropy.coordinates.sky_coordinate.SkyCoord
dir(hcg7_center)
['T',
 '__abstractmethods__',
 '__bool__',
 '__class__',
 '__delattr__',
 '__dict__',
 '__dir__',
 '__doc__',
 '__eq__',
 '__format__',
 '__ge__',
 '__getattr__',
 '__getattribute__',
 '__getitem__',
 '__gt__',
 '__hash__',
 '__init__',
 '__init_subclass__',
 '__iter__',
 '__le__',
 '__len__',
 '__lt__',
 '__module__',
 '__ne__',
 '__new__',
 '__reduce__',
 '__reduce_ex__',
 '__repr__',
 '__setattr__',
 '__sizeof__',
 '__str__',
 '__subclasshook__',
 '__weakref__',
 '_abc_cache',
 '_abc_negative_cache',
 '_abc_negative_cache_version',
 '_abc_registry',
 '_apply',
 '_extra_frameattr_names',
 '_parse_inputs',
 '_sky_coord_frame',
 'altaz',
 'apply_space_motion',
 'barycentrictrueecliptic',
 'cache',
 'cartesian',
 'cirs',
 'copy',
 'data',
 'dec',
 'default_differential',
 'default_representation',
 'diagonal',
 'differential_type',
 'distance',
 'equinox',
 'fk4',
 'fk4noeterms',
 'fk5',
 'flatten',
 'frame',
 'frame_attributes',
 'frame_specific_representation_info',
 'from_name',
 'from_pixel',
 'galactic',
 'galacticlsr',
 'galactocentric',
 'galcen_coord',
 'galcen_distance',
 'galcen_v_sun',
 'gcrs',
 'geocentrictrueecliptic',
 'get_constellation',
 'get_frame_attr_names',
 'get_representation_cls',
 'get_representation_component_names',
 'get_representation_component_units',
 'guess_from_table',
 'has_data',
 'hcrs',
 'heliocentrictrueecliptic',
 'icrs',
 'info',
 'is_equivalent_frame',
 'is_frame_attr_default',
 'is_transformable_to',
 'isscalar',
 'itrs',
 'location',
 'lsr',
 'match_to_catalog_3d',
 'match_to_catalog_sky',
 'name',
 'ndim',
 'obsgeoloc',
 'obsgeovel',
 'obstime',
 'obswl',
 'pm_dec',
 'pm_ra_cosdec',
 'position_angle',
 'precessedgeocentric',
 'pressure',
 'proper_motion',
 'ra',
 'radial_velocity',
 'radial_velocity_correction',
 'ravel',
 'realize_frame',
 'relative_humidity',
 'replicate',
 'replicate_without_data',
 'represent_as',
 'representation',
 'representation_component_names',
 'representation_component_units',
 'representation_info',
 'representation_type',
 'reshape',
 'roll',
 'search_around_3d',
 'search_around_sky',
 'separation',
 'separation_3d',
 'set_representation_cls',
 'shape',
 'size',
 'skyoffset_frame',
 'spherical',
 'spherical_offsets_to',
 'sphericalcoslat',
 'squeeze',
 'supergalactic',
 'swapaxes',
 'take',
 'temperature',
 'to_pixel',
 'to_string',
 'transform_to',
 'transpose',
 'v_bary',
 'velocity',
 'z_sun']

RAとDecを表示する。

print(hcg7_center.ra, hcg7_center.dec)
print(hcg7_center.ra.hour, hcg7_center.dec)
9d48m58.5s 0d53m17.016s
0.6544166666666668 0d53m17.016s
hcg7_center.ra, hcg7_center.dec
(<Longitude 9.81625 deg>, <Latitude 0.88806 deg>)

SESAMEによるとHCG7はra=9.849, dec=0.878degに位置していることが分かる。

イメージをダウンロードする

SkyCoordオブジェクトを作成したので、Sloan Digitial Sky Survey(SDSS)から目的の天体名の画像を以下のようにしてダウンロードしてくる。

# tell the SDSS service how big of a cutout we want
im_size = 12*u.arcmin # get a 12 arcmin square
im_pixels = 1024
cutoutbaseurl = 'http://skyservice.pha.jhu.edu/DR12/ImgCutout/getjpeg.aspx'
query_string = urlencode(dict(ra=hcg7_center.ra.deg,
                              dec=hcg7_center.dec.deg,
                              width=im_pixels, height=im_pixels,
                              scale=im_size.to(u.arcsec).value/im_pixels))
url = cutoutbaseurl + '?' + query_string

# this downloads the image to your disk
urlretrieve(url, 'HCG7_SDSS_cutout.jpg')
('HCG7_SDSS_cutout.jpg', <http.client.HTTPMessage at 0x7ffa400e8d68>)
Image('HCG7_SDSS_cutout.jpg')

これがhcg7の天体画像らしい。

参考サイトhttp://astropy-tutorials.readthedocs.io/