IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 19621


Ignore:
Timestamp:
Sep 19, 2008, 2:11:37 PM (18 years ago)
Author:
eugene
Message:

changing detrend verify mode to behave just like master mode in terms of processing and residual generation; adding ref_det_id, ref_iter to detRun and detResidImfile, modifying the foreign constraint; adding a simtest suite to test the detrend verify mode

Location:
trunk
Files:
2 added
18 edited

Legend:

Unmodified
Added
Removed
  • trunk/ippScripts/scripts/detrend_resid_imfile.pl

    r19374 r19621  
    2424use Pod::Usage qw( pod2usage );
    2525
    26 my ( $det_id, $iter, $exp_id, $exp_tag, $class_id, $det_type, $detrend, $input_uri, $camera, $mode, $outroot,
     26my ( $det_id, $iter, $ref_det_id, $ref_iter, $exp_id, $exp_tag, $class_id, $det_type, $detrend, $input_uri, $camera, $mode, $outroot,
    2727     $dbname, $reduction, $threads, $verbose, $no_update, $no_op, $redirect );
    2828GetOptions(
    2929    'det_id|d=s'        => \$det_id,
    3030    'iteration=s'       => \$iter,
     31    'ref_det_id=s'      => \$ref_det_id,
     32    'ref_iter=s'        => \$ref_iter,
    3133    'exp_id|e=s'        => \$exp_id,
    3234    'exp_tag|=s'        => \$exp_tag,
     
    4850
    4951pod2usage( -msg => "Unknown option: @ARGV", -exitval => 2 ) if @ARGV;
    50 pod2usage( -msg => "Required options: --det_id --iteration --exp_id --exp_tag --class_id --det_type --camera --input_uri --mode --detrend --outroot (not for 'verify' mode)",
     52pod2usage( -msg => "Required options: --det_id --iteration --ref_det_id --ref_iter --exp_id --exp_tag --class_id --det_type --camera --input_uri --mode --detrend --outroot (not for 'verify' mode)",
    5153           -exitval => 3) unless
    52     defined $det_id    and
    53     defined $iter      and
    54     defined $exp_id    and
    55     defined $exp_tag   and
    56     defined $class_id  and
    57     defined $det_type  and
    58     defined $input_uri and
    59     defined $camera    and
    60     defined $mode      and
    61     defined $outroot   and
    62     (defined $detrend or lc($mode) eq 'verify');
     54    defined $det_id     and
     55    defined $iter       and
     56    defined $ref_det_id and
     57    defined $ref_iter   and
     58    defined $exp_id     and
     59    defined $exp_tag    and
     60    defined $class_id   and
     61    defined $det_type   and
     62    defined $input_uri  and
     63    defined $camera     and
     64    defined $mode       and
     65    defined $outroot    and
     66    defined $detrend;
    6367
    6468$ipprc->define_camera($camera);
     
    6973
    7074# Recipes to use as a function of detrend type and mode
     75# XXX probably can drop the distinct 'verify' recipes
    7176$reduction = 'DETREND' unless defined $reduction;
    7277my $recipe;                     # Name of recipe to use
     
    7883    &my_die("Unrecognised mode: $mode", $det_id, $iter, $exp_id, $class_id, $PS_EXIT_PROG_ERROR);
    7984}
     85
     86print "raw recipe: $recipe\n";
    8087$recipe = $ipprc->reduction($reduction, $recipe);
     88print "real recipe: $recipe\n";
    8189
    8290# values to extract from output metadata and the stats to calculate
     
    166174
    167175    # Detrend to use in processing
    168     if (lc($mode) ne 'verify') {
    169         my $detFlag = DETRENDS->{lc($det_type)};
    170         &my_die("Unrecognised detrend type: $det_type", $det_id, $iter, $exp_id, $class_id, $PS_EXIT_PROG_ERROR) unless defined $detFlag;
    171         $command .= " $detFlag $detrend";
    172     }
     176    my $detFlag = DETRENDS->{lc($det_type)};
     177    &my_die("Unrecognised detrend type: $det_type", $det_id, $iter, $exp_id, $class_id, $PS_EXIT_PROG_ERROR) unless defined $detFlag;
     178    $command .= " $detFlag $detrend";
    173179
    174180    my ( $success, $error_code, $full_buf, $stdout_buf, $stderr_buf ) =
     
    216222$command .= " -det_id $det_id";
    217223$command .= " -iteration $iter";
     224$command .= " -ref_det_id $ref_det_id";
     225$command .= " -ref_iter $ref_iter";
    218226$command .= " -exp_id $exp_id";
    219227$command .= " -class_id $class_id";
     
    252260        $command .= " -det_id $det_id";
    253261        $command .= " -iteration $iter";
     262        $command .= " -ref_det_id $ref_det_id";
     263        $command .= " -ref_iter $ref_iter";
    254264        $command .= " -exp_id $exp_id";
    255265        $command .= " -class_id $class_id";
  • trunk/ippTasks/Makefile.am

    r19545 r19621  
    2828        simtest.basic.config \
    2929        simtest.basic.auto \
     30        simtest.detverify.config \
     31        simtest.detverify.auto \
    3032        simtest.flatcorr.config \
    3133        simtest.flatcorr.auto
  • trunk/ippTasks/automate.pro

    r19381 r19621  
    264264      end
    265265      book setword automate $pageName pantaskState INIT.LAUNCH
     266
     267      if ($Ncheck == 1)
     268        # XXX this is a somewhat hackish way to carry information from the 'check' to the 'launch'
     269        book getword tmpCheck page.000 det_id -var DET_ID
     270        book getword tmpCheck page.000 iteration -var ITERATION
     271        book setword automate $pageName det_id $DET_ID
     272        book setword automate $pageName iteration $ITERATION
     273      end
    266274    end
    267275
     
    326334    end
    327335
     336    # modify the launch command to replace certain elements from the page
     337    book getword automate $pageName det_id -var DET_ID
     338    if ("$DET_ID" != "NULL")
     339      echo '$launchCommand'
     340      strsub "$launchCommand" @det_id@ $DET_ID -var launchCommand
     341    end
     342
     343    book getword automate $pageName iteration -var ITERATION
     344    if ("$ITERATION" != "NULL")
     345      echo '$launchCommand'
     346      strsub "$launchCommand" @iteration@ $ITERATION -var launchCommand
     347    end
     348
     349    echo '$launchCommand'
     350
    328351    book setword automate $pageName pantaskState RUN.LAUNCH
    329352
  • trunk/ippTasks/detrend.resid.pro

    r19465 r19621  
    153153
    154154    book setword detPendingResidImfile $pageName pantaskState RUN
    155     book getword detPendingResidImfile $pageName det_id    -var DET_ID   
    156     book getword detPendingResidImfile $pageName exp_id    -var EXP_ID 
    157     book getword detPendingResidImfile $pageName iteration -var ITERATION     
    158     book getword detPendingResidImfile $pageName det_type  -var DET_TYPE
    159     book getword detPendingResidImfile $pageName mode      -var MODE     
    160     book getword detPendingResidImfile $pageName exp_tag   -var EXP_TAG 
    161     book getword detPendingResidImfile $pageName class_id  -var CLASS_ID
    162     book getword detPendingResidImfile $pageName uri       -var URI     
    163     book getword detPendingResidImfile $pageName det_uri   -var DET_URI 
    164     book getword detPendingResidImfile $pageName camera    -var CAMERA   
    165     book getword detPendingResidImfile $pageName workdir   -var WORKDIR_TEMPLATE
    166     book getword detPendingResidImfile $pageName dbname    -var DBNAME
    167     book getword detPendingResidImfile $pageName reduction -var REDUCTION
     155    book getword detPendingResidImfile $pageName det_id     -var DET_ID   
     156    book getword detPendingResidImfile $pageName exp_id     -var EXP_ID 
     157    book getword detPendingResidImfile $pageName iteration  -var ITERATION     
     158    book getword detPendingResidImfile $pageName det_type   -var DET_TYPE
     159    book getword detPendingResidImfile $pageName mode       -var MODE     
     160    book getword detPendingResidImfile $pageName exp_tag    -var EXP_TAG 
     161    book getword detPendingResidImfile $pageName class_id   -var CLASS_ID
     162    book getword detPendingResidImfile $pageName uri        -var URI     
     163    book getword detPendingResidImfile $pageName det_uri    -var DET_URI 
     164    book getword detPendingResidImfile $pageName ref_det_id -var REF_DET_ID   
     165    book getword detPendingResidImfile $pageName ref_iter   -var REF_ITER
     166    book getword detPendingResidImfile $pageName camera     -var CAMERA   
     167    book getword detPendingResidImfile $pageName workdir    -var WORKDIR_TEMPLATE
     168    book getword detPendingResidImfile $pageName dbname     -var DBNAME
     169    book getword detPendingResidImfile $pageName reduction  -var REDUCTION
    168170
    169171    # specify choice of local or remote host based on camera and chip (class_id)
     
    179181    stderr $LOGDIR/detrend.resid.imfile.log
    180182
    181     $run = detrend_resid_imfile.pl --threads @MAX_THREADS@ --det_id $DET_ID --iteration $ITERATION --exp_id $EXP_ID --exp_tag $EXP_TAG --class_id $CLASS_ID --det_type $DET_TYPE --detrend $DET_URI --input_uri $URI --camera $CAMERA --mode $MODE --outroot $outroot --redirect-output --verbose
     183    $run = detrend_resid_imfile.pl --threads @MAX_THREADS@ --det_id $DET_ID --iteration $ITERATION --ref_det_id $REF_DET_ID --ref_iter $REF_ITER --exp_id $EXP_ID --exp_tag $EXP_TAG --class_id $CLASS_ID --det_type $DET_TYPE --detrend $DET_URI --input_uri $URI --camera $CAMERA --mode $MODE --outroot $outroot --redirect-output --verbose
    182184
    183185    if ("$REDUCTION" != "NULL")
  • trunk/ippTasks/simtest.pro

    r19537 r19621  
    4040    echo "  SIMTEST_AUTO     : define the analysis steps to perform (simtest.auto)"
    4141    echo "  SIMTEST_THREADS  : set the number of threads for the processing node (0)"
     42    echo ""
     43    echo "the following macros can be used to set up specific simtest suites:"
     44    echo "  simtest.setup.basic : run standard simtest suite"
     45    echo "  simtest.setup.detverify : run detrend creation and detrend verification"
     46    echo "  simtest.setup.flatcorr : run a flat-field correction demonstration"
    4247    break
    4348  end
     
    109114# auto: simtest.basic.auto, simtest.flatcorr.auto
    110115
     116macro simtest.setup.basic
     117  $PPSIM_RECIPE = default
     118  $SIMTEST_SEQUENCE = simtest.basic.config
     119  $SIMTEST_AUTO = simtest.basic.auto
     120end
     121
     122macro simtest.setup.detverify
     123  $PPSIM_RECIPE = default
     124  $SIMTEST_SEQUENCE = simtest.detverify.config
     125  $SIMTEST_AUTO = simtest.detverify.auto
     126end
     127
    111128macro simtest.setup.flatcorr
    112129  $PPSIM_RECIPE = FLATCORR
     
    114131  $SIMTEST_AUTO = simtest.flatcorr.auto
    115132end
     133
  • trunk/ippTools/share/dettool_addprocessedexp.sql

    r19092 r19621  
    2121WHERE
    2222  detRun.state = 'run'
    23   AND detRun.mode = 'master'
     23  AND (detRun.mode = 'master' or detRun.mode = 'verify')
    2424  AND detProcessedExp.det_id IS NULL
    2525  AND detProcessedExp.exp_id IS NULL
  • trunk/ippTools/share/dettool_childlessrun.sql

    r18561 r19621  
    55 FROM detRun
    66 LEFT JOIN detRun as foo
    7    ON foo.parent = detRun.det_id
     7   ON foo.ref_det_id = detRun.det_id
     8-- XXX do we need to restrict to foo.ref_iter = detRun.iteration ?   
    89 WHERE
    910   detRun.state = 'stop'
  • trunk/ippTools/share/dettool_stop_completed_correct_runs.sql

    r15830 r19621  
    88    FROM detRun AS det1
    99    INNER JOIN detRun as det2
    10         ON det1.parent = det2.det_id
     10        ON det1.ref_det_run = det2.det_id
     11        -- do we need to restrict by iteration?  not clear this logic below is right or tested
    1112    JOIN detNormalizedImfile as imfile
    1213        ON det2.det_id = imfile.det_id
  • trunk/ippTools/share/dettool_tocorrectimfile.sql

    r15828 r19621  
     1-- select imfiles from detRun 1 (the reference detRun) that match the desired correction in detRun 2
    12SELECT
    23    det1.*,
     
    1415    imfile.fault
    1516FROM detRun AS det1
    16 INNER JOIN detRun as det2
    17     ON det1.parent = det2.det_id
     17JOIN detRun as det2
     18    ON det1.ref_det_id = det2.det_id
    1819JOIN detNormalizedImfile as imfile
    19     ON det2.det_id = imfile.det_id
    20     AND det2.iteration = imfile.iteration
     20    ON det1.ref_det_id = imfile.det_id
     21    AND det1.ref_iter = imfile.iteration
    2122LEFT JOIN detRegisteredImfile
    2223    ON det1.det_id = detRegisteredImfile.det_id
  • trunk/ippTools/share/dettool_toprocessedexp.sql

    r15769 r19621  
    4848    WHERE
    4949        detRun.state = 'run'
    50         AND detRun.mode = 'master'
     50        AND (detRun.mode = 'master' or detRun.mode = 'verify')
    5151        AND detProcessedExp.det_id IS NULL
    5252        AND detProcessedExp.exp_id IS NULL
  • trunk/ippTools/share/dettool_toprocessedimfile.sql

    r14045 r19621  
    1919WHERE
    2020    detRun.state = 'run'
    21     AND detRun.mode = 'master'
     21    AND (detRun.mode = 'master' or detRun.mode = 'verify')
    2222    AND detProcessedImfile.det_id IS NULL
    2323    AND detProcessedImfile.exp_id IS NULL
  • trunk/ippTools/share/dettool_toresidimfile.sql

    r18561 r19621  
    1414    detProcessedImfile.uri,
    1515    detNormalizedImfile.uri AS det_uri,
     16    detRun.det_id AS ref_det_id,
     17    detRun.iteration AS ref_iter,
    1618    rawExp.camera,
    1719    rawExp.exp_tag
     
    5355    detRun.workdir,
    5456    detRun.reduction,
    55     rawImfile.exp_id,
    56     rawImfile.class_id,
    57     rawImfile.uri,
    58     'NULL' AS det_uri,
     57    detProcessedImfile.exp_id,
     58    detProcessedImfile.class_id,
     59    detProcessedImfile.uri,
     60    detNormalizedImfile.uri AS det_uri,
     61    detRun.ref_det_id,
     62    detRun.ref_iter,
    5963    rawExp.camera,
    6064    rawExp.exp_tag
    6165FROM detRun
     66JOIN detRun AS detRunRef
     67  ON detRunRef.det_id = detRun.ref_det_id
    6268JOIN detInputExp
    63     USING(det_id, iteration)
     69  ON detInputExp.det_id    = detRun.det_id
     70 AND detInputExp.iteration = detRun.iteration
    6471JOIN rawExp
    65     ON detInputExp.exp_id = rawExp.exp_id
    66 JOIN rawImfile
    67     ON detInputExp.exp_id = rawImfile.exp_id
     72  ON rawExp.exp_id = detInputExp.exp_id
     73JOIN detProcessedImfile
     74  ON detProcessedImfile.det_id    = detRun.det_id
     75 AND detProcessedImfile.exp_id    = detInputExp.exp_id
     76JOIN detNormalizedImfile
     77  ON detNormalizedImfile.det_id    = detRun.ref_det_id
     78 AND detNormalizedImfile.iteration = detRun.ref_iter
     79 AND detNormalizedImfile.class_id  = detProcessedImfile.class_id
    6880LEFT JOIN detResidImfile
    69     ON detRun.det_id = detResidImfile.det_id
    70     AND detRun.iteration = detResidImfile.iteration
    71     AND rawImfile.exp_id = detResidImfile.exp_id
    72     AND rawImfile.class_id = detResidImfile.class_id
     81  ON detResidImfile.det_id    = detRun.det_id     
     82 AND detResidImfile.iteration = detRun.iteration   
     83 AND detResidImfile.exp_id    = detProcessedImfile.exp_id   
     84 AND detResidImfile.class_id  = detProcessedImfile.class_id
    7385WHERE
    74     detRun.state = 'run'
    75     AND detRun.mode = 'verify'
    76     -- AND detNormalizedImfile.fault = 0
    77     -- AND detNormalizedExp.fault = 0
    78     AND detResidImfile.det_id IS NULL
    79     AND detResidImfile.iteration IS NULL
    80     AND detResidImfile.exp_id IS NULL
    81     AND detResidImfile.class_id IS NULL
     86 detRun.state = 'run'
     87 AND detRun.mode = 'verify'
     88 AND detRunRef.state = 'stop'
     89 AND detNormalizedImfile.fault = 0
     90 AND detResidImfile.det_id IS NULL
     91 AND detResidImfile.iteration IS NULL
     92 AND detResidImfile.exp_id IS NULL
     93 AND detResidImfile.class_id IS NULL
    8294ORDER BY exp_id
  • trunk/ippTools/share/pxadmin_create_tables.sql

    r19558 r19621  
    444444    solang_max FLOAT,
    445445    label VARCHAR(64),
    446     parent INT,
     446    ref_det_id BIGINT,
     447    ref_iter INT,
     448    -- parent INT, :: dropping this
    447449    PRIMARY KEY(det_id),
    448450    KEY(det_id),
     
    452454    KEY(state),
    453455    KEY(label),
    454     KEY(parent),
     456    -- KEY(parent), :: dropping this
    455457    INDEX(det_id, iteration))
    456458ENGINE=innodb DEFAULT CHARSET=latin1;
     
    616618    det_id BIGINT,
    617619    iteration INT,
     620    ref_det_id BIGINT,
     621    ref_iter INT,
    618622    exp_id BIGINT,
    619623    class_id VARCHAR(64),
     
    647651    FOREIGN KEY (det_id, exp_id, class_id)
    648652    REFERENCES  detProcessedImfile(det_id, exp_id, class_id),
    649     FOREIGN KEY (det_id, iteration)
     653    FOREIGN KEY (ref_det_id, ref_iter)
    650654    REFERENCES  detNormalizedExp(det_id, iteration)
    651655) ENGINE=innodb DEFAULT CHARSET=latin1;
  • trunk/ippTools/src/dettool.c

    r19092 r19621  
    234234    // optional
    235235    PXOPT_LOOKUP_STR(filelevel, config->args, "-filelevel", false, false);
    236     PXOPT_LOOKUP_STR(mode, config->args, "-mode", false, false);
     236
    237237    // check mode
    238     if (mode && !isValidMode(config, mode)) {
    239         psError(PS_ERR_UNKNOWN, false, "invalud mode");
    240         return false;
    241     }
     238    PXOPT_LOOKUP_STR(mode, config->args, "-mode", true, false); // default ('master') is supplied
     239    if (!isValidMode(config, mode)) {
     240        psError(PS_ERR_UNKNOWN, false, "invalid mode");
     241        return false;
     242    }
     243
     244    // get -ref_det_id and -ref_iter : required for 'verify' mode / disallowed otherwise
     245    PXOPT_LOOKUP_S64(ref_det_id, config->args, "-ref_det_id", true, false);
     246    PXOPT_LOOKUP_S32(ref_iter, config->args, "-ref_iter", true, false);
     247    if (!strncmp(mode, "verify", 7) && ((ref_det_id == 0) || (ref_iter == -1))) {
     248        psError(PS_ERR_UNKNOWN, false, "verify mode requires both -ref_det_id and -ref_iter");
     249        return false;
     250    }
     251    if (strncmp(mode, "verify", 7) && ((ref_det_id != 0) || (ref_iter != -1))) {
     252        psError(PS_ERR_UNKNOWN, false, "master mode cannot have -ref_det_id or -ref_iter set");
     253        return false;
     254    }
     255       
    242256    PXOPT_LOOKUP_STR(camera, config->args, "-inst", false, false);
    243257    PXOPT_LOOKUP_STR(telescope, config->args, "-telescope", false, false);
     
    368382                 solang_max,
    369383                 label,
    370                  0       // parent
     384                 ref_det_id,
     385                 ref_iter
    371386        );
    372387    psS64 det_id = psDBLastInsertID(config->dbh);
     
    469484    PXOPT_LOOKUP_STR(camera, config->args, "-inst", true, false);
    470485
    471     // optional
    472     PXOPT_LOOKUP_STR(mode, config->args, "-mode", false, false);
    473486    // check mode
    474     if (mode && !isValidMode(config, mode)) {
     487    PXOPT_LOOKUP_STR(mode, config->args, "-mode", true, false); // default ('master') is supplied
     488    if (!isValidMode(config, mode)) {
    475489        psError(PS_ERR_UNKNOWN, false, "invalid mode");
    476490        return false;
    477491    }
     492
     493    // get -ref_det_id and -ref_iter : required for 'verify' mode / disallowed otherwise
     494    PXOPT_LOOKUP_S64(ref_det_id, config->args, "-ref_det_id", false, false);
     495    PXOPT_LOOKUP_S32(ref_iter, config->args, "-ref_iter", false, false);
     496    if (!strncmp(mode, "verify", 7) && ((ref_det_id == 0) || (ref_iter == -1))) {
     497        psError(PS_ERR_UNKNOWN, false, "verify mode requires both -ref_det_id and -ref_iter");
     498        return false;
     499    }
     500    if (strncmp(mode, "verify", 7) && ((ref_det_id != 0) || (ref_iter != -1))) {
     501        psError(PS_ERR_UNKNOWN, false, "master mode cannot have -ref_det_id or -ref_iter set");
     502        return false;
     503    }
     504
    478505    PXOPT_LOOKUP_STR(filelevel, config->args, "-filelevel", false, false);
    479506    PXOPT_LOOKUP_STR(telescope, config->args, "-telescope", false, false);
     
    623650                 solang_max,
    624651                 label,
    625                  0       // parent
     652                 ref_det_id,
     653                 ref_iter
    626654        );
    627655    psS64 det_id = psDBLastInsertID(config->dbh);
     
    692720{
    693721    PS_ASSERT_PTR_NON_NULL(config, false);
    694 
    695722   
     723    // XXX this mode is not well-tested: probably need to specify iteration here
     724    // XXX pass the supplied det_id and iteration as ref_det_id, or get from command line?
    696725    PXOPT_LOOKUP_S64(det_id, config->args, "-det_id", true, false); // required
    697726    PXOPT_LOOKUP_STR(det_type, config->args, "-set_det_type", false, false); // optional
     
    745774
    746775    // pull the detRun object out the result array
     776    // XXX need to assign or re-assign the ref_det_id and ref_iter values
    747777    detRunRow *detRun = psMemIncrRefCounter(detRuns->data[0]);
    748778
     
    962992
    963993    PXOPT_COPY_STR(config->args, where, "-inst", "camera", "==");
     994    PXOPT_COPY_STR(config->args, where, "-mode", "mode", "==");
    964995    PXOPT_COPY_STR(config->args, where, "-telescope", "telescope", "==");
    965996    PXOPT_COPY_STR(config->args, where, "-filter", "filter", "==");
     
    15411572    PXOPT_LOOKUP_TIME(use_begin, config->args, "-use_begin", false, false);
    15421573    PXOPT_LOOKUP_TIME(use_end, config->args, "-use_end", false, false);
    1543     PXOPT_LOOKUP_S64(parent, config->args, "-parent", false, false);
     1574    PXOPT_LOOKUP_S64(ref_det_id, config->args, "-ref_det_id", false, false);
     1575    PXOPT_LOOKUP_S32(ref_iter, config->args, "-ref_iter", false, false);
    15441576    PXOPT_LOOKUP_STR(label, config->args, "-label", false, false);
    15451577    PXOPT_LOOKUP_BOOL(simple, config->args, "-simple", false);
     
    15781610                      solang_min,
    15791611                      solang_max,
    1580                       label,      // label
    1581                       parent
     1612                      label,
     1613                      ref_det_id,
     1614                      ref_iter
    15821615            )) {
    15831616        psError(PS_ERR_UNKNOWN, false, "database error");
     
    17511784
    17521785    // check that state is a valid string value
    1753     if (!(
    1754             (strncmp(mode, "master", 7) == 0)
    1755             || (strncmp(mode, "verify", 7) == 0)
    1756         )
    1757     ) {
    1758         psError(PS_ERR_UNKNOWN, false,
    1759                 "invalid detRun mode: %s", mode);
    1760         return false;
    1761     }
    1762 
    1763     return true;
     1786    if (!strncmp(mode, "master", 7)) return true;
     1787    if (!strncmp(mode, "verify", 7)) return true;
     1788
     1789    psError(PS_ERR_UNKNOWN, false, "invalid detRun mode: %s", mode);
     1790    return false;
    17641791}
    17651792
  • trunk/ippTools/src/dettoolConfig.c

    r19092 r19621  
    7878    psMetadataAddStr(definebytagArgs, PS_LIST_TAIL, "-label",  0,            "define detrun label", NULL);
    7979    psMetadataAddBool(definebytagArgs, PS_LIST_TAIL, "-simple",  0,            "use the simple output format", false);
     80
     81    psMetadataAddS64(definebytagArgs, PS_LIST_TAIL, "-ref_det_id", 0,           "define reference detrend (verify mode only)", 0);
     82    psMetadataAddS32(definebytagArgs, PS_LIST_TAIL, "-ref_iter", 0,           "define reference detrend (verify mode only)", -1);
    8083
    8184    // -definebyquery
     
    129132    psMetadataAddBool(definebyqueryArgs, PS_LIST_TAIL, "-random_subset",  0,            "use a random subset of elements", false);
    130133    psMetadataAddS32(definebyqueryArgs, PS_LIST_TAIL, "-random_limit",  0,            "use this number of random elements", 20);
     134    psMetadataAddS64(definebyqueryArgs, PS_LIST_TAIL, "-ref_det_id", 0,           "define reference detrend (verify mode only)", 0);
     135    psMetadataAddS32(definebyqueryArgs, PS_LIST_TAIL, "-ref_iter", 0,           "define reference detrend (verify mode only)", -1);
    131136
    132137    // -definebydetrun
     
    163168    // -makecorrection
    164169    psMetadata *makecorrectionArgs = psMetadataAlloc();
    165     psMetadataAddS64(makecorrectionArgs, PS_LIST_TAIL, "-det_id",  0,            "det ID to be corrected (required)", 0);
     170    psMetadataAddS64(makecorrectionArgs, PS_LIST_TAIL, "-det_id",  0,     "detRun det_id to be corrected (required)", 0);
     171    psMetadataAddS32(makecorrectionArgs, PS_LIST_TAIL, "-iteration",  0,  "detRun iteration to be corrected (required)", -1);;
    166172    psMetadataAddBool(makecorrectionArgs, PS_LIST_TAIL, "-simple", 0,            "use the simple output format", false);
    167173
     
    203209    psMetadataAddF32(runsArgs, PS_LIST_TAIL, "-ccd_temp", 0,            "match ccd temp", NAN);
    204210    psMetadataAddF64(runsArgs, PS_LIST_TAIL, "-posang", 0,            "match posang", NAN);
     211    psMetadataAddStr(runsArgs, PS_LIST_TAIL, "-mode", 0,            "search for det run by mode", NULL);
    205212    psMetadataAddBool(runsArgs, PS_LIST_TAIL, "-simple",  0,            "use the simple output format", false);
    206213    psMetadataAddBool(runsArgs, PS_LIST_TAIL, "-active",  0,            "only return active detRuns", false);
     
    216223    psMetadata *inputArgs = psMetadataAlloc();
    217224    psMetadataAddS64(inputArgs, PS_LIST_TAIL, "-det_id", 0,            "search for detrend ID", 0);
    218     psMetadataAddS32(inputArgs, PS_LIST_TAIL, "-iteration",  0,            "define iteration number", 0);
     225    psMetadataAddS32(inputArgs, PS_LIST_TAIL, "-iteration",  0,            "search for iteration number (default 0)", 0);
    219226    psMetadataAddS64(inputArgs, PS_LIST_TAIL, "-exp_id",  0,            "search for exp ID", 0);
    220227    psMetadataAddBool(inputArgs, PS_LIST_TAIL, "-simple",  0,            "use the simple output format", false);
     
    591598
    592599    // -addresidimfile
     600    // XXX does a default value of 0 mean the entry is not instatiated? what about a supplied value of 0?
    593601    psMetadata *addresidimfileArgs = psMetadataAlloc();
    594602    psMetadataAddS64(addresidimfileArgs, PS_LIST_TAIL, "-det_id",  0,            "define detrend ID (required)", 0);
    595     psMetadataAddS32(addresidimfileArgs, PS_LIST_TAIL, "-iteration",  0,            "define iteration number", 0);
     603    psMetadataAddS32(addresidimfileArgs, PS_LIST_TAIL, "-iteration",  0,         "define iteration number", 0);
     604    psMetadataAddS64(addresidimfileArgs, PS_LIST_TAIL, "-ref_det_id",  0,        "define reference detrend ID (required)", 0);
     605    psMetadataAddS32(addresidimfileArgs, PS_LIST_TAIL, "-ref_iter",  0,          "define reference iteration number (required)", -1);
    596606    psMetadataAddS64(addresidimfileArgs, PS_LIST_TAIL, "-exp_id",  0,            "define detrend ID (required)", 0);
    597     psMetadataAddStr(addresidimfileArgs, PS_LIST_TAIL, "-class_id",  0,            "define class ID (required)", NULL);
    598     psMetadataAddS16(addresidimfileArgs, PS_LIST_TAIL, "-code",  0,            "set fault code", 0);
    599     psMetadataAddStr(addresidimfileArgs, PS_LIST_TAIL, "-uri",  0,            "define resid file URI", NULL);
    600     psMetadataAddStr(addresidimfileArgs, PS_LIST_TAIL, "-recip",  0,            "define recipe", NULL);
    601     psMetadataAddF64(addresidimfileArgs, PS_LIST_TAIL, "-bg",  0,            "define exposure background", NAN);
     607    psMetadataAddStr(addresidimfileArgs, PS_LIST_TAIL, "-class_id",  0,          "define class ID (required)", NULL);
     608    psMetadataAddS16(addresidimfileArgs, PS_LIST_TAIL, "-code",  0,              "set fault code", 0);
     609    psMetadataAddStr(addresidimfileArgs, PS_LIST_TAIL, "-uri",  0,               "define resid file URI", NULL);
     610    psMetadataAddStr(addresidimfileArgs, PS_LIST_TAIL, "-recip",  0,             "define recipe", NULL);
     611    psMetadataAddF64(addresidimfileArgs, PS_LIST_TAIL, "-bg",  0,                "define exposure background", NAN);
    602612    psMetadataAddF64(addresidimfileArgs, PS_LIST_TAIL, "-bg_stdev",  0,            "define exposure background stdev", NAN);
    603613    psMetadataAddF64(addresidimfileArgs, PS_LIST_TAIL, "-bg_mean_stdev",  0,            "define exposure background mean stdev", NAN);
     
    815825    psMetadataAddTime(register_detrendArgs, PS_LIST_TAIL, "-use_begin",  0,            "start of detrend run applicable period", NULL);
    816826    psMetadataAddTime(register_detrendArgs, PS_LIST_TAIL, "-use_end",  0,            "end of detrend run applicable period", NULL);
    817     psMetadataAddS64(register_detrendArgs, PS_LIST_TAIL, "-parent",  0,            "define parent det_id", 0);
     827    psMetadataAddS64(register_detrendArgs, PS_LIST_TAIL, "-ref_det_id",  0,            "define reference det_id", 0);
     828    psMetadataAddS32(register_detrendArgs, PS_LIST_TAIL, "-ref_iter",  0,            "define reference iteration", -1);
    818829    psMetadataAddStr(register_detrendArgs, PS_LIST_TAIL, "-label",  0,            "define detrun label", NULL);
    819830    psMetadataAddBool(register_detrendArgs, PS_LIST_TAIL, "-simple",  0,            "use the simple output format", false);
  • trunk/ippTools/src/dettool_correction.c

    r19092 r19621  
    2424    PS_ASSERT_PTR_NON_NULL(config, false);
    2525
    26     PXOPT_LOOKUP_S64(det_id, config->args, "-det_id", true, false); // required
     26    PXOPT_LOOKUP_S64(ref_det_id, config->args, "-det_id", true, false); // required
     27    PXOPT_LOOKUP_S32(ref_iter, config->args, "-iteration", true, false); // required
    2728    PXOPT_LOOKUP_BOOL(simple, config->args, "-simple", false); // optional
    2829
    2930    // build the needed where
    3031    psMetadata *where = psMetadataAlloc();
    31     psMetadataAddS64(where, PS_LIST_TAIL, "det_id", 0, "==", det_id);
     32    psMetadataAddS64(where, PS_LIST_TAIL, "det_id", 0, "==", ref_det_id);
     33    psMetadataAddS32(where, PS_LIST_TAIL, "iteration", 0, "==", ref_iter);
    3234    psArray *runs = detRunSelectRowObjects(config->dbh, where, 1);
    3335    psFree (where);
     
    7476         detRun->solang_max,
    7577         detRun->label,
    76          detRun->det_id // parent
     78         detRun->det_id, // ref_det_id
     79         detRun->iteration // ref_iter
    7780    );
    7881
  • trunk/ippTools/src/dettool_processedimfile.c

    r19092 r19621  
    165165    PS_ASSERT_PTR_NON_NULL(config, false);
    166166
    167     char *value = NULL;
     167    bool hasWhere = false;
    168168
    169169    PXOPT_LOOKUP_BOOL(included, config->args, "-included", false);
     
    173173
    174174    psMetadata *where = psMetadataAlloc();
    175     PXOPT_COPY_S64(config->args, where, "-det_id", "det_id", "==");
    176     PXOPT_COPY_S64(config->args, where, "-exp_id", "exp_id", "==");
    177     PXOPT_COPY_STR(config->args, where, "-class_id", "class_id", "==");
     175    PXOPT_COPY_S64(config->args, where, "-det_id", "detProcessedImfile.det_id", "==");
     176    PXOPT_COPY_S64(config->args, where, "-exp_id", "detProcessedImfile.exp_id", "==");
     177    PXOPT_COPY_STR(config->args, where, "-class_id", "detProcessedImfile.class_id", "==");
     178    PXOPT_COPY_STR(config->args, where, "-select_state", "detRun.state", "==");
     179    PXOPT_COPY_STR(config->args, where, "-select_mode", "detRun.mode", "==");
    178180
    179181    psString query = pxDataGet("dettool_processedimfile.sql");
     
    184186    }
    185187
    186     // add the two required restrictions: detRun.state and detRun.mode
    187     // NOTE the above query requires one of the following two WHERE statements
    188     {
    189         bool status;
    190         if ((value = psMetadataLookupStr(&status, config->args, "-select_state"))) {
    191             psStringAppend(&query, " WHERE detRun.state = '%s'", value);
    192         } else {
    193             psStringAppend(&query, " WHERE detRun.state = 'run'");
    194         }
    195         if ((value = psMetadataLookupStr(&status, config->args, "-select_mode"))) {
    196             psStringAppend(&query, " AND detRun.mode = '%s'", value);
    197         } else {
    198             psStringAppend(&query, " AND detRun.mode = 'master'");
    199         }
    200     }
    201 
    202188    if (psListLength(where->list)) {
    203         psString whereClause = psDBGenerateWhereConditionSQL(where, "detProcessedImfile");
    204         psStringAppend(&query, " AND %s", whereClause);
     189        psString whereClause = psDBGenerateWhereSQL(where, NULL);
     190        psStringAppend(&query, " %s", whereClause);
    205191        psFree(whereClause);
     192        hasWhere = true;
    206193    }
    207194    psFree (where);
     
    209196    // restrict search to included imfiles
    210197    if (included) {
    211         psStringAppend(&query, " AND detInputExp.include = 1");
     198        if (hasWhere) {
     199            psStringAppend(&query, " AND detInputExp.include = 1");
     200        } else {
     201            psStringAppend(&query, " WHERE detInputExp.include = 1");
     202        }
     203        hasWhere = true;
     204    }
     205
     206    if (hasWhere) {
     207        psStringAppend(&query, " AND");
     208    } else {
     209        psStringAppend(&query, " WHERE");
    212210    }
    213211
    214212    if (faulted) {
    215         // list only faulted rows
    216         psStringAppend(&query, " %s", "AND detProcessedImfile.fault != 0");
     213        psStringAppend(&query, " %s", " detProcessedImfile.fault != 0");
    217214    } else {
    218215        // don't list faulted rows
    219         psStringAppend(&query, " %s", "AND detProcessedImfile.fault = 0");
     216        psStringAppend(&query, " %s", " detProcessedImfile.fault = 0");
    220217    }
    221218
  • trunk/ippTools/src/dettool_residimfile.c

    r19092 r19621  
    7878    PXOPT_LOOKUP_S64(det_id, config->args, "-det_id", true, false); // required
    7979    PXOPT_LOOKUP_S32(iteration, config->args, "-iteration", false, false);
     80
     81    PXOPT_LOOKUP_S64(ref_det_id, config->args, "-ref_det_id", true, false); // required
     82    PXOPT_LOOKUP_S32(ref_iter, config->args, "-ref_iter", true, false);
     83
    8084    PXOPT_LOOKUP_S64(exp_id, config->args, "-exp_id", true, false); // required
    8185    PXOPT_LOOKUP_STR(class_id, config->args, "-class_id", true, false); // required
     
    106110            det_id,
    107111            iteration,
     112            ref_det_id,
     113            ref_iter,
    108114            exp_id,
    109115            class_id,
Note: See TracChangeset for help on using the changeset viewer.