| | |
- astro.main.ProcessTarget.ProcessTarget(common.database.DBMeta.DBMixin, astro.main.OnTheFly.OnTheFly)
-
- GainLinearity(common.database.DataObject.DataObject, astro.main.ProcessTarget.ProcessTarget)
- common.database.DBMain.DBObject(__builtin__.object)
-
- GainLinearityParameters
- common.database.DataObject.DataObject(common.database.DBMain.DBObject)
-
- GainLinearity(common.database.DataObject.DataObject, astro.main.ProcessTarget.ProcessTarget)
class GainLinearity(common.database.DataObject.DataObject, astro.main.ProcessTarget.ProcessTarget) |
| |
The Gain (ADU conversion factor)
The gain is the conversion factor between the signal in ADU's
supplied by the readout electronics and the detected number of
photons (in units e$^-$/ADU).
The gain can be detemined by noting that the rms variation of a
signal will be due to the photon shot noise.
Give a number of domeflats, where the exposure time of flat_i ==
flat_N-(i-1), the following will produce a gain measurement:
>>> gn = GainLinearity()
>>> gn.raw_frames = [RawDomeFlatFrame('flat1.fits'),
...
RawDomeFlatFrame('flatN.fits')]
>>> gn.bias = BiasFrame('bias.fits')
>>> gn.process_params = GainLinearityParameters()
>>> gn.process_params.OVERSCAN_CORRECTION=5
>>> gn.make()
>>> print gn.gain
In addition, the GainLinearity object contains sufficient
information to asses the linearity by plotting the exposure
levels vs the exposure times. For example:
>>> pylab.scatter(gn.exptimes, gn.explevels) |
| |
- Method resolution order:
- GainLinearity
- common.database.DataObject.DataObject
- common.database.DBMain.DBObject
- astro.main.ProcessTarget.ProcessTarget
- common.database.DBMeta.DBMixin
- __builtin__.object
- astro.main.OnTheFly.OnTheFly
Methods defined here:
- __init__(self, pathname='')
- check_preconditions(self)
- compare(self)
- Compare the gain measurements with a previous version
The following flags may be set:
GAIN_DIFFER -- abs(gain/prev.gain-1) > MAXIMUM_GAIN_DIFFERENCE
- copy_attributes(self)
- derive_timestamp(self)
- evaluate_measurements(self)
- Evaluate the measurements obtained by get_measurements
Requires:
rms_diff -- measurements of the rms of the difference images
median_sum -- measurements of the median of the sum images
Modifies:
gain -- The gain (number of electrons/ADU)
Performs a linear least squares fit of median_sum as a function of
the square of rms_diff. The slope is a measure of the gain.
- get_linearity_data(self)
- This method returns a list of tuples containing the
exptime/explevel contained within the GainLinearity object
- get_measurements(self)
- Do the necessary measurements
Requires :
raw_domeflat_frames -- A list of 2N RawDomeFlat objects.
bias -- A BiasFrame object (optional)
Parameters:
OVERSCAN_CORRECTION -- overscan correction method
MAXIMUM_ITERATIONS -- for image statistics
REJECTION_THRESHOLD -- for image statistics
Updates:
median_sum -- Raw measurements of medians of added flats
rms_diff -- Raw measurements of stdevs of subtracted flats
exptimes -- The exposure time of each dome flat
explevels -- The exposure level (median) of each dome flat
gain -- The measurement of the gain
The procedure takes pairs of trimmed, overscan-corrected and
de-biased raw dome flats with equal exposure times. For each
pair the sum and difference image are computed. Next the
standard deviation of the difference image and the median of
the sum image are measured and recorded in rms_diff and
median_sum respectively.
- make(self)
- Do a gain measurement.
Requires :
raw_domeflat_frames -- A list of 2N RawDomeFlat objects.
bias -- A BiasFrame object (optional)
Parameters:
OVERSCAN_CORRECTION -- overscan correction method
MAXIMUM_ITERATIONS -- for image statistics
REJECTION_THRESHOLD -- for image statistics
Updates:
median_sum -- Raw measurements of medians of added flats
rms_diff -- Raw measurements of stdevs of subtracted flats
exptimes -- The exposure time of each dome flat
explevels -- The exposure level (median) of each dome flat
gain -- The measurement of the gain
The procedure takes pairs of trimmed, overscan-corrected and
de-biased raw dome flats with equal exposure times. For each
pair the sum and difference image are computed. Next the
standard deviation of the difference image and the median of
the sum image are measured (and recorded in rms_diff and
median_sum respectively) A linear regression of the medians
and the square of the standard deviations gives the gain
- save(self)
- sort_raw_domeflats(self)
- This method ensures that the input raw domeflat frames are sorted
by EXPTIME in the way expected, ie that the exposure time of
raw_domeflat_frames[i] equals that of raw_domeflat_frames[-(i+1)].
- update_header(self, header)
- verify(self)
- Verify the gain measurement
The following flags may be set:
GAIN_LOW -- gain < MINIMUM_GAIN
GAIN_HIGH -- gain > MAXIMUM_GAIN
Data descriptors defined here:
- GAIN_DIFFER
- GAIN_HIGH
- GAIN_LOW
- bias
- A BiasFrame object [None]
- chip
- Information about the chip [None]
- creation_date
- Date this object was created [None]
- explevels
- The exposure level (median) of each DomeFlatFrame [ADU]
- exptimes
- The exposure time of each DomeFlatFrame [second]
- filename
- The name of the associated file [None]
- gain
- The measurement of the gain (ADU conversion factor) [e^- / ADU]
- globalname
- The name used to store and retrieve file to and from Storage [None]
- instrument
- Information about the instrument [None]
- is_valid
- Manual/external flag to disqualify bad data (SuperFlag) [None]
- median_sum
- Raw measurements of medians of the added DomeFlatFrames [ADU]
- object_id
- The object identifier
The object identifier is an attribute shared by all persistent
instances. It is the prime key, by which object identity is established
- observing_block
- Information about the observing block [None]
- process_params
- Processing parameters [None]
- process_status
- A flag indicating the processing status [None]
- quality_flags
- Automatic/internal quality flag [None]
- raw_domeflat_frames
- A list of RawDomeFlatFrame objects [None]
- rms_diff
- Raw measurements of standard deviations of the subtracted DomeFlatFrames [ADU]
- template
- Information about the template [None]
- timestamp_end
- End of valid period [None]
- timestamp_start
- Start of valid period [None]
Data and other attributes defined here:
- PROCESS_TIME = 25
- mandatory_dependencies = (('raw_domeflat_frames', 2), ('bias', 1))
- prev = None
Methods inherited from common.database.DataObject.DataObject:
- FileName(self)
- Return the pathame of the object
- Name(self)
- Return the name of the object
- check_mandatory_dependencies(self)
- check if all the mandatory dependencies are set
- commit(self)
- derive_hash(self)
- Apply hashing function to the contents of the file that is part of
this object.
The SHA hashing function is used to calculate a hash value of the
contents of this DataObject. The hash value is returned as a
hexadecimal string.
- distinct(self, param_list)
- This method returns the distinct values from an input list. The
current implementation is kinda cheesy.
- exists(self)
- Test is the file existsts
- get_canonical_name(self, processlevel='')
- The canonical name of a DataObject.
- get_pathname(self)
- Getter for pathname
- is_on_dataserver(self)
- Checks if file is accessable on the dataserver.
NOTE: A return of False does NOT imply the file is not on any
dataserver! It is simply not on any accessable
dataserver.
- is_stored(self)
- locate(self)
- See common/net/dataserver_client.py (Data_IO.locate).
Returns a list of strings describing all dataservers where the file is
located as well as a few properties of the file, i.e.
['ip=...,port=...,path=...,size=...,mdate=...,
'ip=...,port=...,path=?,size=?,mdate=?']
Question marks indicate that this dataserver is not reachable.
- name_insert_suffix(self, suffix)
- name_replace_suffix(self, suffix)
- name_with_new_suffix(self, suffix)
- release(self)
- retrieve(self)
- set_filename(self, pathname=None, processlevel='')
- Specify a filename for this DataObject or use the default filename.
This method is used to set the filename attribute of a DataObject.
If called without a filename, the filename is set to the canonical name.
Classes that are derived from DataObject are expected to define a
method get_canonical_name() that returns the name for an instance
of that class. This is mandatory for CalFiles (or files that are
store()d on the data server) and optional for other files.
- set_pathname(self, pathname)
- Setter for pathname
- set_process_parameters_from_dict(self, pars={})
- pars is a dictionary of the type e.g.:
{'BiasFrame.process_params.SIGMA_CLIP':8}
- set_stored(self)
- set_user_config(self, pars={})
- store(self)
- store_with_hash_as_name(self, prefix='', suffix='fits')
- Name the file after the hash value of the file and store it.
First the hash value of the file is calculated. The pathname of the
dataobject is renamed to the hash value with the given suffix appended.
Then the file is stored.
Class methods inherited from common.database.DataObject.DataObject:
- is_cal(cls) from common.database.DBMeta.DBObjectMeta
- Test for being cal, derived raw classes should set _IS_CAL to 1
- is_config(cls) from common.database.DBMeta.DBObjectMeta
- Test for being config, derived raw classes should set _IS_CONFIG to 1
- is_raw(cls) from common.database.DBMeta.DBObjectMeta
- Test for being raw, derived raw classes should set _IS_RAW to 1
- is_science(cls) from common.database.DBMeta.DBObjectMeta
- Test for being science, derived raw classes should set _IS_SCIENCE to 1
- is_seq(cls) from common.database.DBMeta.DBObjectMeta
- Test for being seq, derived raw classes should set _IS_SEQ to 1
- is_support(cls) from common.database.DBMeta.DBObjectMeta
- Test for being config, derived raw classes should set _IS_SUPPORT to 1
Data descriptors inherited from common.database.DataObject.DataObject:
- pathname
Data and other attributes inherited from common.database.DataObject.DataObject:
- filepath = './'
- localname = ''
- storage = <common.net.dataserver_client.Storage at 0x1235830>
Methods inherited from common.database.DBMain.DBObject:
- __del__(self)
- Destructor for the DBObject
This destructor is called by the garbage collector for the transient
part of the DBObject. When it is called it calls the gc_transient()
method of the DBProxy implementation. The implementation of the
gc_transient() method can then decide what to do with the persistent
counterpart.
E.g. the database can be synchronized with its transient counterpart.
Another possibility is that the gc_transient() implementation checks
whether any attributes of a read-only object have changed since an
object was fetched from the database. If there are differences an
exception can be raised.
- __reduce__(self)
- Method necessary to create picklable objects
This mehod return a tuple containg a function object used for
unpickling and a picklable state tuple, to be used as argument
to the unpickle function. If necessary this object is registered
in the pickle cache
- as_dict(self, seqnr=1, dependency_name='', dictionary={}, allow_lazy_typed_list=False)
- Method much like the info method, but returns a dictionary.
Dictionary looks like:
{'<classname>.<property1_name>.<property2_name>': value,
'<classname>.<property2_name>.<property3_name>': value}
Problem: infinite loops for cold/flat dependencies. It seems a maximum
recursion depth limits the problem.
- get_creator(self)
- Returns the name of the user who created this object.
- get_persistent(self)
- get_project(self)
- Returns the name of the project to which this object belongs.
- info(self, level=0, doc=False, _indent=0, _printclass=True)
- Print the values of all persistent properties of the object.
level : level of introspection
doc : display docstrings for attributes
_indent : internal parameter used for formatting
_printclass : internal parameter used for formatting
- inverse_objects(self, max_results=100)
- Iterate through and return all objects that use the current object
max_results The maximum number of objects returned per query
- inverse_query(self)
- go through all inverse properties to see if this object is used
- persists(self)
- Returns whether an object is already made persistent or transient.
- recommit(self)
- Commits changes to an object, without following links.
Class methods inherited from common.database.DBMain.DBObject:
- get_inverse_properties(cls, props=None) from common.database.DBMeta.DBObjectMeta
- return all inverse properties
that are all the properties that point to this class
Data descriptors inherited from common.database.DBMain.DBObject:
- __dict__
- dictionary for instance variables (if defined)
- __weakref__
- list of weak references to the object (if defined)
Data and other attributes inherited from common.database.DBMain.DBObject:
- __metaclass__ = <class 'common.database.DBMeta.DBObjectMeta'>
- This is the metaclass for persistent classes
Provides:
__new__ -- manages class construction
__call__ -- manages object instantiation
- database = <common.database.DBOracle.DBProxy instance at 0xbce170>
- pickle_id = None
Methods inherited from astro.main.ProcessTarget.ProcessTarget:
- check_observing_blocks(self, childs)
- check if all childs have the same observing_block
- check_templates(self, childs)
- check if all childs have the same template
- get_dependencies(self)
- Return a list of names of attributes that are required for make()
- get_qcflags_set(self)
- Return a list of names of flags that have been set.
- get_qcflags_set_dict(self)
- Return a dictionary of flags that have been set. The key is the
name, the value is a tuple of (index, docstring).
- inspect(self)
- Quality Control -- visual inspection
Visual inspection of the data remains a powerful tool in
quality control. The inspect() method provides the mechanism
to record the results of visual inspection for posterity.
- is_compared(self)
- Return true if the object has been compared
- is_inspected(self)
- Return true if the object has been inspected
- is_made(self)
- Return true if the object has been made
- is_ok(self)
- Return true if no quality control flags have been set.
- is_verified(self)
- Return true if the object has been verified
- set_compared(self)
- Set the process status to indicate that the object has been
compared.
- set_inspected(self)
- Set the process status to indicate that the object has been
inspected.
- set_made(self)
- Set the process tatus to indicate that the object has been made
- set_verified(self)
- Set the process status to indicate that the object has been
verified.
Class methods inherited from astro.main.ProcessTarget.ProcessTarget:
- get_qcflags(cls) from common.database.DBMeta.DBObjectMeta
- Return a list of attribute names of QCflag() objects.
- select(cls, **searchterms) from common.database.DBMeta.DBObjectMeta
- Class method to select RawFrames, Calfiles and ReducedScienceFrames
from the database.
Syntax example:
q = RawScienceFrame.select(instrument='WFI', filter='#842',
chip='ccd50', time_from='2000-01-02 04:45:46',
time_to='2000-01-02 05:03:00')
Possible search terms:
----------------------
check_quality - (Default 1) Exclude invalidated data (quality_flags!=0)
check_validity - (Default 1) Exclude invalidated data (is_valid=0)
chip - select of the same CCD ('ccd50', 'ccd51', etc.)
date - select of the same date (i.e. date at the start of
observing night, in yyyy-mm-dd format)
exptime - select frames with similar exposure time
(EXPTIME-0.8sec to EXPTIME+0.8 sec)
extension - select (raw) frames for a certain extension of its
RawFitsData object
filename - select a frame(!) by its filename
filter - select of the same filter ('#842', '#843', etc.)
instrument - select of the same instrument ('WFI', 'WFC', 'OCAM')
object - select for OBJECT header keyword, uses "like"
functionality, which allows wildcards "*" and "?"
time_from - precise form of date, in yyyy-mm-dd hh:mm:ss format
time_to - required when using time_from
- select_for_raw(cls, raw, overscan=None, check_quality=1, check_validity=1) from common.database.DBMeta.DBObjectMeta
- Class method to select the most recent valid calfile for the
provided raw frame from the database.
- select_for_reduced(cls, reduced, overscan=None, check_quality=1, check_validity=1) from common.database.DBMeta.DBObjectMeta
- Synonym for the select_for_raw method; the implementation should
be identical.
Data and other attributes inherited from astro.main.ProcessTarget.ProcessTarget:
- STATUS_COMPARE = 2
- STATUS_INSPECT = 3
- STATUS_MAKE = 0
- STATUS_VERIFY = 1
Class methods inherited from common.database.DBMeta.DBMixin:
- get_persistent_attributes(cls) from common.database.DBMeta.DBObjectMeta
- return a list of persistent attributes
Methods inherited from astro.main.OnTheFly.OnTheFly:
- Flagged(self)
- Check if any flag is set
return 1 for flag is set
return 0 no flag
- after_do_make(self, switches=None)
- extra make statements, this method can be overridden by OnTheFly classes to
implement extra make statements which will be executed after the make of self
- after_set_onthefly_dependencies(self, switches, advanced)
- this method is called after the onthefly method set_onthefly_dependencies
derived classes can implement this method to customize the dependencies
setting after this has been done automatically by onthefly
- after_uptodate_object(self, dependencies_missing, dependencies_new, dependencies_obsolete)
- The uptodate_object method determines if the object is uptodate, and will result in three listings :
dependencies_missing - missing mandatory dependencies
dependencies_new - new dependencies
dependencies_obsolete - current dependencies that are obsolete
Derived classes can override this method to tweak the listings
- check_for_mandatory(self, dep_str, dep_new)
- check if dependency is mandatory and present
dep_str is the name of the attribute, dep_new is the (attribute) object
- get_onthefly_dependencies(self, advanced=None)
- Method retrieves a list of all dependencies used for
on-the-fly processing
Return: [dependency, dependency class, dependency name]
- uptodate(self, date_time=None, template=None, switches=None, advanced=None)
- This method checks if the object is up-to-date, for the given datetime.
OnTheFly_uptodate class has the functionality for checking uptodate
Class methods inherited from astro.main.OnTheFly.OnTheFly:
- exist(cls, date_time=None, chip=None, filter=None, object_id=None, parent=None, parent_attr=None, template=None, extra=[], advanced=None, switches=None) from common.database.DBMeta.DBObjectMeta
- for the given parameters and class return the most
recent object(s), or None
- get_onthefly(cls, date_time=None, filter=None, chip=None, object_id=None, advanced=None, switches=None, template=None, parent=None, parent_attr=None) from common.database.DBMeta.DBObjectMeta
- For the given parameters and class get the object,
if the object does not exist -> make it.
This is done recursively for all dependencies.
The object can only be made if there are raws
|
class GainLinearityParameters(common.database.DBMain.DBObject) |
| |
The parameters used in GainLinearity processing. |
| |
- Method resolution order:
- GainLinearityParameters
- common.database.DBMain.DBObject
- __builtin__.object
Data descriptors defined here:
- MAXIMUM_GAIN
- QC: The maximum gain [None]
- MAXIMUM_GAIN_DIFFERENCE
- QC: Maximum relative gain difference [None]
- MAXIMUM_ITERATIONS
- The maximum number of iterations [None]
- MINIMUM_GAIN
- QC: The minimum gain [None]
- OVERSCAN_CORRECTION
- Overscan correction method index [None]
- REJECTION_THRESHOLD
- The threshold rejecting outlying pixels [None]
- object_id
- The object identifier
The object identifier is an attribute shared by all persistent
instances. It is the prime key, by which object identity is established
Methods inherited from common.database.DBMain.DBObject:
- __del__(self)
- Destructor for the DBObject
This destructor is called by the garbage collector for the transient
part of the DBObject. When it is called it calls the gc_transient()
method of the DBProxy implementation. The implementation of the
gc_transient() method can then decide what to do with the persistent
counterpart.
E.g. the database can be synchronized with its transient counterpart.
Another possibility is that the gc_transient() implementation checks
whether any attributes of a read-only object have changed since an
object was fetched from the database. If there are differences an
exception can be raised.
- __reduce__(self)
- Method necessary to create picklable objects
This mehod return a tuple containg a function object used for
unpickling and a picklable state tuple, to be used as argument
to the unpickle function. If necessary this object is registered
in the pickle cache
- as_dict(self, seqnr=1, dependency_name='', dictionary={}, allow_lazy_typed_list=False)
- Method much like the info method, but returns a dictionary.
Dictionary looks like:
{'<classname>.<property1_name>.<property2_name>': value,
'<classname>.<property2_name>.<property3_name>': value}
Problem: infinite loops for cold/flat dependencies. It seems a maximum
recursion depth limits the problem.
- commit(self)
- Commits object including objects that are referenced and have been changed.
If this object refers to other persistent object a commit() ensures that
1. ALL changes to the object and referred objects are made persistent.
2. NONE of the changed object and referred objects are made persistent.
Under normal circumstances only the first thing should ever happen.
If the second case occurs it is almost certainly because of some bug in
the routine that implements the DBProxy interface.
- get_creator(self)
- Returns the name of the user who created this object.
- get_persistent(self)
- get_project(self)
- Returns the name of the project to which this object belongs.
- info(self, level=0, doc=False, _indent=0, _printclass=True)
- Print the values of all persistent properties of the object.
level : level of introspection
doc : display docstrings for attributes
_indent : internal parameter used for formatting
_printclass : internal parameter used for formatting
- inverse_objects(self, max_results=100)
- Iterate through and return all objects that use the current object
max_results The maximum number of objects returned per query
- inverse_query(self)
- go through all inverse properties to see if this object is used
- persists(self)
- Returns whether an object is already made persistent or transient.
- recommit(self)
- Commits changes to an object, without following links.
Class methods inherited from common.database.DBMain.DBObject:
- get_inverse_properties(cls, props=None) from common.database.DBMeta.DBObjectMeta
- return all inverse properties
that are all the properties that point to this class
Data descriptors inherited from common.database.DBMain.DBObject:
- __dict__
- dictionary for instance variables (if defined)
- __weakref__
- list of weak references to the object (if defined)
Data and other attributes inherited from common.database.DBMain.DBObject:
- __metaclass__ = <class 'common.database.DBMeta.DBObjectMeta'>
- This is the metaclass for persistent classes
Provides:
__new__ -- manages class construction
__call__ -- manages object instantiation
- database = <common.database.DBOracle.DBProxy instance at 0xbce170>
- pickle_id = None
| |