IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Jun 5, 2009, 12:42:47 PM (17 years ago)
Author:
Paul Price
Message:

Option to scale radius by magnitude (--mag-radius)

File:
1 edited

Legend:

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

    r24260 r24341  
    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
     
    4647           'flag-colour=s' => \$flag_colour,
    4748           'flag=o' => \$flag,
     49    'mag-radius' => $mag_radius,
    4850           'radius=f' => \$radius,
    4951           'save-temps'        => \$save_temps, # Save temporary files?
     
    6365$fits->get_num_rows($numRows, $status) and check_fitsio($status);
    6466
    65 my ($xCol, $yCol, $flagCol);     # Column numbers for x,y, flag
     67my ($xCol, $yCol, $flagCol, $magCol); # Column numbers for x,y, flag, mag
    6668$fits->get_colnum(0, 'X_PSF', $xCol, $status) and check_fitsio($status);
    6769$fits->get_colnum(0, 'Y_PSF', $yCol, $status) and check_fitsio($status);
    6870$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);
    6972
    70 my ($x, $y, $flags);            # Coordinates and flags read from table
     73my ($x, $y, $flags, $mag);     # Coordinates, flags, magnitude read from table
    7174$fits->read_col(TFLOAT, $xCol, 1, 1, $numRows, 0, $x, undef, $status) and check_fitsio($status);
    7275$fits->read_col(TFLOAT, $yCol, 1, 1, $numRows, 0, $y, undef, $status) and check_fitsio($status);
    7376$fits->read_col(TINT, $flagCol, 1, 1, $numRows, 0, $flags, undef, $status) and check_fitsio($status);
     77$fits->read_col(TINT, $magCol, 1, 1, $numRows, 0, $mag, undef, $status) and check_fitsio($status);
    7478$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;
     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
    7594
    7695my ($coordFile, $coordName) = tempfile( "/tmp/ds9_cmf_regions.XXXX", UNLINK => !$save_temps );
    7796my $numGood = 0;                # Number of good sources
    7897my $numBad = 0;                 # Number of bad sources
     98my $radius_scale = $radius / ($mag_min - $mag_max + 1.0); # Scaling for radius
    7999for (my $i = 0; $i < $numRows; $i++) {
    80100    my $col;                    # Colour to use
     
    86106        $col = $colour;
    87107    }
    88     print $coordFile "image; circle(" . ($$x[$i] + 1) . ',' . ($$y[$i] + 1) . ",$radius) \# color = $col\n";
     108    my $r = $radius;            # Radius of circle
     109    $r -= ($$mag[$i] - $mag_min) * $radius_scale if defined $mag_radius;
     110    print $coordFile "image; circle(" . ($$x[$i] + 1) . ',' . ($$y[$i] + 1) . ",$r) \# color = $col\n";
    89111}
    90112close $coordFile;
Note: See TracChangeset for help on using the changeset viewer.