The Astro-WISE class hierarchy

At the heart of the Astro-WISE library lies the persistence class hierarchy, These classes provide the definition of the object that are operated on when processing and analyzing data. Since these classes are persistent, the results of these operations will be automatically saved in a database.

Below is an overview of this class hierachy. Remember that derived classes inherit attributes and methods from base classes. For example, BaseFrame, the base class for all classes representing image data, inherits from DataObject, which represents all objects that represent some sort of data on disk.

                      DBObject
                         |
+DataObject--------------+---------------+
   |                                     |
   +--AssociateList *                    +--Astrom
   +--BaseCatalog                        +--AstrometricCorrection *
   |    |                                +--AstrometricParameters *
   |    +--AstrometricCatalog *          +--BaseAtmostphericExtinction
   |    +--Catalog *                     |    |
   |    |    |                           |    +--AtmostphericExtinction *
   |    |    +--PhotSrcCatalog *         |    |    |
   |    |                                |    |    +--AtmosphericExtinctionFrames *
   |    +--PhotRefCatalog                |    |    +--AtmostphericExtinctionZerpoint *
   |    |                                |    |
   +--BaseFrame                          |    +--AtmostphericExtinctionCurve *
   |    |                                |    +--AtmosphericExtinctionCoefficient *
   |    +--BaseFlatFrame                 |
   |    |    |                           +--Chip
   |    |    +--DomeFlatFrame *          +--Config
   |    |    +--MasterFlatFrame *        |    |
   |    |    +--TwilightFlatFrame *      |    +--AddImageCalibsConfig
   |    |                                |    +--AplastromConfig
   |    +--BiasFrame *                   |    +--AssociateConfig
   |    +--FringeFrame *                 |    +--AstromConfig
   |    +--IlluminationCorrectionFrame * |    +--PreastromConfig
   |    +--NightSkyFlatFrame *           |    +--PrephotomConfig
   |    +--QuickCheckFrame *             |    +--MakeSscConfig
   |    +--RawFrame *                    |    +--SextractorConfig
   |    |    |                           |    +--SwarpConfig
   |    |    +--RawBiasFrame *           |
   |    |    +--RawDarkFrame *           +--DarkCurrent *
   |    |    +--RawDomeFlatFrame *       +--Filter
   |    |    +--RawScienceFrame *        +--GAstrometric *
   |    |    +--RawTwilightFlatFrame *   +--DarkCurrent *
   |    |                                +--Imstat
   |    +--ReducedScienceFrame *         +--Instrument
   |    +--RegriddedBaseFrame            +--Lamp
   |    |    |                           +--PhotTransformation
   |    |    +--CoaddedRegriddedFrame *  +--ReadNoise *
   |    |    +--RegriddedFrame *         +--SubWinStat *
   |    |
   |    +--ShutterCheckFrame *
   |    +--WeightFrame *
   |
   +--GainLinearity *
   +--IlluminationCorrection *
   +--PhotometricReport
   |    |
   |    +--PhotometricSkyReport
   |
   +--PhotExtinctionCurve
   +--PhotometricExtinctionReport *
   +--PhotometricParameters *
   +--PhotSkyBrightness
   +--PixelMap
   |    |
   |    +--ColdPixelMap *
   |    +--CosmicMap *
   |    +--HotPixelMap *
   |    +--LinearityMap *
   |    +--SatelliteMap *
   |    +--SaturatedPixelMap *
   |
   +--RawFitsData
   +--SourceList *
The class hierarchy of Astro-WISE. Asterisks mark objects that have a make() method.

The following key classes are defined in the hierarchy:

DBObject
All objects deriving from DBObjects are persistent. Hence, all these objects can be saved and retrieved from a database
DataObject
All DataObject objects have associated bulk data (FITS files, catalogs) which can be stored and retrieved from a central data server
BaseFrame
All objects derived from BaseFrame describe the contents of associated FITS images and have methods that operate on these images
Catalog
All Catalog objects describe LDAC catalogs and define methods that operate on these catalogs
Config
These objects store the contents of the configuration files of external packages (SExtractor, SWarp, LDAC)

All classes that define a make method (marked by asterisk in above figure) also derive from the mixin [1] class ProcessTarget.

ProcessTarget
Classes that also derive from this class have make() methods and quality control flags (QCFlag() properties)
[1]A ‘mixin’ class is a class that adds behaviour to another class in a derived class using multiple inheritance