Skip to content
Snippets Groups Projects
Commit aa881936 authored by Ger van Diepen's avatar Ger van Diepen
Browse files

Bug 1207:

Improved for real mwimager usage
parent 004f64fd
No related branches found
No related tags found
No related merge requests found
......@@ -63,11 +63,15 @@ namespace LOFAR {
ostringstream osvec;
osvec << restoreBeamStr;
out.add ("Cimager.restore.beam", osvec.str());
// The output name is the MS name minus the possibly trailing .MS.
// The output name is the base MS name minus the possible extension.
outname = dataset;
string::size_type pos = outname.rfind (".MS");
string::size_type pos = outname.rfind ('.');
if (pos != string::npos) {
outname.erase (pos);
outname = outname.substr (0, pos);
}
pos = outname.rfind ('/');
if (pos != string::npos) {
outname = outname.substr (pos+1);
}
}
{
......@@ -110,7 +114,7 @@ namespace LOFAR {
string angle1 = imin.getString ("ra");
string angle2 = imin.getString ("dec");
string dirType = imin.getString ("directionType");
string nchan = imin.getString ("nchan");
string nchan = imin.getString ("nchan", "1");
string shape = imin.getString ("shape");
string frequency = imin.getString ("frequency");
vector<string> stokes = imin.getStringVector ("stokes");
......
......@@ -15,7 +15,7 @@ versionmwimager_LDADD = libmwimager.la
versionmwimager_DEPENDENCIES = libmwimager.la $(LOFAR_DEPEND)
scriptdir = $(bindir)
dist_script_SCRIPTS = mwimager
dist_script_SCRIPTS = mwimager mwimager-part
include $(top_srcdir)/Makefile.common
......@@ -40,7 +40,7 @@ if test $# = 0; then
echo "run as: mwimager parset-file [clusterdesc] [wd] [logfile] [dry] [hfn]"
echo " parset-file name of parset file"
echo " clusterdesc name of clusterdesc file"
echo " default is $HOME/CEP.cl;usterdesc"
echo " default is $HOME/CEP.clusterdesc"
echo " wd working directory in subprocesses"
echo " logfile root name of logfile of each subprocess"
echo " A sequence number gets appended to it"
......@@ -54,44 +54,55 @@ else
psn=$1
shift
fi
cdn=$HOME/CEP.clusterdesc
cdn=
if test $# != 0; then
cdn=$1
shift
fi
wd=0
if test "$cdn" = ""; then
cdn=$HOME/CEP.clusterdesc
fi
wd=
if test $# != 0; then
wd=$1
shift
fi
if test "$wd" = ""; then
wd=.
fi
logfile=
if test $# != 0; then
logfile=$1
shift
fi
dry=0
dry=
if test $# != 0; then
dry=$1
shift
fi
if test "$dry" = ""; then
dry="nodry"
fi
hfn=
if test $# != 0; then
hfn=$1
shift
fi
# Prepend parset with pwd if it has a relative file name.
case "$psn" in
/*)
;;
*)
psn=$wd/$psn
;;
esac
# Make all file names absolute.
wd=`cd $wd > /dev/null; pwd`
dn=`dirname $psn`
psn=`cd $dn > /dev/null; pwd`/`basename $psn`
dn=`dirname $cdn`
cdn=`cd $dn > /dev/null; pwd`/`basename $cdn`
if test "$hfn" != ""; then
dn=`dirname $hfn`
hfn=`cd $dn > /dev/null; pwd`/`basename $hfn`
fi
# Get dataset name from the parset.
msname=`getparsetvalue $psn dataset` || exit 1
msvds=`getparsetvalue $psn dataset` || exit 1
# Start the imager processes on the various machines.
echo "startdistproc -mode 0 -nomasterhost -dsn $msname -hfn "$hfn" -cdn $cdn -logfile "$logfile" $pgmpath/mwimager-part $LOFARROOT $psn $wd $dry"
startdistproc -mode 0 -nomasterhost -dsn $msname -hfn "$hfn" -cdn $cdn -logfile "$logfile" $pgmpath/mwimager-part $LOFARROOT $psn $wd $dry
echo "startdistproc -mode 0 -nomasterhost -dsn $msvds -hfn "$hfn" -cdn $cdn -logfile "$logfile" $pgmpath/mwimager-part $LOFARROOT $psn $wd $dry"
startdistproc -mode 0 -nomasterhost -dsn "$msvds" -hfn "$hfn" -cdn "$cdn" -logfile "$logfile" $pgmpath/mwimager-part "$LOFARROOT" "$psn" "$wd" "$dry"
......@@ -27,6 +27,8 @@
pgmpath=`dirname $0`
pgmpath=`cd $pgmpath > /dev/null 2>&1 && pwd`
echo "$@" >> $HOME/xxx
if test $# != 10; then
echo "run as: mwimager-part dummy dummy dummy dummy rank ms-part"
echo " lofarroot parset-file wd dry"
......@@ -44,38 +46,42 @@ psn=$4
wd=$5
dry=$6
psnbase=`basename $psn`
# Initialize lofar environment.
. $lroot/lofarinit.sh
# Set to working directory.
cd $wd
# Add channel info to the parset file.
cp $psn $psn.part$seqnr
schan=`getparsetvalue $psn.part$seqnr firstchan 2>/dev/null` || schan=0
echan=`getparsetvalue $psn.part$seqnr lastchan 2>/dev/null` || echan=-1
sfreq=`getparsetvalue $msn.vds StartFreqs schan` || exit 1
efreq=`getparsetvalue $msn.vds EndFreqs echan` || exit 1
dname=`getparsetvalue $msn.vds Name` || exit 1
echo "Images.frequency = [$sfreq, $efreq]" >> $psn.part$seqnr
sed -e "s/^ *dataset * =.*/dataset = $dname/" $psn.part$seqnr > $psn.part$seqnr-tmp
cp $psn $psnbase.part$seqnr
schan=`getparsetvalue $psnbase.part$seqnr firstchan 2>/dev/null` || schan=0
echan=`getparsetvalue $psnbase.part$seqnr lastchan 2>/dev/null` || echan=-1
sfreq=`getparsetvalue $msn StartFreqs schan` || exit 1
efreq=`getparsetvalue $msn EndFreqs echan` || exit 1
dname=`getparsetvalue $msn Name` || exit 1
echo "$schan $echan $sfreq $efreq $dname" >> $HOME/xxx
echo "Images.frequency = [$sfreq, $efreq]" >> $psnbase.part$seqnr
sed -e "s%^ *dataset * =.*%dataset = $dname%" $psnbase.part$seqnr > $psnbase.part$seqnr-tmp
mv $psn.part$seqnr-tmp $psn.part$seqnr
# Convert parset file from SAS format to cimager format.
# Normally convertimagerparset is in the same installed directory as the script,
# but in case of 'make check' it is in the src directory.
if test -e $pgmpath/convertimagerparset; then
$pgmpath/convertimagerparset $psn.part$seqnr $psn.part$seqnr.cvt
$pgmpath/convertimagerparset $psnbase.part$seqnr $psnbase.part$seqnr.cvt
else
../src/convertimagerparset $psn.part$seqnr $psn.part$seqnr.cvt
../src/convertimagerparset $psnbase.part$seqnr $psnbase.part$seqnr.cvt
fi
if test "$dry" = dry; then
cat $psn.part$seqnr.cvt
cat $psnbase.part$seqnr.cvt
exit 0
fi
# Run the imager.
~/askapsoft/Code/Components/Synthesis/synthesis/trunk/apps/cimager.sh -inputs $psn.part$seqnr.cvt
echo "~/askapsoft/Code/Components/Synthesis/synthesis/trunk/apps/cimager.sh -inputs $psnbase.part$seqnr.cvt" > $HOME/xxx
~/askapsoft/Code/Components/Synthesis/synthesis/trunk/apps/cimager.sh -inputs $psnbase.part$seqnr.cvt
# Convert to FITS.
## image2fits
Cimager.Images.Names=[image.i.abc/def_Dirty,image.q.abc/def_Dirty,image.u.abc/def_Dirty,image.v.abc/def_Dirty]
Cimager.Images.Names=[image.i.def_Dirty,image.q.def_Dirty,image.u.def_Dirty,image.v.def_Dirty]
Cimager.Images.cellsize=[240arcsec,240arcsec]
Cimager.Images.image.i.abc/def_Dirty.direction=[230.35,-10,345,J2000]
Cimager.Images.image.i.abc/def_Dirty.frequency=[12345678, 12345679]
Cimager.Images.image.i.abc/def_Dirty.nchan=1
Cimager.Images.image.q.abc/def_Dirty.direction=[230.35,-10,345,J2000]
Cimager.Images.image.q.abc/def_Dirty.frequency=[12345678, 12345679]
Cimager.Images.image.q.abc/def_Dirty.nchan=1
Cimager.Images.image.u.abc/def_Dirty.direction=[230.35,-10,345,J2000]
Cimager.Images.image.u.abc/def_Dirty.frequency=[12345678, 12345679]
Cimager.Images.image.u.abc/def_Dirty.nchan=1
Cimager.Images.image.v.abc/def_Dirty.direction=[230.35,-10,345,J2000]
Cimager.Images.image.v.abc/def_Dirty.frequency=[12345678, 12345679]
Cimager.Images.image.v.abc/def_Dirty.nchan=1
Cimager.Images.image.i.def_Dirty.direction=[230.35,-10,345,J2000]
Cimager.Images.image.i.def_Dirty.frequency=[12345678, 12345679]
Cimager.Images.image.i.def_Dirty.nchan=1
Cimager.Images.image.q.def_Dirty.direction=[230.35,-10,345,J2000]
Cimager.Images.image.q.def_Dirty.frequency=[12345678, 12345679]
Cimager.Images.image.q.def_Dirty.nchan=1
Cimager.Images.image.u.def_Dirty.direction=[230.35,-10,345,J2000]
Cimager.Images.image.u.def_Dirty.frequency=[12345678, 12345679]
Cimager.Images.image.u.def_Dirty.nchan=1
Cimager.Images.image.v.def_Dirty.direction=[230.35,-10,345,J2000]
Cimager.Images.image.v.def_Dirty.frequency=[12345678, 12345679]
Cimager.Images.image.v.def_Dirty.nchan=1
Cimager.Images.shape=[2048, 2048]
Cimager.MinUV=1.0
Cimager.datacolumn=CORRECTED_DATA
......
ClusterName = cl
ClusterName = test
NNodes = 2
Node0.NodeName = localhost
Node0.NodeFileSys = [node1:/usr]
Node0.NodeMountPoints = /
Node1.NodeName = localhost
Node1.NodeFileSys = [node1:/usr]
Node1.NodeMountPoints = /
......@@ -4,7 +4,7 @@ EndTime = 2
StepTime = 0.5
NParts = 3
Part0.Name = tmwimager.in_ms0
Part0.Name = tmwimager.in_ms0.vds
Part0.FileSys = node1:/usr
Part0.StartTime = 0
Part0.EndTime = 2
......@@ -13,7 +13,7 @@ Part0.NChan = [2]
Part0.StartFreqs = [20,25]
Part0.EndFreqs = [22,30]
Part1.Name = tmwimager.in_ms1
Part1.Name = tmwimager.in_ms1.vds
Part1.FileSys = node1:/usr
Part1.StartTime = 0
Part1.EndTime = 2
......@@ -22,7 +22,7 @@ Part1.NChan = [2]
Part1.StartFreqs = [120,125]
Part1.EndFreqs = [122,130]
Part2.Name = tmwimager.in_ms2
Part2.Name = tmwimager.in_ms2.vds
Part2.FileSys = node1:/usr
Part2.StartTime = 0
Part2.EndTime = 2
......
......@@ -5,20 +5,20 @@ ssh localhost /Users/diepen/sim/LOFAR/CEP/BB/MWImager/src/mwimager-part socket l
ssh localhost /Users/diepen/sim/LOFAR/CEP/BB/MWImager/src/mwimager-part socket localhost 0 3 1 tmwimager.in_ms1 /Users/diepen/sim/LOFAR/installed/gnu_opt /Users/diepen/sim/LOFAR/CEP/BB/MWImager/build/gnu_opt/test/tmwimager.parset /Users/diepen/sim/LOFAR/CEP/BB/MWImager/build/gnu_opt/test dry
ssh localhost /Users/diepen/sim/LOFAR/CEP/BB/MWImager/src/mwimager-part socket localhost 0 3 2 tmwimager.in_ms2 /Users/diepen/sim/LOFAR/installed/gnu_opt /Users/diepen/sim/LOFAR/CEP/BB/MWImager/build/gnu_opt/test/tmwimager.parset /Users/diepen/sim/LOFAR/CEP/BB/MWImager/build/gnu_opt/test dry
<<<
Cimager.Images.Names=[image.i.tmwimager.in_ms0_Dirty,image.q.tmwimager.in_ms0_Dirty,image.u.tmwimager.in_ms0_Dirty,image.v.tmwimager.in_ms0_Dirty]
Cimager.Images.Names=[image.i.tmwimager_Dirty,image.q.tmwimager_Dirty,image.u.tmwimager_Dirty,image.v.tmwimager_Dirty]
Cimager.Images.cellsize=[240arcsec,240arcsec]
Cimager.Images.image.i.tmwimager.in_ms0_Dirty.direction=[230.35,-10,345,J2000]
Cimager.Images.image.i.tmwimager.in_ms0_Dirty.frequency=[20, 22]
Cimager.Images.image.i.tmwimager.in_ms0_Dirty.nchan=1
Cimager.Images.image.q.tmwimager.in_ms0_Dirty.direction=[230.35,-10,345,J2000]
Cimager.Images.image.q.tmwimager.in_ms0_Dirty.frequency=[20, 22]
Cimager.Images.image.q.tmwimager.in_ms0_Dirty.nchan=1
Cimager.Images.image.u.tmwimager.in_ms0_Dirty.direction=[230.35,-10,345,J2000]
Cimager.Images.image.u.tmwimager.in_ms0_Dirty.frequency=[20, 22]
Cimager.Images.image.u.tmwimager.in_ms0_Dirty.nchan=1
Cimager.Images.image.v.tmwimager.in_ms0_Dirty.direction=[230.35,-10,345,J2000]
Cimager.Images.image.v.tmwimager.in_ms0_Dirty.frequency=[20, 22]
Cimager.Images.image.v.tmwimager.in_ms0_Dirty.nchan=1
Cimager.Images.image.i.tmwimager_Dirty.direction=[230.35,-10,345,J2000]
Cimager.Images.image.i.tmwimager_Dirty.frequency=[20, 22]
Cimager.Images.image.i.tmwimager_Dirty.nchan=1
Cimager.Images.image.q.tmwimager_Dirty.direction=[230.35,-10,345,J2000]
Cimager.Images.image.q.tmwimager_Dirty.frequency=[20, 22]
Cimager.Images.image.q.tmwimager_Dirty.nchan=1
Cimager.Images.image.u.tmwimager_Dirty.direction=[230.35,-10,345,J2000]
Cimager.Images.image.u.tmwimager_Dirty.frequency=[20, 22]
Cimager.Images.image.u.tmwimager_Dirty.nchan=1
Cimager.Images.image.v.tmwimager_Dirty.direction=[230.35,-10,345,J2000]
Cimager.Images.image.v.tmwimager_Dirty.frequency=[20, 22]
Cimager.Images.image.v.tmwimager_Dirty.nchan=1
Cimager.Images.shape=[2048, 2048]
Cimager.MinUV=1.0
Cimager.datacolumn=CORRECTED_DATA
......@@ -39,20 +39,20 @@ Cimager.solver.Clean.gain=1.0
Cimager.solver.Clean.niter=10
Cimager.solver.Clean.scales=[0, 3]
Cimager.solver.Clean.verbose=True
Cimager.Images.Names=[image.i.tmwimager.in_ms1_Dirty,image.q.tmwimager.in_ms1_Dirty,image.u.tmwimager.in_ms1_Dirty,image.v.tmwimager.in_ms1_Dirty]
Cimager.Images.Names=[image.i.tmwimager_Dirty,image.q.tmwimager_Dirty,image.u.tmwimager_Dirty,image.v.tmwimager_Dirty]
Cimager.Images.cellsize=[240arcsec,240arcsec]
Cimager.Images.image.i.tmwimager.in_ms1_Dirty.direction=[230.35,-10,345,J2000]
Cimager.Images.image.i.tmwimager.in_ms1_Dirty.frequency=[120, 122]
Cimager.Images.image.i.tmwimager.in_ms1_Dirty.nchan=1
Cimager.Images.image.q.tmwimager.in_ms1_Dirty.direction=[230.35,-10,345,J2000]
Cimager.Images.image.q.tmwimager.in_ms1_Dirty.frequency=[120, 122]
Cimager.Images.image.q.tmwimager.in_ms1_Dirty.nchan=1
Cimager.Images.image.u.tmwimager.in_ms1_Dirty.direction=[230.35,-10,345,J2000]
Cimager.Images.image.u.tmwimager.in_ms1_Dirty.frequency=[120, 122]
Cimager.Images.image.u.tmwimager.in_ms1_Dirty.nchan=1
Cimager.Images.image.v.tmwimager.in_ms1_Dirty.direction=[230.35,-10,345,J2000]
Cimager.Images.image.v.tmwimager.in_ms1_Dirty.frequency=[120, 122]
Cimager.Images.image.v.tmwimager.in_ms1_Dirty.nchan=1
Cimager.Images.image.i.tmwimager_Dirty.direction=[230.35,-10,345,J2000]
Cimager.Images.image.i.tmwimager_Dirty.frequency=[120, 122]
Cimager.Images.image.i.tmwimager_Dirty.nchan=1
Cimager.Images.image.q.tmwimager_Dirty.direction=[230.35,-10,345,J2000]
Cimager.Images.image.q.tmwimager_Dirty.frequency=[120, 122]
Cimager.Images.image.q.tmwimager_Dirty.nchan=1
Cimager.Images.image.u.tmwimager_Dirty.direction=[230.35,-10,345,J2000]
Cimager.Images.image.u.tmwimager_Dirty.frequency=[120, 122]
Cimager.Images.image.u.tmwimager_Dirty.nchan=1
Cimager.Images.image.v.tmwimager_Dirty.direction=[230.35,-10,345,J2000]
Cimager.Images.image.v.tmwimager_Dirty.frequency=[120, 122]
Cimager.Images.image.v.tmwimager_Dirty.nchan=1
Cimager.Images.shape=[2048, 2048]
Cimager.MinUV=1.0
Cimager.datacolumn=CORRECTED_DATA
......@@ -73,20 +73,20 @@ Cimager.solver.Clean.gain=1.0
Cimager.solver.Clean.niter=10
Cimager.solver.Clean.scales=[0, 3]
Cimager.solver.Clean.verbose=True
Cimager.Images.Names=[image.i.tmwimager.in_ms2_Dirty,image.q.tmwimager.in_ms2_Dirty,image.u.tmwimager.in_ms2_Dirty,image.v.tmwimager.in_ms2_Dirty]
Cimager.Images.Names=[image.i.tmwimager_Dirty,image.q.tmwimager_Dirty,image.u.tmwimager_Dirty,image.v.tmwimager_Dirty]
Cimager.Images.cellsize=[240arcsec,240arcsec]
Cimager.Images.image.i.tmwimager.in_ms2_Dirty.direction=[230.35,-10,345,J2000]
Cimager.Images.image.i.tmwimager.in_ms2_Dirty.frequency=[220, 222]
Cimager.Images.image.i.tmwimager.in_ms2_Dirty.nchan=1
Cimager.Images.image.q.tmwimager.in_ms2_Dirty.direction=[230.35,-10,345,J2000]
Cimager.Images.image.q.tmwimager.in_ms2_Dirty.frequency=[220, 222]
Cimager.Images.image.q.tmwimager.in_ms2_Dirty.nchan=1
Cimager.Images.image.u.tmwimager.in_ms2_Dirty.direction=[230.35,-10,345,J2000]
Cimager.Images.image.u.tmwimager.in_ms2_Dirty.frequency=[220, 222]
Cimager.Images.image.u.tmwimager.in_ms2_Dirty.nchan=1
Cimager.Images.image.v.tmwimager.in_ms2_Dirty.direction=[230.35,-10,345,J2000]
Cimager.Images.image.v.tmwimager.in_ms2_Dirty.frequency=[220, 222]
Cimager.Images.image.v.tmwimager.in_ms2_Dirty.nchan=1
Cimager.Images.image.i.tmwimager_Dirty.direction=[230.35,-10,345,J2000]
Cimager.Images.image.i.tmwimager_Dirty.frequency=[220, 222]
Cimager.Images.image.i.tmwimager_Dirty.nchan=1
Cimager.Images.image.q.tmwimager_Dirty.direction=[230.35,-10,345,J2000]
Cimager.Images.image.q.tmwimager_Dirty.frequency=[220, 222]
Cimager.Images.image.q.tmwimager_Dirty.nchan=1
Cimager.Images.image.u.tmwimager_Dirty.direction=[230.35,-10,345,J2000]
Cimager.Images.image.u.tmwimager_Dirty.frequency=[220, 222]
Cimager.Images.image.u.tmwimager_Dirty.nchan=1
Cimager.Images.image.v.tmwimager_Dirty.direction=[230.35,-10,345,J2000]
Cimager.Images.image.v.tmwimager_Dirty.frequency=[220, 222]
Cimager.Images.image.v.tmwimager_Dirty.nchan=1
Cimager.Images.shape=[2048, 2048]
Cimager.MinUV=1.0
Cimager.datacolumn=CORRECTED_DATA
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment