Luiza  v03-01
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
luiza::WeightedAperturePhotometry Class Reference

Processor to calculate aperture photometry on the CCD frame. More...

#include <WeightedAperturePhotometry.h>

Inheritance diagram for luiza::WeightedAperturePhotometry:
luiza::Processor

Public Member Functions

virtual ProcessornewProcessor ()
 Return a new instance of the processor. More...
 
virtual void init ()
 
virtual void processData (GloriaDataContainer *data)
 
virtual void check (GloriaDataContainer *data)
 Called for every loop - right after processData() call. More...
 
virtual void end ()
 
- Public Member Functions inherited from luiza::Processor
 Processor (const std::string &typeName)
 Default constructor. More...
 
virtual ~Processor ()
 Destructor.
 
virtual void startAnalysis (GloriaDataContainer *)
 Called before first data processing loop. More...
 
virtual void concludeAnalysis (GloriaDataContainer *)
 Called after all data processing loops. More...
 
virtual const std::string & type () const
 Return type name for the processor (as set in constructor).
 
virtual const std::string & name () const
 Return name of this processor.
 
virtual const std::string & logLevelName () const
 Return name of the local verbosity level of this processor - "" if not set.
 
virtual StringParameters * parameters ()
 Return parameters defined for this Processor.
 
virtual void printDescription ()
 Print information about this processor in ASCII steering file format.
 
virtual void printDescriptionXML (std::ostream &stream=std::cout)
 Print information about this processor in XML steering file format.
 
template<class T >
void printParameters ()
 Print the parameters and their values depending on the given verbosity level.
 
void printParameters ()
 Print the parameters and their values with verbosity level MESSAGE.
 
const std::string & description ()
 Description of processor.
 
bool isFirstEvent ()
 True if first event in processEvent(evt) - use this e.g. to initialize histograms etc.
 
GloriaCollectionType getGloriaInType (const std::string &colName)
 Return the input type for the collection colName. More...
 
GloriaCollectionType getGloriaOutType (const std::string &colName)
 Return the output type for the collection colName. More...
 
bool isInputCollectionName (const std::string &parameterName)
 Check if parameter defines collection. More...
 
bool isOutputCollectionName (const std::string &parameterName)
 True if the given parameter defines an LCIO output collection */.
 

Protected Member Functions

void printEndMessage () const
 
- Protected Member Functions inherited from luiza::Processor
void setReturnValue (bool val)
 Set the return value for this processor - typically at end of processEvent(). More...
 
void setReturnValue (const std::string &name, bool val)
 Set a named return value for this processor - typically at end of processEvent() More...
 
template<class T >
void registerProcessorParameter (const std::string &name, const std::string &description, T &parameter, const T &defaultVal, int setSize=0)
 Register a steering variable for this processor - call in constructor of processor. More...
 
void registerInputCollection (const GloriaCollectionType &type, const std::string &name, const std::string &description, std::string &parameter, const std::string &defaultVal, int setSize=0)
 Register parameter describing input collection. More...
 
void registerOutputCollection (const GloriaCollectionType &type, const std::string &name, const std::string &description, std::string &parameter, const std::string &defaultVal, int setSize=0)
 Register parameter describing output collection. More...
 
void registerInputCollections (const GloriaCollectionType &type, const std::string &name, const std::string &description, StringVec &parameter, const StringVec &defaultVal, int setSize=0)
 Register parameter describing input collections. More...
 
template<class T >
void registerOptionalParameter (const std::string &name, const std::string &description, T &parameter, const T &defaultVal, int setSize=0)
 Same as registerProcessorParameter except that the parameter is optional. More...
 
bool parameterSet (const std::string &name)
 Tests whether the parameter has been set in the steering file.
 
template<class T >
void message (const std::string &message) const
 Print message according to verbosity level. More...
 
template<class T >
void message (const std::basic_ostream< char, std::char_traits< char > > &m) const
 Similar to message(const std::string& message) More...
 
std::stringstream & log () const
 Returns an empty stringstream that is used by the message method.
 
virtual void setProcessorParameters (StringParameters *parameters)
 Allow friend class CCProcessor to change/reset processor parameters.
 
virtual void updateParameters ()
 Allow friend class CCProcessor to update processor parameters.
 
virtual void updateTelescopeParameters (std::string name)
 Allow to update processor parameters for given telescope name. More...
 
virtual void updateTelescopeParameters (GloriaFitsHeader *header)
 Update processor parameters based on FITS header. More...
 

Protected Attributes

string _imageCollectionName
 Name of the image collection containing images.
 
string _listCollectionName
 Name of the table collection containing object lists.
 
string _outputCollectionName
 Name of the output object list collection.
 
bool _permanentCollection
 Flag the output collection to be permanent.
 
float _apertureRadius
 Radius of circular aperture used for signal counting in pixels.
 
