IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Jun 21, 2007, 2:10:11 PM (19 years ago)
Author:
Paul Price
Message:

Changes to multiple packages in order to use "reduction classes" to
specify recipe names. The idea is to give a group of recipes a
symbolic name, which distinguish how the reduction is to be performed,
without going to all the trouble of changing the recipes themselves.

For example, we might want to turn off the usual
overscan/bias/dark/shutter/flat processing and only do photometry if
we have pre-processed data. Gene also wants a similar ability for
building the flat-field correction.

Added a REDUCTION metadata to the camera configuration that contains
multiple METADATA entries that have recipes for different processing
steps. PS::IPP::Config has a 'reduction' function to return the
appropriate recipe, and this is now used in the scripts. Updated
ippTasks to use these where appropriate.

This necessitated changing the database, so that the desired reduction
class can be specified in the right places. Instructions on converting
an extant database are in dbconfig/changes.txt.

Tested with the SIMTEST, and it works.

There is currently no way of specifying the reduction class when an
exposure proceeds from 'register' to 'chip' (it has to be hacked in
the database directly: "update chipPendingExp set reduction =
'SOME_CLASS' where ..."), but it can be specified when adding a
detrend run or queuing chips with 'chiptool -queue' (the '-reduction'
option). Also, the 'recipe' columns remain throughout the detrend
tables, and they continue to be populated with the actual recipe used
(rather than the reduction class; but that is contained in the
detRun).

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/PS-IPP-Config/lib/PS/IPP/Config.pm

    r13789 r13937  
    11# Copyright (c) 2006  Paul Price, Joshua Hoblitt
    22#
    3 # $Id: Config.pm,v 1.61 2007-06-13 19:17:50 eugene Exp $
     3# $Id: Config.pm,v 1.62 2007-06-22 00:10:10 price Exp $
    44
    55package PS::IPP::Config;
     
    783783}
    784784
     785# Given a reduction class name (and a previously defined camera) and a
     786# symbolic name for the recipe, return the actual name of the recipe.
     787sub reduction
     788{
     789    my $self = shift;           # Configuration object
     790    my $reduction = shift;      # Reduction class
     791    my $name = shift;           # Symbolic name of recipe
     792
     793    unless (defined $self and defined $reduction and defined $name) {
     794        carp "Programming error --- inputs undefined";
     795        exit($PS_EXIT_PROG_ERROR);
     796    }
     797
     798    my $camera = $self->{camera}; # Camera configuration
     799    unless (defined $camera) {
     800        carp "Camera has not yet been defined.\n";
     801        return undef;
     802    }
     803   
     804    my $classes = metadataLookupMD($camera, "REDUCTION") or # Reduction classes
     805        (carp "Can't find REDUCTION in camera configuration.\n" and exit($PS_EXIT_CONFIG_ERROR));
     806
     807    my $class = metadataLookupMD($classes, $reduction) or # Class of interest
     808        (carp "Can't find $reduction in REDUCTION in camera configuration.\n" and
     809         exit($PS_EXIT_CONFIG_ERROR));
     810
     811    my $actual = metadataLookupStr($class, $name) or # The actual recipe name of interest
     812        (carp "Can't find $name in $class in REDUCTION in camera configuration.\n" and
     813         exit($PS_EXIT_CONFIG_ERROR));
     814
     815    return $actual;
     816}
     817
    785818# Interpolate environment variables in a directory (or colon-delimited list of directories)
    786819sub _interpolate_env
Note: See TracChangeset for help on using the changeset viewer.