IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 35236


Ignore:
Timestamp:
Mar 5, 2013, 2:24:05 PM (13 years ago)
Author:
eugene
Message:

merge changes from trunk

Location:
branches/eam_branches/ipp-20130207
Files:
95 edited
19 copied

Legend:

Unmodified
Added
Removed
  • branches/eam_branches/ipp-20130207

  • branches/eam_branches/ipp-20130207/Nebulous

    • Property svn:mergeinfo changed (with no actual effect on merging)
  • branches/eam_branches/ipp-20130207/Nebulous-Server

  • branches/eam_branches/ipp-20130207/Nebulous-Server/bin/nebdiskd

    r34943 r35236  
    392392    my @data = split(/:/, $df_data);
    393393    $df_info{"blocks"} = $data[1];
    394     $df_info{"used"} = $data[2];
     394    $df_info{"used"} = $data[1]-$data[3];
    395395    $log->debug("blocks = " . $df_info{"blocks"} . " / used = " . $df_info{"used"});
    396396    return \%df_info;
  • branches/eam_branches/ipp-20130207/dbconfig/background.md

    r29493 r35236  
    55    chip_bg_id          S64     0
    66    chip_id             S64     0
     7    cam_id              S64     0
    78    state               STR     64
    89    workdir             STR     255
  • branches/eam_branches/ipp-20130207/dbconfig/cam.md

    r29902 r35236  
    118118    deteff_uq      F32      0
    119119    quality        S16      0
     120    background_model  S16   0
    120121END
    121122
  • branches/eam_branches/ipp-20130207/dbconfig/changes.txt

    r35048 r35236  
    22672267
    22682268
     2269-- Update camProcessedExp to hold a background_model value
     2270
     2271ALTER TABLE camProcessedExp add column background_model SMALLINT after quality;
     2272UPDATE dbversion set schema_version = '1.1.74', updated= CURRENT_TIMESTAMP();
     2273
     2274
     2275-- Note the following 3 changes were implemented in the ipp-20121218 tag
     2276-- without changing the schema_version from 1.1.74
     2277
     2278-- Add cam_id to chipBackgroundRun
     2279ALTER TABLE chipBackgroundRun ADD COLUMN cam_id BIGINT DEFAULT 0 AFTER chip_id;
     2280
     2281-- add fwhm measuements to skycalResult
     2282ALTER TABLE skycalResult ADD COLUMN fwhm_major FLOAT AFTER zpt_stdev;
     2283ALTER TABLE skycalResult ADD COLUMN fwhm_minor FLOAT AFTER fwhm_major;
     2284
    22692285-- new tables for managing the "release" of ipp data
    22702286
    22712287CREATE TABLE survey (
    2272     surveyID    INT(8),
     2288    surveyID    INT,
    22732289    surveyName  VARCHAR(16) NOT NULL,
    22742290    description VARCHAR(255),
     
    22772293) ENGINE=InnoDB CHARSET=latin1;
    22782294
    2279 
    22802295CREATE TABLE ippRelease (
    2281     rel_id      INT(8) AUTO_INCREMENT,
    2282     surveyID    INT(8),
    2283     releaseName VARCHAR(64),
    2284     release_state VARCHAR(16),    -- active, pending archive drop
    2285     dataRelease INT(8),         -- PSPS dataRelease
     2296    rel_id      INT AUTO_INCREMENT,
     2297    surveyID    INT,
     2298    release_name VARCHAR(64),
     2299    release_state VARCHAR(16),   -- active, pending, archive, drop
     2300    dataRelease INT,         -- PSPS dataRelease
     2301    priority    INT,
    22862302    PRIMARY KEY(rel_id),
    2287     KEY(releaseName),
    2288     KEY(state),
     2303    KEY(release_name),
     2304    KEY(release_state),
     2305    KEY(priority),
    22892306    FOREIGN KEY(surveyID) REFERENCES survey(surveyID)
    22902307) ENGINE=Innodb DEFAULT CHARSET=latin1;
     
    22922309CREATE TABLE relExp (
    22932310    relexp_id   BIGINT AUTO_INCREMENT,
    2294     rel_id      INT(8),
     2311    rel_id      INT,
    22952312    exp_id      BIGINT,
    22962313    chip_id     BIGINT,         -- links to the runs that supplied the data
    22972314    cam_id      BIGINT,         -- for this release
     2315    group_id    INT,         -- id of relGroup that this exposure is contained in
    22982316    state       VARCHAR(16),    -- released, pending, archive, drop 
    2299     flags       INT UNSIGNED,   -- flags for relphot, relastro, ??
     2317    flags       INT UNSIGNED,  -- flags for relphot, relastro, ??
    23002318    zpt_obs     FLOAT,          -- calibrated zero point for this release of
    23012319    zpt_stdev   FLOAT,          -- this exposure
    23022320    path_base   VARCHAR(255),   -- path_base of any supporting files for this
    23032321                                -- release of this exposure.
     2322    fault SMALLINT NOT NULL,
    23042323    registered  DATETIME,       -- insertion time for this row
    23052324    time_stamp  DATETIME,       -- time of last update for this row
     
    23072326    FOREIGN KEY(rel_id) REFERENCES ippRelease(rel_id),
    23082327    KEY (state),
     2328    KEY (fault),
    23092329    FOREIGN KEY(exp_id) REFERENCES rawExp(exp_id),
    23102330    FOREIGN KEY(chip_id) REFERENCES chipRun(chip_id),
     
    23142334CREATE TABLE relStack (
    23152335    relstack_id BIGINT AUTO_INCREMENT,
    2316     rel_id      INT(8),
     2336    rel_id      INT,
     2337    stack_id    BIGINT,         -- id of the stackRun
    23172338    skycal_id   BIGINT,         -- id of the sky calibration run that supplied the calibration
    2318                                 -- for this release. We get back to stack from here
    2319     skycell_id  varchar(64),
    2320     tess_id     varchar(64),
     2339                                -- for this release of this skycell.
     2340    skycell_id  VARCHAR(64),
     2341    tess_id     VARCHAR(64),
     2342    filter      VARCHAR(16),
    23212343    state       VARCHAR(16),    -- released, pending, archive, drop 
    23222344    flags       INT UNSIGNED,
     
    23242346    zpt_obs     FLOAT,          -- calibrated zero point for this release of this skycell
    23252347    zpt_stdev   FLOAT,
    2326     fwhm_major  FLOAT,          -- seeing as measured by staticsky
     2348    mjd_obs     INT UNSIGNED,   -- for nightly stacks the mjd_obs, zero for deep and reference
    23272349    path_base   VARCHAR(255),   -- path_base of any supporting files,
     2350    fault SMALLINT NOT NULL,
    23282351    registered  DATETIME,
    23292352    time_stamp  DATETIME,
    23302353    PRIMARY KEY (relstack_id),
    23312354    KEY (tess_id, skycell_id),
    2332     KEY (rel_id, tess_id, skycell_id),
     2355    KEY (rel_id, tess_id, skycell_id, filter, mjd_obs),
     2356    KEY (stack_type),
     2357    KEY (mjd_obs),
     2358    KEY (state),
     2359    KEY (fault),
    23332360    FOREIGN KEY(rel_id) REFERENCES ippRelease(rel_id),
    2334     FOREIGN KEY(skycal_id) REFERENCES skycalRun(skycal_id)
    2335 ) ENGINE=innodb DEFAULT CHARSET=latin1;
    2336 
    2337 UPDATE dbversion set schema_version = '1.1.74', updated= CURRENT_TIMESTAMP();
     2361    FOREIGN KEY(stack_id) REFERENCES stackRun(stack_id)
     2362) ENGINE=innodb DEFAULT CHARSET=latin1;
     2363
     2364CREATE TABLE relGroup (
     2365    group_id    INT AUTO_INCREMENT,
     2366    rel_id      INT,
     2367    group_type  VARCHAR(16),
     2368    lap_id      BIGINT,
     2369    group_name  VARCHAR(16),
     2370    state       VARCHAR(16),    -- new full
     2371    label       VARCHAR(64),
     2372    exp_list_path   VARCHAR(255),
     2373    fault SMALLINT NOT NULL,
     2374    registered  DATETIME,
     2375    PRIMARY KEY (group_id),
     2376    KEY (rel_id, group_name),
     2377    KEY (group_type),
     2378    KEY (lap_id),
     2379    KEY (group_name),
     2380    KEY (state),
     2381    KEY (label),
     2382    KEY (fault),
     2383    FOREIGN KEY(rel_id) REFERENCES ippRelease(rel_id)
     2384) ENGINE=innodb DEFAULT CHARSET=latin1;
     2385
     2386-- new table grouping multi filter lap runs into a group. This is used to
     2387-- determine when all 5 filters for a projection cell have completed processing
     2388CREATE TABLE lapGroup  (
     2389    seq_id  BIGINT,
     2390    projection_cell VARCHAR(64),
     2391    state   VARCHAR(16),
     2392    fault   SMALLINT,
     2393    PRIMARY KEY(seq_id, projection_cell),
     2394    KEY(state),
     2395    KEY(fault),
     2396    FOREIGN KEY(seq_id) REFERENCES lapSequence(seq_id)
     2397) ENGINE=innodb DEFAULT CHARSET=latin1;
     2398
     2399UPDATE dbversion set schema_version = '1.1.75', updated= CURRENT_TIMESTAMP();
     2400
  • branches/eam_branches/ipp-20130207/dbconfig/config.md

    r32642 r35236  
    22    pkg_name        STR     ippdb
    33    pkg_namespace   STR     ippdb
    4     pkg_version     STR     1.1.71717171717171
     4    pkg_version     STR     1.1.75
    55END
  • branches/eam_branches/ipp-20130207/dbconfig/lap.md

    r31435 r35236  
    3030    data_state     STR         64   # Key
    3131END
     32
     33lapGroup METADATA
     34    seq_id          S64 0
     35    projection_cell STR 64
     36    state           STR 64
     37    fault           S16 0
     38end
  • branches/eam_branches/ipp-20130207/dbconfig/release.md

    r35048 r35236  
    88    rel_id      S32     0   # Primary Key AUTO_INCREMENT
    99    surveyID    S32     0   # fkey(surveyID) ref survey(surveyID)
    10     releaseName STR     64
     10    release_name STR     64
    1111    release_state STR   16
    1212    dataRelease S32     0
     
    2020    chip_id     S64     0
    2121    cam_id      S64     0
     22    group_id    S32     0
    2223    state       STR     16
    2324    flags       U32     0
     
    2526    zpt_stdev   F32     0
    2627    path_base   STR     255
     28    fault       S16     0
    2729    registered  TAI     NULL
    2830    time_stamp  UTC     NULL
     
    3234    relstack_id S64     0   # Primary Key AUTO_INCREMENT
    3335    rel_id      S32     0   # fkey(rel_id) ref ippRelease(rel_id)
    34     skycal_id   S64     0   # fkey(skycal_id) ref skycalRun(skycal_id)
     36    stack_id    S64     0   # fkey(stack_id) ref stackRun(stack_id)
     37    skycal_id   S64     0
    3538    skycell_id  STR     64
    3639    tess_id     STR     64
     40    filter      STR     64
    3741    state       STR     16
    3842    flags       U32     0
     
    4044    zpt_obs     F32     0
    4145    zpt_stdev   F32     0
    42     fwhm_major  F32     0
     46    mjd_obs     U32     0
    4347    path_base   STR     255
     48    fault       S16     0
    4449    registered  TAI     NULL
    4550    time_stamp  TAI     NULL
    4651END
     52
     53relGroup METADATA
     54    group_id    S32     0   # Primary Key AUTO_INCREMENT
     55    rel_id      S32     0
     56    group_type  STR     16
     57    lap_id      S64     0
     58    group_name  STR     16
     59    state       STR     16
     60    label       STR     64
     61    exp_list_path STR   255
     62    fault       S16     0
     63    registered  TAI     NULL
     64END
  • branches/eam_branches/ipp-20130207/dbconfig/staticsky.md

    r34789 r35236  
    5959    zpt_obs        F32    0.0
    6060    zpt_stdev      F32    0.0
     61    fwhm_major     F32    0.0
     62    fwhm_minor     F32    0.0
    6163    quality        S16    0       # Key
    6264    software_ver   STR    16
  • branches/eam_branches/ipp-20130207/ippMonitor

  • branches/eam_branches/ipp-20130207/ippMonitor/Makefile.in

    r34904 r35236  
    7676$(DESTWWW)/diskUsage.php \
    7777$(DESTWWW)/version.php \
    78 $(DESTWWW)/show_log.php
     78$(DESTWWW)/show_log.php \
     79$(DESTWWW)/heathers_plot.php
    7980
    8081DEFSRC = \
  • branches/eam_branches/ipp-20130207/ippMonitor/raw/czartool_getplot.php

    r34249 r35236  
    3434else if ($type=="id")
    3535$filePath = "$path/ippToPsps_density_".$label.".png";
     36else if ($type=="hp_c")
     37$filePath = "$path/heathers_plots/cam.png";
     38else if ($type=="hp_s")
     39$filePath = "$path/heathers_plots/skycal.png";
    3640
    3741
  • branches/eam_branches/ipp-20130207/ippMonitor/raw/ipp.imfiles.dat

    r32790 r35236  
    2424menutop   | menutop      | link    | czartool - ipptopsps         | czartool_ipptopsps.php
    2525menutop   | menutop      | link    | mask stats                   | maskStats.php
     26menutop   | menutop      | link    | Heather's Plots              | heathers_plot.php
    2627
    2728menutop   | menutop      | plain   |                         |
  • branches/eam_branches/ipp-20130207/ippScripts/scripts/automate_stacks.pl

    r34010 r35236  
    117117pod2usage( -msg => "Unknown option: @ARGV", -exitval => 2 ) if @ARGV;
    118118pod2usage(
    119           -msg => "Choose a mode: --check_registration --check_burntool --queue_chips --queue_stacks",
     119          -msg => "Choose a mode: --check_registration --check_burntool --queue_chips --queue_stacks --dbname",
    120120          -exitval => 3,
    121121          ) unless
     
    124124    defined $check_chips or defined $check_stacks or $check_sweetspot or $check_detrends or $check_dqstats or
    125125    defined $test_mode or defined $clean_old or defined $check_mode or
    126     defined $confirm_stacks or defined $burntool_stats;
     126    defined $confirm_stacks or defined $burntool_stats or defined $dbname;
    127127
    128128# Configurable parameters from our config file.
     
    282282unless(defined($camera)) {
    283283    $camera = 'GPC1';
    284 }
    285 unless(defined($dbname)) {
    286     $dbname = 'gpc1';
    287284}
    288285
  • branches/eam_branches/ipp-20130207/ippScripts/scripts/background_chip.pl

    r35118 r35236  
    4343# Parse the command-line arguments
    4444my ( $chip_bg_id, $class_id, $camera, $outroot, $dbname, $reduction, $verbose,
    45      $threads, $no_update, $save_temps, $no_op, $redirect, $chip_path_base, $magicked );
     45     $threads, $no_update, $save_temps, $no_op, $redirect, $chip_path_base, $cam_path_base, $magicked );
    4646GetOptions(
    4747    'chip_bg_id=s'      => \$chip_bg_id,    # chipBackgroundRun identifier
     
    5353    'threads=s'         => \$threads,   # Number of threads to use
    5454    'chip_path_base=s'  => \$chip_path_base, # optional chip_path_base
     55    'cam_path_base=s'   => \$cam_path_base, # optional camera stage path_base
    5556    'magicked=s'        => \$magicked,  # magicked status of input
    5657    'verbose'           => \$verbose,   # Print to stdout
     
    9495my $dump_config;
    9596if ($chip_path_base and $no_update) {
     97    # XXX: this path through the code has not been excercized in awhile and probably does not work
     98
    9699    # we are running outside of a chip_bg_run (perhaps by the postage stamp server) don't dump config
    97100    # or do stats. Get path to input from command line.
     
    119122    my $input = $$inputs[0];    # Input of interest
    120123    $in_path = $input->{path_base};
     124    $cam_path_base = $input->{cam_path_base};
    121125    $magicked = $input->{magicked};
    122126}
    123127
    124128my $in_image = $ipprc->filename("PPIMAGE.CHIP", $in_path, $class_id);
    125 my $in_mask = $ipprc->filename("PPIMAGE.CHIP.MASK", $in_path, $class_id);
     129my $in_mask;
     130if ($cam_path_base) {
     131    $in_mask = $ipprc->filename("PSASTRO.OUTPUT.MASK", $cam_path_base, $class_id);
     132} else {
     133    $in_mask = $ipprc->filename("PPIMAGE.CHIP.MASK", $in_path, $class_id);
     134}
    126135my $in_wt = $ipprc->filename("PPIMAGE.CHIP.VARIANCE", $in_path, $class_id);
    127136my $in_bg = $ipprc->filename("PSPHOT.BACKMDL", $in_path, $class_id);
     
    177186
    178187my $apply_auxiliary_mask = 1;
     188# XXX Temporary lookup of auxiliary mask file from static location.
     189# At some point I'll convert this to register the masks in the database and use detselect
    179190if ($apply_auxiliary_mask) {
    180191    my @auxmask_start_date = qw(
     
    238249    print "Auxililary mask file is $auxmask\n";
    239250}
    240    
    241251
    242252
     
    272282    &my_die("Couldn't find expected output file: $out_stats", $chip_bg_id, $class_id, $PS_EXIT_SYS_ERROR) unless $ipprc->file_exists($out_stats);
    273283
    274     my $command = "$ppStatsFromMetadata $out_stats - BACKGROUND_CHIP";
     284    my $resolved_stats = $ipprc->file_resolve($out_stats);
     285    my $command = "$ppStatsFromMetadata $resolved_stats - BACKGROUND_CHIP";
    275286    my ( $success, $error_code, $full_buf, $stdout_buf, $stderr_buf ) =
    276287        run(command => $command, verbose => $verbose);
  • branches/eam_branches/ipp-20130207/ippScripts/scripts/background_warp.pl

    r35118 r35236  
    119119my $tempOutRoot = "/tmp/background.warp.$warp_bg_id.$skycell_id";
    120120
    121 # XXX: get this from recipe
    122 my $alternate_astrometry_label = 'M31.test.20130206.bgsub';
    123 # XXX: get exp_id from command line
    124 my $exp_id = 196758;
    125 
    126121if (!defined $imageName) {
    127122    # go find our inputs
    128     my $astrom_path_base;
    129     if (defined $alternate_astrometry_label) {
    130         my $command = "$camtool -processedexp -exp_id $exp_id -label $alternate_astrometry_label";
    131         $command .= " -dbname $dbname" if $dbname;
    132         my ( $success, $error_code, $full_buf, $stdout_buf, $stderr_buf ) =
    133             run(command => $command, verbose => $verbose);
    134         unless ($success) {
    135             $error_code = (($error_code >> 8) or $PS_EXIT_PROG_ERROR);
    136             &my_die("Unable to perform camtool -processedexp: $error_code", $warp_bg_id, $error_code);
    137         }
    138         my $entries = $mdcParser->parse_list(join "", @$stdout_buf) or
    139             &my_die("Unable to parse metadata config doc", $warp_bg_id, $PS_EXIT_PROG_ERROR);
    140         my $entry = $entries->[0];
    141         $astrom_path_base = $entry->{path_base};
    142     }
    143 
    144123    my ($imageFile, $maskFile, $weightFile);
    145124    ($imageFile, $imageName) = tempfile( "$tempOutRoot.image.list.XXXX",  UNLINK => !$save_temps);
     
    174153        $magicked = $file->{magicked};
    175154
    176         if (!$astrom_path_base) {
    177             my $cam_path = $file->{cam_path_base};
    178             my $astrom = $ipprc->filename($astromSource, $cam_path);
    179             &my_die("Astrometry files don't match: $astrom vs $astrometry", $warp_bg_id, $skycell_id, $PS_EXIT_PROG_ERROR) if defined $astrometry and $astrom ne $astrometry;
    180             $astrometry = $astrom;
    181         } elsif (!$astrometry) {
    182             # using alternate astrometry
    183             $astrometry = $ipprc->filename($astromSource, $astrom_path_base);
    184         }
     155        my $cam_path = $file->{cam_path_base};
     156        my $astrom = $ipprc->filename($astromSource, $cam_path);
     157        &my_die("Astrometry files don't match: $astrom vs $astrometry", $warp_bg_id, $skycell_id, $PS_EXIT_PROG_ERROR) if defined $astrometry and $astrom ne $astrometry;
     158        $astrometry = $astrom;
    185159    }
    186160    close $imageFile;
     
    238212    &my_die("Couldn't find expected output file: $out_stats", $warp_bg_id, $skycell_id, $PS_EXIT_SYS_ERROR) unless $ipprc->file_exists($out_stats);
    239213
    240     my $command = "$ppStatsFromMetadata $out_stats - BACKGROUND_WARP";
     214    my $real_stats = $ipprc->file_resolve($out_stats);
     215
     216    my $command = "$ppStatsFromMetadata $real_stats - BACKGROUND_WARP";
    241217    my ( $success, $error_code, $full_buf, $stdout_buf, $stderr_buf ) =
    242218        run(command => $command, verbose => $verbose);
  • branches/eam_branches/ipp-20130207/ippScripts/scripts/camera_exp.pl

    r35081 r35236  
    379379            check_output($bkgModel, $replicateOutputs);
    380380        }
     381        $cmdflags = $cmdflags . " -background_model 1 ";
    381382    }
    382383}
  • branches/eam_branches/ipp-20130207/ippScripts/scripts/chip_imfile.pl

  • branches/eam_branches/ipp-20130207/ippScripts/scripts/destreak_restore_camera.pl

    • Property svn:mergeinfo changed (with no actual effect on merging)
  • branches/eam_branches/ipp-20130207/ippScripts/scripts/diff_skycell.pl

    r32665 r35236  
    299299my $jpeg1Name = prepare_output("PPSUB.OUTPUT.JPEG1", $outroot, 1);
    300300my $jpeg2Name = prepare_output("PPSUB.OUTPUT.JPEG2", $outroot, 1);
     301
     302# do we always need to prepare this file?
     303if ($reduction ne 'NOCONVDIFF') {
     304    my $refConv = prepare_output("PPSUB.REF.CONV", $outroot, 1);
     305}
    301306
    302307my ($inverseName, $inverseMask, $inverseVariance, $inverseSources);
  • branches/eam_branches/ipp-20130207/ippScripts/scripts/ipp_apply_burntool_single.pl

    • Property svn:mergeinfo changed (with no actual effect on merging)
  • branches/eam_branches/ipp-20130207/ippScripts/scripts/ipp_cleanup.pl

    r35028 r35236  
    19571957            addFilename (\@files, "PPBACKGROUND.OUTPUT", $path_base, $class_id);
    19581958            addFilename (\@files, "PPBACKGROUND.OUTPUT.MASK", $path_base, $class_id);
     1959            addFilename (\@files, "PPBACKGROUND.OUTPUT.VARIANCE", $path_base, $class_id);
    19591960            if ($mode eq "goto_purged") {
    19601961                # additional files to remove for 'purge' mode
     
    21002101            addFilename (\@files, "PSWARP.OUTPUT", $path_base, $skycell_id);
    21012102            addFilename (\@files, "PSWARP.OUTPUT.MASK", $path_base, $skycell_id);
     2103            addFilename (\@files, "PSWARP.OUTPUT.VARIANCE", $path_base, $skycell_id);
    21022104            if ($mode eq "goto_purged") {
    21032105                # additional files to remove for 'purge' mode
  • branches/eam_branches/ipp-20130207/ippScripts/scripts/magic_destreak.pl

    • Property svn:mergeinfo changed (with no actual effect on merging)
  • branches/eam_branches/ipp-20130207/ippScripts/scripts/publish_file.pl

    r34485 r35236  
    9292
    9393my $comment;                    # Comment for exposure
     94my $exp_name_1;                    # Name of exposure 1
     95my $exp_name_2;                    # Name of exposure 2
    9496if ($stage eq 'camera') {
    9597    my $command =  "camtool -processedexp -cam_id $stage_id";
     
    168170    my %negative;               # Data for negative diff detections
    169171    foreach my $comp ( @$components ) {
    170         my $path_base = $comp->{path_base}; # Base name for file
     172        my $path_base = $comp->{path_base}; # Base name for file
    171173        if (!$need_magic and $comp->{magicked}) {
    172174            # This client is authorized to receive uncensored detections
     
    178180        print "Warning: mis-matched comments\n" if defined $comment and $comment ne $comp->{comment};
    179181        $comment = $comp->{comment} unless defined $comment;
     182        $exp_name_1 = $comp->{exp_name_1} unless defined $exp_name_1;
     183        $exp_name_2 = $comp->{exp_name_2} unless defined $exp_name_2;
    180184
    181185        (carp "Bad zpt_obs or exp_time for component" and next) if not defined $comp->{zpt_obs} or not defined $comp->{exp_time};
     
    192196        &my_die("input file does not exist: $filename", $pub_id, $PS_EXIT_SYS_ERROR) if !$ipprc->file_exists($filename);
    193197        my $resolved = $ipprc->file_resolve($filename);
    194        
     198
    195199        &my_die("unable to resolve input file: $filename", $pub_id, $PS_EXIT_SYS_ERROR) if !$resolved;
    196200
    197201        $filename = $resolved;
    198202
    199         my $cam_id = $comp->{cam_id_1};
    200         #print "Getting info from camera stage $cam_id\n";
    201         my $cam_command =  "$camtool -processedexp -cam_id $cam_id";
    202         $cam_command .= " -dbname $dbname" if defined $dbname;
    203         my ( $cam_success, $cam_error_code, $cam_full_buf, $cam_stdout_buf, $cam_stderr_buf ) =
    204             run(command => $cam_command, verbose => $verbose);
    205         &my_die( "Unable to retrieve filename", $pub_id, $PS_EXIT_SYS_ERROR) unless $cam_success;
    206         my $cam_metadata = $mdcParser->parse(join "", @$cam_stdout_buf) or
    207             &my_die("Unable to parse metadata config", $pub_id, $PS_EXIT_PROG_ERROR);
    208         my $cam_components = parse_md_list($cam_metadata) or
    209             &my_die("Unable to parse metadata list", $pub_id, $PS_EXIT_PROG_ERROR);
    210         &my_die("More than one entry for cam_id $stage_id", $pub_id, $PS_EXIT_PROG_ERROR) if scalar @$cam_components > 1;
    211         my $cam_comp = $$cam_components[0];
    212 
    213         my $exp_id = $comp->{exp_id_1};
    214         #print "Getting info from raw stage $exp_id\n";
    215         my $reg_command =  "$regtool -processedimfile -exp_id $exp_id";
    216         $reg_command .= " -dbname $dbname" if defined $dbname;
    217         my ( $reg_success, $reg_error_code, $reg_full_buf, $reg_stdout_buf, $reg_stderr_buf ) =
    218             run(command => $reg_command, verbose => $verbose);
    219         &my_die( "Unable to retrieve filename", $pub_id, $PS_EXIT_SYS_ERROR) unless $reg_success;
    220         my $reg_metadata = $mdcParser->parse(join "", @$reg_stdout_buf) or
    221             &my_die("Unable to parse metadata config", $pub_id, $PS_EXIT_PROG_ERROR);
    222         my $reg_components = parse_md_list($reg_metadata) or
    223             &my_die("Unable to parse metadata list", $pub_id, $PS_EXIT_PROG_ERROR);
    224         my $reg_comp = $$reg_components[0];
    225 
    226         # Now get the difftype value from diff->{diff_mode}
    227         my $difftype = "";
    228         if ($comp->{diff_mode} == 1) {
    229             $difftype = "WW";
    230         } elsif ($comp->{diff_mode} == 2) {
    231             $difftype = "WS";
    232         } elsif ($comp->{diff_mode} == 3) {
    233             $difftype = "SW"; # Not used yet
    234         } elsif ($comp->{diff_mode} == 4) {
    235             $difftype = "SS";
    236         } else {
    237             $difftype = "Unsupported diff_mode value: [" . $comp->{diff_mode} . "]";
    238         }
     203        my $cam_id = $comp->{cam_id_1};
     204        #print "Getting info from camera stage $cam_id\n";
     205        my $cam_command =  "$camtool -processedexp -cam_id $cam_id";
     206        $cam_command .= " -dbname $dbname" if defined $dbname;
     207        my ( $cam_success, $cam_error_code, $cam_full_buf, $cam_stdout_buf, $cam_stderr_buf ) =
     208            run(command => $cam_command, verbose => $verbose);
     209        &my_die( "Unable to retrieve filename", $pub_id, $PS_EXIT_SYS_ERROR) unless $cam_success;
     210        my $cam_metadata = $mdcParser->parse(join "", @$cam_stdout_buf) or
     211            &my_die("Unable to parse metadata config", $pub_id, $PS_EXIT_PROG_ERROR);
     212        my $cam_components = parse_md_list($cam_metadata) or
     213            &my_die("Unable to parse metadata list", $pub_id, $PS_EXIT_PROG_ERROR);
     214        &my_die("More than one entry for cam_id $stage_id", $pub_id, $PS_EXIT_PROG_ERROR) if scalar @$cam_components > 1;
     215        my $cam_comp = $$cam_components[0];
     216
     217        my $exp_id = $comp->{exp_id_1};
     218        #print "Getting info from raw stage $exp_id\n";
     219        my $reg_command =  "$regtool -processedimfile -exp_id $exp_id";
     220        $reg_command .= " -dbname $dbname" if defined $dbname;
     221        my ( $reg_success, $reg_error_code, $reg_full_buf, $reg_stdout_buf, $reg_stderr_buf ) =
     222            run(command => $reg_command, verbose => $verbose);
     223        &my_die( "Unable to retrieve filename", $pub_id, $PS_EXIT_SYS_ERROR) unless $reg_success;
     224        my $reg_metadata = $mdcParser->parse(join "", @$reg_stdout_buf) or
     225            &my_die("Unable to parse metadata config", $pub_id, $PS_EXIT_PROG_ERROR);
     226        my $reg_components = parse_md_list($reg_metadata) or
     227            &my_die("Unable to parse metadata list", $pub_id, $PS_EXIT_PROG_ERROR);
     228        my $reg_comp = $$reg_components[0];
     229
     230        # Now get the difftype value from diff->{diff_mode}
     231        my $difftype = "";
     232        if ($comp->{diff_mode} == 1) {
     233            $difftype = "WW";
     234        } elsif ($comp->{diff_mode} == 2) {
     235            $difftype = "WS";
     236        } elsif ($comp->{diff_mode} == 3) {
     237            $difftype = "SW"; # Not used yet
     238        } elsif ($comp->{diff_mode} == 4) {
     239            $difftype = "SS";
     240        } else {
     241            $difftype = "Unsupported diff_mode value: [" . $comp->{diff_mode} . "]";
     242        }
    239243
    240244        my $data = { zp => $zp,
     
    250254                     output_format => $comp->{output_format},
    251255                     direction => 1,
    252                      comment => $reg_comp->{comment},
    253                      obsmode => $reg_comp->{obs_mode},
    254                      difftype => $difftype,
    255                      sky => $cam_comp->{bg},
    256                      shutoutc => $reg_comp->{dateobs},
     256                     comment => $reg_comp->{comment},
     257                     obsmode => $reg_comp->{obs_mode},
     258                     difftype => $difftype,
     259                     sky => $cam_comp->{bg},
     260                     shutoutc => $reg_comp->{dateobs},
    257261        };
    258262
    259         #warn("Checking for positive");
     263        #warn("Checking for positive");
    260264        diff_check(\%positive, $data, "positive");
    261265
     
    288292                         diff_id => $comp->{diff_id},
    289293                         direction => 0,
    290                         comment => $reg_comp->{comment},
    291                         obsmode => $reg_comp->{obs_mode},
    292                         difftype => $difftype,
    293                         sky => $cam_comp->{bg},
    294                         shutoutc => $reg_comp->{dateobs},
     294                        comment => $reg_comp->{comment},
     295                        obsmode => $reg_comp->{obs_mode},
     296                        difftype => $difftype,
     297                        sky => $cam_comp->{bg},
     298                        shutoutc => $reg_comp->{dateobs},
    295299            };
    296300
    297             #warn("Checking for negative");
     301            #warn("Checking for negative");
    298302            diff_check(\%negative, $data, "negative");
    299303
     
    326330    my $command = "$dsreg --add pub.$pub_id.$stage.$stage_id --copy --abspath --product $product --type $dsType --list $dsFileName";
    327331    $command .= " --ps0 \"$comment\"" if defined $comment;
     332    $command .= " --ps1 \"$exp_name_1\"" if defined $exp_name_1;
     333    $command .= " --ps2 \"$exp_name_2\"" if defined $exp_name_2;
    328334
    329335    my ( $success, $error_code, $full_buf, $stdout_buf, $stderr_buf ) =
  • branches/eam_branches/ipp-20130207/ippScripts/scripts/skycalibration.pl

    r34792 r35236  
    231231    $command .= " -F PSASTRO.OUTPUT $output_sources_filerule";
    232232    $command .= " -stats $stats";
    233     $command .= " -recipe PPSTATS CAMSTATS";
     233    # $command .= " -recipe PPSTATS CAMSTATS";
     234    $command .= " -recipe PPSTATS SKYCALSTATS";
    234235    $command .= " -dumpconfig $configuration" if $configuration;
    235236    $command .= " -tracedest $traceDest";
  • branches/eam_branches/ipp-20130207/ippScripts/scripts/warp_skycell.pl

    r34800 r35236  
    245245    print $weightFile "$weight\n";
    246246    my $bkg;
    247     if ($doBackground) {
    248         $bkg    = $ipprc->filename("PSPHOT.BACKMDL", $imfile->{chip_path_base}, $imfile->{class_id});
     247    if (($doBackground)) {
     248        # &&($imfile->{background_model} == 1)
     249        if ($imfile->{cam_background_model}) {
     250            $bkg    = $ipprc->filename("PPIMAGE.BACKMDL", $imfile->{cam_path_base}, $imfile->{class_id});
     251        }
     252        else {
     253            $bkg    = $ipprc->filename("PPIMAGE.BACKMDL", $imfile->{chip_path_base}, $imfile->{class_id});
     254        }
    249255        print $bkgFile "$bkg\n";
    250256    }
  • branches/eam_branches/ipp-20130207/ippTasks

  • branches/eam_branches/ipp-20130207/ippTasks/background.pro

    r28486 r35236  
    241241    else
    242242      # save the DB name for the exit tasks
    243       option $DB:$chip_advance_DB
     243      option $DB:$bg_chip_advance_DB
    244244      $run = $run -dbname $DB:$bg_chip_advance_DB
    245245      $bg_chip_advance_DB ++
     
    446446
    447447  periods      -poll $LOADPOLL
    448 #  periods      -exec $LOADEXEC
    449448  periods      -exec 30
    450449  periods      -timeout 60
     
    461460    else
    462461      # save the DB name for the exit tasks
    463       option $DB:$warp_advance_DB
     462      option $DB:$bg_warp_advance_DB
    464463      $run = $run -dbname $DB:$bg_warp_advance_DB
    465464      $bg_warp_advance_DB ++
  • branches/eam_branches/ipp-20130207/ippTasks/burntool.pro

    r28632 r35236  
    11## burntool.pro : -*- sh -*-
    2 
     2## This task is designed to only be used when re-burntooling data.  It is not necessary for standard registration.
    33check.globals
    44
     
    161161  periods         -exec $LOADEXEC
    162162  periods         -timeout 30
     163  active          false
    163164  npending        1
    164165
     
    216217  periods         -exec $LOADEXEC
    217218  periods         -timeout 300
     219  active          false
    218220  npending        1
    219221
     
    281283  periods         -exec $LOADEXEC
    282284  periods         -timeout 30
     285  active          false
    283286  npending        1
    284287
     
    336339  periods         -exec $RUNEXEC
    337340  periods         -timeout 10800
     341  active          false
    338342  npending        30
    339343  task.exec
  • branches/eam_branches/ipp-20130207/ippTasks/summit.copy.pro

    r34757 r35236  
    66
    77# pztool -adddatastore -inst isp -telescope ps1 -uri http://otis1.ifa.hawaii.edu/ds/skyprobe/index.txt
     8# pztool -adddatastore -inst ssp -telescope ps1 -uri http://otis1.ifa.hawaii.edu/ds/ssp/index.txt                                                                                       
    89# pztool -adddatastore -inst gpc1 -telescope ps1 -uri http://conductor/ds/gpc1/index.txt
    910# pztool -adddatastore -inst allskycam -telescope ps1 -uri  http://otis1.ifa.hawaii.edu/ds/allskycam/index.txt
     11
    1012
    1113# NOTE: workdir / volume mangling and nebulous.  these tasks copy the
  • branches/eam_branches/ipp-20130207/ippTools/configure.ac

    r34798 r35236  
    11AC_PREREQ(2.61)
    22
    3 AC_INIT([ipptools], [1.1.73], [ipp-support@ifa.hawaii.edu])
     3AC_INIT([ipptools], [1.1.75], [ipp-support@ifa.hawaii.edu])
    44AC_CONFIG_SRCDIR([autogen.sh])
    55
     
    1818PKG_CHECK_MODULES([PSLIB], [pslib >= 1.1.0])
    1919PKG_CHECK_MODULES([PSMODULES], [psmodules >= 1.1.0])
    20 PKG_CHECK_MODULES([IPPDB], [ippdb >= 1.1.71])
     20PKG_CHECK_MODULES([IPPDB], [ippdb >= 1.1.75])
    2121PKG_CHECK_MODULES([PPSTAMP], [ppstamp >= 0.1.1])
    2222
  • branches/eam_branches/ipp-20130207/ippTools/share

  • branches/eam_branches/ipp-20130207/ippTools/share/Makefile.am

    r34933 r35236  
    155155        difftool_completed_runs.sql \
    156156        difftool_coalesce_run.sql \
     157        difftool_definewarpstack.sql \
    157158        difftool_definewarpstack_part1.sql \
    158159        difftool_definewarpstack_part2.sql \
     
    463464        sctool_list.sql \
    464465        releasetool_listsurvey.sql \
     466        releasetool_tocalibexp.sql \
    465467        releasetool_listrelease.sql \
    466468        releasetool_listrelexp.sql \
    467         releasetool_definerelexp.sql
     469        releasetool_definerelexp.sql \
     470        releasetool_definerelstack.sql \
     471        releasetool_definerelstack_with_skycal.sql \
     472        releasetool_definerelgroup_select_lap.sql \
     473        releasetool_definerelgroup_select_data_group.sql \
     474        releasetool_definerelgroup_select_exp_data_group.sql \
     475        releasetool_definerelgroup_select_exp_lap.sql \
     476        releasetool_pendingrelgroup.sql
    468477
  • branches/eam_branches/ipp-20130207/ippTools/share/bgtool_chip.sql

    r35100 r35236  
    55    chipBackgroundRun.label,
    66    chipBackgroundRun.data_group,
     7    chipBackgroundRun.chip_id,
     8    chipBackgroundRun.cam_id,
    79    rawExp.exp_id,
    810    rawExp.exp_name,
     
    1214    rawExp.ra,
    1315    rawExp.decl,
    14     rawExp.exp_time,
    15     chipRun.chip_id
     16    rawExp.exp_time
    1617FROM chipBackgroundRun
    1718JOIN chipBackgroundImfile USING(chip_bg_id)
  • branches/eam_branches/ipp-20130207/ippTools/share/bgtool_chipinputs.sql

    r28486 r35236  
    11SELECT
    2     chipProcessedImfile.*
     2    chipProcessedImfile.*,
     3    camProcessedExp.path_base AS cam_path_base
    34FROM chipBackgroundRun
    45JOIN chipRun USING(chip_id)
    56JOIN chipProcessedImfile USING(chip_id)
     7LEFT JOIN camProcessedExp ON chipBackgroundRun.cam_id = camProcessedExp.cam_id
    68WHERE chipRun.state = 'full'
    79    AND chipProcessedImfile.fault = 0
  • branches/eam_branches/ipp-20130207/ippTools/share/bgtool_definechip.sql

    r35119 r35236  
    11SELECT
    2     chipRun.*
     2    chipRun.*,
     3    camRun.cam_id,
     4    chip_bg_id,
     5    CURRENT_TIMESTAMP AS registered
    36FROM chipRun
    47JOIN rawExp USING(exp_id)
    5 LEFT JOIN chipBackgroundRun USING(chip_id)
    6 WHERE chipRun.state = 'full'
     8JOIN chipRun as altChipRun USING(exp_id)
     9JOIN camRun ON altChipRun.chip_id = camRun.chip_id
     10JOIN camProcessedExp USING(cam_id)
     11LEFT JOIN chipBackgroundRun ON chipBackgroundRun.chip_id = chipRun.chip_id -- labelHook %s
     12WHERE chipRun.state = 'full' AND camRun.state ='full' AND camProcessedExp.quality = 0
  • branches/eam_branches/ipp-20130207/ippTools/share/bgtool_definewarp.sql

    r28551 r35236  
    11SELECT
    2     warpRun.*,
    3     chipBackgroundRun.chip_bg_id
     2    warpRun.warp_id,
     3    chipBackgroundRun.*
     4    -- the following items are selected for aid in debugging
     5    ,
     6    warpsChipRun.chip_id as warpschip_id,
     7    chipRun.chip_id AS thischip_id,
     8    warpBackgroundRun.warp_bg_id
    49FROM warpRun
    510JOIN fakeRun USING(fake_id)
    611JOIN camRun USING(cam_id)
    7 JOIN chipRun USING(chip_id)
    8 JOIN chipBackgroundRun USING(chip_id)
     12JOIN chipRun as warpsChipRun ON camRun.chip_id = warpsChipRun.chip_id
    913JOIN rawExp USING(exp_id)
    10 LEFT JOIN warpBackgroundRun USING(chip_bg_id)
     14JOIN chipRun USING(exp_id)
     15JOIN chipBackgroundRun ON chipRun.chip_id = chipBackgroundRun.chip_id
     16    AND (chipBackgroundRun.cam_id = camRun.cam_id OR chipBackgroundRun.cam_id = 0)
     17LEFT JOIN warpBackgroundRun ON chipBackgroundRun.chip_bg_id = warpBackgroundRun.warp_bg_id -- label hook %s
    1118WHERE chipBackgroundRun.state = 'full'
    12     AND warpRun.state IN ('full', 'cleaned', 'goto_cleaned') -- only need it to have been completed
     19    AND warpRun.state IN ('full', 'cleaned', 'goto_cleaned') -- need warp to have completed so warpSkyCellMap is populated
  • branches/eam_branches/ipp-20130207/ippTools/share/bgtool_tochip.sql

    r28486 r35236  
    1616    AND (Label.active OR Label.active IS NULL)
    1717-- WHERE hook %s
    18 ORDER BY priority DESC, chip_bg_id
     18ORDER BY priority DESC, chip_bg_id, class_id
  • branches/eam_branches/ipp-20130207/ippTools/share/bgtool_towarp.sql

    r34589 r35236  
    2424    AND (Label.active OR Label.active IS NULL)
    2525-- WHERE hook %s
    26 ORDER BY priority DESC, chip_bg_id
     26ORDER BY priority DESC, warp_bg_id, skycell_id
  • branches/eam_branches/ipp-20130207/ippTools/share/bgtool_warp.sql

    r28743 r35236  
    22    warpBackgroundSkyfile.*,
    33    warpBackgroundRun.state,
     4    warpBackgroundRun.warp_id,
     5    camRun.cam_id,
     6    warpBackgroundRun.chip_bg_id,
    47    warpBackgroundRun.workdir,
    58    warpBackgroundRun.label,
     9    warpRun.label as warp_label,
    610    rawExp.exp_id,
    711    rawExp.exp_name,
  • branches/eam_branches/ipp-20130207/ippTools/share/bgtool_warpinputs.sql

    r28747 r35236  
    1111JOIN chipBackgroundImfile USING(chip_bg_id, class_id)
    1212JOIN fakeRun USING(fake_id)
    13 JOIN camProcessedExp USING(cam_id)
     13JOIN camProcessedExp ON camProcessedExp.cam_id = fakeRun.cam_id
    1414WHERE warpRun.state IN ('full', 'cleaned', 'goto_cleaned') -- only need it to have been completed
    1515    AND warpSkyfile.fault = 0
  • branches/eam_branches/ipp-20130207/ippTools/share/camtool_find_pendingimfile.sql

  • branches/eam_branches/ipp-20130207/ippTools/share/chiptool_setimfiletoupdate.sql

  • branches/eam_branches/ipp-20130207/ippTools/share/difftool_definewarpstack.sql

    r24572 r35236  
    1 -- Get list of warps that can be diffed, with any associated diff,
    2 -- and the best stack to use as a template
    3 -- Warps without an existing diff can be identified by a NULL diff_id
     1-- Get list of warp-stack pairs that can be diffed
     2-- and check results against existing diffs
    43SELECT
    5     warpsToDiff.warp_id,
    6     warpsToDiff.skycell_id,
    7     warpsToDiff.tess_id,
    8     warpsToDiff.filter,
    9     warpsToDiff.good_frac,
    10     warpsToDiff.diff_id,
    11     current_stack_id,
    12     best_stack_id,
    13     exp_id
    14 FROM (
    15     -- Get list of warps that can be diffed, with any associated diff
    16     SELECT
    17         warpSkyfile.warp_id,
    18         warpSkyfile.skycell_id,
    19         warpSkyfile.tess_id,
    20         warpSkyfile.good_frac,
    21         warpRun.label,
    22         filter,
    23         warpRun.label as warp_label,
    24         diffInputs.diff_id,
    25         diffInputs.stack2 AS current_stack_id,
    26         rawExp.exp_id
    27     FROM warpSkyfile
    28     JOIN warpRun USING(warp_id)
    29     JOIN fakeRun USING(fake_id)
    30     JOIN camRun USING(cam_id)
    31     JOIN chipRun USING(chip_id)
    32     JOIN rawExp USING(exp_id)
    33     -- Check if it has an associated diff
    34     LEFT JOIN diffInputSkyfile AS diffInputs
    35         ON diffInputs.warp1 = warpSkyfile.warp_id
    36         AND diffInputs.skycell_id = warpSkyfile.skycell_id
    37         AND diffInputs.stack2 IS NOT NULL
    38     WHERE
    39         warpSkyfile.fault = 0
    40         AND warpSkyfile.quality = 0
    41     -- warpsToDiff WHERE hook %s
    42     ) AS warpsToDiff
    43 -- Get best stack as a function of skycell_id, filter
    44 JOIN (
    45     SELECT
    46         MAX(stack_id) AS best_stack_id, -- most recent stack, by virtue of auto-increment
    47         skycell_id,
    48         filter
    49     FROM stackRun
    50     JOIN stackSumSkyfile USING(stack_id)
    51     WHERE stackRun.state = 'full'
    52         AND stackSumSkyfile.fault = 0
    53         AND stackSumSkyfile.quality = 0
    54     -- stacksForDiff WHERE hook %s
    55     GROUP BY
    56         skycell_id,
    57         filter
    58     ) AS stacksForDiff USING(skycell_id, filter)
     4   exp_id,
     5   warp_id,
     6   rawExp.filter,
     7   warpRun.label AS warpLabel,
     8   warpRun.data_group AS warpDataGroup,
     9   warpRun.tess_id,
     10   warpSkyfile.skycell_id,
     11   MAX(stack_id) AS stack_id,
     12   stackRun.label AS stackLabel,
     13   stackRun.data_group AS stackDataGroup,
     14   diff_id,
     15   diffRun.label AS diffLabel
     16FROM warpRun
     17     JOIN fakeRun USING(fake_id)
     18     JOIN camRun USING(cam_id)
     19     JOIN chipRun USING(chip_id)
     20     JOIN rawExp USING(exp_id)
     21     JOIN warpSkyfile USING(warp_id)
     22     JOIN stackRun ON
     23       (stackRun.skycell_id = warpSkyfile.skycell_id AND
     24        stackRun.filter     = rawExp.filter AND
     25        stackRun.tess_id    = warpRun.tess_id)
     26     JOIN stackSumSkyfile USING(stack_id)
     27     LEFT JOIN diffInputSkyfile ON
     28       (warp_id = diffInputSkyfile.warp1 AND
     29        stack_id = diffInputSkyfile.stack2 AND
     30        diffInputSkyfile.skycell_id = stackRun.skycell_id AND
     31        diffInputSkyfile.tess_id = stackRun.tess_id)
     32     LEFT JOIN diffRun USING(diff_id)
     33WHERE
     34     warpRun.state = 'full'
     35     AND stackRun.state = 'full'
     36     AND warpSkyfile.fault = 0
     37     AND warpSkyfile.quality = 0
     38     AND stackSumSkyfile.fault = 0
     39     AND stackSumSkyfile.quality = 0
     40     AND exp_id IS NOT NULL
     41-- %s
     42GROUP BY exp_id,warp_id,skycell_id
  • branches/eam_branches/ipp-20130207/ippTools/share/pxadmin_create_tables.sql

    r35110 r35236  
    521521    deteff_uq FLOAT,
    522522    quality SMALLINT NOT NULL DEFAULT 0,
     523    background_model SMALLINT,
    523524    PRIMARY KEY(cam_id),
    524525    KEY(fault),
     
    17911792    chip_bg_id BIGINT AUTO_INCREMENT, -- unique identifier
    17921793    chip_id BIGINT NOT NULL,          -- link to chipRun
     1794    cam_id BIGINT DEFAULT 0,          -- optional link to camRun
    17931795    state VARCHAR(64) NOT NULL,       -- state of run (new, full, etc.)
    17941796    workdir VARCHAR(255) NOT NULL,    -- working directory
     
    18431845    data_group VARCHAR(64),           -- group for data
    18441846    dist_group VARCHAR(64),           -- group for distribution
    1845     reduction VARCHAR(64),    -- reduction class (for altering recipe)
     1847    reduction VARCHAR(64),            -- reduction class (for altering recipe)
    18461848    note VARCHAR(255),        -- note
    18471849    registered TIMESTAMP DEFAULT CURRENT_TIMESTAMP, -- time run was registered
     
    21222124      zpt_obs FLOAT,
    21232125      zpt_stdev FLOAT,
     2126      fwhm_major  FLOAT,
     2127      fwhm_minor  FLOAT,
    21242128      quality SMALLINT NOT NULL,
    21252129      hostname VARCHAR(64) NOT NULL,
     
    21492153
    21502154CREATE TABLE survey (
    2151     surveyID    INT(8),
     2155    surveyID    INT,
    21522156    surveyName  VARCHAR(16) NOT NULL,
    21532157    description VARCHAR(255),
    21542158    PRIMARY KEY(surveyID),
    2155     UNIQUE  KEY(name)
     2159    UNIQUE  KEY(surveyName)
    21562160) ENGINE=InnoDB CHARSET=latin1;
    21572161
    2158 
    21592162CREATE TABLE ippRelease (
    2160     rel_id      INT(8) AUTO_INCREMENT,
    2161     surveyID    INT(8),
    2162     releaseName VARCHAR(64),
    2163     relase_state VARCHAR(16),   -- active, pending, archive, drop
    2164     dataRelease INT(8),         -- PSPS dataRelease
    2165     priority    INT(8),
     2163    rel_id      INT AUTO_INCREMENT,
     2164    surveyID    INT,
     2165    release_name VARCHAR(64),
     2166    release_state VARCHAR(16),   -- active, pending, archive, drop
     2167    dataRelease INT,         -- PSPS dataRelease
     2168    priority    INT,
    21662169    PRIMARY KEY(rel_id),
    2167     KEY(releaseName),
    2168     KEY(state),
     2170    KEY(release_name),
     2171    KEY(release_state),
    21692172    KEY(priority),
    21702173    FOREIGN KEY(surveyID) REFERENCES survey(surveyID)
     
    21732176CREATE TABLE relExp (
    21742177    relexp_id   BIGINT AUTO_INCREMENT,
    2175     rel_id      INT(8),
     2178    rel_id      INT,
    21762179    exp_id      BIGINT,
    21772180    chip_id     BIGINT,         -- links to the runs that supplied the data
    21782181    cam_id      BIGINT,         -- for this release
     2182    group_id    INT,         -- id of relGroup that this exposure is contained in
    21792183    state       VARCHAR(16),    -- released, pending, archive, drop 
    2180     flags       INT UNSIGNED,   -- flags for relphot, relastro, ??
     2184    flags       INT UNSIGNED,  -- flags for relphot, relastro, ??
    21812185    zpt_obs     FLOAT,          -- calibrated zero point for this release of
    21822186    zpt_stdev   FLOAT,          -- this exposure
    21832187    path_base   VARCHAR(255),   -- path_base of any supporting files for this
    21842188                                -- release of this exposure.
     2189    fault SMALLINT NOT NULL,
    21852190    registered  DATETIME,       -- insertion time for this row
    21862191    time_stamp  DATETIME,       -- time of last update for this row
     
    21882193    FOREIGN KEY(rel_id) REFERENCES ippRelease(rel_id),
    21892194    KEY (state),
     2195    KEY (fault),
    21902196    FOREIGN KEY(exp_id) REFERENCES rawExp(exp_id),
    21912197    FOREIGN KEY(chip_id) REFERENCES chipRun(chip_id),
     
    21952201CREATE TABLE relStack (
    21962202    relstack_id BIGINT AUTO_INCREMENT,
    2197     rel_id      INT(8),
     2203    rel_id      INT,
     2204    stack_id    BIGINT,         -- id of the stackRun
    21982205    skycal_id   BIGINT,         -- id of the sky calibration run that supplied the calibration
    2199                                 -- for this release. We get back to stack from here
    2200     skycell_id  varchar(64),
    2201     tess_id     varchar(64),
     2206                                -- for this release of this skycell.
     2207    skycell_id  VARCHAR(64),
     2208    tess_id     VARCHAR(64),
     2209    filter      VARCHAR(16),
    22022210    state       VARCHAR(16),    -- released, pending, archive, drop 
    22032211    flags       INT UNSIGNED,
     
    22052213    zpt_obs     FLOAT,          -- calibrated zero point for this release of this skycell
    22062214    zpt_stdev   FLOAT,
    2207     fwhm_major  FLOAT,          -- seeing as measured by staticsky
     2215    mjd_obs     INT UNSIGNED,   -- for nightly stacks the mjd_obs, zero for deep and reference
    22082216    path_base   VARCHAR(255),   -- path_base of any supporting files,
     2217    fault SMALLINT NOT NULL,
    22092218    registered  DATETIME,
    22102219    time_stamp  DATETIME,
    22112220    PRIMARY KEY (relstack_id),
    22122221    KEY (tess_id, skycell_id),
    2213     KEY (rel_id, tess_id, skycell_id),
     2222    KEY (rel_id, tess_id, skycell_id, filter, mjd_obs),
     2223    KEY (stack_type),
     2224    KEY (mjd_obs),
     2225    KEY (state),
     2226    KEY (fault),
    22142227    FOREIGN KEY(rel_id) REFERENCES ippRelease(rel_id),
    2215     FOREIGN KEY(skycal_id) REFERENCES skycalRun(skycal_id)
     2228    FOREIGN KEY(stack_id) REFERENCES stackRun(stack_id)
     2229) ENGINE=innodb DEFAULT CHARSET=latin1;
     2230
     2231CREATE TABLE relGroup (
     2232    group_id    INT AUTO_INCREMENT,
     2233    rel_id      INT,
     2234    group_type  VARCHAR(16),
     2235    lap_id      BIGINT,
     2236    group_name  VARCHAR(16),
     2237    state       VARCHAR(16),    -- new full
     2238    label       VARCHAR(64),
     2239    exp_list_path   VARCHAR(255),
     2240    fault SMALLINT NOT NULL,
     2241    registered  DATETIME,
     2242    PRIMARY KEY (group_id),
     2243    KEY (rel_id, group_name),
     2244    KEY (group_type),
     2245    KEY (lap_id),
     2246    KEY (group_name),
     2247    KEY (state),
     2248    KEY (label),
     2249    KEY (fault),
     2250    FOREIGN KEY(rel_id) REFERENCES ippRelease(rel_id)
     2251) ENGINE=innodb DEFAULT CHARSET=latin1;
     2252
     2253CREATE TABLE lapGroup  (
     2254    seq_id  BIGINT,
     2255    projection_cell VARCHAR(64),
     2256    state   VARCHAR(16),
     2257    fault   SMALLINT,
     2258    PRIMARY KEY(seq_id, projection_cell),
     2259    KEY(state),
     2260    KEY(fault),
     2261    FOREIGN KEY(seq_id) REFERENCES lapSequence(seq_id)
    22162262) ENGINE=innodb DEFAULT CHARSET=latin1;
    22172263
  • branches/eam_branches/ipp-20130207/ippTools/share/pxadmin_drop_tables.sql

    r34913 r35236  
    109109DROP TABLE IF EXISTS skycalResult;
    110110DROP TABLE IF EXISTS skycell;
     111DROP TABLE IF EXISTS relStack;
    111112DROP TABLE IF EXISTS relExp;
     113DROP TABLE IF EXISTS relGroup;
    112114DROP TABLE IF EXISTS ippRelease;
    113115DROP TABLE IF EXISTS survey;
     116DROP TABLE IF EXISTS lapGroup;
    114117
    115118SET FOREIGN_KEY_CHECKS=1
  • branches/eam_branches/ipp-20130207/ippTools/share/releasetool_definerelexp.sql

    r34933 r35236  
    11SELECT
    22    ippRelease.rel_id,
    3     ippRelease.releaseName,
     3    ippRelease.release_name,
    44    rawExp.exp_name,
    55    rawExp.filter,
  • branches/eam_branches/ipp-20130207/ippTools/share/releasetool_listrelexp.sql

    r35048 r35236  
    22    relexp_id,
    33    relExp.state,
    4     ippRelease.releaseName,
     4    relExp.fault,
     5    ippRelease.release_name,
    56    ippRelease.release_state,
    67    ippRelease.rel_id,
     
    2122    camProcessedExp.path_base as cam_path_base,
    2223    camProcessedExp.fwhm_major,
     24    camProcessedExp.fwhm_minor,
    2325    warpRun.warp_id,
    2426    warpRun.state as warp_state,
  • branches/eam_branches/ipp-20130207/ippTools/share/warptool_scmap.sql

    r32570 r35236  
    55    camProcessedExp.path_base as cam_path_base,
    66    camProcessedExp.fault as cam_fault,
     7    camProcessedExp.background_model AS cam_background_model,
    78    chipProcessedImfile.chip_id,
    89    chipRun.state,
  • branches/eam_branches/ipp-20130207/ippTools/share/warptool_towarped.sql

  • branches/eam_branches/ipp-20130207/ippTools/src

  • branches/eam_branches/ipp-20130207/ippTools/src/addtool.c

    r34265 r35236  
    988988    if (strcmp (stage,"cam") == 0) {
    989989      query = pxDataGet("addtool_find_processedexp_cam.sql");
    990     }
    991     if (strcmp (stage,"stack") == 0) {
     990    } else if (strcmp (stage,"stack") == 0) {
    992991      query = pxDataGet("addtool_find_processedexp_stack.sql");
    993     }
    994     if (strcmp (stage,"staticsky") == 0) {
     992    } else if (strcmp (stage,"staticsky") == 0) {
    995993      query = pxDataGet("addtool_find_processedexp_staticsky_multi.sql");
    996     }
    997     if (strcmp (stage,"skycal") == 0) {
     994    } else if (strcmp (stage,"skycal") == 0) {
    998995      query = pxDataGet("addtool_find_processedexp_skycal.sql");
     996    } else {
     997        psFree(where);
     998        psError(PXTOOLS_ERR_CONFIG, false, "can't find sql file for stage %s", stage);
     999        return false;
    9991000    }
    10001001
  • branches/eam_branches/ipp-20130207/ippTools/src/addtoolConfig.c

    r34265 r35236  
    125125    psMetadataAddS64(processedexpArgs, PS_LIST_TAIL, "-add_id",   0,            "search by add_id", 0);
    126126    psMetadataAddS64(processedexpArgs, PS_LIST_TAIL, "-stage_id",   0,            "search by stage_id", 0);
    127     psMetadataAddStr(processedexpArgs, PS_LIST_TAIL, "-stage",             0, "set the stage", NULL);
     127    psMetadataAddStr(processedexpArgs, PS_LIST_TAIL, "-stage",             0, "set the stage", "cam");
    128128    pxcamSetSearchArgs(processedexpArgs);
    129129    psMetadataAddStr(processedexpArgs, PS_LIST_TAIL, "-label", PS_META_DUPLICATE_OK, "search by addRun label", NULL);
  • branches/eam_branches/ipp-20130207/ippTools/src/bgtool.c

    r35121 r35236  
    285285    psMetadata *where = psMetadataAlloc();
    286286    PXOPT_COPY_S64(config->args,   where, "-chip_id",            "chipRun.chip_id",       "==");
     287    PXOPT_COPY_S64(config->args,   where, "-cam_id",             "camRun.cam_id",         "==");
    287288    PXOPT_COPY_S64(config->args,   where, "-exp_id",             "rawExp.exp_id",         "==");
    288289    PXOPT_COPY_STR(config->args,   where, "-exp_name",           "rawExp.exp_name",       "==");
     
    324325    PXOPT_COPY_F32(config->args,   where, "-sun_angle_min",      "rawExp.sun_angle",      ">=");
    325326    PXOPT_COPY_F32(config->args,   where, "-sun_angle_max",      "rawExp.sun_angle",      "<");
    326     pxAddLabelSearchArgs(config,   where, "-label",              "chipRun.label",         "==");
     327    PXOPT_COPY_STR(config->args,   where, "-label",              "chipRun.label",         "==");
     328    PXOPT_COPY_STR(config->args,   where, "-cam_label",          "camRun.label",          "==");
    327329
    328330    if (!psListLength(where->list)) {
     
    343345    PXOPT_LOOKUP_BOOL(simple, config->args, "-simple", false);
    344346    PXOPT_LOOKUP_BOOL(pretend, config->args, "-pretend", false);
     347    PXOPT_LOOKUP_STR(cam_label, config->args, "-cam_label", false, false);
     348    PXOPT_LOOKUP_S64(cam_id, config->args, "-cam_id", false, false);
     349    if (!cam_id && !cam_label) {
     350        psError(PXTOOLS_ERR_CONFIG, true, "either cam_id or cam_label is required");
     351        return false;
     352    }
    345353
    346354    // Get chip runs to promote to chipBackgroundRun
     
    364372    }
    365373
     374    psString labelHook = psStringCopy("");
    366375    if (!rerun) {
    367         psStringAppend(&query, "\nAND chipBackgroundRun.chip_bg_id IS NULL");
    368376        if (label) {
    369             psStringAppend(&query,
    370                            "\nAND (chipBackgroundRun.label = '%s'"
    371                            " OR chipBackgroundRun.label IS NULL)",
    372                            label);
    373         }
    374         if (data_group) {
    375             psStringAppend(&query,
    376                            "\nAND (chipBackgroundRun.data_group = '%s'"
    377                            " OR chipBackgroundRun.data_group IS NULL)",
    378                            data_group);
    379         }
    380         if (dist_group) {
    381             psStringAppend(&query,
    382                            "\nAND (chipBackgroundRun.dist_group = '%s'"
    383                            " OR chipBackgroundRun.dist_group IS NULL)",
    384                            dist_group);
    385         }
     377            // check for run with the newly specified label
     378            psStringAppend(&labelHook, "\nAND (chipBackgroundRun.label = '%s')", label);
     379        }
     380        psStringAppend(&query, "\nAND chip_bg_id IS NULL");
    386381    }
    387382
     
    391386    }
    392387
    393     if (!p_psDBRunQuery(config->dbh, query)) {
     388    if (!p_psDBRunQueryF(config->dbh, query, labelHook)) {
    394389        psError(psErrorCodeLast(), false, "database error");
    395390        psFree(query);
     391        psFree(labelHook);
    396392        if (!psDBRollback(config->dbh)) {
    397393            psError(psErrorCodeLast(), false, "database error");
     
    400396    }
    401397    psFree(query);
     398    psFree(labelHook);
    402399
    403400    psArray *output = p_psDBFetchResult(config->dbh); // Matching rows
     
    420417    if (pretend) {
    421418        // negative simple so the default is true
    422         if (!ippdbPrintMetadatas(stdout, output, "chipRun", !simple)) {
     419        if (!ippdbPrintMetadatas(stdout, output, "chipBackgroundRun", !simple)) {
    423420            psError(psErrorCodeLast(), false, "failed to print array");
    424421            psFree(output);
     
    435432        psMetadata *md = output->data[i];
    436433
    437         chipRunRow *row = chipRunObjectFromMetadata(md);
     434        chipBackgroundRunRow *row = chipBackgroundRunObjectFromMetadata(md);
    438435        if (!row) {
    439436            psError(psErrorCodeLast(), false, "failed to convert metadata into fakeRun");
     
    445442        }
    446443
    447         if (!chipBackgroundRunInsert(config->dbh, 0, row->chip_id, "new",
     444        if (!chipBackgroundRunInsert(config->dbh, 0, row->chip_id, row->cam_id, "new",
    448445                                     workdir     ? workdir    : row->workdir,
    449446                                     label       ? label      : row->label,
     
    560557
    561558    if (psArrayLength(output)) {
    562         if (!ippdbPrintMetadatas(stdout, output, "chipBackgroundRun", !simple)) {
     559        if (!ippdbPrintMetadatas(stdout, output, "pendingchipBackgroundRun", !simple)) {
    563560            psError(psErrorCodeLast(), false, "failed to print array");
    564561            psFree(output);
     
    621618        return true;
    622619    }
    623     if (!ippdbPrintMetadatas(stdout, output, "chipBackgroundImfile", !simple)) {
     620    if (!ippdbPrintMetadatas(stdout, output, "pendingchipBackgroundImfile", !simple)) {
    624621        psError(psErrorCodeLast(), false, "failed to print array");
    625622        psFree(output);
     
    12951292    PXOPT_COPY_F32(config->args,   where, "-sun_angle_max",      "rawExp.sun_angle",      "<");
    12961293    pxAddLabelSearchArgs(config,   where, "-warp_label",         "warpRun.label",         "==");
    1297     pxAddLabelSearchArgs(config,   where, "-chip_label",         "chipBackgroundRun.label", "==");
     1294    pxAddLabelSearchArgs(config,   where, "-chip_bg_label",      "chipBackgroundRun.label", "==");
     1295    pxAddLabelSearchArgs(config,   where, "-chip_label",         "chipRun.label",         "==");
    12981296
    12991297    if (!psListLength(where->list) && !psMetadataLookupBool(NULL, config->args, "-all")) {
     
    13351333    }
    13361334
     1335    psString labelHook = psStringCopy("");
    13371336    if (!rerun) {
    1338         psStringAppend(&query, "\nAND warpBackgroundRun.warp_bg_id IS NULL");
    13391337        if (label) {
    1340             psStringAppend(&query,
    1341                            "\nAND (warpBackgroundRun.label = '%s'"
    1342                            " OR warpBackgroundRun.label IS NULL)",
    1343                            label);
    1344         }
    1345         if (data_group) {
    1346             psStringAppend(&query,
    1347                            "\nAND (warpBackgroundRun.data_group = '%s'"
    1348                            " OR warpBackgroundRun.data_group IS NULL)",
    1349                            data_group);
    1350         }
    1351         if (dist_group) {
    1352             psStringAppend(&query,
    1353                            "\nAND (warpBackgroundRun.dist_group = '%s'"
    1354                            " OR warpBackgroundRun.dist_group IS NULL)",
    1355                            dist_group);
    1356         }
     1338            // check for run with the newly specified label
     1339            psStringAppend(&labelHook, "\nAND (warpBackgroundRun.label = '%s')", label);
     1340        }
     1341        psStringAppend(&query, "\nAND warp_bg_id IS NULL");
    13571342    }
    13581343
     
    13621347    }
    13631348
    1364     if (!p_psDBRunQuery(config->dbh, query)) {
    1365         psError(psErrorCodeLast(), false, "database error");
     1349    if (!p_psDBRunQueryF(config->dbh, query, labelHook)) {
     1350        psError(psErrorCodeLast(), false, "database error");
     1351        psFree(labelHook);
    13661352        psFree(query);
    13671353        if (!psDBRollback(config->dbh)) {
     
    13701356        return false;
    13711357    }
     1358    psFree(labelHook);
    13721359    psFree(query);
    13731360
     
    13911378    if (pretend) {
    13921379        // negative simple so the default is true
    1393         if (!ippdbPrintMetadatas(stdout, output, "warpRun", !simple)) {
     1380        if (!ippdbPrintMetadatas(stdout, output, "warpBackgroundRun", !simple)) {
    13941381            psError(psErrorCodeLast(), false, "failed to print array");
    13951382            psFree(output);
     
    14081395        psS64 chip_bg_id = psMetadataLookupS64(NULL, md, "chip_bg_id");
    14091396
    1410         warpRunRow *row = warpRunObjectFromMetadata(md);
     1397       
     1398        warpBackgroundRunRow *row = warpBackgroundRunObjectFromMetadata(md);
    14111399        if (!row) {
    1412             psError(psErrorCodeLast(), false, "failed to convert metadata into fakeRun");
     1400            psError(psErrorCodeLast(), false, "failed to convert metadata into warpRun");
    14131401            psFree(output);
    14141402            if (!psDBRollback(config->dbh)) {
     
    16651653
    16661654    psMetadata *where = psMetadataAlloc();
    1667     PXOPT_COPY_S64(config->args, where, "-warp_bg_id",    "warpBackgroundRun.warp_bg_id", "==");
    1668     PXOPT_COPY_STR(config->args, where, "-skycell_id", "warpBackgroundSkyfile.skycell_id", "==");
    1669     pxAddLabelSearchArgs(config, where, "-label",   "warpBackgroundRun.label", "LIKE");
     1655    PXOPT_COPY_S64(config->args, where, "-warp_bg_id",   "warpBackgroundRun.warp_bg_id", "==");
     1656    PXOPT_COPY_S64(config->args, where, "-warp_id",      "warpBackgroundRun.warp_id", "==");
     1657    PXOPT_COPY_S64(config->args, where, "-chip_bg_id",   "warpBackgroundRun.chip_bg_id", "==");
     1658    PXOPT_COPY_STR(config->args, where, "-skycell_id",   "warpBackgroundSkyfile.skycell_id", "==");
     1659    pxAddLabelSearchArgs(config, where, "-label",        "warpBackgroundRun.label", "LIKE");
    16701660    pxAddLabelSearchArgs(config, where, "-data_group",   "warpBackgroundRun.data_group", "LIKE");
    16711661    pxAddLabelSearchArgs(config, where, "-dist_group",   "warpBackgroundRun.data_group", "LIKE");
  • branches/eam_branches/ipp-20130207/ippTools/src/bgtoolConfig.c

    r35121 r35236  
    5050    psMetadata *definechipArgs = psMetadataAlloc();
    5151    psMetadataAddS64(definechipArgs, PS_LIST_TAIL, "-chip_id", 0, "search by chip_id", 0);
     52    psMetadataAddS64(definechipArgs, PS_LIST_TAIL, "-cam_id", 0, "choose cam_id", 0);
    5253    psMetadataAddS64(definechipArgs, PS_LIST_TAIL, "-exp_id", 0, "search by exp_id", 0);
    5354    psMetadataAddStr(definechipArgs, PS_LIST_TAIL, "-exp_name", 0, "search by exp_name", NULL);
     
    8990    psMetadataAddF32(definechipArgs, PS_LIST_TAIL, "-sun_angle_min", 0, "search by min solar angle", NAN);
    9091    psMetadataAddF32(definechipArgs, PS_LIST_TAIL, "-sun_angle_max", 0, "search by max solar angle", NAN);
    91     psMetadataAddStr(definechipArgs, PS_LIST_TAIL, "-label", PS_META_DUPLICATE_OK, "search on chipRun label", NULL);
     92    psMetadataAddStr(definechipArgs, PS_LIST_TAIL, "-label", 0, "search on chipRun label", NULL);
     93    psMetadataAddStr(definechipArgs, PS_LIST_TAIL, "-cam_label", 0, "search on camRun label", NULL);
    9294    psMetadataAddBool(definechipArgs, PS_LIST_TAIL, "-destreaked", 0, "search for runs that have been destreaked", false);
    9395    psMetadataAddBool(definechipArgs, PS_LIST_TAIL, "-rerun", 0, "re-run data?", false);
     
    279281    psMetadataAddF32(definewarpArgs, PS_LIST_TAIL, "-sun_angle_max", 0, "search by max solar angle", NAN);
    280282    psMetadataAddStr(definewarpArgs, PS_LIST_TAIL, "-warp_label", PS_META_DUPLICATE_OK, "search on warpRun label", NULL);
    281     psMetadataAddStr(definewarpArgs, PS_LIST_TAIL, "-chip_label", PS_META_DUPLICATE_OK, "search on chipBackgroundRun label", NULL);
     283    psMetadataAddStr(definewarpArgs, PS_LIST_TAIL, "-chip_label", PS_META_DUPLICATE_OK, "search on chipRun label", NULL);
     284    psMetadataAddStr(definewarpArgs, PS_LIST_TAIL, "-chip_bg_label", PS_META_DUPLICATE_OK, "search on chipBackgroundRun label", NULL);
    282285    psMetadataAddBool(definewarpArgs, PS_LIST_TAIL, "-destreaked", 0, "search for runs that have been destreaked", false);
    283286    psMetadataAddBool(definewarpArgs, PS_LIST_TAIL, "-rerun", 0, "rerun data?", false);
     
    352355    psMetadata *warpArgs = psMetadataAlloc();
    353356    psMetadataAddS64(warpArgs, PS_LIST_TAIL, "-warp_bg_id", 0, "search by warp_bg_id", 0);
     357    psMetadataAddS64(warpArgs, PS_LIST_TAIL, "-warp_id", 0, "search by warp_id", 0);
     358    psMetadataAddS64(warpArgs, PS_LIST_TAIL, "-chip_bg_id", 0, "search by chip_bg_id", 0);
    354359    psMetadataAddStr(warpArgs, PS_LIST_TAIL, "-skycell_id", 0, "search by skycell_id", NULL);
    355360    psMetadataAddS16(warpArgs, PS_LIST_TAIL, "-fault",  0, "search by fault code", 0);
  • branches/eam_branches/ipp-20130207/ippTools/src/camtool.c

    r34587 r35236  
    500500    PXOPT_LOOKUP_S16(fault, config->args, "-fault", false, false);
    501501    PXOPT_LOOKUP_S16(quality, config->args, "-quality", false, false);
    502 
     502    PXOPT_LOOKUP_S16(background_model, config->args, "-background_model", false, false);
     503   
    503504    PXOPT_LOOKUP_STR(ver_pslib, config->args, "-ver_pslib", false, false);
    504505    PXOPT_LOOKUP_STR(ver_psmodules, config->args, "-ver_psmodules", false, false);
     
    520521    PXOPT_LOOKUP_F32(maskfrac_max_magic, config->args, "-maskfrac_max_magic", false, false);
    521522    PXOPT_LOOKUP_F32(maskfrac_max_advisory, config->args, "-maskfrac_max_advisory", false, false);
    522 
     523   
    523524    // we store actual detection efficiency by adding in zpt_obs
    524525    PXOPT_LOOKUP_F32(deteff_inst, config->args, "-deteff_inst", false, false);
     
    542543    }
    543544
    544 /*     psTrace("czw.test",1,"Received versions: pslib %s psmodules %s psphot %s psastro %s ppstats %s ppImage %s streaks %s\n", */
    545 /*          ver_pslib,ver_psmodules,ver_psphot,ver_psastro,ver_ppstats,ver_ppimage,ver_streaks); */
    546545    psString software_ver = NULL;
    547546    if ((ver_pslib)&&(ver_psmodules)) {
     
    692691        deteff_lq,
    693692        deteff_uq,
    694         quality
     693        quality,
     694        background_model
    695695        );
    696696
     
    817817    pxAddLabelSearchArgs (config, where, "-data_group", "camRun.data_group",     "LIKE");
    818818    PXOPT_COPY_STR(config->args, where, "-reduction", "camRun.reduction", "==");
    819 
     819    PXOPT_COPY_S16(config->args, where, "-background_model", "camProcessedExp.background_model", "==");
     820   
    820821    psString where2 = NULL;
    821822    if (!pxspaceAddWhere(config, &where2, "rawExp")) {
     
    987988    PXOPT_LOOKUP_S16(fault, config->args, "-fault", true, false);
    988989    PXOPT_LOOKUP_S16(quality, config->args, "-set_quality", false, false);
    989 
    990     psMetadata *where = psMetadataAlloc();
    991     PXOPT_COPY_S64(config->args, where, "-cam_id",   "cam_id",   "==");
    992     PXOPT_COPY_S64(config->args, where, "-chip_id",  "chip_id",  "==");
    993     PXOPT_COPY_STR(config->args, where, "-class",    "class",    "==");
    994     PXOPT_COPY_STR(config->args, where, "-class_id", "class_id", "==");
    995 
    996     if (!pxSetFaultCode(config->dbh, "camProcessedExp", where, fault, quality)) {
     990    PXOPT_LOOKUP_S16(background_model, config->args, "-set_background_model", false, false);
     991    if (background_model) {
     992      // CZW Copied from warptool.c
     993      psMetadata *where = psMetadataAlloc();
     994      psMetadata *values = psMetadataAlloc();
     995      PXOPT_COPY_S64(config->args, where, "-cam_id", "cam_id", "==");
     996      PXOPT_COPY_S16(config->args, values, "-set_background_model", "background_model", "==");
     997      long rows = psDBUpdateRows(config->dbh, "camProcessedExp", where, values);
     998      psFree(values);
     999      psFree(where);
     1000      if (!rows) {
     1001        psError(PS_ERR_UNKNOWN, true, "no rows changed");
     1002      }
     1003    }
     1004    else {
     1005      psMetadata *where = psMetadataAlloc();
     1006      PXOPT_COPY_S64(config->args, where, "-cam_id",   "cam_id",   "==");
     1007      PXOPT_COPY_S64(config->args, where, "-chip_id",  "chip_id",  "==");
     1008      PXOPT_COPY_STR(config->args, where, "-class",    "class",    "==");
     1009      PXOPT_COPY_STR(config->args, where, "-class_id", "class_id", "==");
     1010     
     1011      if (!pxSetFaultCode(config->dbh, "camProcessedExp", where, fault, quality)) {
    9971012        psError(PS_ERR_UNKNOWN, false, "failed to set set fault flag");
    9981013        psFree (where);
    9991014        return false;
    1000     }
    1001     psFree (where);
    1002 
     1015      }
     1016      psFree (where);
     1017    }
    10031018    return true;
    10041019}
  • branches/eam_branches/ipp-20130207/ippTools/src/camtoolConfig.c

    r33111 r35236  
    204204    psMetadataAddF32(addprocessedexpArgs, PS_LIST_TAIL, "-deteff_inst_lq", 0, "define deteff_lq", NAN);
    205205    psMetadataAddF32(addprocessedexpArgs, PS_LIST_TAIL, "-deteff_inst_uq", 0, "define deteff_uq", NAN);
    206 
     206    psMetadataAddS16(addprocessedexpArgs, PS_LIST_TAIL, "-background_model", 0, "set background_model value", 0);
    207207
    208208    // -processedexp
     
    222222    psMetadataAddBool(processedexpArgs, PS_LIST_TAIL, "-simple",  0,            "use the simple output format", false);
    223223    psMetadataAddBool(processedexpArgs, PS_LIST_TAIL, "-faulted", 0,            "only return imfiles with a fault status set", false);
     224    psMetadataAddS16(processedexpArgs, PS_LIST_TAIL, "-background_model", 0, "search by background_model value", 0);
    224225
    225226    // -revertprocessedexp
     
    246247    psMetadataAddS16(updateprocessedexpArgs, PS_LIST_TAIL, "-fault",  0,            "set fault code (required)", INT16_MAX);
    247248    psMetadataAddS16(updateprocessedexpArgs, PS_LIST_TAIL, "-set_quality",  0,            "set quality", 0);
     249    psMetadataAddS16(updateprocessedexpArgs, PS_LIST_TAIL, "-set_background_model", 0, "set background_model value", 0);
    248250
    249251    // -block
  • branches/eam_branches/ipp-20130207/ippTools/src/difftool.c

    r34770 r35236  
    12261226}
    12271227
    1228 
     1228static bool definewarpstackMode(pxConfig *config)
     1229{
     1230  PS_ASSERT_PTR_NON_NULL(config, false);
     1231
     1232  psMetadata *where = psMetadataAlloc();
     1233
     1234  PXOPT_COPY_S64(config->args, where, "-exp_id", "exp_id", "==");
     1235  PXOPT_COPY_STR(config->args, where, "-filter", "filter", "==");
     1236  PXOPT_COPY_STR(config->args, where, "-comment", "comment", "LIKE");
     1237  PXOPT_COPY_S64(config->args, where, "-warp_id", "warpRun.warp_id", "==");
     1238  PXOPT_COPY_STR(config->args, where, "-warp_label", "warpRun.label", "==");
     1239  PXOPT_COPY_STR(config->args, where, "-tess_id", "warpRun.tess_id", "==");
     1240  PXOPT_COPY_STR(config->args, where, "-data_group", "warpRun.data_group", "==");
     1241  PXOPT_COPY_STR(config->args, where, "-skycell_id", "warpSkyfile.skycell_id", "==");
     1242  PXOPT_COPY_F32(config->args, where,  "-good_frac", "warpSkyfile.good_frac", ">=");
     1243  PXOPT_COPY_STR(config->args, where, "-stack_label", "stackRun.label", "==");
     1244  PXOPT_COPY_STR(config->args, where, "-stack_data_group", "stackRun.data_group", "==");
     1245
     1246  PXOPT_LOOKUP_BOOL(bothways, config->args, "-bothways", false);
     1247 
     1248  PXOPT_LOOKUP_STR(workdir, config->args, "-set_workdir", true, false); // required option
     1249  PXOPT_LOOKUP_STR(reduction, config->args, "-set_reduction", false, false); // option
     1250  PXOPT_LOOKUP_STR(label, config->args, "-set_label", true, false); // option
     1251  PXOPT_LOOKUP_STR(data_group, config->args, "-set_data_group", false, false);
     1252  PXOPT_LOOKUP_STR(dist_group, config->args, "-set_dist_group", false, false);
     1253  PXOPT_LOOKUP_STR(note, config->args, "-set_note", false, false);
     1254  PXOPT_LOOKUP_TIME(registered, config->args, "-set_registered", false, false);
     1255 
     1256  PXOPT_LOOKUP_BOOL(simple, config->args, "-simple", false);
     1257  PXOPT_LOOKUP_BOOL(newTemplates, config->args, "-new-templates", false);
     1258  PXOPT_LOOKUP_BOOL(reRun, config->args, "-rerun", false);
     1259  PXOPT_LOOKUP_BOOL(available, config->args, "-available", false);
     1260  PXOPT_LOOKUP_BOOL(pretend, config->args, "-pretend", false);
     1261
     1262
     1263  // Get query file
     1264  psString query = pxDataGet("difftool_definewarpstack.sql");
     1265  if (!query) {
     1266    psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
     1267    return false;
     1268  }
     1269
     1270  psString whereClause = psDBGenerateWhereConditionSQL(where,NULL);
     1271 
     1272  // Don't queue things that already have diffs.
     1273  if (! (reRun || newTemplates) ) {
     1274    psStringAppend(&whereClause, "\nAND diff_id IS NULL\n");
     1275  }
     1276  // Append diff qualifiers, if we have them
     1277  if (label) {
     1278    psStringAppend(&whereClause, "\nAND ((diffRun.label = '%s') OR (diffRun.label IS NULL))",label);
     1279  }
     1280  if (data_group) {
     1281    psStringAppend(&whereClause, "\nAND ((diffRun.data_group = '%s') OR (diffRun.data_group IS NULL))",data_group);
     1282  }
     1283  if (reduction) {
     1284    psStringAppend(&whereClause, "\nAND ((diffRun.reduction = '%s') OR (diffRun.reduction IS NULL))",reduction);
     1285  }
     1286
     1287  psString whereClauseString = psStringCopy("");
     1288  psStringAppend(&whereClauseString, " \n AND %s ", whereClause);
     1289  //  fprintf(stderr,query,whereClauseString);
     1290
     1291  // This is just a simple query, so we don't need to do a transaction
     1292  if (!p_psDBRunQueryF(config->dbh, query, whereClauseString)) {
     1293    psError(PS_ERR_UNKNOWN, false, "database error");
     1294    psFree(query);
     1295    psFree(whereClause);
     1296    return(false);
     1297  }
     1298  psFree(query);
     1299  psFree(whereClause);
     1300  psFree(whereClauseString);
     1301 
     1302  psArray *output = p_psDBFetchResult(config->dbh);
     1303  if (!output) {
     1304    psErrorCode err = psErrorCodeLast();
     1305    switch (err) {
     1306    case PS_ERR_DB_CLIENT:
     1307      psError(PXTOOLS_ERR_SYS, false, "database error");
     1308      break;
     1309    case PS_ERR_DB_SERVER:
     1310      psError(PXTOOLS_ERR_PROG, false, "database error");
     1311      break;
     1312    default:
     1313      psError(PXTOOLS_ERR_PROG, false, "unknown error");
     1314      break;
     1315    }
     1316    return false;
     1317  }
     1318  if (!psArrayLength(output)) {
     1319    psTrace("difftool", PS_LOG_INFO, "no rows found");
     1320    psFree(output);
     1321    return true;
     1322  }
     1323  if (pretend) {
     1324    // negative simple so the default is true
     1325    if (!ippdbPrintMetadatas(stdout, output, "diffRun", !simple)) {
     1326      psError(PS_ERR_UNKNOWN, false, "failed to print array");
     1327      psFree(output);
     1328      return false;
     1329    }
     1330    psFree(output);
     1331    return true;
     1332  }
     1333
     1334  psArray *list = psArrayAllocEmpty(16); // List of runs, to print
     1335  long numGood = 0;
     1336  psS64 last_exp_id = 0;
     1337  psS64 diff_id = 0;
     1338  for (long i = 0; i < output->n; i++) {
     1339    psMetadata *row = output->data[i];
     1340    bool mdok;
     1341
     1342    psS64 exp_id = psMetadataLookupS64(&mdok, row, "exp_id");
     1343    if (!mdok) {
     1344        psError(PXTOOLS_ERR_PROG, false, "exp_id not found");
     1345        if (!psDBRollback(config->dbh)) {
     1346          psError(PS_ERR_UNKNOWN, false, "database error");
     1347        }
     1348        return false;
     1349    }
     1350    if (exp_id != last_exp_id) {
     1351      if (diff_id != 0) { // We've added a run already, and are now switching to a new one.
     1352        // Set state to new
     1353        if (!setdiffRunState(config, diff_id, "new", false)) {
     1354          psError(PS_ERR_UNKNOWN, false, "failed to change diffRun.state for diff_id: %" PRId64, diff_id);
     1355          if (!psDBRollback(config->dbh)) {
     1356            psError(PS_ERR_UNKNOWN, false, "database error");
     1357          }
     1358          return false;
     1359        }
     1360        // Commit results
     1361        if (!psDBCommit(config->dbh)) {
     1362          psError(PS_ERR_UNKNOWN, false, "database error");
     1363          psFree(list);
     1364          return false;
     1365        }
     1366      }
     1367     
     1368      // Begin transaction
     1369      if (!psDBTransaction(config->dbh)) {
     1370        psError(PS_ERR_UNKNOWN, false, "database error");
     1371        return false;
     1372      }
     1373      // Add a new diffRun row
     1374      psString tess_id = psMetadataLookupStr(&mdok, row, "tess_id");
     1375      if (!mdok) {
     1376        psError(PXTOOLS_ERR_PROG, false, "tess_id not found");
     1377        if (!psDBRollback(config->dbh)) {
     1378          psError(PS_ERR_UNKNOWN, false, "database error");
     1379        }
     1380        return false;
     1381      }
     1382      diffRunRow *run = diffRunRowAlloc(
     1383                                        0,        // ID
     1384                                        "reg",    // state
     1385                                        workdir,
     1386                                        label,
     1387                                        data_group ? data_group : label,
     1388                                        dist_group,
     1389                                        reduction,
     1390                                        NULL,     // dvodb
     1391                                        registered,
     1392                                        tess_id,
     1393                                        bothways, // bothways (default is false)
     1394                                        true,     // exposure
     1395                                        0,        // magicked
     1396                                        NULL,     // software_version
     1397                                        0,        // mask stat npix
     1398                                        NAN,      // static
     1399                                        NAN,      // dynamic
     1400                                        NAN,      // magic
     1401                                        NAN,      // advisory
     1402                                        IPP_DIFF_MODE_WARP_STACK,
     1403                                        note
     1404                                        );
     1405      if (!diffRunInsertObject(config->dbh, run)) {
     1406        psError(PS_ERR_UNKNOWN, false, "database error");
     1407        psFree(run);
     1408        if (!psDBRollback(config->dbh)) {
     1409          psError(PS_ERR_UNKNOWN, false, "database error");
     1410        }
     1411      }
     1412      diff_id = psDBLastInsertID(config->dbh);
     1413      run->diff_id = diff_id;
     1414
     1415      psArrayAdd(list, list->n, run);
     1416      numGood++;
     1417     
     1418      last_exp_id = exp_id;                                     
     1419    } // End Adding diffRun
     1420   
     1421    if (exp_id == last_exp_id) {
     1422      psString skycell_id = psMetadataLookupStr(&mdok, row, "skycell_id");
     1423      if (!mdok) {
     1424        psError(PXTOOLS_ERR_PROG, false, "skycell_id not found");
     1425        if (!psDBRollback(config->dbh)) {
     1426          psError(PS_ERR_UNKNOWN, false, "database error");
     1427        }
     1428        return false;
     1429      }
     1430      psString tess_id = psMetadataLookupStr(&mdok, row, "tess_id");
     1431      if (!mdok) {
     1432        psError(PXTOOLS_ERR_PROG, false, "tess_id not found");
     1433        if (!psDBRollback(config->dbh)) {
     1434          psError(PS_ERR_UNKNOWN, false, "database error");
     1435        }
     1436        return false;
     1437      }
     1438      psS64 warp_id = psMetadataLookupS64(&mdok, row, "warp_id");
     1439      if (!mdok) {
     1440        psError(PXTOOLS_ERR_PROG, false, "warp_id not found");
     1441        if (!psDBRollback(config->dbh)) {
     1442          psError(PS_ERR_UNKNOWN, false, "database error");
     1443        }
     1444        return false;
     1445      }
     1446      psS64 stack_id = psMetadataLookupS64(&mdok, row, "stack_id");
     1447      if (!mdok) {
     1448        psError(PXTOOLS_ERR_PROG, false, "stack_id not found");
     1449        if (!psDBRollback(config->dbh)) {
     1450          psError(PS_ERR_UNKNOWN, false, "database error");
     1451        }
     1452        return false;
     1453      }
     1454
     1455      // Add a new skyfile row
     1456      diffInputSkyfileRow *skyfile = diffInputSkyfileRowAlloc(
     1457                                                              diff_id,   // ID
     1458                                                              skycell_id,
     1459                                                              warp_id, // warp1_id
     1460                                                              PS_MAX_S64, // stack1 -> NULL
     1461                                                              PS_MAX_S64, // warp2_id -> NULL
     1462                                                              stack_id, // stack2
     1463                                                              tess_id,
     1464                                                              0 // diff_skyfile_id
     1465                                                              );
     1466      //      fprintf(stderr,"%"PRId64 " %"PRId64 " %"PRId64 " %s %s\n",diff_id,warp_id,stack_id,skycell_id, tess_id);
     1467      if (!diffInputSkyfileInsertObject(config->dbh, skyfile)) {
     1468        psError(PS_ERR_UNKNOWN, false, "database error");
     1469        psFree(list);
     1470        if (!psDBRollback(config->dbh)) {
     1471          psError(PS_ERR_UNKNOWN, false, "database error");
     1472        }
     1473        return false;
     1474      }
     1475    } // End Adding skyfile
     1476  } // End parsing result set
     1477 
     1478  // Finish the last run's update and close the connection
     1479  if (diff_id != 0) {
     1480    if (!setdiffRunState(config, diff_id, "new", false)) {
     1481      psError(PS_ERR_UNKNOWN, false, "failed to change diffRun.state for diff_id: %" PRId64, diff_id);
     1482      if (!psDBRollback(config->dbh)) {
     1483        psError(PS_ERR_UNKNOWN, false, "database error");
     1484      }
     1485      return false;
     1486    }
     1487    // Commit results
     1488    if (!psDBCommit(config->dbh)) {
     1489      psError(PS_ERR_UNKNOWN, false, "database error");
     1490      psFree(list);
     1491      return false;
     1492    }
     1493  }
     1494 
     1495  if (numGood && !diffRunPrintObjects(stdout, list, !simple)) {
     1496    psError(PS_ERR_UNKNOWN, false, "failed to print object");
     1497    psFree(list);
     1498    return(false);
     1499  }
     1500  psFree(list);
     1501  // Free things
     1502  return true;
     1503
     1504
     1505#if (0)
    12291506static bool definewarpstackMode(pxConfig *config)
    12301507{
     
    16141891    return true;
    16151892}
     1893#endif
    16161894
    16171895static bool definewarpwarpMode(pxConfig *config)
  • branches/eam_branches/ipp-20130207/ippTools/src/disttool.c

    r34235 r35236  
    143143    // optional
    144144    PXOPT_LOOKUP_BOOL(use_alternate, config->args, "-use_alternate", false);
    145     PXOPT_LOOKUP_BOOL(no_magic, config->args, "-no_magic", false);
     145    PXOPT_LOOKUP_BOOL(magic, config->args, "-magic", false);
    146146    PXOPT_LOOKUP_STR(set_label, config->args, "-set_label", false, false);
    147147    PXOPT_LOOKUP_STR(set_data_group, config->args, "-set_data_group", false, false);
     
    175175            return false;
    176176        }
    177         if (no_magic) {
     177        if (!magic) {
    178178            psError(PXTOOLS_ERR_SYS, true, "no_magic forbidden with alternate inputs");
    179179            return false;
     
    187187    // an interest)
    188188    // and exp_id to be supplied. We could add -exp_type and dateobs cuts to make it easier
    189     if (!strcmp(stage, "raw") && no_magic && !(exp_id && dist_group && exp_type)) {
     189    if (!strcmp(stage, "raw") && !magic && !(exp_id && dist_group && exp_type)) {
    190190        psError(PXTOOLS_ERR_SYS, true, "exp_id, exp_type, and dist_group are required for raw stage if no_magic");
    191191        return false;
     
    204204            runJoinStr = "camRun.exp_id";
    205205        }
    206         if (!no_magic) {
     206        if (magic) {
    207207            query = pxDataGet("disttool_definebyquery_raw.sql");
    208208        } else {
     
    215215        }
    216216
    217         if (!no_magic) {
     217        if (magic) {
    218218            if (label) {
    219219                psStringAppend(&query, " AND (magicDSRun.label = '%s')", label);
     
    289289        }
    290290        // fake stage doesn't require magic
    291         no_magic = true;
     291        magic = false;
    292292    } else if (!strcmp(stage, "warp")) {
    293293        magicRunType = "warpRun";
     
    357357        }
    358358        // stack stage doesn't require magic
    359         no_magic = true;
     359        magic = false;
    360360    } else if (!strcmp(stage, "sky")) {
    361361        magicRunType = "staticskyRun";
     
    378378        }
    379379        // (static)sky stage doesn't require magic
    380         no_magic = true;
     380        magic = false;
    381381    } else if (!strcmp(stage, "SSdiff")) {
    382382      magicRunType = "diffRun";
     
    396396      }
    397397
    398       no_magic = true;
     398      magic = false;
    399399    } else {
    400400        psError(PS_ERR_UNKNOWN, true, "unknown value for stage: %s", stage);
     
    408408
    409409    if (!strcmp(stage, "raw")) {
    410         if (!no_magic) {
     410        if (magic) {
    411411            psStringAppend(&query, " AND (magicDSRun.re_place = %d)", !use_alternate);
    412412            psStringAppend(&query, " AND (camRun.state = 'full')");
     
    426426    psString joinHook = NULL;
    427427
    428     if (!no_magic) {
     428    if (magic) {
    429429        psStringAppend(&query, " AND (%s.magicked > 0)", magicRunType);
    430430    }
     
    517517                NULL,     // outdir
    518518                clean,
    519                 no_magic,
     519                !magic,
    520520                use_alternate,
    521521                "new",
  • branches/eam_branches/ipp-20130207/ippTools/src/disttoolConfig.c

    r33042 r35236  
    4848    psMetadataAddStr(definebyqueryArgs, PS_LIST_TAIL, "-workdir",   0, "define workdir (required)", NULL);
    4949
    50     psMetadataAddBool(definebyqueryArgs, PS_LIST_TAIL, "-no_magic", 0, "magic is not needed", false);
     50    psMetadataAddBool(definebyqueryArgs, PS_LIST_TAIL, "-no_magic", 0, "magic is not needed (ignored)", false);
     51    psMetadataAddBool(definebyqueryArgs, PS_LIST_TAIL, "-magic", 0, "magic is needed", false);
    5152    psMetadataAddBool(definebyqueryArgs, PS_LIST_TAIL, "-use_alternate", 0, "use alternate inputs", false);
    5253    psMetadataAddStr(definebyqueryArgs, PS_LIST_TAIL, "-set_label",    0, "define label for run", NULL);
  • branches/eam_branches/ipp-20130207/ippTools/src/magictool.c

    • Property svn:mergeinfo changed (with no actual effect on merging)
  • branches/eam_branches/ipp-20130207/ippTools/src/releasetool.c

    r35048 r35236  
    4141static bool listreleaseMode(pxConfig *config);
    4242static bool definerelexpMode(pxConfig *config);
     43static bool tocalibexpMode(pxConfig *config);
    4344static bool updaterelexpMode(pxConfig *config);
    4445static bool listrelexpMode(pxConfig *config);
     46static bool definerelstackMode(pxConfig *config);
     47static bool updaterelstackMode(pxConfig *config);
     48static bool listrelstackMode(pxConfig *config);
     49static bool definerelgroupMode(pxConfig *config);
     50static bool pendingrelgroupMode(pxConfig *config);
     51static bool updaterelgroupMode(pxConfig *config);
     52static bool listrelgroupMode(pxConfig *config);
    4553
    4654# define MODECASE(caseName, func) \
     
    6674        MODECASE(RELEASETOOL_MODE_DEFINERELEASE,    definereleaseMode);
    6775        MODECASE(RELEASETOOL_MODE_UPDATERELEASE,    updatereleaseMode);
     76        MODECASE(RELEASETOOL_MODE_TOCALIBEXP,       tocalibexpMode);
    6877        MODECASE(RELEASETOOL_MODE_LISTRELEASE,      listreleaseMode);
    6978
     
    7180        MODECASE(RELEASETOOL_MODE_UPDATERELEXP,     updaterelexpMode);
    7281        MODECASE(RELEASETOOL_MODE_LISTRELEXP,       listrelexpMode);
     82
     83        MODECASE(RELEASETOOL_MODE_DEFINERELSTACK,   definerelstackMode);
     84        MODECASE(RELEASETOOL_MODE_UPDATERELSTACK,   updaterelstackMode);
     85        MODECASE(RELEASETOOL_MODE_LISTRELSTACK,     listrelstackMode);
     86
     87        MODECASE(RELEASETOOL_MODE_DEFINERELGROUP,   definerelgroupMode);
     88        MODECASE(RELEASETOOL_MODE_UPDATERELGROUP,   updaterelgroupMode);
     89        MODECASE(RELEASETOOL_MODE_PENDINGRELGROUP,  pendingrelgroupMode);
     90        MODECASE(RELEASETOOL_MODE_LISTRELGROUP,     listrelgroupMode);
    7391        default:
    7492            psAbort("invalid option (this should not happen)");
     
    163181
    164182    PXOPT_LOOKUP_S32(surveyID,    config->args, "-set_surveyID", true, false);
    165     PXOPT_LOOKUP_STR(releaseName, config->args, "-set_releaseName", true, false);
     183    PXOPT_LOOKUP_STR(release_name, config->args, "-set_release_name", true, false);
    166184    PXOPT_LOOKUP_STR(release_state, config->args, "-set_release_state",  true, false);
    167185    PXOPT_LOOKUP_S32(dataRelease, config->args, "-set_dataRelease", false, false);
     
    171189        0,      // rel_id (auto_increment)
    172190        surveyID,
    173         releaseName,
     191        release_name,
    174192        release_state,
    175193        dataRelease,
     
    187205    PS_ASSERT_PTR_NON_NULL(config, false);
    188206
    189     PXOPT_LOOKUP_STR(releaseName, config->args, "-releaseName", false, false);
     207    PXOPT_LOOKUP_STR(release_name, config->args, "-release_name", false, false);
    190208    PXOPT_LOOKUP_S32(rel_id, config->args,      "-rel_id", false, false);
    191209
    192     if (!releaseName && !rel_id) {
    193         psError(PXTOOLS_ERR_CONFIG, true, "either -releaseName or -rel_id is required\n");
    194         return false;
    195     }
    196     PXOPT_LOOKUP_STR(release_state,       config->args, "-set_release_state",  true, false);
     210    if (!release_name && !rel_id) {
     211        psError(PXTOOLS_ERR_CONFIG, true, "either -release_name or -rel_id is required\n");
     212        return false;
     213    }
     214    PXOPT_LOOKUP_STR(release_state,    config->args, "-set_release_state",  false, false);
     215    PXOPT_LOOKUP_S32(priority,         config->args, "-set_priority",  false, false);
     216    PXOPT_LOOKUP_S32(dataRelease,      config->args, "-set_dataRelease",  false, false);
     217    if (!release_state && priority == 0 && dataRelease == -1) {
     218        psError(PXTOOLS_ERR_CONFIG, true, "at least one of -set_release_state -set_priority and -set_dataRelease is required\n");
     219        return false;
     220    }
    197221
    198222    psMetadata *where = psMetadataAlloc();
    199223
    200224    PXOPT_COPY_S32(config->args, where, "-rel_id",  "rel_id", "==");
    201     PXOPT_COPY_STR(config->args, where, "-releaseName", "releaseName", "==");
    202 
    203     psString query = NULL;
    204     psStringAppend(&query, "UPDATE ippRelease SET release_state = '%s'", release_state);
     225    PXOPT_COPY_STR(config->args, where, "-release_name", "release_name", "==");
     226
     227    psString sep = "";
     228    psString comma = ", ";
     229    psString query = psStringCopy("UPDATE ippRelease SET");
     230    if (release_state) {
     231        psStringAppend(&query, "%s release_state = '%s'", sep, release_state);
     232        sep = comma;
     233    }
     234    if (priority != 0) {
     235        psStringAppend(&query, "%s priority = %d", sep, priority);
     236        sep = comma;
     237    }
     238    if (dataRelease != -1) {
     239        psStringAppend(&query, "%s dataRelease = %d", sep, dataRelease);
     240        sep = comma;
     241    }
    205242
    206243    psString whereClause = psDBGenerateWhereConditionSQL(where, NULL);
     
    232269
    233270    PXOPT_COPY_STR(config->args, where, "-surveyName",  "surveyName", "LIKE");
    234     PXOPT_COPY_STR(config->args, where, "-releaseName", "releaseName", "LIKE");
     271    PXOPT_COPY_STR(config->args, where, "-release_name", "release_name", "LIKE");
    235272    PXOPT_COPY_STR(config->args, where, "-release_state", "release_state", "==");
    236273    PXOPT_COPY_S32(config->args, where, "-rel_id",  "rel_id", "==");
     
    313350    // insure that at least one of these is supplied to select the release
    314351    PXOPT_LOOKUP_S64(rel_id, config->args,      "-rel_id", false, false);
    315     PXOPT_LOOKUP_STR(releaseName, config->args, "-releaseName", false, false);
    316     if (!rel_id && !releaseName) {
    317         psError(PXTOOLS_ERR_CONFIG, true, "either -rel_id or -releaseName is required");
    318         return false;
    319     }
    320 
    321     // limit query to the target release. (Note: this will select nothing of releaseName and rel_id don't match)
     352    PXOPT_LOOKUP_STR(release_name, config->args, "-release_name", false, false);
     353    if (!rel_id && !release_name) {
     354        psError(PXTOOLS_ERR_CONFIG, true, "either -rel_id or -release_name is required");
     355        return false;
     356    }
     357
     358    // limit query to the target release. (Note: this will select nothing if release_name and rel_id don't match)
    322359    // note: we add these after above to insure that search args are supplied
    323     PXOPT_COPY_STR(config->args, where, "-releaseName", "ippRelease.releaseName", "==");
     360    PXOPT_COPY_STR(config->args, where, "-release_name", "ippRelease.release_name", "==");
    324361    PXOPT_COPY_S32(config->args, where, "-rel_id", "ippRelease.rel_id", "==");
    325362
     
    327364    PXOPT_LOOKUP_STR(state, config->args,     "-set_state", true, false);
    328365    PXOPT_LOOKUP_U32(flags, config->args,     "-set_flags", false, false);
     366    PXOPT_LOOKUP_F32(user_zpt_obs, config->args,   "-set_zpt_obs", false, false);
     367    PXOPT_LOOKUP_F32(user_zpt_stdev, config->args, "-set_zpt_stdev", false, false);
    329368    PXOPT_LOOKUP_STR(path_base, config->args, "-set_path_base", false, false);
     369    PXOPT_LOOKUP_S16(fault, config->args,     "-set_fault", false, false);
    330370
    331371    PXOPT_LOOKUP_BOOL(pretend, config->args, "-pretend", false);
     
    391431        psS64 chip_id = psMetadataLookupS64(&status, md, "chip_id");
    392432        psS64 cam_id = psMetadataLookupS64(&status, md, "cam_id");
    393         psF32 zpt_obs = psMetadataLookupF32(&status, md, "zpt_obs");
    394         psF32 zpt_stdev = psMetadataLookupF32(&status, md, "zpt_stdev");
     433
     434        // if zpt_obs or zpt_stdev were not supplied use the results from the camRun
     435        psF32 zpt_obs, zpt_stdev;
     436        if (!isfinite(user_zpt_obs)) {
     437            zpt_obs = psMetadataLookupF32(&status, md, "zpt_obs");
     438        } else {
     439            zpt_obs = user_zpt_obs;
     440        }
     441        if (!isfinite(user_zpt_stdev)) {
     442            zpt_stdev = psMetadataLookupF32(&status, md, "zpt_stdev");
     443        } else {
     444            zpt_stdev = user_zpt_stdev;
     445        }
    395446
    396447        if (!relExpInsert(config->dbh,
     
    400451            chip_id,
    401452            cam_id,
     453            0,          // group_id
    402454            state,
    403455            flags,
     
    405457            zpt_stdev,
    406458            path_base,
     459            fault,
    407460            now,       // registered
    408461            now        // time_stamp
     
    430483static bool updaterelexpMode(pxConfig *config)
    431484{
    432     psError(PS_ERR_UNKNOWN, true, "not yet implemented");
    433     return false;
    434 }
    435 
    436 static bool listrelexpMode(pxConfig *config)
     485    PS_ASSERT_PTR_NON_NULL(config, false);
     486
     487    PXOPT_LOOKUP_STR(release_name, config->args, "-release_name", false, false);
     488    PXOPT_LOOKUP_S32(rel_id, config->args,      "-rel_id", false, false);
     489    PXOPT_LOOKUP_S32(relexp_id, config->args,   "-relexp_id", false, false);
     490
     491    if (!relexp_id && !release_name && !rel_id) {
     492        psError(PXTOOLS_ERR_CONFIG, true, "at least one of -relexp_id, -release_name, and -rel_id is required\n");
     493        return false;
     494    }
     495
     496    PXOPT_LOOKUP_STR(state,    config->args, "-set_state",  false, false);
     497    PXOPT_LOOKUP_U32(flags,    config->args, "-set_flags",  false, false);
     498    PXOPT_LOOKUP_STR(path_base, config->args, "-set_path_base", false, false);
     499    PXOPT_LOOKUP_F32(zpt_obs,  config->args, "-set_zpt_obs",  false, false);
     500    PXOPT_LOOKUP_F32(zpt_stdev,config->args, "-set_zpt_stdev",  false, false);
     501    PXOPT_LOOKUP_S16(fault,    config->args, "-set_fault",  false, false);
     502    PXOPT_LOOKUP_BOOL(clearfault, config->args, "-clearfault",  false);
     503    if (!state && !flags && !path_base && !isfinite(zpt_obs) && !isfinite(zpt_stdev) && !fault && !clearfault) {
     504        psError(PXTOOLS_ERR_CONFIG, true, "must set at least one column\n");
     505        return false;
     506    }
     507
     508    if (fault && clearfault) {
     509        psError(PXTOOLS_ERR_CONFIG, true, "cannot set and clear fault at same time\n");
     510        return false;
     511    }
     512
     513    psMetadata *where = psMetadataAlloc();
     514
     515    PXOPT_COPY_S64(config->args, where, "-exp_id", "relExp.exp_id", "==");
     516    PXOPT_COPY_S32(config->args, where, "-relexp_id", "relExp.relexp_id", "==");
     517    PXOPT_COPY_STR(config->args, where, "-exp_name", "rawExp.exp_name", "==");
     518    // make sure that we have enough parameters to identify the relExp to change
     519    if (!psListLength(where->list)){
     520        psError(PXTOOLS_ERR_CONFIG, false, "search parameters are required\n");
     521        psFree(where);
     522        return false;
     523    }
     524
     525    PXOPT_COPY_S32(config->args, where, "-rel_id",  "rel_id", "==");
     526    PXOPT_COPY_STR(config->args, where, "-release_name", "release_name", "==");
     527
     528    psString sep = "";
     529    psString comma = ", ";
     530    psString query = psStringCopy("UPDATE relExp JOIN ippRelease USING(rel_id) JOIN rawExp USING(exp_id) SET");
     531    if (state) {
     532        psStringAppend(&query, "%s relExp.state = '%s'", sep, state);
     533        sep = comma;
     534    }
     535    if (path_base) {
     536        psStringAppend(&query, "%s relExp.path_base = '%s'", sep, path_base);
     537        sep = comma;
     538    }
     539    if (flags) {
     540        psStringAppend(&query, "%s relExp.flags = %d", sep, flags);
     541        sep = comma;
     542    }
     543    if (isfinite(zpt_obs)) {
     544        psStringAppend(&query, "%s relExp.zpt_obs = %f", sep, zpt_obs);
     545        sep = comma;
     546    }
     547    if (isfinite(zpt_stdev)) {
     548        psStringAppend(&query, "%s relExp.zpt_stdev = %f", sep, zpt_stdev);
     549        sep = comma;
     550    }
     551    if (fault) {
     552        psStringAppend(&query, "%s relExp.fault = %d", sep, fault);
     553        sep = comma;
     554    }
     555    if (clearfault) {
     556        psStringAppend(&query, "%s relExp.fault = 0", sep);
     557        sep = comma;
     558    }
     559
     560    psString whereClause = psDBGenerateWhereConditionSQL(where, NULL);
     561    psStringAppend(&query, " WHERE %s", whereClause);
     562    psFree(whereClause);
     563
     564    if (!p_psDBRunQuery(config->dbh, query)) {
     565        psError(PS_ERR_UNKNOWN, false, "database error");
     566        psFree(query);
     567        return false;
     568    }
     569
     570    psU64 affected = psDBAffectedRows(config->dbh);
     571    psLogMsg("releasetool", PS_LOG_INFO, "Updated %" PRIu64 " ippReleases", affected);
     572
     573
     574    psFree(query);
     575
     576    return true;
     577}
     578
     579static bool tocalibexpMode(pxConfig *config)
    437580{
    438581    PS_ASSERT_PTR_NON_NULL(config, NULL);
     
    440583    psMetadata *where = psMetadataAlloc();
    441584
    442     PXOPT_COPY_STR(config->args, where, "-releaseName", "ippRelease.releaseName", "LIKE");
     585    PXOPT_COPY_S64(config->args, where, "-relexp_id",   "relExp.relexp_id", "==");
     586    PXOPT_COPY_STR(config->args, where, "-release_name", "ippRelease.release_name", "LIKE");
     587#ifdef notdef
     588    PXOPT_COPY_S32(config->args, where, "-rel_id",      "relExp.rel_id", "==");
    443589    pxAddLabelSearchArgs(config, where, "-release_state","ippRelease.state", "==");
    444590    PXOPT_COPY_STR(config->args, where, "-state",       "relExp.state", "==");
     
    458604
    459605    PXOPT_COPY_STR(config->args, where, "-surveyName",  "survey.surveyName", "LIKE");
     606
     607    PXOPT_LOOKUP_BOOL(priority_order, config->args, "-priority_order", false);
     608#endif
     609
     610    PXOPT_LOOKUP_U64(limit, config->args, "-limit", false, false);
     611    PXOPT_LOOKUP_BOOL(simple, config->args, "-simple", false);
     612
     613    psString query = pxDataGet("releasetool_tocalibexp.sql");
     614    if (!query) {
     615        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
     616        return false;
     617    }
     618
     619    psString where2 = NULL;
     620#ifdef notdef
     621    if (!pxspaceAddWhere(config, &where2, "rawExp")) {
     622        psError(psErrorCodeLast(), false, "pxspaceAddWhere failed");
     623        return false;
     624    }
     625#endif
     626
     627    if (psListLength(where->list)) {
     628        psString whereClause = psDBGenerateWhereConditionSQL(where, NULL);
     629        psStringAppend(&query, "\nAND %s", whereClause);
     630        psFree(whereClause);
     631#ifdef notdef
     632    } else if (where2) {
     633        psStringAppend(&query, "\nAND ");
     634#endif
     635    } else {
     636        psError(PXTOOLS_ERR_CONFIG, false, "search parameters are required\n");
     637        psFree(where);
     638        return false;
     639    }
     640
     641    if (where2) {
     642        psStringAppend(&query, "\n%s", where2);
     643        psFree(where2);
     644    }
     645
     646    if (limit) {
     647        psString limitString = psDBGenerateLimitSQL(limit);
     648        psStringAppend(&query, " %s", limitString);
     649        psFree(limitString);
     650    }
     651
     652    if (!p_psDBRunQuery(config->dbh, query)) {
     653        psError(PS_ERR_UNKNOWN, false, "database error");
     654        psFree(query);
     655        return false;
     656    }
     657    psFree(query);
     658
     659    psArray *output = p_psDBFetchResult(config->dbh);
     660    if (!output) {
     661        psError(PS_ERR_UNKNOWN, false, "database error");
     662        return false;
     663    }
     664
     665    if (!psArrayLength(output)) {
     666        psTrace("releasetool", PS_LOG_INFO, "no rows found");
     667        psFree(output);
     668        return true;
     669    }
     670
     671    if (!ippdbPrintMetadatas(stdout, output, "relExp", !simple)) {
     672        psError(PS_ERR_UNKNOWN, false, "failed to print array");
     673        psFree(output);
     674        return false;
     675    }
     676
     677    psFree(output);
     678
     679    return true;
     680}
     681static bool listrelexpMode(pxConfig *config)
     682{
     683    PS_ASSERT_PTR_NON_NULL(config, NULL);
     684
     685    psMetadata *where = psMetadataAlloc();
     686
     687    PXOPT_COPY_S64(config->args, where, "-relexp_id",   "relExp.relexp_id", "==");
     688    PXOPT_COPY_STR(config->args, where, "-release_name", "ippRelease.release_name", "LIKE");
     689    pxAddLabelSearchArgs(config, where, "-release_state","ippRelease.state", "==");
     690    PXOPT_COPY_STR(config->args, where, "-state",       "relExp.state", "==");
     691    PXOPT_COPY_STR(config->args, where, "-filter",      "rawExp.filter", "LIKE");
     692    PXOPT_COPY_TIME(config->args, where, "-dateobs_begin","rawExp.dateobs", ">=");
     693    PXOPT_COPY_TIME(config->args, where, "-dateobs_end", "rawExp.dateobs", "<=");
     694    PXOPT_COPY_F32(config->args, where, "-fwhm_min",    "camProcessedExp.fwhm_major", ">=");
     695    PXOPT_COPY_F32(config->args, where, "-fwhm_max",    "camProcessedExp.fwhm_major", "<=");
     696    PXOPT_COPY_STR(config->args, where, "-exp_name",    "rawExp.exp_name", "==");
     697    PXOPT_COPY_S64(config->args, where, "-exp_id",      "relExp.exp_id", "==");
     698    PXOPT_COPY_S64(config->args, where, "-chip_id",     "relExp.chip_id", "==");
     699    PXOPT_COPY_S64(config->args, where, "-cam_id",      "relExp.cam_id", "==");
     700    PXOPT_COPY_S64(config->args, where, "-warp_id",     "warpRun.warp_id", "==");
     701    PXOPT_COPY_STR(config->args, where, "-chip_data_group", "chipRun.data_group", "LIKE");
     702    PXOPT_COPY_STR(config->args, where, "-cam_data_group",  "camRun.data_group", "LIKE");
     703    PXOPT_COPY_STR(config->args, where, "-warp_data_group", "warpRun.data_group", "LIKE");
     704
     705    PXOPT_COPY_STR(config->args, where, "-surveyName",  "survey.surveyName", "LIKE");
    460706    PXOPT_COPY_S32(config->args, where, "-rel_id",      "relExp.rel_id", "==");
    461707
     
    533779    return true;
    534780}
    535 
     781static bool definerelstackMode(pxConfig *config)
     782{
     783    PS_ASSERT_PTR_NON_NULL(config, NULL);
     784
     785    psMetadata *where = psMetadataAlloc();
     786
     787    bool includeSkycal = false;
     788
     789    PXOPT_COPY_S64(config->args, where, "-skycal_id",  "skycalRun.skycal_id", "==");
     790    PXOPT_COPY_STR(config->args, where, "-skycal_label", "skycalRun.label", "==");
     791    PXOPT_COPY_STR(config->args, where, "-skycal_data_group", "skycalRun.data_group", "==");
     792    if (psListLength(where->list)) {
     793        includeSkycal = true;
     794    }
     795
     796    PXOPT_COPY_STR(config->args, where, "-label",      "stackRun.label", "==");
     797    PXOPT_COPY_STR(config->args, where, "-data_group", "stackRun.data_group", "==");
     798    PXOPT_COPY_S64(config->args, where, "-stack_id",   "stackRun.stack_id", "==");
     799
     800    // Insure that at least one of the skycalRun selectors is supplied
     801    if (!psListLength(where->list)) {
     802        psFree(where);
     803        psError(PXTOOLS_ERR_CONFIG, false, "at least one of -label, -data_group, or -skycal_id is required");
     804        return false;
     805    }
     806
     807    // PXOPT_COPY_STR(config->args, where, "-tess_id",    "stackRun.tess_id", "==");
     808    // PXOPT_COPY_STR(config->args, where, "-skycell_id", "stackRun.skycell_id", "==");
     809
     810    // insure that at least one of these is supplied to select the release
     811    PXOPT_LOOKUP_S64(rel_id, config->args,      "-rel_id", false, false);
     812    PXOPT_LOOKUP_STR(release_name, config->args, "-release_name", false, false);
     813    if (!rel_id && !release_name) {
     814        psError(PXTOOLS_ERR_CONFIG, true, "either -rel_id or -release_name is required");
     815        return false;
     816    }
     817
     818    // limit query to the target release. (Note: this will select nothing if release_name and rel_id don't match)
     819    // note: we add these after above to insure that search args are supplied
     820    PXOPT_COPY_STR(config->args, where, "-release_name", "ippRelease.release_name", "==");
     821    PXOPT_COPY_S32(config->args, where, "-rel_id", "ippRelease.rel_id", "==");
     822
     823
     824    PXOPT_LOOKUP_STR(state, config->args,     "-set_state", true, false);
     825    PXOPT_LOOKUP_STR(stack_type, config->args,"-set_stack_type", true, false);
     826    PXOPT_LOOKUP_U32(flags, config->args,     "-set_flags", false, false);
     827    PXOPT_LOOKUP_F32(zpt_obs, config->args,   "-set_zpt_obs", false, false);
     828    PXOPT_LOOKUP_F32(zpt_stdev, config->args, "-set_zpt_stdev", false, false);
     829    PXOPT_LOOKUP_STR(path_base, config->args, "-set_path_base", false, false);
     830    PXOPT_LOOKUP_S16(fault, config->args,     "-set_fault", false, false);
     831
     832    PXOPT_LOOKUP_BOOL(pretend, config->args, "-pretend", false);
     833    PXOPT_LOOKUP_BOOL(simple, config->args,  "-simple", false);
     834
     835    // find the parameters of all the exposures that we want to add to the release
     836    psString query;
     837   
     838    if (includeSkycal) {
     839        query = pxDataGet("releasetool_definerelstack_with_skycal.sql");
     840    } else {
     841        query = pxDataGet("releasetool_definerelstack.sql");
     842    }
     843    if (!query) {
     844        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
     845        psFree(where);
     846        return false;
     847    }
     848
     849    psString whereClause = psDBGenerateWhereConditionSQL(where, NULL);
     850    psStringAppend(&query, " AND %s", whereClause);
     851    psFree(whereClause);
     852
     853    psFree(where);
     854
     855    if (!p_psDBRunQuery(config->dbh, query)) {
     856        psError(PS_ERR_UNKNOWN, false, "database error");
     857        psFree(query);
     858        return false;
     859    }
     860    psFree(query);
     861
     862    psArray *output = p_psDBFetchResult(config->dbh);
     863    if (!output) {
     864        psError(PS_ERR_UNKNOWN, false, "database error");
     865        return false;
     866    }
     867    if (!psArrayLength(output)) {
     868        psTrace("releasetool", PS_LOG_INFO, "no rows found");
     869        psFree(output);
     870        return true;
     871    }
     872
     873    if (pretend) {
     874        // negative simple so the default is true
     875        if (!ippdbPrintMetadatas(stdout, output, "relstack", !simple)) {
     876            psError(PS_ERR_UNKNOWN, false, "failed to print array");
     877            psFree(output);
     878            return false;
     879        }
     880        psFree(output);
     881        return true;
     882    }
     883
     884    if (!psDBTransaction(config->dbh)) {
     885        psError(PS_ERR_UNKNOWN, false, "database error");
     886        psFree(output);
     887        return false;
     888    }
     889
     890    psTime *now = psTimeGetNow(PS_TIME_TAI);
     891    // loop over our list of  exposures
     892    for (long i = 0; i < psArrayLength(output); i++) {
     893        psMetadata *md = output->data[i];
     894
     895        bool status = true;
     896        psS32 rel_id = psMetadataLookupS32(&status, md, "rel_id");
     897        psS64 stack_id = psMetadataLookupS64(&status, md, "stack_id");
     898        psS64 skycal_id = psMetadataLookupS64(&status, md, "skycal_id");
     899        psString skycell_id = psMetadataLookupStr(&status, md, "skycell_id");
     900        psString tess_id = psMetadataLookupStr(&status, md, "tess_id");
     901        psString filter = psMetadataLookupStr(&status, md, "filter");
     902
     903        // use skycal zero point measurement if not supplied with arguments
     904        psF32 sc_zpt_obs = psMetadataLookupF32(&status, md, "zpt_obs");
     905        psF32 sc_zpt_stdev = psMetadataLookupF32(&status, md, "zpt_stdev");
     906        psF32 stack_mjd_obs = psMetadataLookupF32(&status, md, "mjd_obs");
     907
     908        psU32 mjd_obs = 0;
     909        if (!strcmp(stack_type, "nightly")) {
     910            // only for nightly stacks do we set mjd_obs to a non zero value
     911            // We use integer day because this is part of the key that is used
     912            // to make sure entries are unique
     913            //      KEY (rel_id, tess_id, skycell_id, filter, mjd_obs),
     914            // 1 entry per release, skycell, filter and mjd_obs.
     915            // mjd_obs is zero for deep and reference stacks
     916            mjd_obs = (psU32) stack_mjd_obs;
     917        }
     918
     919        if (!relStackInsert(config->dbh,
     920            0,          // relstack_id (auto increment)
     921            rel_id,
     922            stack_id,
     923            skycal_id,
     924            skycell_id,
     925            tess_id,
     926            filter,
     927            state,
     928            flags,
     929            stack_type,
     930            isfinite(zpt_obs)   ? zpt_obs   : sc_zpt_obs,
     931            isfinite(zpt_stdev) ? zpt_stdev : sc_zpt_stdev,
     932            mjd_obs,
     933            path_base,
     934            fault,
     935            now,       // registered
     936            now        // time_stamp
     937        )) {
     938            if (!psDBRollback(config->dbh)) {
     939                psError(PS_ERR_UNKNOWN, false, "database error");
     940            }
     941            psError(PS_ERR_UNKNOWN, false,
     942                    "failed to trying to insert relStack for stack_id %" PRId64, stack_id);
     943            psFree(output);
     944            psFree(now);
     945            return false;
     946        }
     947    }
     948    psFree(output);
     949
     950    if (!psDBCommit(config->dbh)) {
     951        psError(PS_ERR_UNKNOWN, false, "database error");
     952        return false;
     953    }
     954
     955    return true;
     956}
     957
     958static bool updaterelstackMode(pxConfig *config)
     959{
     960    psError(PS_ERR_UNKNOWN, true, "not yet implemented");
     961    return false;
     962}
     963
     964static bool listrelstackMode(pxConfig *config)
     965{
     966    PS_ASSERT_PTR_NON_NULL(config, NULL);
     967
     968    psMetadata *where = psMetadataAlloc();
     969
     970    PXOPT_COPY_STR(config->args, where, "-release_name", "ippRelease.release_name", "LIKE");
     971    pxAddLabelSearchArgs(config, where, "-release_state","ippRelease.state", "==");
     972    PXOPT_COPY_STR(config->args, where, "-state",       "relExp.state", "==");
     973    PXOPT_COPY_STR(config->args, where, "-filter",      "rawExp.filter", "LIKE");
     974    PXOPT_COPY_TIME(config->args, where, "-dateobs_begin","rawExp.dateobs", ">=");
     975    PXOPT_COPY_TIME(config->args, where, "-dateobs_end", "rawExp.dateobs", "<=");
     976    PXOPT_COPY_F32(config->args, where, "-fwhm_min",    "skycalResult.fwhm_major", ">=");
     977    PXOPT_COPY_F32(config->args, where, "-fwhm_max",    "skycalresult.fwhm_major", "<=");
     978    PXOPT_COPY_STR(config->args, where, "-exp_name",    "rawExp.exp_ame", "==");
     979    PXOPT_COPY_S64(config->args, where, "-exp_id",      "relExp.exp_id", "==");
     980    PXOPT_COPY_S64(config->args, where, "-chip_id",     "relExp.chip_id", "==");
     981    PXOPT_COPY_S64(config->args, where, "-cam_id",      "relExp.cam_id", "==");
     982    PXOPT_COPY_S64(config->args, where, "-warp_id",     "warpRun.warp_id", "==");
     983    PXOPT_COPY_STR(config->args, where, "-chip_data_group", "chipRun.data_group", "LIKE");
     984    PXOPT_COPY_STR(config->args, where, "-cam_data_group",  "camRun.data_group", "LIKE");
     985    PXOPT_COPY_STR(config->args, where, "-warp_data_group", "warpRun.data_group", "LIKE");
     986
     987    PXOPT_COPY_STR(config->args, where, "-surveyName",  "survey.surveyName", "LIKE");
     988    PXOPT_COPY_S32(config->args, where, "-rel_id",      "relExp.rel_id", "==");
     989
     990    PXOPT_LOOKUP_BOOL(priority_order, config->args, "-priority_order", false);
     991
     992    PXOPT_LOOKUP_U64(limit, config->args, "-limit", false, false);
     993    PXOPT_LOOKUP_BOOL(simple, config->args, "-simple", false);
     994
     995    psString query = pxDataGet("releasetool_listrelexp.sql");
     996    if (!query) {
     997        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
     998        return false;
     999    }
     1000
     1001    psString where2 = NULL;
     1002    if (!pxspaceAddWhere(config, &where2, "rawExp")) {
     1003        psError(psErrorCodeLast(), false, "pxspaceAddWhere failed");
     1004        return false;
     1005    }
     1006
     1007    if (psListLength(where->list)) {
     1008        psString whereClause = psDBGenerateWhereConditionSQL(where, NULL);
     1009        psStringAppend(&query, "\nWHERE %s", whereClause);
     1010        psFree(whereClause);
     1011    } else if (where2) {
     1012        psStringAppend(&query, "\nWHERE ");
     1013    } else {
     1014        psError(PXTOOLS_ERR_CONFIG, false, "search parameters are required\n");
     1015        psFree(where);
     1016        return false;
     1017    }
     1018
     1019    if (where2) {
     1020        psStringAppend(&query, "\n%s", where2);
     1021        psFree(where2);
     1022    }
     1023
     1024    if (priority_order) {
     1025        psStringAppend(&query, "\nAND priority > 0 order by exp_id, priority");
     1026    }
     1027
     1028    if (limit) {
     1029        psString limitString = psDBGenerateLimitSQL(limit);
     1030        psStringAppend(&query, " %s", limitString);
     1031        psFree(limitString);
     1032    }
     1033
     1034    if (!p_psDBRunQuery(config->dbh, query)) {
     1035        psError(PS_ERR_UNKNOWN, false, "database error");
     1036        psFree(query);
     1037        return false;
     1038    }
     1039    psFree(query);
     1040
     1041    psArray *output = p_psDBFetchResult(config->dbh);
     1042    if (!output) {
     1043        psError(PS_ERR_UNKNOWN, false, "database error");
     1044        return false;
     1045    }
     1046
     1047    if (!psArrayLength(output)) {
     1048        psTrace("releasetool", PS_LOG_INFO, "no rows found");
     1049        psFree(output);
     1050        return true;
     1051    }
     1052
     1053    if (!ippdbPrintMetadatas(stdout, output, "relExp", !simple)) {
     1054        psError(PS_ERR_UNKNOWN, false, "failed to print array");
     1055        psFree(output);
     1056        return false;
     1057    }
     1058
     1059    psFree(output);
     1060
     1061    return true;
     1062}
     1063
     1064static bool definerelgroupMode(pxConfig *config)
     1065{
     1066    PS_ASSERT_PTR_NON_NULL(config, NULL);
     1067
     1068    PXOPT_LOOKUP_STR(group_type, config->args, "-set_group_type", true, false);
     1069    PXOPT_LOOKUP_STR(group_name, config->args, "-set_group_name", false, false);
     1070    PXOPT_LOOKUP_STR(label, config->args,     "-set_label", true, false);
     1071
     1072    PXOPT_LOOKUP_STR(state, config->args,     "-set_state", false, false);
     1073    PXOPT_LOOKUP_STR(exp_list_path, config->args, "-set_exp_list_path", false, false);
     1074    PXOPT_LOOKUP_S16(fault, config->args,     "-set_fault", false, false);
     1075
     1076    psString query = NULL;
     1077
     1078    psMetadata *where = psMetadataAlloc();
     1079
     1080    // select sql and paramters based on group type
     1081    bool type_lap = false;
     1082    if (!strcmp(group_type, "lap")) {
     1083        type_lap = true;
     1084        if (group_name) {
     1085            psError(PXTOOLS_ERR_CONFIG, true, "group_name is not allowed with group_type lap");
     1086            psFree(where);
     1087            return false;
     1088        }
     1089        PXOPT_COPY_S64(config->args, where, "-select_seq_id", "lapRun.seq_id", "==");
     1090        PXOPT_COPY_S64(config->args, where, "-select_lap_id", "lapRun.lap_id", "==");
     1091        query = pxDataGet("releasetool_definerelgroup_select_lap.sql");
     1092        if (!query) {
     1093            psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
     1094            psFree(where);
     1095            return false;
     1096        }
     1097    } else {
     1098        if (!strcmp(group_type, "date")) {
     1099            // group_type ok
     1100        } else if (!strcmp(group_type, "data_group")) {
     1101            // group_type ok
     1102        } else {
     1103            psError(PXTOOLS_ERR_CONFIG, true, "%s is not valid group_type", group_type);
     1104            return false;
     1105        }
     1106        if (!group_name) {
     1107            psError(PXTOOLS_ERR_CONFIG, true, "group_name is required allowed with group_type %s", group_type);
     1108            psFree(where);
     1109            return false;
     1110        }
     1111        pxAddLabelSearchArgs (config, where, "-select_data_group", "camRun.data_group", "==");
     1112        query = pxDataGet("releasetool_definerelgroup_select_data_group.sql");
     1113        if (!query) {
     1114            psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
     1115            psFree(where);
     1116            return false;
     1117        }
     1118    }
     1119
     1120    // Insure that at least one of the exposure selectors is supplied
     1121    if (!psListLength(where->list)) {
     1122        psFree(where);
     1123        psError(PXTOOLS_ERR_CONFIG, false, "search arguments are required");
     1124        return false;
     1125    }
     1126
     1127    // insure that at least one of these is supplied to select the release
     1128    PXOPT_LOOKUP_S64(rel_id, config->args,      "-rel_id", false, false);
     1129    PXOPT_LOOKUP_STR(release_name, config->args, "-release_name", false, false);
     1130    if (!rel_id && !release_name) {
     1131        psError(PXTOOLS_ERR_CONFIG, true, "either -rel_id or -release_name is required");
     1132        return false;
     1133    }
     1134
     1135    // limit query to the target release. (Note: this will select nothing if release_name and rel_id don't match)
     1136    // note: we add these after above to insure that search args are supplied
     1137    PXOPT_COPY_STR(config->args, where, "-release_name", "ippRelease.release_name", "==");
     1138    PXOPT_COPY_S32(config->args, where, "-rel_id", "ippRelease.rel_id", "==");
     1139
     1140    PXOPT_LOOKUP_BOOL(pretend, config->args, "-pretend", false);
     1141    PXOPT_LOOKUP_BOOL(simple, config->args,  "-simple", false);
     1142
     1143    psString whereClause = psDBGenerateWhereConditionSQL(where, NULL);
     1144    psStringAppend(&query, " AND %s", whereClause);
     1145    psFree(whereClause);
     1146
     1147    psFree(where);
     1148
     1149    if (!type_lap) {
     1150        psStringAppend(&query, "\nHAVING COUNT(exp_id) > 0");
     1151    }
     1152
     1153    if (!p_psDBRunQuery(config->dbh, query)) {
     1154        psError(PS_ERR_UNKNOWN, false, "database error");
     1155        psFree(query);
     1156        return false;
     1157    }
     1158    psFree(query);
     1159
     1160    psArray *output = p_psDBFetchResult(config->dbh);
     1161    if (!output) {
     1162        psError(PS_ERR_UNKNOWN, false, "database error");
     1163        return false;
     1164    }
     1165    if (!psArrayLength(output)) {
     1166        psTrace("releasetool", PS_LOG_INFO, "no rows found");
     1167        psFree(output);
     1168        return true;
     1169    }
     1170
     1171    if (pretend) {
     1172        // negative simple so the default is true
     1173        if (!ippdbPrintMetadatas(stdout, output, "relGroupToQueue", !simple)) {
     1174            psError(PS_ERR_UNKNOWN, false, "failed to print array");
     1175            psFree(output);
     1176            return false;
     1177        }
     1178        psFree(output);
     1179        return true;
     1180    }
     1181
     1182    if (!psDBTransaction(config->dbh)) {
     1183        psError(PS_ERR_UNKNOWN, false, "database error");
     1184        psFree(output);
     1185        return false;
     1186    }
     1187
     1188    psTime *now = psTimeGetNow(PS_TIME_TAI);
     1189    // loop over our list of  exposures
     1190    for (long i = 0; i < psArrayLength(output); i++) {
     1191        psMetadata *md = output->data[i];
     1192
     1193        bool status = true;
     1194        psS32 rel_id = psMetadataLookupS32(&status, md, "rel_id");
     1195        psS64 lap_id = 0;
     1196        if (type_lap) {
     1197            lap_id = psMetadataLookupS64(&status, md, "lap_id");
     1198        }
     1199
     1200        if (!relGroupInsert(config->dbh,
     1201            0,          // group_id (auto increment)
     1202            rel_id,
     1203            group_type,
     1204            lap_id,
     1205            group_name,
     1206            "reg",      // state
     1207            label,
     1208            exp_list_path,
     1209            fault,
     1210            now        // registered
     1211        )) {
     1212            if (!psDBRollback(config->dbh)) {
     1213                psError(PS_ERR_UNKNOWN, false, "database error");
     1214            }
     1215            psError(PS_ERR_UNKNOWN, false, "failed to trying to insert relGroup");
     1216            psFree(output);
     1217            psFree(now);
     1218            return false;
     1219        }
     1220        // Here's our new group_id
     1221        psS32 group_id = psDBLastInsertID(config->dbh);
     1222
     1223        psString query;
     1224        if (type_lap) {
     1225            query = pxDataGet("releasetool_definerelgroup_select_exp_lap.sql");
     1226            if (!query) {
     1227                psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
     1228                psFree(where);
     1229                return false;
     1230            }
     1231            psStringAppend(&query, " AND relExp.rel_id = %d AND lap_id = %" PRId64, rel_id, lap_id);
     1232        } else {
     1233            query = pxDataGet("releasetool_definerelgroup_select_exp_data_group.sql");
     1234            if (!query) {
     1235                psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
     1236                psFree(where);
     1237                return false;
     1238            }
     1239            psStringAppend(&query, " AND relExp.rel_id = %d", rel_id);
     1240
     1241            psMetadata *where = psMetadataAlloc();
     1242            pxAddLabelSearchArgs (config, where, "-select_data_group", "camRun.data_group", "==");
     1243            psString whereClause = psDBGenerateWhereConditionSQL(where, NULL);
     1244            psStringAppend(&query, " AND %s", whereClause);
     1245            psFree(whereClause);
     1246            psFree(where);
     1247        }
     1248
     1249        if (!p_psDBRunQuery(config->dbh, query)) {
     1250            psError(PS_ERR_UNKNOWN, false, "database error");
     1251            psFree(query);
     1252            psFree(output);
     1253            psFree(now);
     1254            if (!psDBRollback(config->dbh)) {
     1255                psError(PS_ERR_UNKNOWN, false, "database error");
     1256            }
     1257            return false;
     1258        }
     1259        psFree(query);
     1260
     1261        psArray *exposures = p_psDBFetchResult(config->dbh);
     1262        if (!exposures) {
     1263            psFree(now);
     1264            psFree(output);
     1265            psError(PS_ERR_UNKNOWN, false, "database error");
     1266            if (!psDBRollback(config->dbh)) {
     1267                psError(PS_ERR_UNKNOWN, false, "database error");
     1268            }
     1269            return false;
     1270        }
     1271        if (!psArrayLength(exposures)) {
     1272            psFree(now);
     1273            psFree(output);
     1274            psFree(exposures);
     1275            psError(PS_ERR_UNKNOWN, false, "no exposures found error");
     1276            if (!psDBRollback(config->dbh)) {
     1277                psError(PS_ERR_UNKNOWN, false, "database error");
     1278            }
     1279            return false;
     1280        }
     1281
     1282        // assign the relExps to this new group
     1283        char *updateQuery = "UPDATE relExp SET group_id = %d WHERE relexp_id = %" PRId64;
     1284        for (int j = 0; j < psArrayLength(exposures); j++) {
     1285            psMetadata *md = exposures->data[j];
     1286
     1287            bool status = true;
     1288            psS32 relexp_id = psMetadataLookupS32(&status, md, "relexp_id");
     1289            if (!p_psDBRunQueryF(config->dbh, updateQuery, group_id, relexp_id)) {
     1290                psError(PS_ERR_UNKNOWN, false, "database error");
     1291                psFree(now);
     1292                psFree(output);
     1293                psFree(exposures);
     1294
     1295                if (!psDBRollback(config->dbh)) {
     1296                    psError(PS_ERR_UNKNOWN, false, "database error");
     1297                }
     1298                return false;
     1299            }
     1300        }
     1301        psFree(exposures);
     1302
     1303        // set state of relGroup to 'new'
     1304        if (!p_psDBRunQueryF(config->dbh, "UPDATE relGroup set state = 'new' WHERE group_id = %d", group_id)) {
     1305            psError(PS_ERR_UNKNOWN, false, "database error");
     1306            psFree(now);
     1307            psFree(output);
     1308            if (!psDBRollback(config->dbh)) {
     1309                psError(PS_ERR_UNKNOWN, false, "database error");
     1310            }
     1311            return false;
     1312        }
     1313    }
     1314    psFree(output);
     1315    psFree(now);
     1316
     1317    if (!psDBCommit(config->dbh)) {
     1318        psError(PS_ERR_UNKNOWN, false, "database error");
     1319        return false;
     1320    }
     1321
     1322    return true;
     1323}
     1324
     1325static bool updaterelgroupMode(pxConfig *config)
     1326{
     1327    psError(PS_ERR_UNKNOWN, true, "not yet implemented");
     1328    return false;
     1329}
     1330
     1331static bool pendingrelgroupMode(pxConfig *config)
     1332{
     1333    PS_ASSERT_PTR_NON_NULL(config, NULL);
     1334
     1335    psMetadata *where = psMetadataAlloc();
     1336
     1337    pxAddLabelSearchArgs (config, where, "-label",      "relGroup.label", "==");
     1338    PXOPT_COPY_S32(config->args, where, "-group_id",    "relGroup.group_id", "==");
     1339    PXOPT_COPY_S32(config->args, where, "-rel_id",      "relExp.rel_id", "==");
     1340    PXOPT_COPY_STR(config->args, where, "-release_name", "ippRelease.release_name", "LIKE");
     1341
     1342    PXOPT_LOOKUP_U64(limit, config->args, "-limit", false, false);
     1343    PXOPT_LOOKUP_BOOL(simple, config->args, "-simple", false);
     1344
     1345    psString query = pxDataGet("releasetool_pendingrelgroup.sql");
     1346    if (!query) {
     1347        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
     1348        return false;
     1349    }
     1350
     1351    if (psListLength(where->list)) {
     1352        psString whereClause = psDBGenerateWhereConditionSQL(where, NULL);
     1353        psStringAppend(&query, "\nAND %s", whereClause);
     1354        psFree(whereClause);
     1355    } else {
     1356        psError(PXTOOLS_ERR_CONFIG, false, "search parameters are required\n");
     1357        psFree(where);
     1358        return false;
     1359    }
     1360
     1361    if (limit) {
     1362        psString limitString = psDBGenerateLimitSQL(limit);
     1363        psStringAppend(&query, " %s", limitString);
     1364        psFree(limitString);
     1365    }
     1366
     1367    if (!p_psDBRunQuery(config->dbh, query)) {
     1368        psError(PS_ERR_UNKNOWN, false, "database error");
     1369        psFree(query);
     1370        return false;
     1371    }
     1372    psFree(query);
     1373
     1374    psArray *output = p_psDBFetchResult(config->dbh);
     1375    if (!output) {
     1376        psError(PS_ERR_UNKNOWN, false, "database error");
     1377        return false;
     1378    }
     1379
     1380    if (!psArrayLength(output)) {
     1381        psTrace("releasetool", PS_LOG_INFO, "no rows found");
     1382        psFree(output);
     1383        return true;
     1384    }
     1385
     1386    if (!ippdbPrintMetadatas(stdout, output, "pending_relGroup", !simple)) {
     1387        psError(PS_ERR_UNKNOWN, false, "failed to print array");
     1388        psFree(output);
     1389        return false;
     1390    }
     1391
     1392    psFree(output);
     1393
     1394    return true;
     1395}
     1396
     1397static bool listrelgroupMode(pxConfig *config)
     1398{
     1399    return false;
     1400#ifdef notdef
     1401    PS_ASSERT_PTR_NON_NULL(config, NULL);
     1402
     1403    psMetadata *where = psMetadataAlloc();
     1404
     1405    PXOPT_COPY_STR(config->args, where, "-release_name", "ippRelease.release_name", "LIKE");
     1406    pxAddLabelSearchArgs(config, where, "-release_state","ippRelease.state", "==");
     1407    PXOPT_COPY_STR(config->args, where, "-state",       "relExp.state", "==");
     1408    PXOPT_COPY_STR(config->args, where, "-filter",      "rawExp.filter", "LIKE");
     1409    PXOPT_COPY_TIME(config->args, where, "-dateobs_begin","rawExp.dateobs", ">=");
     1410    PXOPT_COPY_TIME(config->args, where, "-dateobs_end", "rawExp.dateobs", "<=");
     1411    PXOPT_COPY_F32(config->args, where, "-fwhm_min",    "skycalResult.fwhm_major", ">=");
     1412    PXOPT_COPY_F32(config->args, where, "-fwhm_max",    "skycalresult.fwhm_major", "<=");
     1413    PXOPT_COPY_STR(config->args, where, "-exp_name",    "rawExp.exp_ame", "==");
     1414    PXOPT_COPY_S64(config->args, where, "-exp_id",      "relExp.exp_id", "==");
     1415    PXOPT_COPY_S64(config->args, where, "-chip_id",     "relExp.chip_id", "==");
     1416    PXOPT_COPY_S64(config->args, where, "-cam_id",      "relExp.cam_id", "==");
     1417    PXOPT_COPY_S64(config->args, where, "-warp_id",     "warpRun.warp_id", "==");
     1418    PXOPT_COPY_STR(config->args, where, "-chip_data_group", "chipRun.data_group", "LIKE");
     1419    PXOPT_COPY_STR(config->args, where, "-cam_data_group",  "camRun.data_group", "LIKE");
     1420    PXOPT_COPY_STR(config->args, where, "-warp_data_group", "warpRun.data_group", "LIKE");
     1421
     1422    PXOPT_COPY_STR(config->args, where, "-surveyName",  "survey.surveyName", "LIKE");
     1423    PXOPT_COPY_S32(config->args, where, "-rel_id",      "relExp.rel_id", "==");
     1424
     1425    PXOPT_LOOKUP_BOOL(priority_order, config->args, "-priority_order", false);
     1426
     1427    PXOPT_LOOKUP_U64(limit, config->args, "-limit", false, false);
     1428    PXOPT_LOOKUP_BOOL(simple, config->args, "-simple", false);
     1429
     1430    psString query = pxDataGet("releasetool_listrelexp.sql");
     1431    if (!query) {
     1432        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
     1433        return false;
     1434    }
     1435
     1436    psString where2 = NULL;
     1437    if (!pxspaceAddWhere(config, &where2, "rawExp")) {
     1438        psError(psErrorCodeLast(), false, "pxspaceAddWhere failed");
     1439        return false;
     1440    }
     1441
     1442    if (psListLength(where->list)) {
     1443        psString whereClause = psDBGenerateWhereConditionSQL(where, NULL);
     1444        psStringAppend(&query, "\nWHERE %s", whereClause);
     1445        psFree(whereClause);
     1446    } else if (where2) {
     1447        psStringAppend(&query, "\nWHERE ");
     1448    } else {
     1449        psError(PXTOOLS_ERR_CONFIG, false, "search parameters are required\n");
     1450        psFree(where);
     1451        return false;
     1452    }
     1453
     1454    if (where2) {
     1455        psStringAppend(&query, "\n%s", where2);
     1456        psFree(where2);
     1457    }
     1458
     1459    if (priority_order) {
     1460        psStringAppend(&query, "\nAND priority > 0 order by exp_id, priority");
     1461    }
     1462
     1463    if (limit) {
     1464        psString limitString = psDBGenerateLimitSQL(limit);
     1465        psStringAppend(&query, " %s", limitString);
     1466        psFree(limitString);
     1467    }
     1468
     1469    if (!p_psDBRunQuery(config->dbh, query)) {
     1470        psError(PS_ERR_UNKNOWN, false, "database error");
     1471        psFree(query);
     1472        return false;
     1473    }
     1474    psFree(query);
     1475
     1476    psArray *output = p_psDBFetchResult(config->dbh);
     1477    if (!output) {
     1478        psError(PS_ERR_UNKNOWN, false, "database error");
     1479        return false;
     1480    }
     1481
     1482    if (!psArrayLength(output)) {
     1483        psTrace("releasetool", PS_LOG_INFO, "no rows found");
     1484        psFree(output);
     1485        return true;
     1486    }
     1487
     1488    if (!ippdbPrintMetadatas(stdout, output, "relExp", !simple)) {
     1489        psError(PS_ERR_UNKNOWN, false, "failed to print array");
     1490        psFree(output);
     1491        return false;
     1492    }
     1493
     1494    psFree(output);
     1495
     1496    return true;
     1497#endif //notdef
     1498}
     1499
  • branches/eam_branches/ipp-20130207/ippTools/src/releasetool.h

    r34908 r35236  
    3232    RELEASETOOL_MODE_DEFINERELEXP,
    3333    RELEASETOOL_MODE_UPDATERELEXP,
     34    RELEASETOOL_MODE_TOCALIBEXP,
    3435    RELEASETOOL_MODE_LISTRELEXP,
     36    RELEASETOOL_MODE_DEFINERELSTACK,
     37    RELEASETOOL_MODE_UPDATERELSTACK,
     38    RELEASETOOL_MODE_TOCALIBSTACK,
     39    RELEASETOOL_MODE_LISTRELSTACK,
     40    RELEASETOOL_MODE_DEFINERELGROUP,
     41    RELEASETOOL_MODE_PENDINGRELGROUP,
     42    RELEASETOOL_MODE_UPDATERELGROUP,
     43    RELEASETOOL_MODE_LISTRELGROUP,
    3544} releasetoolMode;
    3645
  • branches/eam_branches/ipp-20130207/ippTools/src/releasetoolConfig.c

    r35048 r35236  
    6060    psMetadata *definereleaseArgs = psMetadataAlloc();
    6161    psMetadataAddS32(definereleaseArgs, PS_LIST_TAIL, "-set_surveyID", 0,      "define survey ID (required)", 0);
    62     psMetadataAddStr(definereleaseArgs, PS_LIST_TAIL, "-set_releaseName", 0,   "define release name (required)", NULL);
     62    psMetadataAddStr(definereleaseArgs, PS_LIST_TAIL, "-set_release_name", 0,   "define release name (required)", NULL);
    6363    psMetadataAddS32(definereleaseArgs, PS_LIST_TAIL, "-set_dataRelease", 0,   "define dataRelease", -1);
    6464    psMetadataAddStr(definereleaseArgs, PS_LIST_TAIL, "-set_release_state", 0, "define release state", NULL);
    65     psMetadataAddS32(definereleaseArgs, PS_LIST_TAIL, "-set_priority", 0,      "define release priority", -1);
     65    psMetadataAddS32(definereleaseArgs, PS_LIST_TAIL, "-set_priority", 0,      "define release priority", 0);
    6666
    6767    // -uptdaterelease
    6868    psMetadata *updatereleaseArgs = psMetadataAlloc();
    6969
    70     // releaseName and/or rel_id is required. This is handled in updatereleaseMode
    71     psMetadataAddStr(updatereleaseArgs, PS_LIST_TAIL, "-releaseName", 0,        "select by release name", NULL);
     70    // release_name and/or rel_id is required. This is handled in updatereleaseMode
     71    psMetadataAddStr(updatereleaseArgs, PS_LIST_TAIL, "-release_name", 0,        "select by release name", NULL);
    7272    psMetadataAddS32(updatereleaseArgs, PS_LIST_TAIL, "-rel_id", 0,             "select by release ID", 0);
    7373
    74     // Only support changing state and priority for now
    75     psMetadataAddStr(updatereleaseArgs, PS_LIST_TAIL, "-set_release_state", 0,  "define new release state(required)", NULL);
     74    psMetadataAddStr(updatereleaseArgs, PS_LIST_TAIL, "-set_release_state", 0,  "define new release state", NULL);
    7675    psMetadataAddS32(updatereleaseArgs, PS_LIST_TAIL, "-set_priority", 0,       "define new release priority", 0);
    77 
    78 //    psMetadataAddS32(updatereleaseArgs, PS_LIST_TAIL, "-set_surveyID", 0,       "define surveyID (required)", 0);
    79 //    psMetadataAddStr(updatereleaseArgs, PS_LIST_TAIL, "-set_releaseName", 0,    "define release name (required)", NULL);
    80 //    psMetadataAddS32(updatereleaseArgs, PS_LIST_TAIL, "-set_dataRelease", 0,    "define dataRelease", -1);
     76    psMetadataAddS32(updatereleaseArgs, PS_LIST_TAIL, "-set_dataRelease", 0,    "define data release", -1);
    8177
    8278
     
    8480    psMetadata *listreleaseArgs = psMetadataAlloc();
    8581    psMetadataAddStr(listreleaseArgs,  PS_LIST_TAIL, "-surveyName", 0,  "select by survey name (LIKE comparision)", NULL);
    86     psMetadataAddStr(listreleaseArgs,  PS_LIST_TAIL, "-releaseName", 0, "select by release name (LIKE comparision)", NULL);
     82    psMetadataAddStr(listreleaseArgs,  PS_LIST_TAIL, "-release_name", 0, "select by release name (LIKE comparision)", NULL);
    8783    psMetadataAddStr(listreleaseArgs,  PS_LIST_TAIL, "-release_state",  0, "select by release state", NULL);
    8884    psMetadataAddS32(listreleaseArgs, PS_LIST_TAIL,  "-rel_id", 0,      "select by release ID", 0);
     
    9591
    9692        // set the target release
    97     psMetadataAddStr(definerelexpArgs,  PS_LIST_TAIL, "-releaseName", 0, "define release name", NULL);
     93    psMetadataAddStr(definerelexpArgs,  PS_LIST_TAIL, "-release_name", 0, "define release name", NULL);
    9894    psMetadataAddS32(definerelexpArgs, PS_LIST_TAIL,  "-rel_id", 0,      "define release ID", 0);
    9995
     
    109105        // parameters of the relExp
    110106    psMetadataAddStr(definerelexpArgs,  PS_LIST_TAIL, "-set_state", 0,      "define state (required)", NULL);
     107    psMetadataAddU32(definerelexpArgs,  PS_LIST_TAIL, "-set_flags", 0,      "define flags", 0);
     108    psMetadataAddF32(definerelexpArgs,  PS_LIST_TAIL, "-set_zpt_obs", 0,    "define zero point", NAN);
     109    psMetadataAddF32(definerelexpArgs,  PS_LIST_TAIL, "-set_zpt_stdev", 0,  "define zero point stdev", NAN);
    111110    psMetadataAddStr(definerelexpArgs,  PS_LIST_TAIL, "-set_path_base", 0,  "define state", NULL);
    112     psMetadataAddU32(definerelexpArgs,  PS_LIST_TAIL, "-set_flags", 0,      "define flags", 0);
    113 
    114     psMetadataAddBool(definerelexpArgs, PS_LIST_TAIL, "-pretend",  0, "do not actual modify the database", false);
    115     psMetadataAddBool(definerelexpArgs, PS_LIST_TAIL, "-simple",  0, "use the simpel output format", false);
    116 
    117 
     111    psMetadataAddS16(definerelexpArgs,  PS_LIST_TAIL, "-set_fault", 0,      "define fault", 0);
     112
     113    psMetadataAddBool(definerelexpArgs, PS_LIST_TAIL, "-pretend",  0, "do not actually modify the database", false);
     114    psMetadataAddBool(definerelexpArgs, PS_LIST_TAIL, "-simple",  0, "use the simple output format", false);
    118115
    119116    // -updaterelexp
    120117    psMetadata *updaterelexpArgs = psMetadataAlloc();
    121     psMetadataAddStr(updaterelexpArgs,  PS_LIST_TAIL, "-releaseName", 0, "select by release name (LIKE comparision)", NULL);
     118    psMetadataAddS64(updaterelexpArgs, PS_LIST_TAIL,  "-relexp_id", 0,   "select by released exposure ID", 0);
     119    psMetadataAddS64(updaterelexpArgs, PS_LIST_TAIL,  "-exp_id", 0,      "select by exposure ID", 0);
     120    psMetadataAddStr(updaterelexpArgs,  PS_LIST_TAIL, "-exp_name", 0,    "select by exposure name", NULL);
     121    psMetadataAddS32(updaterelexpArgs, PS_LIST_TAIL,  "-rel_id", 0,      "select by release ID", 0);
     122    psMetadataAddStr(updaterelexpArgs,  PS_LIST_TAIL, "-release_name", 0, "select by release name (LIKE comparision)", NULL);
     123
     124    psMetadataAddStr(updaterelexpArgs,  PS_LIST_TAIL, "-set_state", 0,      "define new state)", NULL);
     125    psMetadataAddU32(updaterelexpArgs,  PS_LIST_TAIL, "-set_flags", 0,      "define new flags", 0);
     126    psMetadataAddF32(updaterelexpArgs,  PS_LIST_TAIL, "-set_zpt_obs", 0,    "define new zero point", NAN);
     127    psMetadataAddF32(updaterelexpArgs,  PS_LIST_TAIL, "-set_zpt_stdev", 0,  "define new zero point stdev", NAN);
     128    psMetadataAddStr(updaterelexpArgs,  PS_LIST_TAIL, "-set_path_base", 0,  "define path_base", NULL);
     129    psMetadataAddS16(updaterelexpArgs,  PS_LIST_TAIL, "-set_fault", 0,      "define new fault", 0);
     130    psMetadataAddBool(updaterelexpArgs, PS_LIST_TAIL, "-clearfault",  0,   "set fault to zero", false);
     131
     132    // -tocalibexp
     133    psMetadata *tocalibexpArgs = psMetadataAlloc();
     134    psMetadataAddS64(tocalibexpArgs, PS_LIST_TAIL,  "-relexp_id", 0,   "select by released exposure ID", 0);
     135    psMetadataAddStr(tocalibexpArgs,  PS_LIST_TAIL, "-release_name", 0, "select by release name (LIKE comparision)", NULL);
     136
     137    psMetadataAddU64(tocalibexpArgs,  PS_LIST_TAIL, "-limit",       0, "limit result set to N items", 0);
     138    psMetadataAddBool(tocalibexpArgs, PS_LIST_TAIL, "-simple",      0, "use the simple output format", false);
    122139
    123140    // -listrelexp
    124141    psMetadata *listrelexpArgs = psMetadataAlloc();
    125     psMetadataAddStr(listrelexpArgs,  PS_LIST_TAIL, "-releaseName", 0,  "select by release name (LIKE comparision)", NULL);
     142    psMetadataAddS64(listrelexpArgs, PS_LIST_TAIL,  "-relexp_id", 0,   "select by released exposure ID", 0);
     143    psMetadataAddStr(listrelexpArgs,  PS_LIST_TAIL, "-release_name", 0, "select by release name (LIKE comparision)", NULL);
    126144    psMetadataAddStr(listrelexpArgs,  PS_LIST_TAIL, "-release_state", PS_META_DUPLICATE_OK, "select by release state", NULL);
    127145    psMetadataAddStr(listrelexpArgs,  PS_LIST_TAIL, "-state", 0,        "select by released exposure state", NULL);
     
    155173    psMetadataAddBool(listrelexpArgs, PS_LIST_TAIL, "-simple",      0, "use the simple output format", false);
    156174
     175    // -definerelstack
     176    psMetadata *definerelstackArgs = psMetadataAlloc();
     177
     178        // set the target release
     179    psMetadataAddStr(definerelstackArgs,  PS_LIST_TAIL, "-release_name", 0, "define release name", NULL);
     180    psMetadataAddS32(definerelstackArgs, PS_LIST_TAIL,  "-rel_id", 0,      "define release ID", 0);
     181
     182        // select the processing
     183    psMetadataAddS64(definerelstackArgs, PS_LIST_TAIL,  "-stack_id", 0,    "select by stack ID", 0);
     184    psMetadataAddS64(definerelstackArgs, PS_LIST_TAIL,  "-skycal_id", 0,   "select by skycal ID", 0);
     185    psMetadataAddStr(definerelstackArgs,  PS_LIST_TAIL, "-label",  0,      "select by stackRun.label", NULL);
     186    psMetadataAddStr(definerelstackArgs,  PS_LIST_TAIL, "-data_group", 0,  "select by stackRun.data_group", NULL);
     187    psMetadataAddStr(definerelstackArgs,  PS_LIST_TAIL, "-skycal_label",  0, "select by skycalRun.label", NULL);
     188    psMetadataAddStr(definerelstackArgs,  PS_LIST_TAIL, "-skycal_data_group", 0,  "select by skycalRun.data_group", NULL);
     189
     190        // parameters of the relStack
     191    psMetadataAddStr(definerelstackArgs,  PS_LIST_TAIL, "-set_state", 0,      "define state (required)", NULL);
     192    psMetadataAddU32(definerelstackArgs,  PS_LIST_TAIL, "-set_flags", 0,      "define flags", 0);
     193    psMetadataAddStr(definerelstackArgs,  PS_LIST_TAIL, "-set_stack_type", 0, "define stack type (required)", NULL);
     194    psMetadataAddF32(definerelstackArgs,  PS_LIST_TAIL, "-set_zpt_obs", 0,    "define zero point", NAN);
     195    psMetadataAddF32(definerelstackArgs,  PS_LIST_TAIL, "-set_zpt_stdev", 0,  "define zero point stdev", NAN);
     196    psMetadataAddF32(definerelstackArgs,  PS_LIST_TAIL, "-set_fwhm_major", 0, "define fwhm_major", NAN);
     197    psMetadataAddStr(definerelstackArgs,  PS_LIST_TAIL, "-set_path_base", 0,  "define state (required)", NULL);
     198    psMetadataAddS16(definerelstackArgs,  PS_LIST_TAIL, "-set_fault", 0,      "define fault", 0);
     199
     200    psMetadataAddBool(definerelstackArgs, PS_LIST_TAIL, "-pretend",  0, "do not actually modify the database", false);
     201    psMetadataAddBool(definerelstackArgs, PS_LIST_TAIL, "-simple",  0, "use the simple output format", false);
     202
     203    // -definerelgroup
     204    psMetadata *definerelgroupArgs = psMetadataAlloc();
     205
     206        // set the target release
     207    psMetadataAddStr(definerelgroupArgs, PS_LIST_TAIL, "-release_name", 0, "define release name", NULL);
     208    psMetadataAddS32(definerelgroupArgs, PS_LIST_TAIL, "-rel_id", 0,      "define release ID", 0);
     209
     210        // select the members of the group
     211    psMetadataAddS64(definerelgroupArgs, PS_LIST_TAIL, "-select_seq_id", 0,  "select by LAP sequence ID", 0);
     212    psMetadataAddS64(definerelgroupArgs, PS_LIST_TAIL, "-select_lap_id", 0,  "select by LAP ID", 0);
     213    psMetadataAddStr(definerelgroupArgs, PS_LIST_TAIL, "-select_data_group", PS_META_DUPLICATE_OK,  "select by camRun.data_group", NULL);
     214    // do we want this?
     215    // psMetadataAddS64(definerelgroupArgs, PS_LIST_TAIL, "-lap_id", 0,  "select by LAP ID", NULL);
     216
     217        // parameters of the relGroup
     218    psMetadataAddStr(definerelgroupArgs, PS_LIST_TAIL, "-set_group_type", 0,  "define group_type (required)", NULL);
     219    psMetadataAddStr(definerelgroupArgs, PS_LIST_TAIL, "-set_group_name", 0,  "define group_name (required)", NULL);
     220    psMetadataAddStr(definerelgroupArgs, PS_LIST_TAIL, "-set_label", 0, "define relgroup label (required)", NULL);
     221    psMetadataAddStr(definerelgroupArgs,  PS_LIST_TAIL, "-set_state", 0,      "define state", NULL);
     222    psMetadataAddStr(definerelgroupArgs,  PS_LIST_TAIL, "-set_exp_list_path", 0, "define path in exposure list", NULL);
     223    psMetadataAddS16(definerelgroupArgs,  PS_LIST_TAIL, "-set_fault", 0,      "define fault", 0);
     224
     225        // options
     226    psMetadataAddBool(definerelgroupArgs, PS_LIST_TAIL, "-pretend",  0, "do not actually modify the database", false);
     227    psMetadataAddBool(definerelgroupArgs, PS_LIST_TAIL, "-simple",  0, "use the simple output format", false);
     228
     229    // -pendingrelgroup
     230    psMetadata *pendingrelgroupArgs = psMetadataAlloc();
     231
     232    psMetadataAddStr(pendingrelgroupArgs, PS_LIST_TAIL, "-label", PS_META_DUPLICATE_OK,  "search by relGroup.label", NULL);
     233    psMetadataAddS32(pendingrelgroupArgs, PS_LIST_TAIL, "-rel_id", 0,      "select by release ID", 0);
     234    psMetadataAddS32(pendingrelgroupArgs, PS_LIST_TAIL, "-group_id", 0,    "select by relGroup ID", 0);
     235    psMetadataAddStr(pendingrelgroupArgs, PS_LIST_TAIL, "-release_name", 0, "select by release name", 0);
     236    psMetadataAddBool(pendingrelgroupArgs, PS_LIST_TAIL, "-simple",  0, "use the simple output format", false);
     237    psMetadataAddU64(pendingrelgroupArgs, PS_LIST_TAIL,  "-limit",       0, "limit result set to N items", 0);
     238   
     239    // -updaterelgroup
     240    psMetadata *updaterelgroupArgs = psMetadataAlloc();
     241
     242        // set the target release
     243    psMetadataAddS32(updaterelgroupArgs,  PS_LIST_TAIL, "-group_id", 0,   "select by group ID (required)", 0);
     244
     245        // parameters of the relGroup
     246    psMetadataAddStr(updaterelgroupArgs,  PS_LIST_TAIL, "-set_state", 0,  "define state", NULL);
     247    psMetadataAddStr(updaterelgroupArgs,  PS_LIST_TAIL, "-set_exp_list_path", 0, "define path in exposure list", NULL);
     248    psMetadataAddStr(updaterelgroupArgs,  PS_LIST_TAIL, "-set_label", 0,  "define relgroup label", NULL);
     249    psMetadataAddS16(updaterelgroupArgs,  PS_LIST_TAIL, "-set_fault", 0,  "define fault", 0);
     250    psMetadataAddBool(updaterelgroupArgs, PS_LIST_TAIL, "-clearfault",  0, "set fault to zero", false);
     251
     252    psMetadata *listrelgroupArgs = psMetadataAlloc();
     253    psMetadataAddS32(listrelgroupArgs,  PS_LIST_TAIL, "-group_id", 0,   "select by group ID", 0);
     254    psMetadataAddS32(listrelgroupArgs,  PS_LIST_TAIL, "-rel_id", 0,   "select by release ID", 0);
     255    psMetadataAddStr(listrelgroupArgs, PS_LIST_TAIL,  "-release_name", 0, "select by release name", 0);
     256
     257    // ******************************************************************
     258
    157259    psMetadata *argSets = psMetadataAlloc();
    158260    psMetadata *modes = psMetadataAlloc();
     
    160262    PXOPT_ADD_MODE("-definesurvey",     "define a survey",              RELEASETOOL_MODE_DEFINESURVEY,  definesurveyArgs);
    161263    PXOPT_ADD_MODE("-listsurvey",       "list skycell parameters",      RELEASETOOL_MODE_LISTSURVEY,    listsurveyArgs);
     264
    162265    PXOPT_ADD_MODE("-definerelease",    "define a release",             RELEASETOOL_MODE_DEFINERELEASE, definereleaseArgs);
    163266    PXOPT_ADD_MODE("-updaterelease",    "update a release",             RELEASETOOL_MODE_UPDATERELEASE, updatereleaseArgs);
    164267    PXOPT_ADD_MODE("-listrelease",      "list releases",                RELEASETOOL_MODE_LISTRELEASE,   listreleaseArgs);
     268
    165269    PXOPT_ADD_MODE("-definerelexp",     "define a released exposure",   RELEASETOOL_MODE_DEFINERELEXP,  definerelexpArgs);
    166270    PXOPT_ADD_MODE("-updaterelexp",     "update a released exposure",   RELEASETOOL_MODE_UPDATERELEXP,  updaterelexpArgs);
     271    PXOPT_ADD_MODE("-tocalibexp",       "list relExps pending calibration",  RELEASETOOL_MODE_TOCALIBEXP,  tocalibexpArgs);
    167272    PXOPT_ADD_MODE("-listrelexp",       "list released exposures",      RELEASETOOL_MODE_LISTRELEXP,    listrelexpArgs);
     273
     274    PXOPT_ADD_MODE("-definerelstack",     "define a released stack",    RELEASETOOL_MODE_DEFINERELSTACK,  definerelstackArgs);
     275
     276    PXOPT_ADD_MODE("-definerelgroup",     "define a group of exposures", RELEASETOOL_MODE_DEFINERELGROUP,  definerelgroupArgs);
     277    PXOPT_ADD_MODE("-pendingrelgroup",     "list relGroups pending processing",    RELEASETOOL_MODE_PENDINGRELGROUP,  pendingrelgroupArgs);
     278    PXOPT_ADD_MODE("-updaterelgroup",     "update a relGroup",          RELEASETOOL_MODE_UPDATERELGROUP,  updaterelgroupArgs);
     279    PXOPT_ADD_MODE("-listrelgroup",     "define a group of exposures", RELEASETOOL_MODE_LISTRELGROUP,  listrelgroupArgs);
     280
     281
    168282
    169283    if (!pxGetOptions(stderr, argc, argv, config, modes, argSets)) {
  • branches/eam_branches/ipp-20130207/ippTools/src/staticskytool.c

    r35120 r35236  
    12811281    PXOPT_LOOKUP_F32(zpt_obs, config->args,   "-zpt_obs", false, false);
    12821282    PXOPT_LOOKUP_F32(zpt_stdev, config->args, "-zpt_stdev", false, false);
     1283    PXOPT_LOOKUP_F32(fwhm_major, config->args, "-fwhm_major", false, false);
     1284    PXOPT_LOOKUP_F32(fwhm_minor, config->args, "-fwhm_minor", false, false);
    12831285
    12841286
     
    13341336        zpt_obs,
    13351337        zpt_stdev,
     1338        fwhm_major,
     1339        fwhm_minor,
    13361340        quality,
    13371341        software_ver,
  • branches/eam_branches/ipp-20130207/ippTools/src/staticskytoolConfig.c

    r35120 r35236  
    211211    psMetadataAddF32(addskycalresultArgs, PS_LIST_TAIL, "-sigma_ra", 0,            "define exposure E ra", NAN);
    212212    psMetadataAddF32(addskycalresultArgs, PS_LIST_TAIL, "-sigma_dec", 0,            "define exposure E dec", NAN);
    213     psMetadataAddF32(addskycalresultArgs, PS_LIST_TAIL, "-zpt_obs", 0,   "define observed zero point", 0);
    214     psMetadataAddF32(addskycalresultArgs, PS_LIST_TAIL, "-zpt_stdev", 0,   "define observed zero point stdandard deviation", 0);
     213    psMetadataAddF32(addskycalresultArgs, PS_LIST_TAIL, "-zpt_obs", 0,   "define observed zero point", NAN);
     214    psMetadataAddF32(addskycalresultArgs, PS_LIST_TAIL, "-zpt_stdev", 0,   "define observed zero point stdandard deviation", NAN);
     215    psMetadataAddF32(addskycalresultArgs, PS_LIST_TAIL, "-fwhm_major", 0,   "define fwhm (major axis; pixels)", NAN);
     216    psMetadataAddF32(addskycalresultArgs, PS_LIST_TAIL, "-fwhm_minor", 0,   "define fwhm (minor axis; pixels)", NAN);
    215217
    216218    psMetadataAddF32(addskycalresultArgs, PS_LIST_TAIL, "-dtime_script", 0, "define elapsed time in script (seconds)", NAN);
  • branches/eam_branches/ipp-20130207/ippconfig

  • branches/eam_branches/ipp-20130207/ippconfig/dvo.photcodes

    r33642 r35236  
    2020# PS1 ISP:  g: 3200,      r: 3300,      i: 3400,      z: 3500,      y: 3600
    2121# PS1 TC3:  g: 3280-3296, r: 3380-3396, i: 3480-3496, z: 3580-3596, y: 3680-3696,
    22 # PS1 GPC1: g: 3201-3264, r: 3301-3364, i: 3401-3464, z: 3501-3564, y: 3601-3664
     22# PS1 GPC1: g: 3201-3264, r: 3301-3364, i: 3401-3464, z: 3501-3564, y: 3601-3664, w: 3201-3464
    2323
    2424# NOTE 2012.03.30 EAM : I have added 'poor' and 'bad' bitsets for GPC1 data using psphot
     
    3737  7     H                    sec   0.000  0.000 0.000     -     - 0.0000     0  2012   0.000 0.000 0.000  0.000   0x0000 0x0000  0x0000 0x0000
    3838  8     K                    sec   0.000  0.000 0.000     -     - 0.0000     0  2013   0.000 0.000 0.000  0.000   0x0000 0x0000  0x0000 0x0000
     39  9     w                    sec   0.000  0.000 0.000     -     - 0.0000     0     -   0.000 0.000 0.000  0.000   0x0000 0x0000  0x0000 0x0000
    3940
    4041  1010  U_L92                ref   0.000  0.000 0.000     -     - 0.0000     0     -   0.000 0.000 0.000  0.000   0x0000 0x0000  0x0000 0x0000
     
    835836  10475 GPC1.y.XY75          dep  23.320 -0.073 0.000     -     - 0.0000     0     5   0.015 0.000 1.000  0.000   0x0000 0x0000  0xe0440130 0x1003bc88
    836837  10476 GPC1.y.XY76          dep  23.320 -0.073 0.000     -     - 0.0000     0     5   0.015 0.000 1.000  0.000   0x0000 0x0000  0xe0440130 0x1003bc88
     838  10501 GPC1.w.XY01          dep  25.000  0.000 0.000     -     - 0.0000     0     9   0.015 0.000 1.000  0.000   0x0000 0x0000  0xe0440130 0x1003bc88
     839  10502 GPC1.w.XY02          dep  25.000  0.000 0.000     -     - 0.0000     0     9   0.015 0.000 1.000  0.000   0x0000 0x0000  0xe0440130 0x1003bc88
     840  10503 GPC1.w.XY03          dep  25.000  0.000 0.000     -     - 0.0000     0     9   0.015 0.000 1.000  0.000   0x0000 0x0000  0xe0440130 0x1003bc88
     841  10504 GPC1.w.XY04          dep  25.000  0.000 0.000     -     - 0.0000     0     9   0.015 0.000 1.000  0.000   0x0000 0x0000  0xe0440130 0x1003bc88
     842  10505 GPC1.w.XY05          dep  25.000  0.000 0.000     -     - 0.0000     0     9   0.015 0.000 1.000  0.000   0x0000 0x0000  0xe0440130 0x1003bc88
     843  10506 GPC1.w.XY06          dep  25.000  0.000 0.000     -     - 0.0000     0     9   0.015 0.000 1.000  0.000   0x0000 0x0000  0xe0440130 0x1003bc88
     844  10510 GPC1.w.XY10          dep  25.000  0.000 0.000     -     - 0.0000     0     9   0.015 0.000 1.000  0.000   0x0000 0x0000  0xe0440130 0x1003bc88
     845  10511 GPC1.w.XY11          dep  25.000  0.000 0.000     -     - 0.0000     0     9   0.015 0.000 1.000  0.000   0x0000 0x0000  0xe0440130 0x1003bc88
     846  10512 GPC1.w.XY12          dep  25.000  0.000 0.000     -     - 0.0000     0     9   0.015 0.000 1.000  0.000   0x0000 0x0000  0xe0440130 0x1003bc88
     847  10513 GPC1.w.XY13          dep  25.000  0.000 0.000     -     - 0.0000     0     9   0.015 0.000 1.000  0.000   0x0000 0x0000  0xe0440130 0x1003bc88
     848  10514 GPC1.w.XY14          dep  25.000  0.000 0.000     -     - 0.0000     0     9   0.015 0.000 1.000  0.000   0x0000 0x0000  0xe0440130 0x1003bc88
     849  10515 GPC1.w.XY15          dep  25.000  0.000 0.000     -     - 0.0000     0     9   0.015 0.000 1.000  0.000   0x0000 0x0000  0xe0440130 0x1003bc88
     850  10516 GPC1.w.XY16          dep  25.000  0.000 0.000     -     - 0.0000     0     9   0.015 0.000 1.000  0.000   0x0000 0x0000  0xe0440130 0x1003bc88
     851  10517 GPC1.w.XY17          dep  25.000  0.000 0.000     -     - 0.0000     0     9   0.015 0.000 1.000  0.000   0x0000 0x0000  0xe0440130 0x1003bc88
     852  10520 GPC1.w.XY20          dep  25.000  0.000 0.000     -     - 0.0000     0     9   0.015 0.000 1.000  0.000   0x0000 0x0000  0xe0440130 0x1003bc88
     853  10521 GPC1.w.XY21          dep  25.000  0.000 0.000     -     - 0.0000     0     9   0.015 0.000 1.000  0.000   0x0000 0x0000  0xe0440130 0x1003bc88
     854  10522 GPC1.w.XY22          dep  25.000  0.000 0.000     -     - 0.0000     0     9   0.015 0.000 1.000  0.000   0x0000 0x0000  0xe0440130 0x1003bc88
     855  10523 GPC1.w.XY23          dep  25.000  0.000 0.000     -     - 0.0000     0     9   0.015 0.000 1.000  0.000   0x0000 0x0000  0xe0440130 0x1003bc88
     856  10524 GPC1.w.XY24          dep  25.000  0.000 0.000     -     - 0.0000     0     9   0.015 0.000 1.000  0.000   0x0000 0x0000  0xe0440130 0x1003bc88
     857  10525 GPC1.w.XY25          dep  25.000  0.000 0.000     -     - 0.0000     0     9   0.015 0.000 1.000  0.000   0x0000 0x0000  0xe0440130 0x1003bc88
     858  10526 GPC1.w.XY26          dep  25.000  0.000 0.000     -     - 0.0000     0     9   0.015 0.000 1.000  0.000   0x0000 0x0000  0xe0440130 0x1003bc88
     859  10527 GPC1.w.XY27          dep  25.000  0.000 0.000     -     - 0.0000     0     9   0.015 0.000 1.000  0.000   0x0000 0x0000  0xe0440130 0x1003bc88
     860  10530 GPC1.w.XY30          dep  25.000  0.000 0.000     -     - 0.0000     0     9   0.015 0.000 1.000  0.000   0x0000 0x0000  0xe0440130 0x1003bc88
     861  10531 GPC1.w.XY31          dep  25.000  0.000 0.000     -     - 0.0000     0     9   0.015 0.000 1.000  0.000   0x0000 0x0000  0xe0440130 0x1003bc88
     862  10532 GPC1.w.XY32          dep  25.000  0.000 0.000     -     - 0.0000     0     9   0.015 0.000 1.000  0.000   0x0000 0x0000  0xe0440130 0x1003bc88
     863  10533 GPC1.w.XY33          dep  25.000  0.000 0.000     -     - 0.0000     0     9   0.015 0.000 1.000  0.000   0x0000 0x0000  0xe0440130 0x1003bc88
     864  10534 GPC1.w.XY34          dep  25.000  0.000 0.000     -     - 0.0000     0     9   0.015 0.000 1.000  0.000   0x0000 0x0000  0xe0440130 0x1003bc88
     865  10535 GPC1.w.XY35          dep  25.000  0.000 0.000     -     - 0.0000     0     9   0.015 0.000 1.000  0.000   0x0000 0x0000  0xe0440130 0x1003bc88
     866  10536 GPC1.w.XY36          dep  25.000  0.000 0.000     -     - 0.0000     0     9   0.015 0.000 1.000  0.000   0x0000 0x0000  0xe0440130 0x1003bc88
     867  10537 GPC1.w.XY37          dep  25.000  0.000 0.000     -     - 0.0000     0     9   0.015 0.000 1.000  0.000   0x0000 0x0000  0xe0440130 0x1003bc88
     868  10540 GPC1.w.XY40          dep  25.000  0.000 0.000     -     - 0.0000     0     9   0.015 0.000 1.000  0.000   0x0000 0x0000  0xe0440130 0x1003bc88
     869  10541 GPC1.w.XY41          dep  25.000  0.000 0.000     -     - 0.0000     0     9   0.015 0.000 1.000  0.000   0x0000 0x0000  0xe0440130 0x1003bc88
     870  10542 GPC1.w.XY42          dep  25.000  0.000 0.000     -     - 0.0000     0     9   0.015 0.000 1.000  0.000   0x0000 0x0000  0xe0440130 0x1003bc88
     871  10543 GPC1.w.XY43          dep  25.000  0.000 0.000     -     - 0.0000     0     9   0.015 0.000 1.000  0.000   0x0000 0x0000  0xe0440130 0x1003bc88
     872  10544 GPC1.w.XY44          dep  25.000  0.000 0.000     -     - 0.0000     0     9   0.015 0.000 1.000  0.000   0x0000 0x0000  0xe0440130 0x1003bc88
     873  10545 GPC1.w.XY45          dep  25.000  0.000 0.000     -     - 0.0000     0     9   0.015 0.000 1.000  0.000   0x0000 0x0000  0xe0440130 0x1003bc88
     874  10546 GPC1.w.XY46          dep  25.000  0.000 0.000     -     - 0.0000     0     9   0.015 0.000 1.000  0.000   0x0000 0x0000  0xe0440130 0x1003bc88
     875  10547 GPC1.w.XY47          dep  25.000  0.000 0.000     -     - 0.0000     0     9   0.015 0.000 1.000  0.000   0x0000 0x0000  0xe0440130 0x1003bc88
     876  10550 GPC1.w.XY50          dep  25.000  0.000 0.000     -     - 0.0000     0     9   0.015 0.000 1.000  0.000   0x0000 0x0000  0xe0440130 0x1003bc88
     877  10551 GPC1.w.XY51          dep  25.000  0.000 0.000     -     - 0.0000     0     9   0.015 0.000 1.000  0.000   0x0000 0x0000  0xe0440130 0x1003bc88
     878  10552 GPC1.w.XY52          dep  25.000  0.000 0.000     -     - 0.0000     0     9   0.015 0.000 1.000  0.000   0x0000 0x0000  0xe0440130 0x1003bc88
     879  10553 GPC1.w.XY53          dep  25.000  0.000 0.000     -     - 0.0000     0     9   0.015 0.000 1.000  0.000   0x0000 0x0000  0xe0440130 0x1003bc88
     880  10554 GPC1.w.XY54          dep  25.000  0.000 0.000     -     - 0.0000     0     9   0.015 0.000 1.000  0.000   0x0000 0x0000  0xe0440130 0x1003bc88
     881  10555 GPC1.w.XY55          dep  25.000  0.000 0.000     -     - 0.0000     0     9   0.015 0.000 1.000  0.000   0x0000 0x0000  0xe0440130 0x1003bc88
     882  10556 GPC1.w.XY56          dep  25.000  0.000 0.000     -     - 0.0000     0     9   0.015 0.000 1.000  0.000   0x0000 0x0000  0xe0440130 0x1003bc88
     883  10557 GPC1.w.XY57          dep  25.000  0.000 0.000     -     - 0.0000     0     9   0.015 0.000 1.000  0.000   0x0000 0x0000  0xe0440130 0x1003bc88
     884  10560 GPC1.w.XY60          dep  25.000  0.000 0.000     -     - 0.0000     0     9   0.015 0.000 1.000  0.000   0x0000 0x0000  0xe0440130 0x1003bc88
     885  10561 GPC1.w.XY61          dep  25.000  0.000 0.000     -     - 0.0000     0     9   0.015 0.000 1.000  0.000   0x0000 0x0000  0xe0440130 0x1003bc88
     886  10562 GPC1.w.XY62          dep  25.000  0.000 0.000     -     - 0.0000     0     9   0.015 0.000 1.000  0.000   0x0000 0x0000  0xe0440130 0x1003bc88
     887  10563 GPC1.w.XY63          dep  25.000  0.000 0.000     -     - 0.0000     0     9   0.015 0.000 1.000  0.000   0x0000 0x0000  0xe0440130 0x1003bc88
     888  10564 GPC1.w.XY64          dep  25.000  0.000 0.000     -     - 0.0000     0     9   0.015 0.000 1.000  0.000   0x0000 0x0000  0xe0440130 0x1003bc88
     889  10565 GPC1.w.XY65          dep  25.000  0.000 0.000     -     - 0.0000     0     9   0.015 0.000 1.000  0.000   0x0000 0x0000  0xe0440130 0x1003bc88
     890  10566 GPC1.w.XY66          dep  25.000  0.000 0.000     -     - 0.0000     0     9   0.015 0.000 1.000  0.000   0x0000 0x0000  0xe0440130 0x1003bc88
     891  10567 GPC1.w.XY67          dep  25.000  0.000 0.000     -     - 0.0000     0     9   0.015 0.000 1.000  0.000   0x0000 0x0000  0xe0440130 0x1003bc88
     892  10571 GPC1.w.XY71          dep  25.000  0.000 0.000     -     - 0.0000     0     9   0.015 0.000 1.000  0.000   0x0000 0x0000  0xe0440130 0x1003bc88
     893  10572 GPC1.w.XY72          dep  25.000  0.000 0.000     -     - 0.0000     0     9   0.015 0.000 1.000  0.000   0x0000 0x0000  0xe0440130 0x1003bc88
     894  10573 GPC1.w.XY73          dep  25.000  0.000 0.000     -     - 0.0000     0     9   0.015 0.000 1.000  0.000   0x0000 0x0000  0xe0440130 0x1003bc88
     895  10574 GPC1.w.XY74          dep  25.000  0.000 0.000     -     - 0.0000     0     9   0.015 0.000 1.000  0.000   0x0000 0x0000  0xe0440130 0x1003bc88
     896  10575 GPC1.w.XY75          dep  25.000  0.000 0.000     -     - 0.0000     0     9   0.015 0.000 1.000  0.000   0x0000 0x0000  0xe0440130 0x1003bc88
     897  10576 GPC1.w.XY76          dep  25.000  0.000 0.000     -     - 0.0000     0     9   0.015 0.000 1.000  0.000   0x0000 0x0000  0xe0440130 0x1003bc88
    837898  11000 GPC1.g.SkyChip       dep  25.000  0.000 0.000     -     - 0.0000     0     1   0.000 0.000 0.000  0.000   0x0000 0x0000  0x0000 0x0000
    838899  11100 GPC1.r.SkyChip       dep  25.000  0.000 0.000     -     - 0.0000     0     2   0.000 0.000 0.000  0.000   0x0000 0x0000  0x0000 0x0000
     
    840901  11300 GPC1.z.SkyChip       dep  25.000  0.000 0.000     -     - 0.0000     0     4   0.000 0.000 0.000  0.000   0x0000 0x0000  0x0000 0x0000
    841902  11400 GPC1.y.SkyChip       dep  25.000  0.000 0.000     -     - 0.0000     0     5   0.000 0.000 0.000  0.000   0x0000 0x0000  0x0000 0x0000
     903  11500 GPC1.w.SkyChip       dep  25.000  0.000 0.000     -     - 0.0000     0     9   0.000 0.000 0.000  0.000   0x0000 0x0000  0x0000 0x0000
    842904  160   MOSAIC2.B.00         dep  25.107  0.000 0.000     -     - 0.0000     0     1   0.000 0.000 1.000  0.000   0x0000 0x3888  0x0000 0x0000
    843905  161   MOSAIC2.B.01         dep  25.120  0.000 0.000     -     - 0.0000     0     1   0.000 0.000 1.000  0.000   0x0000 0x3888  0x0000 0x0000
  • branches/eam_branches/ipp-20130207/ippconfig/gpc1/psphot.config

    r35038 r35236  
    4848  BACKGROUND.YBIN                   S32  32            # size of background superpixels
    4949  DIFF_STATS                        BOOL TRUE          # Calculate diff-specific stats
    50   OUTPUT.FORMAT                     STR  PS1_DV2       # Format of output file
     50  OUTPUT.FORMAT                     STR  PS1_DV3       # Format of output file
    5151
    5252  PSPHOT.EXT.NSIGMA.LIMIT           F32  0.0
     
    5656  PSPHOT.EXT.FIT.ALL.SOURCES        BOOL TRUE
    5757  PSPHOT.EXT.FIT.ALL.THRESH         F32  1000
     58# Lower threshold as requested by MOPS
     59  EXTENDED_SOURCE_MODELS METADATA
     60    TYPE      EXTENDED_SOURCE_MODEL  MODEL            SNLIM   PSF_CONVOLVED
     61    TRAIL_RAW EXTENDED_SOURCE_MODEL  PS_MODEL_TRAIL   4.75    FALSE
     62  END
    5863END
    5964
     
    6570  PSPHOT.EXT.FIT.ALL.SOURCES        BOOL TRUE
    6671  PSPHOT.EXT.FIT.ALL.THRESH         F32  1000
     72# Lower threshold as requested by MOPS
     73  EXTENDED_SOURCE_MODELS METADATA
     74    TYPE      EXTENDED_SOURCE_MODEL  MODEL            SNLIM   PSF_CONVOLVED
     75    TRAIL_RAW EXTENDED_SOURCE_MODEL  PS_MODEL_TRAIL   4.75    FALSE
     76  END
    6777END
    6878
  • branches/eam_branches/ipp-20130207/ippconfig/recipes/ppStats.config

    r34793 r35236  
    358358  ANALYSIS      STR     MASKFRAC_NPIX
    359359END
     360
     361# stats for sky calibration (astrometry, summary stats)
     362SKYCALSTATS     METADATA
     363  HEADER        MULTI
     364  HEADER        STR     CERROR
     365  HEADER        STR     DT_ASTR  # elapsed time in astrometry processing
     366  HEADER        STR     NASTRO
     367
     368  HEADER        STR     ZPT_OBS
     369  HEADER        STR     ZPT_ERR
     370  HEADER        STR     FWHM_MAJ
     371  HEADER        STR     FWHM_MIN
     372
     373  HEADER        STR     PSLIB_V
     374  HEADER        STR     MODULE_V
     375  HEADER        STR     PHOT_V
     376  HEADER        STR     ASTRO_V
     377  HEADER        STR     STATS_V
     378  HEADER        STR     IMAGE_V
     379  HEADER        STR     STREAK_V
     380 
     381  HEADER        STR     NDET            # sources->n
     382  HEADER        STR     NDET_EXT
     383  HEADER        STR     NDET_FRC
     384
     385  ANALYSIS      MULTI   # metadata blocks to search in chip/cell/readout->analysis
     386  ANALYSIS      STR     PSPHOT.HEADER
     387  ANALYSIS      STR     PSASTRO.HEADER
     388
     389  ANALYSIS      STR     MASKFRAC_REF_STATIC
     390  ANALYSIS      STR     MASKFRAC_REF_MAGIC
     391  ANALYSIS      STR     MASKFRAC_REF_ADVISORY
     392  ANALYSIS      STR     MASKFRAC_REF_DYNAMIC
     393  ANALYSIS      STR     MASKFRAC_REF_NPIX
     394
     395  ANALYSIS      STR     MASKFRAC_MAX_STATIC
     396  ANALYSIS      STR     MASKFRAC_MAX_MAGIC
     397  ANALYSIS      STR     MASKFRAC_MAX_ADVISORY
     398  ANALYSIS      STR     MASKFRAC_MAX_DYNAMIC
     399  ANALYSIS      STR     MASKFRAC_MAX_NPIX
     400END
  • branches/eam_branches/ipp-20130207/ippconfig/recipes/ppStatsFromMetadata.config

    r34793 r35236  
    337337
    338338
     339BACKGROUND_CHIP METADATA
     340  ENTRY MULTI
     341  TYPE   VAL  KEYWORD             TYPE STATISTIC         FLAG
     342  ENTRY  VAL  QUALITY             S32  CONSTANT          -quality             # Bad quality flag
     343
     344  # Revision values
     345  ENTRY  VAL  PSLIB_V             STR  CONSTANT         -ver_pslib
     346  ENTRY  VAL  MODULE_V            STR  CONSTANT         -ver_psmodules
     347  ENTRY  VAL  STATS_V             STR  CONSTANT         -ver_ppstats
     348
     349END
     350
    339351BACKGROUND_WARP METADATA
    340352  ENTRY MULTI
     
    550562  ENTRY  VAL  ZPT_OBS             F32  CONSTANT         -zpt_obs
    551563  ENTRY  VAL  ZPT_ERR             F32  CONSTANT         -zpt_stdev
     564  # don't know why these come out as F64 instead of F32
     565  ENTRY  VAL  FWHM_MAJ            F64  CONSTANT         -fhwm_major
     566  ENTRY  VAL  FWHM_MIN            F64  CONSTANT         -fhwm_minor
    552567
    553568  ENTRY  VAL  QUALITY             S32  CONSTANT          -quality             # Bad quality flag
  • branches/eam_branches/ipp-20130207/ippconfig/recipes/ppSub.config

    • Property svn:mergeinfo changed (with no actual effect on merging)
  • branches/eam_branches/ipp-20130207/ippconfig/recipes/psphot.config

    • Property svn:mergeinfo changed (with no actual effect on merging)
  • branches/eam_branches/ipp-20130207/ippconfig/recipes/reductionClasses.mdc

    • Property svn:mergeinfo changed (with no actual effect on merging)
  • branches/eam_branches/ipp-20130207/ppImage/src

    • Property svn:mergeinfo changed (with no actual effect on merging)
  • branches/eam_branches/ipp-20130207/ppStack/src/ppStackCamera.c

    r35081 r35236  
    4848    bool convolve = psMetadataLookupBool(NULL, recipe, "CONVOLVE"); // Convolve images before stack?
    4949    bool doBackground = psMetadataLookupBool(NULL, recipe, "BACKGROUND.MODEL");
    50    
     50    //    fprintf(stderr,"ppSC: %d\n",doBackground);   
    5151    psArray *runImages = pmFPAfileDefineMultipleFromRun(&status, NULL, config,
    5252                                                        "PPSTACK.INPUT"); // Input images from previous run
     
    218218
    219219            // Grab bkgmodel information here
    220             if (doBackground) {
    221               if (!bkgmodel ||  strlen(bkgmodel) == 0) {
     220           
     221            //      if (doBackground) {
     222              if ((!bkgmodel) || (strlen(bkgmodel) == 0)) {
    222223                // We have no background models.
     224                //              fprintf(stderr,"No backgrounds specified, resettting recipe value.\n");
     225                doBackground = false;
     226                psMetadataAddBool(recipe, PS_LIST_TAIL, "BACKGROUND.MODEL", PS_META_REPLACE,
     227                                  "Do photometry on stacked image?", false);
     228
    223229              }
    224230              else {
     
    227233                if (!inputBKG) {
    228234                  // We failed to generate an pmFPAfile, so disable the background construction and continue.
     235                  //              fprintf(stderr,"No backgrounds specified, resettting recipe value.\n");
    229236                  doBackground = false;
    230237                  psMetadataAddBool(recipe, PS_LIST_TAIL, "BACKGROUND.MODEL", PS_META_REPLACE,
     
    238245                }
    239246              }// End bkgmodel
    240             }
     247              //            }
    241248
    242249
  • branches/eam_branches/ipp-20130207/ppStack/src/ppStackCombineAlternate.c

    r35081 r35236  
    8888  }
    8989
     90  if (!ppStackLinearScale(inputs, config)) {
     91    psFree(inputs);
     92    return(false);
     93  }
    9094
    9195  // Do combination
  • branches/eam_branches/ipp-20130207/ppStack/src/ppStackLoop.c

    r34860 r35236  
    6363    }
    6464
    65     bool doBackground = psMetadataLookupBool(NULL, recipe, "BACKGROUND.MODEL");
     65    //    bool doBackground = psMetadataLookupBool(NULL, recipe, "BACKGROUND.MODEL");
    6666
    6767    // Prepare for combination
    68     if (!ppStackCombinePrepare("PPSTACK.OUTPUT", "PPSTACK.OUTPUT.EXP", doBackground ? "PPSTACK.OUTPUT.BKGMODEL" : NULL, PPSTACK_FILES_STACK, stack, options, config)) {
     68    if (!ppStackCombinePrepare("PPSTACK.OUTPUT", "PPSTACK.OUTPUT.EXP", options->doBackground ? "PPSTACK.OUTPUT.BKGMODEL" : NULL, PPSTACK_FILES_STACK, stack, options, config)) {
    6969        psError(psErrorCodeLast(), false, "Unable to prepare for combination.");
    7070        psFree(stack);
     
    146146
    147147    // Generate median background stack here.
    148     if (doBackground && !ppStackCombineBackground(stack, options, config)) {
     148    if (options->doBackground && !ppStackCombineBackground(stack, options, config)) {
    149149      psError(psErrorCodeLast(), false, "Unable to generate median of background images.");
    150150      psFree(stack);
  • branches/eam_branches/ipp-20130207/ppStack/src/ppStackOptions.c

    r34092 r35236  
    4343    options->matchZPs = true;
    4444    options->photometry = false;
     45    options->doBackground = false;
    4546    options->stats = NULL;
    4647    options->statsFile = NULL;
  • branches/eam_branches/ipp-20130207/ppStack/src/ppStackOptions.h

    r34800 r35236  
    88    bool matchZPs;                      // Adjust relative fluxes based on transparency analysis?
    99    bool photometry;                    // Perform photometry?
     10    bool doBackground;                  // Do background model combination?
    1011    psMetadata *stats;                  // Statistics for output
    1112    FILE *statsFile;                    // File to which to write statistics
  • branches/eam_branches/ipp-20130207/ppStack/src/ppStackSetup.c

    r34800 r35236  
    1717
    1818    options->convolve = psMetadataLookupBool(NULL, recipe, "CONVOLVE"); // Convolve images?
     19    options->doBackground = psMetadataLookupBool(NULL, recipe, "BACKGROUND.MODEL");
     20
    1921    if (!psMetadataLookupBool(NULL, config->arguments, "HAVE.PSF")) {
    2022        psWarning("No PSFs provided --- unable to convolve to common PSF.");
  • branches/eam_branches/ipp-20130207/psLib/src/imageops/psImageInterpolate.c

    r34938 r35236  
    4747                             4,    // LANCZOS2
    4848                             6,    // LANCZOS3
    49                              8     // LANCZOS4
     49                             8,    // LANCZOS4
     50                             2     // BILINEAR_SIMPLE
    5051};
    5152
  • branches/eam_branches/ipp-20130207/psModules

  • branches/eam_branches/ipp-20130207/psModules/src/imcombine/pmStack.c

    r35082 r35236  
    14181418      }
    14191419      combined->image->data.F32[y][x] = stats->robustMedian;
    1420       combined->mask->data.PS_TYPE_IMAGE_MASK_DATA[y][x] = 0;
     1420      if (combined->mask) {
     1421        combined->mask->data.PS_TYPE_IMAGE_MASK_DATA[y][x] = 0;
     1422      }
    14211423#if (0)
    14221424      if ((x == 59)&&(y > 40)&&(y < 50)) {
  • branches/eam_branches/ipp-20130207/psModules/src/objects/models/pmModel_TRAIL.c

    r34403 r35236  
    256256    if (!isfinite(axes.theta)) return false;
    257257
    258     float size = (axes.major > source->moments->Mrf) ? axes.major : source->moments->Mrf;
     258    float size = (axes.major > sqrt(source->moments->Mrf)) ? axes.major : sqrt(source->moments->Mrf);
     259    //    if (size > psfAxes.major) { size -= psfAxes.major; }
     260    //else { size = psfAxes.major; }
    259261
    260262    // axes.major is a sigma in the major direction; scale to
  • branches/eam_branches/ipp-20130207/psconfig

    • Property svn:mergeinfo changed (with no actual effect on merging)
  • branches/eam_branches/ipp-20130207/psphot

  • branches/eam_branches/ipp-20130207/psphot/src

  • branches/eam_branches/ipp-20130207/psphot/src/psphotSourceSize.c

    r35038 r35236  
    423423    psLogMsg("psModules.objects", PS_LOG_INFO, "Source Size classifications: %4s %4s %4s %4s %4s", "Npsf", "Next", "Nsat", "Ncr", "Nskip");
    424424    // Determine if this readout is above the threshold to ext fit all sources
     425    options->extFitAllReadout = false;
    425426    if (options->extFitAll) {
    426427      float maskFrac = psMetadataLookupF32(&status,readout->analysis,"READOUT.MASK.FRAC");
     
    584585        // the EXT_LIMIT flag
    585586        if (options->extFitAllReadout) {
     587          psTrace("psphotSourceClassRegion.EXTALT",10,"In extFitAll: %d %d\n",options->extFitAll,options->extFitAllReadout);
    586588          source->mode |= PM_SOURCE_MODE_EXT_LIMIT;
    587589        }
  • branches/eam_branches/ipp-20130207/psphot/src/psphotStackImageLoop.c

    • Property svn:mergeinfo changed (with no actual effect on merging)
  • branches/eam_branches/ipp-20130207/pstamp/scripts

    • Property svn:mergeinfo changed (with no actual effect on merging)
  • branches/eam_branches/ipp-20130207/psvideophot

    • Property svn:mergeinfo changed (with no actual effect on merging)
  • branches/eam_branches/ipp-20130207/tools/fixburntool

    r34591 r35236  
    106106
    107107{
    108     my $command = "$burntool --continue 10 --exp_id $exp_id --class_id $class_id --this_uri $uri --previous_uri $prev_uri";
     108    my $command = "$burntool --exp_id $exp_id --class_id $class_id --this_uri $uri --previous_uri $prev_uri";
    109109    print "$command\n";
    110110    my ( $success, $error_code, $full_buf, $stdout_buf, $stderr_buf ) =
Note: See TracChangeset for help on using the changeset viewer.