Как создать файл подгонки с самого начала - PullRequest
0 голосов
/ 26 апреля 2018

В этом посте они объясняют, как создать файл подгонки из файла ascii.Тем не менее, я также хотел бы знать, как определить заголовок и данные в файл соответствия.( Преобразование таблицы ASCII в изображение FITS )

Например, когда я вызываю файл спектральных подборок с астропией (который загружается с телескопа), я могу вызывать данные и заголовок отдельно.

IE

  In [1]:hdu = fits.open('observation.fits', memmap=True)

  In [2]:header = hdu[0].header

  In [3]:header 
   Out [3]: 
   SIMPLE  =                    T / conforms to FITS standard                      
   BITPIX  =                     8                                                 
   NAXIS   =                     1
   NAXIS1  =                     47356                      
   EXTEND  =                    T                                                  
   DATE    = 'date' / file creation date (YYYY-MM-DDThh:mm:ss UT)   
   ORIGIN  = 'XXX     '           / European Southern Observatory                  
   TELESCOP= 'XXX'         / ESO Telescope Name                             
   INSTRUME= 'Instrument'           / Instrument used.                               
   OBJECT  = 'ABC '           / Original target.                               
   RA      =           30.4993 / xx:xx:xx.x RA (J2000) pointing                 
   DEC     =            -20.0009 / xx:xx:xx.x DEC (J2000) pointing               

   CTYPE1  = 'WAVE    '           / wavelength axis in nm                          
   CRPIX1  =                   0. / Reference pixel in z                           
   CRVAL1  =     298.903594970703 / central wavelength                             
   CDELT1  =   0.0199999995529652 / nm per pixel                                   
   CUNIT1  = 'nm      '           / spectral unit                                  

  ..
   bla bla
  ..                                                                               
   END                                                                             




   In [3]:data = hdu[0].data
   In [4]:data 
   Out [4]:array([  1000,   1001,   1002, ...,
     5.18091546e-13,   4.99434453e-13,   4.91280864e-13])


   Lets assume, I have data like below

   WAVE FLUX
   1000 2.02e-12
   1001 3.03e-12
   1002 4.04e-12
  ..
   bla bla
  ..

Итак, я хотел бы сгенерировать файл спектральных подборок с моими собственными данными (с собственным заголовком).

Мини-вопрос: теперь давайтеПредположим, я правильно сгенерировал файл спектральных подборок, но я понял, что забыл взять логарифм значений WAVE по оси X (1000, 1001, 1002, ....).Как это сделать, не касаясь значений FLUX оси Y (2.02e-12, 3.03e-13, 4.04e-13)?

1 Ответ

0 голосов
/ 26 апреля 2018

Файлы FITS организованы в виде одного или нескольких HDU (блоков данных заголовка), состоящих, как следует из названия, в виде одного объекта данных (как правило, одного массива для наблюдения, хотя иногда это может быть как таблица) и заголовка.метаданных, которые идут с этими данными.

Чтобы создать файл с нуля, особенно изображение, самый простой способ - создать объект ImageHDU напрямую:

>>> from astropy.io import fits
>>> hdu = fits.ImageHDU()

Как и в случае сHDU, считываемый из существующего файла, этот HDU имеет (в основном пустой) заголовок и пустой атрибут данных, который можно затем назначить:

>>> hdu.data = np.array(<some numpy array>)
>>> hdu.header['TELESCOP'] = 'Gemini'

Когда вы будете удовлетворены, вы можете записать HDU изв файл с:

>>> hdu.writeto('filename.fits')

(Примечание: во многих документах, которые вы увидите, показан более сложный процесс создания объекта HDUList, добавления HDU в список HDU и последующей записиполный список HDU. Это необходимо, только если вы создаете файл FITS с несколькими расширениями. Для одного HDU вы можете использовать hdu.writeto напрямую, и фреймворк будет обрабатывать другие структуры.подробности.)

Как правило, вам не нужно манипулировать заголовками, которые описывают формат самих данных - это происходит автоматически и не должно быть затронуто вручную (FITS имеет неудачное ошибочное смешивание информациио структуре данных с актуальными метаданными).Вы можете увидеть больше примеров того, как манипулировать данными FITS здесь: http://docs.astropy.org/en/stable/generated/examples/index.html#astropy-io

Ваш другой вопрос касается манипулирования WCS (Всемирной системой координат) изображения, и, в частности, для спектральных данных это может быть нетривиальный.Я бы задал отдельный вопрос об этом с более подробной информацией о том, что вы надеетесь достичь.

...