%pylab inline
tau = 2.0 * pi
import ephem
from ephem.stars import stars
len(stars)
starlist = stars.values()
for star in starlist:
star.compute('2012/1/10')
degree = tau / 360.0
hour = tau / 24.0
ra_list = [star.ra / hour for star in starlist]
dec_list = [star.dec / degree for star in starlist]
scatter(ra_list, dec_list)
gca().invert_xaxis()
scatter(ra_list, dec_list)
axis([7.5, 3.5, -20, 20])
orion_axes = [7.5, 3.5, -20, 20]
print starlist[0].name
print starlist[0].mag
print starlist[0]._spect
[star.mag for star in starlist[:5]]
mag_array = np.array([ star.mag for star in starlist ])
mag_array[:5]
size_array = (5 - mag_array) ** 1.5 * 4
size_array[:5]
scatter(ra_list, dec_list, size_array)
axis(orion_axes)
spectral_list = [star._spect for star in starlist]
spectral_list[:10]
from spectral_classification import build_color_chart
color_chart = build_color_chart('starcolors.txt')
color_list = [color_chart[spectral_class + '(V)']
for spectral_class in spectral_list]
scatter(ra_list, dec_list, size_array, color_list)
axis(orion_axes)
def pretty_hours(h, pos=None):
if h % 1.0 == 0.0:
return '{:.0g}h'.format(h)
else:
return '{:.2g}h'.format(h)
def pretty_degrees(d, pos=None):
return u'{}°'.format(d)
print pretty_hours(3.5)
print pretty_hours(5.0)
print pretty_degrees(125)
print pretty_degrees(360)
from matplotlib.ticker import FuncFormatter
hours_formatter = FuncFormatter(pretty_hours)
degrees_formatter = FuncFormatter(pretty_degrees)
scatter(ra_list, dec_list, size_array, color_list)
axis(orion_axes)
gca().xaxis.set_major_formatter(hours_formatter)
gca().yaxis.set_major_formatter(degrees_formatter)
scatter(ra_list, dec_list, size_array, color_list)
axis(orion_axes)
gca().xaxis.set_major_formatter(hours_formatter)
gca().yaxis.set_major_formatter(degrees_formatter)
gca().xaxis.grid(True)
gca().yaxis.grid(True)