IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Jun 25, 2009, 2:00:56 PM (17 years ago)
Author:
eugene
Message:

merging changes from head

Location:
branches/eam_branches/20090522
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • branches/eam_branches/20090522

  • branches/eam_branches/20090522/ippScripts/scripts/ds9_cmf_regions.pl

    r20555 r24557  
    2323     $flag_colour,              # Flagged source region colour
    2424     $flag,                     # Flags
     25     $mag_radius,               # Magnitude scaling for radius?
    2526     $radius,                   # Radius for circle
    2627     $save_temps
     
    3132$flag_colour = "red";
    3233$radius = 5;
    33 $flag = 0x3888;
     34$flag = (8 | # FAIL
     35         1024 | # BADPSF
     36         2048 | # DEFECT
     37         4096 | # SATURATED
     38         8192 | # CR_LIMIT
     39         65536 # SKY_FAILURE
     40         );
    3441
    3542GetOptions(
     
    4047           'flag-colour=s' => \$flag_colour,
    4148           'flag=o' => \$flag,
     49    'mag-radius' => \$mag_radius,
    4250           'radius=f' => \$radius,
    4351           'save-temps'        => \$save_temps, # Save temporary files?
     
    5765$fits->get_num_rows($numRows, $status) and check_fitsio($status);
    5866
    59 my ($xCol, $yCol, $flagCol);     # Column numbers for x,y, flag
     67my ($xCol, $yCol, $flagCol, $magCol); # Column numbers for x,y, flag, mag
    6068$fits->get_colnum(0, 'X_PSF', $xCol, $status) and check_fitsio($status);
    6169$fits->get_colnum(0, 'Y_PSF', $yCol, $status) and check_fitsio($status);
    6270$fits->get_colnum(0, 'FLAGS', $flagCol, $status) and check_fitsio($status);
     71$fits->get_colnum(0, 'PSF_INST_MAG', $magCol, $status) and check_fitsio($status);
    6372
    64 my ($x, $y, $flags);            # Coordinates and flags read from table
     73my ($x, $y, $flags, $mag);     # Coordinates, flags, magnitude read from table
    6574$fits->read_col(TFLOAT, $xCol, 1, 1, $numRows, 0, $x, undef, $status) and check_fitsio($status);
    6675$fits->read_col(TFLOAT, $yCol, 1, 1, $numRows, 0, $y, undef, $status) and check_fitsio($status);
    6776$fits->read_col(TINT, $flagCol, 1, 1, $numRows, 0, $flags, undef, $status) and check_fitsio($status);
     77$fits->read_col(TFLOAT, $magCol, 1, 1, $numRows, 0, $mag, undef, $status) and check_fitsio($status);
    6878$fits->close_file($status);
     79
     80my ($mag_min, $mag_max);        # Minimum magnitude
     81if ($mag_radius) {
     82    foreach my $m (@$mag) {
     83        next unless defined $m and $m < "inf" and $m > "-inf";
     84        unless (defined $mag_min and defined $mag_max) {
     85            $mag_min = $m;
     86            $mag_max = $m;
     87            next;
     88        }
     89        $mag_min = $m if $m < $mag_min;
     90        $mag_max = $m if $m > $mag_max;
     91    }
     92}
     93
    6994
    7095my ($coordFile, $coordName) = tempfile( "/tmp/ds9_cmf_regions.XXXX", UNLINK => !$save_temps );
    7196my $numGood = 0;                # Number of good sources
    7297my $numBad = 0;                 # Number of bad sources
     98my $radius_scale = $radius / ($mag_min - $mag_max + 1.0); # Scaling for radius
    7399for (my $i = 0; $i < $numRows; $i++) {
    74100    my $col;                    # Colour to use
     
    80106        $col = $colour;
    81107    }
    82     print $coordFile "image; circle(" . ($$x[$i] + 1) . ',' . ($$y[$i] + 1) . ",$radius) \# color = $col\n";
     108    my $r = $radius;            # Radius of circle
     109    next if defined $mag_radius and (not defined $$mag[$i] or $$mag[$i] == "inf" or $$mag[$i] == "-inf");
     110    $r -= ($$mag[$i] - $mag_min) * $radius_scale if defined $mag_radius;
     111    print $coordFile "image; circle(" . ($$x[$i] + 1) . ',' . ($$y[$i] + 1) . ",$r) \# color = $col\n";
    83112}
    84113close $coordFile;
Note: See TracChangeset for help on using the changeset viewer.