[AstroPy] Inheriting HDUList
Erik Bray
embray at stsci.edu
Mon Feb 3 14:30:09 EST 2014
On 02/02/2014 09:10 AM, Joe Philip Ninan wrote:
> Hi,
> Is there any online example of how to create a new child object from HDUList of
> astropy.io.fits ? (The object astropy.io.fits.open() returns).
> I want to create an object class which inherits everything from HDUList, and
> then add some additional functions.
> The part i cannot figure out is how to initialize the HDUList inside the new class.
>
> class MyFitsObject(HDUList):
> def __init__(self,filename):
> # How do i initialise HDUList here, when all i have is the Fits File name?
Hi,
It depends on exactly what you want to do--you have to be careful as HDUList has
a bit of internal state that needs to be managed, but for the most part if you
just want to extend it with some new methods it's safe enough. But it's hard to
help without knowing exactly what you need to do.
One thing I would emphatically *not* recommend is to pass a filename to your
__init__, but again it depends on exactly what you need the subclass to do.
Normally HDUList is treated as a more abstract datastructure that may or may not
have actually come from a file on disk. HDUList.fromfile should be used to read
an HDUList from a file (in fact it's basically what pyfits.open() wraps).
The base HDUList.__init__ simply accepts a list of HDU objects to add to the list.
Erik
More information about the AstroPy
mailing list