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

Processor implementing Astrometry.net algorithms. More...

#include <Astrometry.h>

Inheritance diagram for luiza::Astrometry:
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
 
int GetAstrometricIndexesForImage (char **, GloriaFitsImage *)
 
- 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 to be added.
 
std::vector< std::string > _positionColumns
 Names of the position columns in the object table.
 
std::string _brightnessColumn
 Name of the object brightness column.
 
bool _magnitudoGiven
 Flag for brightness given in magintudo.
 
double _PixscaleHigh
 Upper boundary of possible pixel sizes in arcseconds.
 
double _PixscaleLow
 Lower boundary of possible pixel sizes in arcseconds.
 
string _Indexes_path
 Path to astrometric (astrometry.net) indexes files.
 
int astrodepth
 Depth limit for astrometry.net algorithm.
 
int astroorder
 Order of the SIP polynomial in astrometry fit.
 
int _maxObjects
 Maximum number of objects to be used in astrometry algorithm.
 
float _minDistance
 Minimum distance between two objects to be used in astrometry algorithm.
 
float _bloomingCut
 Minimum distance between objects along vertical or horizontal line.
 
int verbosity
 Verbosity of astrometry.net output.
 
bool inparallel
 Solve using indexes parallely or not.
 
bool overwrite
 Recalculate and overwrite astrometry if exists in a file.
 
bool addposition
 Add object positions to the object list table.
 
bool addtoheader
 Add astrometry output to the object list table header.
 
- Protected Attributes inherited from luiza::Processor
std::string _description
 Describes what the processor does. Set in constructor.
 

Detailed Description

Processor implementing Astrometry.net algorithms.

Processor to apply Astrometry.net algorithm for finding image orientation and transformation for calculating object position in the sky. As an input to the algorithm gloria::GloriaObjectList collection should be given. If image collection is specified as well, calculated astrometry parameters are added to the image FITS header.

Input
Processor takes object lists and images from Gloria data collections
Parameters
ListCollectionName- Name of the collection containing object collection (corresponding to the object list)
ImageCollectionName- Name of the collection containing images (corresponding to the object list)
PositionColumnsNames of the object table columns from which object position should be taken. These are 'CCD_X' and 'CCD_Y' by default (default column names for Luiza photometry processors), but can be changed by user.
BrightnessColumnName of the object list column from which object brightness should be taken ('Signal' by default).
MagnitudoGivenFlag to indicate that the brightness stored in the input table is already in magnitudo scale (logarythmic). Default is 'false'.
Output

Object list with astrometry can be stored in the new collection

Parameters
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)
Overwrite- Flag to recalculate and overwrite astrometry, even if it exists in the file header
AddPosition- Flag to add RA DEC positions from astrometry to the input object list
AddToHeader- Flag to add astrometry parameters to the object list header
Algorithm parameters
Parameters
IndexesPath- Path to astrometric (astrometry.net) indexes files This files are required for the algorithm to run. They can be downloaded from dedicated astrometry.net web page.
PixscaleHigh- Upper boundary of possible pixel sizes in arcseconds, used when selecting the index files for analysis.
PixscaleLow- Lower boundary of possible pixel sizes in arcseconds
AstroDepth- Depth limit for the astrometry algorithm (default 0)
AstroOrder- Order of the SIP polynomial in astrometry fit (default 3)
MaxObjects- Maximum number of objects to be used for astrometry. Brightest objects are selected.
MinDistance- Minimum distance (in pixels) between two objects to be used for astrometry. Brightest objects are selected. This can help to remove some artefacts.
BloomingCut- Minimum distance between objects along vertical or horizontal line. To remove artificial sets of objects along vertical or horizontal lines which can appear due to blooming etc.
AstVerbosity- Verbosity level of astrometry.net routines (default 0)
InParallel- Solve using indexes parallely or not (default true)

Member Function Documentation

void luiza::Astrometry::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::Astrometry::end ( )
virtual

Called after data processing for clean up.

Reimplemented from luiza::Processor.

References printEndMessage().

int luiza::Astrometry::GetAstrometricIndexesForImage ( char **  index_list,
GloriaFitsImage cur_frame 
)
protected

Return list of astrometry.net indexes proper for the image angular size Only those indexes physically accessible are returned Need to be a char **, since astrometry.net code is in plain C

References _Indexes_path, _PixscaleHigh, gloria::GloriaFitsHeader::GetKeywordValueDouble(), gloria::GloriaFitsHeader::IsKeywordSet(), gloria::GloriaFitsImage::SizeX(), and gloria::GloriaFitsImage::SizeY().

Referenced by processData().

void luiza::Astrometry::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.

References _imageCollectionName, luiza::Processor::name(), luiza::Processor::parameters(), and luiza::Processor::setReturnValue().

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

Return a new instance of the processor.

Has to be implemented by subclasses.

Implements luiza::Processor.

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

Test method for const.

Referenced by end().

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

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