2015-12-18 12 views
5

Sto provando ad aggiungere dati a un file di adattamento utilizzando astropy.io.La scrittura si adatta ai file con astropy.io.fits

Ecco un esempio del mio codice:

import numpy as np 
from astropy.io import fits 
a1 = np.array([1,2,4,8]) 
a2 = np.array([0,1,2,3]) 
hdulist = fits.BinTableHDU.from_columns( 
    [fits.Column(name='FIRST', format='E', array=a1), 
    fits.Column(name='SECOND', format='E', array=a2)]) 
hdulist.writeto('file.fits') 

L'errore che ottengo è

type object 'BinTableHDU' has no attribute 'from_columns' 
  1. Questo potrebbe essere un problema con la versione astropy.io che sto utilizzando?
  2. C'è un modo più semplice per aggiungere estensioni o colonne a un file di adattamento utilizzando astropy.io?

Qualsiasi aiuto sarebbe apprezzato.

+1

Per rispondere brevemente alla seconda domanda, se si desidera creare semplici tabelle FITS utilizzare l'interfaccia di livello superiore astropy.table.L'interfaccia FITS di livello inferiore è necessaria solo per creare tabelle che utilizzano alcune delle funzionalità più specifiche di FITS che non sono ancora supportate dall'interfaccia generale Tabella. – Iguananaut

+0

Renee, ricorda di accettare la risposta se risolvesse il problema. – Gabriel

risposta

7

Dovrai aggiornare astropy.
Posso eseguire il tuo esempio bene; questo è con la versione astropy più recente.

Guardando il registro delle modifiche per 0.4, sembra che la tua versione astropy sia troppo vecchia. Il log says:

la funzione astropy.io.fits.new_table è ora completamente sconsigliato (se non verranno rimossi per lungo tempo, considerando come ampiamente viene utilizzato).

Invece Utilizzare il BinTableHDU.from_columns più espliciti a creare una nuova tabella HDU binario, e le TableHDU.from_columns simili per creare una nuova tabella ASCII. Questi accettano altrimenti gli stessi argomenti come new_table che ora è solo un wrapper per questi.

implicando from_columns è stato recentemente introdotto in 0,4


Nel complesso, se si sta effettivamente utilizzando astropy versione 0.3, si consiglia di eseguire l'aggiornamento alla versione 1.0 o (corrente) 1.1:

  • mentre 0.3 ha solo circa 1,5 anni (e un po 'più giovane se si dispone di una versione 0.3.x), il rapido sviluppo dello sviluppo dell'astropia lo rende piuttosto obsoleto. Nell'interfaccia è cambiato molto, e gli esempi che troverai online in questi giorni raramente funzionano con la tua versione.

  • Poiché astropy è ora in una serie 1.x (.y), ciò dovrebbe significare che l'API è relativamente stabile: c'è solo una sottile modifica che si verificherebbe in problemi di compatibilità con le versioni precedenti.

  • Versione 1.0 (.x) è un long-term support release, con due anni di correzioni di errori. Astropy 1.0 è stato rilasciato il 18 febbraio 2015, quindi se stai cercando una maggiore stabilità, durerà fino al 18 febbraio 2017. (Altre versioni supportano sei mesi di correzioni di bug, ma con il punto precedente, se esegui aggiornamenti minori delle versioni A proposito, dovresti stare bene.)

Problemi correlati