IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
May 1, 2013, 3:50:22 PM (13 years ago)
Author:
bills
Message:

changes to implement fwhm cuts and to support selection by stack_type

File:
1 edited

Legend:

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

    r35433 r35467  
    5151
    5252my $default_data_groups = "";
     53
     54# old locate_images() function. Still used by dqueryparse
     55# Postage stamp server now uses locate_images_for_row()
    5356
    5457sub locate_images {
     
    172175    my $results = lookup($ipprc, $rowList, $imagedb, $req_type, $stage, $id, $tess_id, $component,
    173176        $need_magic, $dateobs_begin, $dateobs_end, $filter, $data_group, $option_mask, $mjd_min, $mjd_max,
     177        0, 0,   # fwhm cuts are not applied here
    174178        undef, undef, undef, $verbose);
    175179
     
    250254    }
    251255
    252     my ($release_name, $survey) = get_release_info($row);
     256    my ($release_name, $survey, $default_tess_id) = get_release_info($row);
     257    if (!$tess_id and $default_tess_id) {
     258        $tess_id = $default_tess_id;
     259    }
    253260
    254261    if ($req_type eq "bydiff") {
     
    304311    my $results = lookup($ipprc, $rowList, $imagedb, $req_type, $stage, $id, $tess_id, $component,
    305312        0, $dateobs_begin, $dateobs_end, $filter, $data_group, $option_mask, $mjd_min, $mjd_max,
     313        getValOrZero($row->{FWHM_MIN}), getValOrZero($row->{FWHM_MAX}),
    306314        undef, $release_name, $survey,
    307315        $verbose);
     
    330338    my $mjd_min = shift;
    331339    my $mjd_max = shift;
     340    my $fwhm_min = shift;
     341    my $fwhm_max = shift;
    332342    my $selectedAstrom = shift;
    333343    my $release_name = shift;
     
    365375    my $release_args;
    366376    if (($req_type eq 'byexp' and $stage ne 'raw') or ($req_type eq 'byskycell' and $stage ne 'diff')) {
    367         unless (isnull($release_name) and isnull($survey)) {
     377        if ($release_name or $survey) {
    368378            $use_releasetool = 1;
    369             $release_args = " -release_name $release_name" if $release_name;
     379            if ($release_name) {
     380                $release_args = " -release_name $release_name";
     381            } else {
     382                $release_args = " -priority_order";
     383            }
    370384            $release_args .= " -surveyName $survey" if $survey;
    371385        }
     
    402416        # choose the chips containing the center pixel by calling selectComponets() below
    403417        if ($use_releasetool) {
    404             $command = "$releasetool -dbname $imagedb -priority_order -listrelexp $release_args";
     418            $command = "$releasetool -dbname $imagedb -listrelexp $release_args";
    405419            $choose_components = 1;
    406420        } else {
     
    433447    } elsif ($stage eq 'warp') {
    434448        if ($use_releasetool) {
    435             $command = "$releasetool -dbname $imagedb -priority_order -listrelexp $release_args";
     449            $command = "$releasetool -dbname $imagedb -listrelexp $release_args";
    436450            $skycell_id = $component;
    437451            $choose_components = 1;
     
    481495            $command = "$releasetool -listrelstack -dbname $imagedb $release_args";
    482496            $base_name = 'stack_path_base';
     497            my $stack_type = $row->{RUN_TYPE};
     498            if (!isnull($stack_type)) {
     499                $command .= " -stack_type $stack_type";
     500            }
    483501        } else {
    484502            $command = "$stacktool -sumskyfile -dbname $imagedb";
     
    540558        $command .= " -dateobs_end $dateobs_end" if $dateobs_end;
    541559    } elsif ($req_type ne "byid") {
    542         $command .= " -mjd_obs_begin $mjd_min" if $mjd_min;
    543         $command .= " -mjd_obs_end $mjd_max" if $mjd_max;
     560        $command .= " -mjd_min $mjd_min" if $mjd_min;
     561        $command .= " -mjd_max $mjd_max" if $mjd_max;
    544562    }
    545563
     
    551569        # XXX: Why am I using default data_groups only for byskycell requests?
    552570        $command .= $default_data_groups;
     571    }
     572
     573    if ($use_releasetool) {
     574        # fwhm arguments are currently only supported when using releasetool for lookups
     575        $command .= " -fwhm_min $fwhm_min" if $fwhm_min;
     576        $command .= " -fwhm_max $fwhm_max" if $fwhm_max;
    553577    }
    554578
     
    752776        }
    753777
     778        # XXX: The logic below is somewhat messed up. See XXX: ... below
     779        #
    754780        # The standard way to do a diff is warp - stack
    755781        # so we interpret the requested image in that way
     
    766792        }
    767793        my $stack_id;
     794        if ($image->{diff_mode} == 2) {
     795            # XXX: .. stack_id wasn't getting set
     796            $stack_id = $stack2;
     797            $image->{stack_id} = $stack_id;
     798        }
    768799        if ($stack1 and $stack2) {
    769800            # we have a stack - stack diff (well it might be stack - warp....)
     
    860891    my $ra         = shift;
    861892    my $dec        = shift;
    862     my $dateobs_begin  = shift;
     893    my $dateobs_begin  = shift; # these are used for single frame lookups
    863894    my $dateobs_end    = shift;
    864895    my $filter     = shift;
    865896    my $data_group = shift;
    866897    my $option_mask = shift;
    867     my $mjd_min = shift;
    868     my $mjd_max = shift;
    869     my $astrom = shift;
     898    my $mjd_min = shift;        # these are used for stack lookups
     899    my $mjd_max = shift;        # these are used for stack lookups
    870900    my $verbose    = shift;
    871901
    872     my ($release_name, $survey) = get_release_info($row);
     902    my $fwhm_min = getValOrZero($row->{FWHM_MIN});
     903    my $fwhm_max = getValOrZero($row->{FWHM_MAX});
     904   
     905
     906    my ($release_name, $survey, $default_tess_id) = get_release_info($row);
     907    if (!$tess_id and $default_tess_id) {
     908        $tess_id = $default_tess_id;
     909    }
    873910
    874911    my $rowList = [$row];
     
    878915
    879916        my $chips = lookup_by_cam_id_and_coords($ipprc, $imagedb, $stage,
    880             $ra, $dec, $need_magic, $dateobs_begin, $dateobs_end, $filter, $data_group, $verbose, $release_name, $survey, $row->{FWHM_MIN}, $row->{FWHM_MAX});
     917            $ra, $dec, $need_magic, $dateobs_begin, $dateobs_end, $filter, $data_group, $verbose,
     918            $release_name, $survey, $fwhm_min, $fwhm_max);
    881919
    882920        if (!$chips or scalar @$chips == 0) {
     
    888926                    $tess_id, $chip->{component}, $need_magic,
    889927                    $dateobs_begin, $dateobs_end, $filter, $data_group, $option_mask, $mjd_min, $mjd_max,
     928                    $fwhm_min, $fwhm_max,
    890929                    $chip->{astrom}, undef, undef,
    891930                    $verbose);
     
    906945            setErrorCodes($rowList, $PSTAMP_NO_IMAGE_MATCH);
    907946        } else {
     947            # XXX: We are not applying the fwhm cuts
    908948            foreach my $skycell (@$skycells) {
    909949                my $these_results = lookup($ipprc, $rowList, $imagedb, "byskycell", $stage, undef,
    910950                    $skycell->{tess_id}, $skycell->{component}, $need_magic,
    911951                    $dateobs_begin, $dateobs_end, $filter, $data_group, $option_mask, $mjd_min, $mjd_max,
     952                    $fwhm_min, $fwhm_max,
    912953                    undef, $release_name, $survey,
    913954                    $verbose);
     
    949990    if ($release_name or $survey) {
    950991        $command = "$releasetool -dbname $imagedb -listrelexp";
    951         if (!isnull($survey)) {
    952             $command .= " -survey_name $survey";
    953         }
    954         if (!isnull($release_name)) {
     992        if ($survey) {
     993            $command .= " -surveyName $survey";
     994        }
     995        if ($release_name) {
    955996            $command .= " -release_name $release_name";
    956997        } else {
     
    13021343    my $val = shift;
    13031344    return (!defined($val) or ($val == 0));
     1345}
     1346
     1347sub getValOrZero {
     1348    my $val = shift;
     1349    return iszero($val) ? 0.0 : $val;
    13041350}
    13051351
     
    17681814        $release_name = "";
    17691815        # no release check for survey
    1770         $survey = $row->{SURVEY_NAME};
     1816        $survey = isnull($row->{SURVEY_NAME}) ? "" : $row->{SURVEY_NAME};
    17711817    } else {
     1818        # if release is given leave survey empty
    17721819        $survey = "";
    17731820    }
    17741821
    1775     return ($release_name, $survey);
     1822    my $tess_id;
     1823    if ($release_name) {
     1824        # hack to optimize bycoord and byskycell lookups for well known releases
     1825        # XXX: todo query database and return a list for the survey or release
     1826        if ($release_name eq '3PI.PV1') {
     1827            $tess_id = 'RINGS.V3';
     1828        }
     1829    }
     1830
     1831    return ($release_name, $survey, $tess_id);
    17761832}
    17771833
Note: See TracChangeset for help on using the changeset viewer.