#!/bin/csh
#This script takes apart the scrunched image
#then puts it all together into a cube
#This script has been 'made' by Krispian Lowe
#Calls the Kappa commands.
alias echo "echo > /dev/null"
kappa
unalias echo
echo
echo "***************************************************"
echo
echo " CONVERT IFU SCRUNCHED 2-D IMAGE TO 3-D CUBE "
echo " (Courtesy of Kris Lowe, U. Herts) "
echo
echo " This script makes a cube out of a scrunched IFU "
echo " image. "
echo
echo " The offsets are taken from ORACDR, therefore"
echo " thanks go to Brad C."
echo
echo " Listing Available ndfs:"
echo
ls *.sdf
echo
echo -n " Please enter name of INPUT ndf (but without the .sdf): "
set ndf = $<
#This section assigns the slit physical offsets.
echo
echo " The y offsets of each slice in the scrunched image are: "
echo " -0.1 0.71 -0.39 -0.13 -0.14 4.41 2.88 4.19 4.58 4.13 5.59 3.16 4.90 3.53"
echo " This offsets should not change, since the mirror slices"
echo " in UIST are fixed. However, check the output from a "
echo " standard star to be sure..."
echo
set yoffsets = (-0.1 0.71 -0.39 -0.13 -0.14 4.41 2.88 4.19 4.58 4.13 5.59 3.16 4.90 3.53)
rm temp*.sdf
@ sliceoffsets = 1
set i = 1
while ( $i <= 14 )
@ sliceoffsetmax = $sliceoffsets + 46
#Extracting every slice into it own little bit
ndfcopy "in=${ndf}(,${sliceoffsets}:${sliceoffsetmax}) out=temp${i} title=\! trim=no trimwcs=no"
#Extending the slice into the 3rd dimension.
setbound << EOF
temp${i}(,,1:1)
EOF
setorigin ndf=temp${i} << EOF
1,1,$i
EOF
#Sliding the slice into position.
slide "in=temp${i} out=temp${i}slid" << EOF
0,$yoffsets[$i],0
EOF
@ sliceoffsets = $sliceoffsetmax + 1
@ i = $i + 1
end
#Pasting all the slices together.
paste in=temp1slid p1=temp2slid p2=temp3slid p3=temp4slid p4=temp5slid p5=temp6slid p6=temp7slid p7=temp8slid p8=temp9slid p9=temp10slid p10=temp11slid p11=temp12slid p12=temp13slid p13=temp14slid out=temp_cube
#The ORACDR output frames are different for a STD and an OBJ frame!
echo
echo -n " Is this a STANDARD scrunched image? [y/n]: "
set stdorobj = $<
if ( $stdorobj == "y" || $stdorobj == "Y" || $stdorobj == "yes" || $stdorobj == "Yes" || $stdorobj == "YES" ) then
permaxes in=temp_cube out=temp_cube2 perm="[3,2,1]"
else
permaxes in=temp_cube out=temp_cube2 perm="[3,2,1]"
echo
echo "*************************************************************************"
echo " The object cube WCSFRAME information has to be COPIED from the ORACDR "
echo " pipeline cube to complete the process. "
echo " Here is a list of possible cubes: "
ls gu*cub*.sdf
echo
echo -n " Please enter the name for the ORACDR PIPELINE cube ndf (but without the .sdf): "
set oracdrcube = $<
wcscopy "ndf=temp_cube2 like=${oracdrcube} confirm=yes ok=yes tr=\!"
endif
echo
echo -n " Please Enter name of the output cube (without the .sdf): "
set outndf = $<
echo
mv temp_cube2.sdf ${outndf}.sdf
#Having a bit of a clean up. If you have any files called temp*.sdf - sorry.
rm temp*.sdf
exit