2015-04-28 6 views
4

У меня есть спектр в подходящем файле, который я сгенерировал с помощью Iraf. Ось длины волны кодируется в заголовке как:Как читать в мультиспектральных спектрах IRAF?

WAT0_001= 'system=multispec' 
WAT1_001= 'wtype=multispec label=Wavelength units=angstroms' 
WAT2_001= 'wtype=multispec spec1 = "1 1 2 1. 2.1919422441886 4200 0. 452.53 471' 
WAT3_001= 'wtype=linear' 
WAT2_002= '.60 1. 0. 3 3 1. 4200.00000000001 1313.88904209266 1365.65012876239 ' 
WAT2_003= '1422.67911152069 1479.0560707956 1535.24082980747 1584.94609332243' 

Есть ли простой способ загрузить это в python?

+0

У вас есть Pyfits или астрограмма? – Tom

+0

@Tom. Мы обсуждали это в группе Facebook для астрономов и нашли ответ сами. Мы хотели открыть сообщение и дать ответ на будущие ссылки. –

ответ

8

Я использовал код this, который был предоставлен мне Риком Уайтом. Тем не менее, возможно, что пакет specutils - лучший способ сделать это:

from specutils.io import read_fits 
spectra_list = read_fits.read_fits_spectrum1d('mymultispec.fits') 
print spectra_list[0] 
    Spectrum1D([ 338.06109619, 395.59234619, 326.0012207 , ..., 
     660.0098877 , 686.54498291, 689.58374023]) 

print spectra_list[1].dispersion 
    <Quantity [ 8293.44875263, 8293.40459999, 8293.36044556,..., 
     8166.53073537, 8166.48250242, 8166.43426803] Angstrom> 
+0

Можете ли вы отметить это как правильный ответ? Таким образом, новичок узнает, что это работает. – gabra

+0

Я согласен, спекультизм - это путь. – Iguananaut