#! /bin/tcsh -f # t_detimg 4.0 # Creates gif and jpeg of detector images for GIS and SIS. Regions are # overlayed if available. Smoothed images are created. # Paul O'Neill # Date in final form: 17 December 2004 ######################################################################################## # Welcome ######################################################################################## echo "" echo "gnt_infrm (t_detimg) ++++++++++++++++++++++++++++++++++++++++++++++++++++++" echo "gnt_infrm (t_detimg) t_detimg 4.0 STARTED "`date` echo "gnt_infrm (t_detimg) ++++++++++++++++++++++++++++++++++++++++++++++++++++++" echo "" ######################################################################################## # Get parameters ######################################################################################## set obsid = $1 # observation sequence number set SEQ = $2 # root directory for current sequence ######################################################################################## # Set directory variables ######################################################################################## # NOTE: aux, screened, unscreened, and work directories MUST be sub-directories # of the sequence directory (SEQ). This structure is hard wired. set AUX = $SEQ/aux # contains house keeping data set SCR = $SEQ/screened # contains screened data set UNSCR = $SEQ/unscreened # contains unscreened data set WORK = $SEQ/work # a work area ######################################################################################## # Set XIMAGE colour table ######################################################################################## # the images are created using this colour table set coltab = "bb" ######################################################################################## # Check detector images exist ######################################################################################## cd $WORK set flag = 0 foreach inst ( sis0 sis1 gis2 gis3 ) if ( ! -e ${obsid}_${inst}_det.img ) then echo "gnt_fatal (t_detimg) file ${obsid}_det.img does not exist" set flag = 1 endif end if ( $flag == "1" ) then echo "gnt_fatal (t_detimg) exiting because file(s) not found" exit 1 endif ######################################################################################## # Create unsmoothed SIS detector images with regions overlaid (ppm then gif format) ######################################################################################## cd $WORK echo "gnt_infrm (t_detimg) Making SIS web page detector image with overlaid regions" set linewidth = 1 foreach det ( sis0 sis1 ) #### start of Ximage script #### echo "read/${obsid}_${det}_det.img" >! ${det}_detimg.xco echo "cpd ${obsid}_${det}.ppm/ppm" >> ${det}_detimg.xco # portable pixel map image echo "cct/set bb" >> ${det}_detimg.xco echo "levels/num=128" >> ${det}_detimg.xco echo 'title " " ' >> ${det}_detimg.xco echo 'title/lower " " ' >> ${det}_detimg.xco echo "disp/sqrt nobox v1=0.1 v2=0.9 v3=0.1 v4=0.9" >> ${det}_detimg.xco #### draw the regions - get coordinates from the region files #### if ( (-e ${obsid}_${det}_src.reg) && (-e ${obsid}_${det}_bgd.reg) ) then echo "gnt_infrm (t_detimg) regions are available for ${det}" foreach thereg ( src bgd ) set line = 1 set xreg = `sed s/"("/" "/g ${obsid}_${det}_${thereg}.reg | sed s/")"/" "/g | sed s/","/" "/g | sed -n ${line}p` while ( "$#xreg" != "0" ) if ( "$xreg[1]" == "box" ) then if ( "$#xreg" < "6" ) set xreg = ($xreg 0.0) set xreg = ( `echo "scale=3;$xreg[2] * 4.0" | bc` `echo "scale=3;$xreg[3] * 4.0" | bc` \ `echo "scale=3;$xreg[4] * 4.0" | bc` `echo "scale=3;$xreg[5] * 4.0" | bc` \ `echo "scale=3;$xreg[6]" | bc` ) # must * 4 because Ximage uses physical coordinates echo "draw/box $xreg[1] $xreg[2] $xreg[3] $xreg[4] $xreg[5] color=2 lstyle=1 lwidth=$linewidth" >> ${det}_detimg.xco endif if ( "$xreg[1]" == "-box" ) then if ( "$#xreg" < "6" ) set xreg = ($xreg 0.0) set xreg = ( `echo "scale=3;$xreg[2] * 4.0" | bc` `echo "scale=3;$xreg[3] * 4.0" | bc` \ `echo "scale=3;$xreg[4] * 4.0" | bc` `echo "scale=3;$xreg[5] * 4.0" | bc` \ `echo "scale=3;$xreg[6]" | bc` ) echo "draw/box $xreg[1] $xreg[2] $xreg[3] $xreg[4] $xreg[5] color=7 lstyle=2 lwidth=$linewidth" >> ${det}_detimg.xco endif if ( "$xreg[1]" == "circle" ) then set xreg = ( `echo "scale=3;$xreg[2] * 4.0" | bc` `echo "scale=3;$xreg[3] * 4.0" | bc` \ `echo "scale=3;$xreg[4] * 4.0" | bc` ) echo "draw/circle $xreg[1] $xreg[2] $xreg[3] color=3 lstyle=1 lwidth=$linewidth" >> ${det}_detimg.xco endif if ( "$xreg[1]" == "-circle" ) then set xreg = ( `echo "scale=3;$xreg[2] * 4.0" | bc` `echo "scale=3;$xreg[3] * 4.0" | bc` \ `echo "scale=3;$xreg[4] * 4.0" | bc` ) echo "draw/circle $xreg[1] $xreg[2] $xreg[3] color=7 lstyle=2 lwidth=$linewidth" >> ${det}_detimg.xco endif @ line ++ set xreg = `sed s/"("/" "/g ${obsid}_${det}_${thereg}.reg | sed s/")"/" "/g | sed s/","/" "/g | sed -n ${line}p` end end endif #### finish the script #### echo "quit" >> ${det}_detimg.xco end #### run Ximage using the scripts just created #### ximage @sis0_detimg.xco ximage @sis1_detimg.xco #### convert ppm to gif #### foreach det ( sis0 sis1 ) if ( -e ${obsid}_${det}.ppm ) then convert ppm:${obsid}_${det}.ppm gif:${obsid}_${det}_det.gif rm ${obsid}_${det}.ppm endif end ######################################################################################## # Create GIS detector images with regions overlaid (ppm to gif format) ######################################################################################## echo "gnt_infrm (t_detimg) Making GIS web page detector image with overlaid regions" set linewidth = 1 foreach det ( gis2 gis3 ) #### start of Ximage script #### echo "read/${obsid}_${det}_det.img" >! ${det}_detimg.xco echo "cpd ${obsid}_${det}.ppm/ppm" >> ${det}_detimg.xco # portable pixel map image echo "cct/set bb" >> ${det}_detimg.xco echo "levels/num=128" >> ${det}_detimg.xco echo 'title " " ' >> ${det}_detimg.xco echo 'title/lower " " ' >> ${det}_detimg.xco echo "disp/sqrt nobox v1=0.0 v2=1.0 v3=0.0 v4=1.0" >> ${det}_detimg.xco #### draw the regions - get coordinates from the region files #### if ( (-e ${obsid}_${det}_src.reg) && (-e ${obsid}_${det}_bgd.reg) ) then echo "gnt_infrm (t_detimg) regions are available for ${det}" foreach thereg ( src bgd ) set line = 1 set xreg = `sed s/"("/" "/g ${obsid}_${det}_${thereg}.reg | sed s/")"/" "/g | sed s/","/" "/g | sed -n ${line}p` while ( "$#xreg" != "0" ) if ( "$xreg[1]" == "box" ) then if ( "$#xreg" < "6" ) set xreg = ($xreg 0.0) set xreg = ( `echo "scale=3;$xreg[2]" | bc` `echo "scale=3;$xreg[3]" | bc` \ `echo "scale=3;$xreg[4]" | bc` `echo "scale=3;$xreg[5]" | bc` \ `echo "scale=3;$xreg[6]" | bc` ) echo "draw/box $xreg[1] $xreg[2] $xreg[3] $xreg[4] $xreg[5] color=2 lstyle=1 lwidth=$linewidth" >> ${det}_detimg.xco endif if ( "$xreg[1]" == "-box" ) then if ( "$#xreg" < "6" ) set xreg = ($xreg 0.0) set xreg = ( `echo "scale=3;$xreg[2]" | bc` `echo "scale=3;$xreg[3]" | bc` \ `echo "scale=3;$xreg[4]" | bc` `echo "scale=3;$xreg[5]" | bc` \ `echo "scale=3;$xreg[6]" | bc` ) echo "draw/box $xreg[1] $xreg[2] $xreg[3] $xreg[4] $xreg[5] color=7 lstyle=2 lwidth=$linewidth" >> ${det}_detimg.xco endif if ( "$xreg[1]" == "circle" ) then set xreg = ( `echo "scale=3;$xreg[2]" | bc` `echo "scale=3;$xreg[3]" | bc` \ `echo "scale=3;$xreg[4]" | bc` ) if ( $xreg[3] == "55.0" ) then # outside of bgd annulus echo "draw/circle $xreg[1] $xreg[2] $xreg[3] color=2 lstyle=1 lwidth=$linewidth" >> ${det}_detimg.xco else echo "draw/circle $xreg[1] $xreg[2] $xreg[3] color=3 lstyle=1 lwidth=$linewidth" >> ${det}_detimg.xco endif endif if ( "$xreg[1]" == "-circle" ) then set xreg = ( `echo "scale=3;$xreg[2]" | bc` `echo "scale=3;$xreg[3]" | bc` \ `echo "scale=3;$xreg[4]" | bc` ) echo "draw/circle $xreg[1] $xreg[2] $xreg[3] color=7 lstyle=2 lwidth=$linewidth" >> ${det}_detimg.xco endif if ( "$xreg[1]" == "-annulus" ) then set xreg = ( `echo "scale=3;$xreg[2]" | bc` `echo "scale=3;$xreg[3]" | bc` \ `echo "scale=3;$xreg[4]" | bc` ) echo "draw/circle $xreg[1] $xreg[2] $xreg[3] color=7 lstyle=2 lwidth=$linewidth" >> ${det}_detimg.xco endif @ line ++ set xreg = `sed s/"("/" "/g ${obsid}_${det}_${thereg}.reg | sed s/")"/" "/g | sed s/","/" "/g | sed -n ${line}p` end end endif echo "quit" >> ${det}_detimg.xco end #### run Ximage using the scripts just created #### ximage @gis2_detimg.xco ximage @gis3_detimg.xco #### convert ppm to gif #### foreach det ( gis2 gis3 ) if ( -e ${obsid}_${det}.ppm ) then convert ppm:${obsid}_${det}.ppm gif:${obsid}_${det}_det.gif rm ${obsid}_${det}.ppm endif end ######################################################################################## # Convert unsmoothed gif to jpeg for web page ######################################################################################## #### sis images #### foreach inst ( sis0 sis1 ) if ( -e ${obsid}_${inst}_det.gif ) then convert -shave 235x150 gif:${obsid}_${inst}_det.gif gif:${obsid}_${inst}_1.gif convert -resize 500x500 gif:${obsid}_${inst}_1.gif gif:${obsid}_${inst}_2.gif convert -resize 75x75 gif:${obsid}_${inst}_1.gif gif:${obsid}_${inst}_3.gif convert -quality 80 gif:${obsid}_${inst}_2.gif jpeg:${obsid}_${inst}_det_large.jpeg convert -quality 80 gif:${obsid}_${inst}_3.gif jpeg:${obsid}_${inst}_det_thumb.jpeg rm ${obsid}_${inst}_1.gif rm ${obsid}_${inst}_2.gif rm ${obsid}_${inst}_3.gif endif end #### gis images #### foreach inst ( gis2 gis3 ) if ( -e ${obsid}_${inst}_det.gif ) then convert -shave 175x90 gif:${obsid}_${inst}_det.gif gif:${obsid}_${inst}_1.gif convert -resize 75x75 gif:${obsid}_${inst}_1.gif gif:${obsid}_${inst}_3.gif convert -quality 80 gif:${obsid}_${inst}_1.gif jpeg:${obsid}_${inst}_det_large.jpeg convert -quality 80 gif:${obsid}_${inst}_3.gif jpeg:${obsid}_${inst}_det_thumb.jpeg rm ${obsid}_${inst}_1.gif rm ${obsid}_${inst}_3.gif endif end ######################################################################################## # Smooth SIS and GIS detector images ######################################################################################## foreach inst ( sis0 sis1 gis2 gis3 ) echo "gnt_infrm (t_detimg) smoothing image for $inst" fgauss infile=$WORK/${obsid}_${inst}_det.img outfile=$WORK/${obsid}_${inst}_det_sm.img \ sigma=1.0 datatype=e clobber=yes end if ( ! -e $WORK/${obsid}_${inst}_det_sm.img ) then echo "gnt_fatal (t_detimg) file ${obsid}_${inst}_det_sm.img was not produced" exit 1 endif ######################################################################################## # Create SIS detector images with regions overlaid (ppm then gif format) ######################################################################################## set linewidth = 1 foreach inst ( sis0 sis1 ) echo "gnt_infrm (t_detimg) smoothed web page detector image with overlaid regions for ${inst}" #### start of Ximage script #### echo "read/${obsid}_${inst}_det_sm.img" >! ${inst}_smdetimg.xco echo "cpd ${obsid}_${inst}_det_sm.ppm/ppm" >> ${inst}_smdetimg.xco # portable pixel map image echo "cct/set $coltab" >> ${inst}_smdetimg.xco echo "levels/num=128" >> ${inst}_smdetimg.xco echo 'title " " ' >> ${inst}_smdetimg.xco echo 'title/lower " " ' >> ${inst}_smdetimg.xco echo "disp/sqrt nobox v1=0.1 v2=0.9 v3=0.1 v4=0.9" >> ${inst}_smdetimg.xco #### draw the regions - get coordinates from the region files #### if ( (-e ${obsid}_${det}_src.reg) && (-e ${obsid}_${det}_bgd.reg) ) then echo "gnt_infrm (t_detimg) regions are available for ${det}" foreach thereg ( src bgd ) set line = 1 set xreg = `sed s/"("/" "/g ${obsid}_${inst}_${thereg}.reg | sed s/")"/" "/g | sed s/","/" "/g | sed -n ${line}p` while ( "$#xreg" != "0" ) if ( "$xreg[1]" == "box" ) then if ( "$#xreg" < "6" ) set xreg = ($xreg 0.0) set xreg = ( `echo "scale=3;$xreg[2] * 4.0" | bc` `echo "scale=3;$xreg[3] * 4.0" | bc` \ `echo "scale=3;$xreg[4] * 4.0" | bc` `echo "scale=3;$xreg[5] * 4.0" | bc` \ `echo "scale=3;$xreg[6]" | bc` ) # must * 4 because Ximage uses physical coordinates echo "draw/box $xreg[1] $xreg[2] $xreg[3] $xreg[4] $xreg[5] color=2 lstyle=1 lwidth=$linewidth" >> ${inst}_smdetimg.xco endif if ( "$xreg[1]" == "-box" ) then if ( "$#xreg" < "6" ) set xreg = ($xreg 0.0) set xreg = ( `echo "scale=3;$xreg[2] * 4.0" | bc` `echo "scale=3;$xreg[3] * 4.0" | bc` \ `echo "scale=3;$xreg[4] * 4.0" | bc` `echo "scale=3;$xreg[5] * 4.0" | bc` \ `echo "scale=3;$xreg[6]" | bc` ) echo "draw/box $xreg[1] $xreg[2] $xreg[3] $xreg[4] $xreg[5] color=7 lstyle=2 lwidth=$linewidth" >> ${inst}_smdetimg.xco endif if ( "$xreg[1]" == "circle" ) then set xreg = ( `echo "scale=3;$xreg[2] * 4.0" | bc` `echo "scale=3;$xreg[3] * 4.0" | bc` \ `echo "scale=3;$xreg[4] * 4.0" | bc` ) echo "draw/circle $xreg[1] $xreg[2] $xreg[3] color=3 lstyle=1 lwidth=$linewidth" >> ${inst}_smdetimg.xco endif if ( "$xreg[1]" == "-circle" ) then set xreg = ( `echo "scale=3;$xreg[2] * 4.0" | bc` `echo "scale=3;$xreg[3] * 4.0" | bc` \ `echo "scale=3;$xreg[4] * 4.0" | bc` ) echo "draw/circle $xreg[1] $xreg[2] $xreg[3] color=7 lstyle=2 lwidth=$linewidth" >> ${inst}_smdetimg.xco endif @ line ++ set xreg = `sed s/"("/" "/g ${obsid}_${inst}_${thereg}.reg | sed s/")"/" "/g | sed s/","/" "/g | sed -n ${line}p` end end endif echo "quit" >> ${inst}_smdetimg.xco end #### run Ximage using the scripts just created #### ximage @sis0_smdetimg.xco ximage @sis1_smdetimg.xco #### convert ppm to gif #### foreach inst ( sis0 sis1 ) if ( -e ${obsid}_${inst}_det_sm.ppm ) then convert ppm:${obsid}_${inst}_det_sm.ppm gif:${obsid}_${inst}_det_sm.gif rm ${obsid}_${inst}_det_sm.ppm endif end ######################################################################################## # Create GIS detector images with regions overlaid (ppm to gif format) ######################################################################################## set linewidth = 1 foreach inst ( gis2 gis3 ) echo "gnt_infrm (t_detimg) smoothed web page detector image with overlaid regions for ${inst}" #### start of Ximage script #### echo "read/${obsid}_${inst}_det_sm.img" >! ${inst}_smdetimg.xco echo "cpd ${obsid}_${inst}_det_sm.ppm/ppm" >> ${inst}_smdetimg.xco # portable pixel map image echo "cct/set $coltab" >> ${inst}_smdetimg.xco echo "levels/num=128" >> ${inst}_smdetimg.xco echo 'title " " ' >> ${inst}_smdetimg.xco echo 'title/lower " " ' >> ${inst}_smdetimg.xco echo "disp/sqrt nobox v1=0.0 v2=1.0 v3=0.0 v4=1.0" >> ${inst}_smdetimg.xco #### draw the regions - get coordinates from the region files #### if ( (-e ${obsid}_${det}_src.reg) && (-e ${obsid}_${det}_bgd.reg) ) then echo "gnt_infrm (t_detimg) regions are available for ${det}" foreach thereg ( src bgd ) set line = 1 set xreg = `sed s/"("/" "/g ${obsid}_${inst}_${thereg}.reg | sed s/")"/" "/g | sed s/","/" "/g | sed -n ${line}p` while ( "$#xreg" != "0" ) if ( "$xreg[1]" == "box" ) then if ( "$#xreg" < "6" ) set xreg = ($xreg 0.0) set xreg = ( `echo "scale=3;$xreg[2]" | bc` `echo "scale=3;$xreg[3]" | bc` \ `echo "scale=3;$xreg[4]" | bc` `echo "scale=3;$xreg[5]" | bc` \ `echo "scale=3;$xreg[6]" | bc` ) echo "draw/box $xreg[1] $xreg[2] $xreg[3] $xreg[4] $xreg[5] color=2 lstyle=1 lwidth=$linewidth" >> ${inst}_smdetimg.xco endif if ( "$xreg[1]" == "-box" ) then if ( "$#xreg" < "6" ) set xreg = ($xreg 0.0) set xreg = ( `echo "scale=3;$xreg[2]" | bc` `echo "scale=3;$xreg[3]" | bc` \ `echo "scale=3;$xreg[4]" | bc` `echo "scale=3;$xreg[5]" | bc` \ `echo "scale=3;$xreg[6]" | bc` ) echo "draw/box $xreg[1] $xreg[2] $xreg[3] $xreg[4] $xreg[5] color=7 lstyle=2 lwidth=$linewidth" >> ${inst}_smdetimg.xco endif if ( "$xreg[1]" == "circle" ) then set xreg = ( `echo "scale=3;$xreg[2]" | bc` `echo "scale=3;$xreg[3]" | bc` \ `echo "scale=3;$xreg[4]" | bc` ) if ( $xreg[3] == "55.0" ) then # outside of bgd annulus echo "draw/circle $xreg[1] $xreg[2] $xreg[3] color=2 lstyle=1 lwidth=$linewidth" >> ${inst}_smdetimg.xco else echo "draw/circle $xreg[1] $xreg[2] $xreg[3] color=3 lstyle=1 lwidth=$linewidth" >> ${inst}_smdetimg.xco endif endif if ( "$xreg[1]" == "-circle" ) then set xreg = ( `echo "scale=3;$xreg[2]" | bc` `echo "scale=3;$xreg[3]" | bc` \ `echo "scale=3;$xreg[4]" | bc` ) echo "draw/circle $xreg[1] $xreg[2] $xreg[3] color=7 lstyle=2 lwidth=$linewidth" >> ${inst}_smdetimg.xco endif if ( "$xreg[1]" == "-annulus" ) then set xreg = ( `echo "scale=3;$xreg[2]" | bc` `echo "scale=3;$xreg[3]" | bc` \ `echo "scale=3;$xreg[4]" | bc` ) echo "draw/circle $xreg[1] $xreg[2] $xreg[3] color=7 lstyle=2 lwidth=$linewidth" >> ${inst}_smdetimg.xco endif @ line ++ set xreg = `sed s/"("/" "/g ${obsid}_${inst}_${thereg}.reg | sed s/")"/" "/g | sed s/","/" "/g | sed -n ${line}p` end end endif echo "quit" >> ${inst}_smdetimg.xco end #### run Ximage using the scripts just created #### ximage @gis2_smdetimg.xco ximage @gis3_smdetimg.xco #### convert ppm to gif #### foreach inst ( gis2 gis3 ) if ( -e ${obsid}_${inst}_det_sm.ppm ) then convert ppm:${obsid}_${inst}_det_sm.ppm gif:${obsid}_${inst}_det_sm.gif rm ${obsid}_${inst}_det_sm.ppm endif end ######################################################################################## # Convert smoothed gif to jpeg for web page ######################################################################################## #### sis #### foreach inst ( sis0 sis1 ) if ( -e ${obsid}_${inst}_det_sm.gif ) then convert -shave 235x150 gif:${obsid}_${inst}_det_sm.gif gif:${obsid}_${inst}_1.gif convert -resize 500x500 gif:${obsid}_${inst}_1.gif gif:${obsid}_${inst}_2.gif convert -resize 75x75 gif:${obsid}_${inst}_1.gif gif:${obsid}_${inst}_3.gif convert -quality 80 gif:${obsid}_${inst}_2.gif jpeg:${obsid}_${inst}_det_sm_large.jpeg convert -quality 80 gif:${obsid}_${inst}_3.gif jpeg:${obsid}_${inst}_det_sm_thumb.jpeg rm ${obsid}_${inst}_1.gif rm ${obsid}_${inst}_2.gif rm ${obsid}_${inst}_3.gif endif end #### gis #### foreach inst ( gis2 gis3 ) if ( -e ${obsid}_${inst}_det_sm.gif ) then convert -shave 175x90 gif:${obsid}_${inst}_det_sm.gif gif:${obsid}_${inst}_1.gif convert -resize 75x75 gif:${obsid}_${inst}_1.gif gif:${obsid}_${inst}_3.gif convert -quality 80 gif:${obsid}_${inst}_1.gif jpeg:${obsid}_${inst}_det_sm_large.jpeg convert -quality 80 gif:${obsid}_${inst}_3.gif jpeg:${obsid}_${inst}_det_sm_thumb.jpeg rm ${obsid}_${inst}_1.gif rm ${obsid}_${inst}_3.gif endif end ######################################################################################## # Check that the files were created ######################################################################################## foreach inst ( sis0 sis1 gis2 gis3 ) foreach ext ( det.gif det_large.jpeg det_thumb.jpeg det_sm.gif det_sm_large.jpeg det_sm_thumb.jpeg ) set file = ${obsid}_${inst}_${ext} if ( ! -e $file ) then echo "gnt_warng (t_detimg) web page image $file was not produced" endif end end ######################################################################################## # All done ######################################################################################## echo "" echo "gnt_infrm (t_detimg) ++++++++++++++++++++++++++++++++++++++++++++++++++++++" echo "gnt_infrm (t_detimg) t_detimg 4.0 FINISHED "`date` echo "gnt_infrm (t_detimg) ++++++++++++++++++++++++++++++++++++++++++++++++++++++" echo ""