std::vector< float > _annulusRadii
 Inner and outer radius of the annulus used for background subtraction.
 
int _backgroundSampling
 Background sampling factor. More...
 
int _frameDivision
 Frame division for background calculation. More...
 
int _interpolationOrder
 Polinomial order used to interpolate background map.
 
double _signalThreshold
 Threshold for the cluster signal (in units of noise level)
 
bool _removeEmpty
 Flags if clusters with signal below SignalThreshold should be removed.
 
std::string _brightnessColumn
 Name of the column to store object signal.
 
std::vector< float > _objectPositions
 Object positions (two numbers, RA,DEC in degree, per object)
 
bool _useTelescopeParameters
 Use network configuration file to update processor parameters. More...
 
bool _usingObjectList
 Flag indicating input method used.
 
bool _correctPosition
 Flag for calculating CoG position from pixels within aperture.
 
std::vector< std::string > _positionColumns
 Column names for corrected positions.
 
bool _addNoise
 Flag for writing noise information to output table.
 
string _noiseColumn
 Column name for noise information.
 
bool _addSpread
 Flag for writing spread information to output table.
 
std::vector< std::string > _spreadColumns
 Column names for spread information.
 
bool _addShape
 Flag for writing shape information to output table.
 
std::vector< std::string > _shapeColumns
 Column names for shape information.
 
std::vector< std::string > _copykey
 Keywords of image fits header to copied to the table header.
 
bool _usingStatistics
 Flag indicating calculation of statistics for pixel within aperture.
 
std::vector< int > _apShiftX
 Pixel shifts for aperture definition (to speed up the code)
 
std::vector< double > _awWeights [9]
 Weights attributed to pixels at the aperture boundary. More...
 
- Protected Attributes inherited from luiza::Processor
std::string _description
 Describes what the processor does. Set in constructor.
 

Detailed Description

Processor to calculate aperture photometry on the CCD frame.

Processor to calculate aperture photometry on CCD images in the input collection. If input object collection is specified, photometry is calculated for all objects in the object list. For the targeted analysis, coordinates of the objects of interest can be specified. However, valid astrometry has to be found in the image fits header in that case. Two approaches for background calculation are possible: either it is calculated from media of pixels in annulus around object position (when AnnulusRadii is specified) or from the background map calculated for the whole image (as in BackgroundImage processor). The algorithm used differs from the one implemented in FastAperturePhotometry by introducing weights for pixels which are at the aperture boundary. The weight depends also on the exact position of the object.

Input
Processor uses images from Gloria data collection
Parameters
ImageCollectionName- Name of the collection containing input images
ListCollectionName- Name of the collection containing GloriaObjectList
ObjectPositionsPositions of the considered objects in (Ra,Dec), should be given in degrees (N x 2 numbers).
Algorithm parameters
User can modify processor performance by settin the aperture radius (for signal counting) and annulus radii (background subtraction). Background is calculated as signal median from the pixels inside annulus.
Parameters
ApertureRadius- Radius of circular aperture used for signal counting in pixels. Distance is calculated from actual object position and appropriate weights are applied to pixels which are only partly contained in the defined aperture.
AnnulusRadii- Inner and outer radius of the annulus used for background subtraction.
BackgroundSampling- Background level calculation for the whole image can be sped up by considering only 1/BackgroundSampling of pixels.
FrameDivision- Background for the image is calculated for FrameDivision x FrameDivision subimages and then interpolated between them.
InterpolationOrder- polinomial order used to interpolate between centers of subframes when calculating background values on the image
SignalThreshold- Threshold for the signal value, given in units of noise level (above background level). For signal below this threshold zero value is stored (or the cluster is removed from the list, if RemoveEmpty flag is set).
RemoveEmpty- Flag which indicates if clusters with signal below SignalThreshold should be removed from ObjectList or not.
Output
Object lists are stored in the output collection
Parameters
BrightnessColumn- Name of the column in which object brightness should be stored ('Signal' by default).
OutputCollectionName- Name of the collection where object table will be stored
PermanentCollection- Flag output collection, as permanent, not deleted after loop is finished (default is false)
CorrectPositionFlag to enable cluster position recalculation, based on the CoG of pixels within the aperture.
PositionColumnsNames for columns containing corrected position. Default is "CCD_X" and "CCD_Y", which means that positions in the input object list will be corrected.
AddNoiseFlag to add noise information to the output table.
NoiseColumnName for the noise column. Default name is "Noise"
AddSpreadFlag to add charge spread information to the output table: RMS in X, RMS in Y and X-Y correlation calculated from pixels within aperture.
SpreadColumnsNames for columns containing charge spread information. Default names are "RMS_X", "RMS_Y" and "CORR_XY"
AddShapeFlag to add charge distribution shape information to the output table: object size (FWHM), elongation (ellipticity), spread along primary (longer) and secondary (shorter) axis, and orientation (direction of the primary axis in degrees).
ShapeColumnsNames for columns containing charge distribution shape information. Default names are "FWHM", "ELONG", "LENGTH", "WIDTH" and "ANGLE"
HeaderRecords- Keywords of image fits header, which should be copied to the fits header of the object list. This is done only if the new list is created. If brightness is added to the existing list, no records are copied. Default keyword list consists of following records: DATE-OBS, JD, HJD, OBJECT, TIME_UT TELESCOP, INSTRUME, OBSERVAT, CAMID, RA, DEC.

