astro.main.PhotometricExtinctionReport (version @(#)$Revision: 1.55 $)
index
/astro-wise/AWEHOME/AWBASE/astro/main/PhotometricExtinctionReport.py

 
Modules
       
astro.external.LDAC
datetime
time

 
Classes
       
astro.main.PhotometricReport.PhotometricReport(common.database.DataObject.DataObject, astro.main.ProcessTarget.ProcessTarget)
PhotometricExtinctionReport
common.database.DBMain.DBObject(__builtin__.object)
PhotometricExtinctionReportParameters
PhotometricExtinctionReportRecord

 
class PhotometricExtinctionReport(astro.main.PhotometricReport.PhotometricReport)
    
Method resolution order:
PhotometricExtinctionReport
astro.main.PhotometricReport.PhotometricReport
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='')
create_record(self, mag_id, date, atmos, extinct_diff)
derive_extinctions(self)
echo_results_of_fit(self, records, fit_results)
fit_curve_to_extinctions_and_store_results(self, atmos_dict)
get_central_date(self, dates)
get_content(self)
get_shift(self)
inspect(self)
load(self)
make(self)
The atmospheric stability through the night is determined using at
least three separate observations of a standard field taken at various
moments during the night. These fields should have been observed in at
least three different photometric bands at each of the separate
observations.
 
   Required inputs :
       photcats -- a list of sextractor catalogs that have been
                   associated with a reference catalog, ie a list of
                   PhotSrcCatalog objects
       photoms  -- a list of PhotometricParameters objects, one for
                   every chip/filter combination present in the
                   "photcats" list
       extcurve -- a standard extinction curve
 
   Process result :
       -- a list of monitoring records, one for every sampling point
          of a given photometric band
       -- the shift of the standard extinction curve as determined for
          the observation at the middle of the night
save(self)
set_shift_for_the_night(self)
The shift of the extinction curve as determined from the observation
at the middle of the night is assigned to the shift and shift_err
attributes of the PhotometricExtinctionReport object.
update_records(self, records, fit_results)
verify(self)

Class methods defined here:
select_for_raw(cls, photcat) from common.database.DBMeta.DBObjectMeta
This static method emulates the "select_for_raw" from ProcessTarget.

Data descriptors defined here:
INVALID_ASSUMPTION_FOR_SHAPE_OF_CURVE
SHAPE_OF_CURVE_VARIED
SHIFT_OF_CURVE_VARIED
creation_date
Date this object was created [None]
extcurve
Standard extinction curve [None]
extinctionreportrecords
A list of PhotometricExtinctionReportRecord objects [None]
filename
The name of the associated file [None]
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]
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
photcats
The input PhotSrcCatalogs [None]
photoms
The input PhotometricParameters [None]
process_params
Processing parameters [None]
process_status
A flag indicating the processing status [None]
quality_flags
Automatic/internal quality flag [None]
shift
Shift of the extinction curve [mag / airmass]
shift_err
Shift error [mag / airmass]
timestamp_end
End of valid period [None]
timestamp_start
Start of valid period [None]

Data and other attributes defined here:
PROCESS_TIME = 30

Methods inherited from astro.main.PhotometricReport.PhotometricReport:
check_preconditions(self)
copy_attributes(self)
derive_timestamp(self)
group_objects_by_filter(self, object_list)
group_photcats_by_observing_date(self, photcats)

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 = ''
mandatory_dependencies = ()
storage = <common.net.dataserver_client.Storage at 0xa1c5a8>

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 0x2aaab892f098>
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
compare(self)
Quality Control -- basic trend analysis
 
The compare() method is used for default trend analysis. This
is done by comparing with a previous version of the same
object (last weeks bias, for example). This may be as simple
as comparing attribute values, but may also involve more
complex computations (e.g., subtracting the two images, and
analysing the residuals)
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).
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_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 PhotometricExtinctionReportParameters(common.database.DBMain.DBObject)
    
Method resolution order:
PhotometricExtinctionReportParameters
common.database.DBMain.DBObject
__builtin__.object

Data descriptors defined here:
MAX_ERROR
Maximum error [mag / airmass]
SIGCLIP_LEVEL
Sigma clipping threshold factor [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 0x2aaab892f098>
pickle_id = None

 
class PhotometricExtinctionReportRecord(common.database.DBMain.DBObject)
    This class represents a single record in an extinction/monitoring
report.
 
 
Method resolution order:
PhotometricExtinctionReportRecord
common.database.DBMain.DBObject
__builtin__.object

Methods defined here:
get_content(self)

Data descriptors defined here:
date_obs
Date of the observation of the associated frame [None]
extinction
Extinction [mag / airmass]
extinction_diff
Extinction difference [mag / airmass]
extinction_err
Extinction error [mag / airmass]
mag_id
Identifier for the photometric band [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
shift
Shift of the extinction curve for this date_obs [mag / airmass]
shift_err
Error of the shift in the extinction curve [mag / airmass]

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 0x2aaab892f098>
pickle_id = None

 
Functions
       
get_canonical_name(photextinctionreport)
get_content_of_report(photextinctionreport)
load_the_object_from_LDAC_fits(photextinctionreport)
This function constructs the original PhotometricExtinctionReport object
from the LDAC fits file. The list of PhotometricExtinctionReportRecord
objects is instantiated from the OBJECTS table of the input file, whereas
the other relevant attributes of the object are reconstructed from the
FIELDS table.
save_the_object_to_LDAC_fits(photextinctionreport)
This function "pickles" the PhotometricExtinctionReport object to an
LDAC fits file.  The LDAC file contains a FIELDS and an OBJECTS table. The
data-structure of the OBJECTS table is defined in MONITORING_CONF.

 
Data
        MONITORING_CONF = [('VERBOSE', 'NORMAL'), ('COL_NAME', 'date_obs'), ('COL_TTYPE', 'STRING'), ('COL_HTYPE', 'STRING'), ('COL_COMM', '""'), ('COL_UNIT', '""'), ('COL_DEPTH', '25'), ('COL_NAME', 'shift'), ('COL_TTYPE', 'DOUBLE'), ('COL_HTYPE', 'FLOAT'), ('COL_COMM', '""'), ('COL_UNIT', '"mag/am"'), ('COL_DEPTH', '1'), ('COL_NAME', 'shift_err'), ('COL_TTYPE', 'DOUBLE'), ('COL_HTYPE', 'FLOAT'), ('COL_COMM', '""'), ('COL_UNIT', '"mag/am"'), ('COL_DEPTH', '1'), ('COL_NAME', 'MAG_ID'), ...]
__version__ = '@(#)$Revision: 1.55 $'