File:Sn_discoveries.gif
维基百科,自由的 encyclopedia
Sn_discoveries.gif (480 × 240像素,文件大小:3.21 MB,MIME类型:image/gif、循环、126帧、38秒)
摘要
描述Sn discoveries.gif |
English: Animated gif showing the R.A. and Dec. of supernovae discovered since 1885.
|
日期 | |
来源 | 自己的作品 |
作者 | RCThomas |
其他版本 | File:Supernovae discovered since 1885 (larger size).gif (previous version uploaded separately) |
许可协议
本作品采用知识共享CC0 1.0 通用公有领域贡献许可协议授权。 | |
采用本宣告发表本作品的人,已在法律允许的范围内,通过在全世界放弃其对本作品拥有的著作权法规定的所有权利(包括所有相关权利),将本作品贡献至公有领域。您可以复制、修改、传播和表演本作品,将其用于商业目的,无需要求授权。
http://creativecommons.org/publicdomain/zero/1.0/deed.enCC0Creative Commons Zero, Public Domain Dedicationfalsefalse |
Source Code
本GIF 位图使用Matplotlib创作.
本图片使用ImageMagick创作.
This is the python script I used to generate the frames for this movie. I then made the animated gif using ImageMagick convert tool.
#!/usr/bin/env python
import numpy
import pylab
import urllib
#- Fetch the plain-text, fixed-column-width version of the Asiago Supernova
#- Catalog (ASC) from the Asiago Supernova Group website. This group tries
#- to maintain a comprehensive list of all supernovae discovered and announced
#- publically via IAU circulars.
#-
#- Literature reference for the ASC:
#- [Barbon et al., 1999, A&AS, 139, 531]
#-
#- The Asiago Supernova Group website is at:
#- [http://graspa.oapd.inaf.it/]
#-
#- Another resource is the Sternberg Supernova Catalog:
#- [http://www.sai.msu.su/sn/sncat/]
stream = urllib.urlopen( "http://graspa.oapd.inaf.it/index.php?option=com_content&view=article&id=63&Itemid=82&dir=%2Fvar%2Fwww%2Fhtml%2Fjsmallfib_top%2Fcat&download_file=jsmallfib_top%2Fcat%2Fcat.txt" )
lines = [ line.rstrip( "\n\r" ) for line in stream ]
stream.close()
lines.pop( 0 )
#- We are interested in the supernova year, R.A. and Dec., and discoverer. The
#- ASC has remained consistent since 1999 in formatting its plain-text edition,
#- so in the spirit of keeping it simple we adopt the fixed fields as we find
#- them on this day. Notice that we read both the coordinates of the host
#- galaxy and the supernova in each case --- the host galaxy values are needed
#- in case the supernova coordinates are not listed.
bounds = { # The following column definitions are correct as of 2010-04-20.
"year" : ( 2, 6 ),
"gal_ra" : ( 32, 42 ),
"gal_dec" : ( 42, 52 ),
"sn_ra" : ( 52, 62 ),
"sn_dec" : ( 62, 77 ),
"disc" : ( 197, None ) }
#- Process each row so that the supernova R.A. and Dec. fields are in radians.
#- This means making sure that if no supernova coordinates are recorded in the
#- ASC, we substitute in the host galaxy coordinates, which will be good enough
#- for the figure we are going to make --- the error is much smaller than the
#- size of the symbols we will use for plotting.
years = []
ras = []
decs = []
discs = []
for line in lines :
if not line.rstrip() :
continue
# Year and discoverer are easy.
year = int( line[ bounds[ "year" ][ 0 ] : bounds[ "year" ][ 1 ] ] )
disc = line[ bounds[ "disc" ][ 0 ] : ]
# Try for supernova R.A. and Decl. and use galaxy values only if needed.
ra = line[ bounds[ "sn_ra" ][ 0 ] : bounds[ "sn_ra" ][ 1 ] ].strip( ": " )
dec = line[ bounds[ "sn_dec" ][ 0 ] : bounds[ "sn_dec" ][ 1 ] ].strip( ": " )
if not ( ra and dec ) :
ra = line[ bounds[ "gal_ra" ][ 0 ] : bounds[ "gal_ra" ][ 1 ] ].strip( ": " )
dec = line[ bounds[ "gal_dec" ][ 0 ] : bounds[ "gal_dec" ][ 1 ] ].strip( ": " )
# Convert R.A. to float degrees.
h, m, s = ra[ 0 : 2 ], ra[ 2 : 4 ], ra[ 4 : ]
try :
test = float( s )
except ValueError:
s = "00"
ra = 15.0 * ( float( h ) + ( float( m ) + float( s ) / 60.0 ) / 60.0 )
# Convert Dec. to float degrees.
p, d, m, s = dec[ 0 ], dec[ 1 : 3 ], dec[ 3 : 5 ], dec[ 5 : ]
try :
test = float( s )
except ValueError:
s = "00"
dec = float( d ) + ( float( m ) + float( s ) / 60.0 ) / 60.0
if p != "+": dec = -dec
# Push onto each array.
years.append( year )
ras.append ( ra )
decs.append ( dec )
discs.append( disc )
years = numpy.array( years, dtype = "int" )
discs = numpy.array( discs )
ras = numpy.radians( numpy.array( ras ) )
decs = numpy.radians( numpy.array( decs ) )
ras[ ras > numpy.pi ] = ras[ ras > numpy.pi ] - 2.0 * numpy.pi
#- Colors for some selected surveys --- not exhaustive by any stretch.
colors = []
for i, disc in enumerate( discs ) :
if "sdss" in disc.lower() :
discs[ i ] = "SDSS"
colors.append( "#C28800" )
elif "loss" in disc.lower() or "lotoss" in disc.lower() :
discs[ i ] = "LOSS"
colors.append( "#B20050" )
elif "hzsst" in disc.lower() :
discs[ i ] = "High-Z"
colors.append( "#FF9C00" )
elif "nsf" in disc.lower() :
discs[ i ] = "SNfactory"
colors.append( "#06D1AE" )
elif "essence" in disc.lower() :
discs[ i ] = "ESSENCE"
colors.append( "#0F00B2" )
elif "scp" in disc.lower() :
discs[ i ] = "SCP"
colors.append( "#8C8458" )
elif "cfht" in disc.lower() :
discs[ i ] = "SNLS"
colors.append( "#3B6642" )
else :
discs[ i ] = "other" # could add others here
colors.append( "#516587" )
colors = numpy.array( colors )
#- Generate a bunch of images to be run through ImageMagick convert to make an
#- animated GIF.
uniq_years = sorted( set( years ) )
discs_used = []
color_used = []
for i, year in enumerate( range( 1885, 2011 ) ) :
fig = pylab.figure( figsize = ( 8, 4 ), dpi = 180 )
axes = pylab.axes( projection = "hammer" )
axes.grid( True )
selected = years < year
print year,
print selected.sum(),
if any( selected ) :
axes.scatter( ras[ selected ], decs[ selected ], c = colors[ selected ], edgecolors = "none", alpha = 0.5 )
selected = years == year
print selected.sum()
if any( selected ) :
axes.scatter( ras[ selected ], decs[ selected ], c = colors[ selected ], edgecolors = "none", alpha = 1.0 )
labels = discs[ selected ]
for disc, color in zip( discs[ selected ], colors[ selected ] ) :
if disc == "other" :
continue
if disc not in discs_used :
discs_used.append( disc )
color_used.append( color )
print discs_used
for i, disc in enumerate( discs_used ) :
pylab.text( 0.99, 0.32 - 0.06 * i, disc, color = color_used[ i ], transform = axes.transAxes )
pylab.title( year )
pylab.savefig( str( year ) + ".jpg" )
pylab.clf()
此文件中描述的项目
描绘内容
20 4 2010
image/gif
文件历史
点击某个日期/时间查看对应时刻的文件。
日期/时间 | 缩略图 | 大小 | 用户 | 备注 | |
---|---|---|---|---|---|
当前 | 2010年4月22日 (四) 06:07 | 480 × 240(3.21 MB) | RCThomas | Smaller size so when it's embedded into an article it actually animates but doesn't interfere with the text by overwhelming it. No change to the source code was used; just a resize step in the convert call. Category:Supernovae | |
2010年4月21日 (三) 05:32 | 800 × 400(7.81 MB) | RCThomas | {{Information |Description={{en|1=Animated gif showing the R.A. and Dec. of supernovae discovered since 1885.}} |Source={{own}} |Author=RCThomas |Date=2010-04-20 |Permission= |other_versions= }} Category:Supernovae |
文件用途
全域文件用途
以下其他wiki使用此文件:
- ar.wikipedia.org上的用途
- bn.wikipedia.org上的用途
- hu.wikipedia.org上的用途
- ja.wikipedia.org上的用途
- vep.wikipedia.org上的用途