Member Function Documentation

void luiza::WeightedAperturePhotometry::check ( GloriaDataContainer )
virtual

Called for every loop - right after processData() call.

Can be used to check processing and/or produce check plots.

Reimplemented from luiza::Processor.

void luiza::WeightedAperturePhotometry::end ( )
virtual

Called after data processing for clean up.

Reimplemented from luiza::Processor.

void luiza::WeightedAperturePhotometry::init ( )
virtual

Called at the begin of the job before anything is read. Use to initialize the processor, e.g. book histograms.

Reimplemented from luiza::Processor.

virtual Processor* luiza::WeightedAperturePhotometry::newProcessor ( )
inlinevirtual

Return a new instance of the processor.

Has to be implemented by subclasses.

Implements luiza::Processor.

void luiza::WeightedAperturePhotometry::printEndMessage ( ) const
protected

Test method for const.

void luiza::WeightedAperturePhotometry::processData ( GloriaDataContainer data)
virtual

Called for every data loop

Reimplemented from luiza::Processor.

References gloria::GloriaFitsTable::AddColumn(), gloria::GloriaFitsHeader::AddKeyword(), gloria::GloriaObjectList::AddObject(), gloria::GloriaClusterStatistics::AddPixel(), gloria::GloriaFitsTable::AdjustColumns(), gloria::GloriaMedianMap::CalculateBgMap(), gloria::GloriaFitsTable::ColumnExists(), gloria::GloriaDataContainer::CreateTableCollection(), gloria::GloriaFitsTable::DeleteRow(), gloria::GloriaMedianMap::GetBgLevel(), gloria::GloriaClusterStatistics::GetElongation(), gloria::GloriaFitsImage::GetFloatImageData(), gloria::GloriaClusterStatistics::GetFWHM(), gloria::GloriaDataContainer::GetImageCollection(), gloria::GloriaFitsImage::GetIntImageData(), gloria::GloriaFitsHeader::GetKeywordRecord(), gloria::GloriaClusterStatistics::GetLength(), gloria::GloriaMedianMap::GetNoise(), gloria::GloriaObjectList::GetObjectNumber(), gloria::GloriaClusterStatistics::GetOrientation(), gloria::GloriaFitsTable::GetRowNumber(), gloria::GloriaClusterStatistics::GetSignal(), gloria::GloriaDataContainer::GetTableCollection(), gloria::GloriaFitsTable::GetValueOf(), gloria::GloriaClusterStatistics::GetWidth(), gloria::GloriaClusterStatistics::GetXpos(), gloria::GloriaClusterStatistics::GetXspread(), gloria::GloriaClusterStatistics::GetXYcorr(), gloria::GloriaClusterStatistics::GetYpos(), gloria::GloriaClusterStatistics::GetYspread(), gloria::GloriaDataContainer::ImageCollectionExists(), gloria::GloriaFitsImage::IsFloatImage(), gloria::GloriaFitsHeader::IsKeywordSet(), gloria::GloriaFitsTable::Print(), gloria::GloriaFitsHeader::PrintHeader(), gloria::GloriaFitsTable::SetLast(), gloria::GloriaFitsTable::SetValue(), gloria::GloriaFitsImage::SizeX(), gloria::GloriaFitsImage::SizeY(), and gloria::GloriaDataContainer::TableCollectionExists().

Member Data Documentation

std::vector<double> luiza::WeightedAperturePhotometry::_awWeights[9]
protected

Weights attributed to pixels at the aperture boundary.

Weights are calculated for 9 object positions on the central pixel (3x3 grid: 0 for (0,0), 1 for (0.5,0) ... 8 for (1.,1)) and then interpolated.

int luiza::WeightedAperturePhotometry::_backgroundSampling
protected

Background sampling factor.

Parameter used to speed up background level calculation. Only every BackgroundSampling pixel is used.

int luiza::WeightedAperturePhotometry::_frameDivision
protected

Frame division for background calculation.

Background is calculated for FrameDivision x FrameDivision subimages and then interpolated between them

bool luiza::WeightedAperturePhotometry::_useTelescopeParameters
protected

Use network configuration file to update processor parameters.

When true, network configuration file is checked for each analysed image and processor parameters are changed if default parameter values are defined for given instrument/telescope.


The documentation for this class was generated from the following files: