Changeset 25027 for branches/pap/ippScripts/scripts/ds9_cmf_regions.pl
- Timestamp:
- Aug 7, 2009, 4:08:25 PM (17 years ago)
- Location:
- branches/pap
- Files:
-
- 2 edited
-
. (modified) (1 prop)
-
ippScripts/scripts/ds9_cmf_regions.pl (modified) (5 diffs)
Legend:
- Unmodified
- Added
- Removed
-
branches/pap
- Property svn:mergeinfo changed
-
branches/pap/ippScripts/scripts/ds9_cmf_regions.pl
r20555 r25027 23 23 $flag_colour, # Flagged source region colour 24 24 $flag, # Flags 25 $mag_radius, # Magnitude scaling for radius? 25 26 $radius, # Radius for circle 26 27 $save_temps … … 31 32 $flag_colour = "red"; 32 33 $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 ); 34 41 35 42 GetOptions( … … 40 47 'flag-colour=s' => \$flag_colour, 41 48 'flag=o' => \$flag, 49 'mag-radius' => \$mag_radius, 42 50 'radius=f' => \$radius, 43 51 'save-temps' => \$save_temps, # Save temporary files? … … 57 65 $fits->get_num_rows($numRows, $status) and check_fitsio($status); 58 66 59 my ($xCol, $yCol, $flagCol ); # Column numbers for x,y, flag67 my ($xCol, $yCol, $flagCol, $magCol); # Column numbers for x,y, flag, mag 60 68 $fits->get_colnum(0, 'X_PSF', $xCol, $status) and check_fitsio($status); 61 69 $fits->get_colnum(0, 'Y_PSF', $yCol, $status) and check_fitsio($status); 62 70 $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); 63 72 64 my ($x, $y, $flags ); # Coordinates and flagsread from table73 my ($x, $y, $flags, $mag); # Coordinates, flags, magnitude read from table 65 74 $fits->read_col(TFLOAT, $xCol, 1, 1, $numRows, 0, $x, undef, $status) and check_fitsio($status); 66 75 $fits->read_col(TFLOAT, $yCol, 1, 1, $numRows, 0, $y, undef, $status) and check_fitsio($status); 67 76 $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); 68 78 $fits->close_file($status); 79 80 my ($mag_min, $mag_max); # Minimum magnitude 81 if ($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 69 94 70 95 my ($coordFile, $coordName) = tempfile( "/tmp/ds9_cmf_regions.XXXX", UNLINK => !$save_temps ); 71 96 my $numGood = 0; # Number of good sources 72 97 my $numBad = 0; # Number of bad sources 98 my $radius_scale = $radius / ($mag_min - $mag_max + 1.0); # Scaling for radius 73 99 for (my $i = 0; $i < $numRows; $i++) { 74 100 my $col; # Colour to use … … 80 106 $col = $colour; 81 107 } 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"; 83 112 } 84 113 close $coordFile;
Note:
See TracChangeset
for help on using the changeset viewer.
