--- ray/src/px/falsecolor.csh 2006/11/13 02:41:46 2.16 +++ ray/src/px/falsecolor.csh 2009/05/27 15:38:29 2.20 @@ -1,12 +1,12 @@ #!/bin/csh -fe -# RCSid: $Id: falsecolor.csh,v 2.16 2006/11/13 02:41:46 greg Exp $ +# RCSid: $Id: falsecolor.csh,v 2.20 2009/05/27 15:38:29 greg Exp $ # # Create false color image with legend # # Added user-definable legend 2004/01/20 Rob Guglielmetti -set td=/tmp/fc$$ onintr quit +set td=`mktemp -d /tmp/fc.XXXXXX` set mult=179 set label=Nits set scale=1000 @@ -60,10 +60,9 @@ while ($#argv > 0) set bluv="$argv[1]" breaksw case -spec: - shift argv - set redv='1.6*v-.6' - set grnv='if(v-.375,1.6-1.6*v,8/3*v)' - set bluv='1-8/3*v' + set redv='old_red(v)' + set grnv='old_grn(v)' + set bluv='old_blu(v)' breaksw case -i: shift argv @@ -101,7 +100,6 @@ while ($#argv > 0) endsw shift argv end -mkdir $td if ($?needfile && "$picture" == '-') then cat > $td/picture set picture=$td/picture @@ -124,6 +122,10 @@ clip(x) : if(x-1,1,if(x,x,0)); frac(x) : x - floor(x); boundary(a,b) : neq(floor(ndivs*a+.5),floor(ndivs*b+.5)); +old_red(x) = 1.6*x - .6; +old_grn(x) = if(x-.375, 1.6-1.6*x, 8/3*x); +old_blu(x) = 1 - 8/3*x; + interp_arr2(i,x,f):(i+1-x)*f(i)+(x-i)*f(i+1); interp_arr(x,f):if(x-1,if(f(0)-x,interp_arr2(floor(x),x,f),f(f(0))),f(1)); def_redp(i):select(i,0.18848,0.05468174, @@ -193,17 +195,17 @@ endif if ( $legwidth > 20 && $legheight > 40 ) then pcomb $pc0args -e 'v=(y+.5)/yres;vleft=v;vright=v' \ -e 'vbelow=(y-.5)/yres;vabove=(y+1.5)/yres' \ - -x $legwidth -y $legheight > $td/scol.pic + -x $legwidth -y $legheight > $td/scol.hdr ( echo "$label"; cnt $ndivs \ | rcalc -e '$1='"($scale)*imap(($ndivs-.5-"'$1'")/$ndivs)" \ -e "$imap" | sed -e 's/\(\.[0-9][0-9][0-9]\)[0-9]*/\1/' ) \ | psign -s -.15 -cf 1 1 1 -cb 0 0 0 \ - -h `ev "floor($legheight/$ndivs+.5)"` > $td/slab.pic + -h `ev "floor($legheight/$ndivs+.5)"` > $td/slab.hdr else set legwidth=0 set legheight=0 - (echo "" ; echo "-Y 1 +X 1" ; echo "aaa" ) > $td/scol.pic - cp $td/scol.pic $td/slab.pic + (echo "" ; echo "-Y 1 +X 1" ; echo "aaa" ) > $td/scol.hdr + cp $td/scol.hdr $td/slab.hdr endif if ( $?doextrem ) then pextrem -o $picture > $td/extrema @@ -211,18 +213,18 @@ if ( $?doextrem ) then set minval=`rcalc -e '$1=($3*.27+$4*.67+$5*.06)*'"$mult" $td/extrema | sed -e 2d -e 's/\(\.[0-9][0-9][0-9]\)[0-9]*/\1/'` set maxpos=`sed 1d $td/extrema | rcalc -e '$2=$2;$1=$1+'"$legwidth"` set maxval=`rcalc -e '$1=($3*.27+$4*.67+$5*.06)*'"$mult" $td/extrema | sed -e 1d -e 's/\(\.[0-9][0-9][0-9]\)[0-9]*/\1/'` - psign -s -.15 -a 2 -h 16 $minval > $td/minv.pic - psign -s -.15 -a 2 -h 16 $maxval > $td/maxv.pic + psign -s -.15 -a 2 -h 16 $minval > $td/minv.hdr + psign -s -.15 -a 2 -h 16 $maxval > $td/maxv.hdr pcomb $pc0args $pc1args $picture $cpict \ - | pcompos $td/scol.pic 0 0 \ - +t .1 "\!pcomb -e 'lo=1-gi(1)' $td/slab.pic" \ - `ev 2 $loff-1` -t .5 $td/slab.pic 0 $loff \ - - $legwidth 0 $td/minv.pic $minpos $td/maxv.pic $maxpos + | pcompos $td/scol.hdr 0 0 \ + +t .1 "\!pcomb -e 'lo=1-gi(1)' $td/slab.hdr" \ + `ev 2 $loff-1` -t .5 $td/slab.hdr 0 $loff \ + - $legwidth 0 $td/minv.hdr $minpos $td/maxv.hdr $maxpos else pcomb $pc0args $pc1args $picture $cpict \ - | pcompos $td/scol.pic 0 0 \ - +t .1 "\!pcomb -e 'lo=1-gi(1)' $td/slab.pic" \ - `ev 2 $loff-1` -t .5 $td/slab.pic 0 $loff \ + | pcompos $td/scol.hdr 0 0 \ + +t .1 "\!pcomb -e 'lo=1-gi(1)' $td/slab.hdr" \ + `ev 2 $loff-1` -t .5 $td/slab.hdr 0 $loff \ - $legwidth 0 endif quit: