diff --git a/CEP/MS/src/CMakeLists.txt b/CEP/MS/src/CMakeLists.txt index 445add81d02797854590c3b6f1d77ca2e65f4c5f..b3cfa472d4d853fdfc45e571c5fbe172c0b27e44 100644 --- a/CEP/MS/src/CMakeLists.txt +++ b/CEP/MS/src/CMakeLists.txt @@ -16,7 +16,6 @@ set(ms_PROGRAMS combinevds makems msplay - msselect msoverview ) diff --git a/CEP/MS/src/msselect.cc b/CEP/MS/src/msselect.cc deleted file mode 100644 index 98275200ad4864e37fb037d38235e3791a2774e6..0000000000000000000000000000000000000000 --- a/CEP/MS/src/msselect.cc +++ /dev/null @@ -1,159 +0,0 @@ -//# msselect.cc: Create a persistent selection of an MS -//# -//# Copyright (C) 2005 -//# ASTRON (Netherlands Institute for Radio Astronomy) -//# P.O.Box 2, 7990 AA Dwingeloo, The Netherlands -//# -//# This file is part of the LOFAR software suite. -//# The LOFAR software suite is free software: you can redistribute it and/or -//# modify it under the terms of the GNU General Public License as published -//# by the Free Software Foundation, either version 3 of the License, or -//# (at your option) any later version. -//# -//# The LOFAR software suite is distributed in the hope that it will be useful, -//# but WITHOUT ANY WARRANTY; without even the implied warranty of -//# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -//# GNU General Public License for more details. -//# -//# You should have received a copy of the GNU General Public License along -//# with the LOFAR software suite. If not, see <http://www.gnu.org/licenses/>. -//# -//# $Id$ - -#include <ms/MeasurementSets/MSSelection.h> -#include <tables/Tables/TableRecord.h> -#include <casa/Inputs/Input.h> -#include <casa/OS/DirectoryIterator.h> -#include <casa/OS/File.h> -#include <casa/OS/SymLink.h> -#include <casa/Arrays/ArrayMath.h> -#include <iostream> - -using namespace casa; -using namespace std; - -void select (const String& msin, const String& out, const String& baseline, - bool deep) -{ - MeasurementSet ms(msin); - MSSelection select; - // Set given selection strings. - if (!baseline.empty()) { - select.setAntennaExpr (baseline); - } - // Create a table expression over a MS representing the selection - TableExprNode node = select.toTableExprNode (&ms); - // Make the selection and write the resulting RefTable. - // If no selection was made, create it explicitly from all rows. - Table mssel = ms(node); - if (mssel.nrow() == ms.nrow()) { - Vector<uInt> allRows(ms.nrow()); - indgen (allRows); - mssel = ms(allRows); - } - if (deep) { - mssel.deepCopy (out, Table::New); - cout << "Created MeasurementSet " << out; - } else { - mssel.rename (out, Table::New); - cout << "Created RefTable " << out; - } - cout << " containing " << mssel.nrow() << " rows (out of " - << ms.nrow() << ')' << endl; -} - -// Copy (or symlink) directories that are not a subtable. -// In that way possible instrument and sky model tables can be copied. -void copyOtherDirs (const String& msName, const String& outName, bool deep) -{ - // Get all table keywords. - Table tab(msName); - const TableRecord& keys = tab.keywordSet(); - // Loop over all files in the MS directory. - Directory dir(msName); - DirectoryIterator iter(dir); - for (DirectoryIterator iter(dir); !iter.pastEnd(); ++iter) { - // Test if a directory basename (also via a symlink) is a subtable. - // If not, it is an extra directory that needs to be copied. - if (iter.file().isDirectory()) { - String bname = iter.file().path().baseName(); - if (!(keys.isDefined(bname) && keys.dataType(bname) == TpTable)) { - if (deep) { - Directory sdir(iter.file()); - sdir.copyRecursive (outName + '/' + bname); - cout << "Copied subdirectory " << bname << endl; - } else { - // Resolve a possible symlink created by another msselect. - // Do it only one deep. - Path newName; - if (iter.file().isSymLink()) { - newName = SymLink(iter.file()).readSymLink(); - } else { - newName = iter.file().path(); - } - // Create a symlink to the directory. - SymLink slink(outName + '/' + bname); - slink.create (newName.absoluteName(), False); - cout << "Created symlink to subdirectory " << bname << endl; - } - } - } - } -} - -int main (int argc, char* argv[]) -{ - try { - // enable input in no-prompt mode - Input inputs(1); - // define the input structure - inputs.version("20120905GvD"); - inputs.create ("in", "", - "Name of input MeasurementSet", - "string"); - inputs.create ("out", "", - "Name of output table", - "string"); - inputs.create ("deep", "false", - "Is the output a deep copy of the MeasurementSet selection?", - "bool"); - inputs.create ("baseline", "", - "selection string for antennae and baselines", - "string"); - /* - inputs.create ("time", "", - "selection string for times", - "string"); - inputs.create ("uv", "", - "selection string for uv distance", - "string"); - inputs.create ("amplmax", "1e30", - "Flag visibilities with an amplitude exceeding the value", - "double"); - */ - // Fill the input structure from the command line. - inputs.readArguments (argc, argv); - - // Get and check the input specification. - String msin (inputs.getString("in")); - if (msin.empty()) { - throw AipsError(" an input MeasurementSet must be given"); - } - // Get the output name. - String out(inputs.getString("out")); - if (out.empty()) { - throw AipsError(" an output table name must be given"); - } - // Get the deep option. - bool deep = inputs.getBool("deep"); - // Get the baseline selection string. - string baseline(inputs.getString("baseline")); - // Do the selection and copying. - select (msin, out, baseline, deep); - copyOtherDirs (msin, out, deep); - } catch (std::exception& x) { - cerr << "Error: " << x.what() << endl; - return 1; - } - return 0; -} diff --git a/CEP/Pipeline/recipes/sip/tasks.cfg.in b/CEP/Pipeline/recipes/sip/tasks.cfg.in index 1282aa18d15713b2b9309f3c3117b5fc8cf28a64..f7377242cbf0bb0e34c498a5feb8cc376a39c2c5 100644 --- a/CEP/Pipeline/recipes/sip/tasks.cfg.in +++ b/CEP/Pipeline/recipes/sip/tasks.cfg.in @@ -60,7 +60,7 @@ recipe = imager_prepare ndppp_exec = %(lofarroot)s/bin/NDPPP asciistat_executable = %(lofarroot)s/bin/asciistats.py statplot_executable = %(lofarroot)s/bin/statsplot.py -msselect_executable = %(lofarroot)s/bin/msselect +msselect_executable = %(casaroot)s/bin/msselect rficonsole_executable = %(lofarroot)s/bin/rficonsole [long_baseline] @@ -68,7 +68,7 @@ recipe = long_baseline ndppp_exec = %(lofarroot)s/bin/NDPPP asciistat_executable = %(lofarroot)s/bin/asciistats.py statplot_executable = %(lofarroot)s/bin/statsplot.py -msselect_executable = %(lofarroot)s/bin/msselect +msselect_executable = %(casaroot)s/bin/msselect rficonsole_executable = %(lofarroot)s/bin/rficonsole nproc = 1