Build: #3 was successful

Job: Tag Branch for Packages was successful

Stages & jobs

  1. Tag Branch

  2. Default Stage

  3. Create Critial Test Plan Branch

Build log

The build generated 21,469 lines of output.The output is too long and has been truncated to the last 1,000 lines. Download or view full build log.

12-Apr-2018 16:00:58 +    if (!casacore::MDirection::getType(typeTo, code2)) {
12-Apr-2018 16:00:58 +        *_log << "Invalid direction code '" << code
12-Apr-2018 16:00:58 +            << "' given. Allowed are : " << endl;
12-Apr-2018 16:00:58 +        for (uInt i=0; i<casacore::MDirection::N_Types; i++) {
12-Apr-2018 16:00:58 +            *_log << "  " << casacore::MDirection::showType(i) << endl;
12-Apr-2018 16:00:58 +        }
12-Apr-2018 16:00:58 +            *_log << LogIO::EXCEPTION;
12-Apr-2018 16:00:58      }
12-Apr-2018 16:00:58 -  }
12-Apr-2018 16:00:58 -  //
12-Apr-2018 16:00:58 -  _csys->replaceCoordinate(dirCoordTo, ic);
12-Apr-2018 16:00:58 +    // Bug out if nothing to do
12-Apr-2018 16:00:58 +    auto dirCoordFrom(_csys->directionCoordinate(ic));  // Copy
12-Apr-2018 16:00:58 +    if (dirCoordFrom.directionType() == typeTo) return;
12-Apr-2018 16:00:58 +    auto unitsFrom = dirCoordFrom.worldAxisUnits();
12-Apr-2018 16:00:58 +    auto radUnits = Vector<String>(2, "rad");
12-Apr-2018 16:00:58 +    ThrowIf (
12-Apr-2018 16:00:58 +        ! dirCoordFrom.setWorldAxisUnits(radUnits),
12-Apr-2018 16:00:58 +        "Failed to set radian units for DirectionCoordinate"
12-Apr-2018 16:00:58 +    );
12-Apr-2018 16:00:58 +    // Create output DirectionCoordinate
12-Apr-2018 16:00:58 +    auto refValFrom = dirCoordFrom.referenceValue();
12-Apr-2018 16:00:58 +    auto refPixFrom = dirCoordFrom.referencePixel();
12-Apr-2018 16:00:58 +    auto incrFrom = dirCoordFrom.increment();
12-Apr-2018 16:00:58 +    DirectionCoordinate dirCoordTo(
12-Apr-2018 16:00:58 +        typeTo, dirCoordFrom.projection(), refValFrom(0), refValFrom(1),
12-Apr-2018 16:00:58 +        incrFrom(0), incrFrom(1), dirCoordFrom.linearTransform(),
12-Apr-2018 16:00:58 +        refPixFrom(0), refPixFrom(1)
12-Apr-2018 16:00:58 +    );
12-Apr-2018 16:00:58 +    if (adjust) {
12-Apr-2018 16:00:58 +        casacore::MDirection::Convert machine;
12-Apr-2018 16:00:58 +        const auto& obsInfo = _csys->obsInfo();
12-Apr-2018 16:00:58 +        auto madeMachine = CoordinateUtil::makeDirectionMachine(
12-Apr-2018 16:00:58 +            *_log, machine, dirCoordTo,
12-Apr-2018 16:00:58 +            dirCoordFrom, obsInfo, obsInfo
12-Apr-2018 16:00:58 +            );
12-Apr-2018 16:00:58 +        if (madeMachine) {
12-Apr-2018 16:00:58 +            MVDirection mvdTo, mvdFrom;
12-Apr-2018 16:00:58 +            if (dirCoordFrom.toWorld (mvdFrom, refPixFrom)) {
12-Apr-2018 16:00:58 +                mvdTo = machine(mvdFrom).getValue();
12-Apr-2018 16:00:58 +                Vector<Double> referenceValueTo(2);
12-Apr-2018 16:00:58 +                referenceValueTo(0) = mvdTo.getLong();
12-Apr-2018 16:00:58 +                referenceValueTo(1) = mvdTo.getLat();
12-Apr-2018 16:00:58 +                ThrowIf(
12-Apr-2018 16:00:58 +                    ! dirCoordTo.setReferenceValue(referenceValueTo),
12-Apr-2018 16:00:58 +                    dirCoordTo.errorMessage()
12-Apr-2018 16:00:58 +                  );
12-Apr-2018 16:00:58 +                }
12-Apr-2018 16:00:58 +            ThrowIf(
12-Apr-2018 16:00:58 +                ! dirCoordTo.setWorldAxisUnits(unitsFrom),
12-Apr-2018 16:00:58 +                dirCoordTo.errorMessage()
12-Apr-2018 16:00:58 +                );
12-Apr-2018 16:00:58 +            }
12-Apr-2018 16:00:58 +        }
12-Apr-2018 16:00:58 +    _csys->replaceCoordinate(dirCoordTo, ic);
12-Apr-2018 16:00:58 }
12-Apr-2018 16:00:58
12-Apr-2018 16:00:58 void coordsys::setSpectralCode (const String& code, Bool adjust)
12-Apr-2018 16:00:58 diff --git a/gcwrap/tools/images/image.xml b/gcwrap/tools/images/image.xml
12-Apr-2018 16:00:58 index ddfb805..1fe54b1 100644
12-Apr-2018 16:00:58 --- a/gcwrap/tools/images/image.xml
12-Apr-2018 16:00:58 +++ b/gcwrap/tools/images/image.xml
12-Apr-2018 16:00:58 @@ -4560,17 +4560,17 @@ We use the Componentlist GUI to look at the strongest component.
12-Apr-2018 16:00:58          <param type="any"  name="pampest">
12-Apr-2018 16:00:58              <any type="variant" limittypes="double doubleArray"/>
12-Apr-2018 16:00:58              <description>Initial estimate PCF profile amplitudes.</description>
12-Apr-2018 16:00:58 -            <value type="string"/>
12-Apr-2018 16:00:58 +            <value type="doubleArray"/>
12-Apr-2018 16:00:58          </param>
12-Apr-2018 16:00:58          <param type="any"  name="pcenterest">
12-Apr-2018 16:00:58              <any type="variant" limittypes="double doubleArray"/>
12-Apr-2018 16:00:58              <description>Initial estimate PCF profile centers, in pixels.</description>
12-Apr-2018 16:00:58 -            <value type="string"/>
12-Apr-2018 16:00:58 +            <value type="doubleArray"/>
12-Apr-2018 16:00:58          </param>
12-Apr-2018 16:00:58          <param type="any"  name="pfwhmest">
12-Apr-2018 16:00:58              <any type="variant" limittypes="double doubleArray"/>
12-Apr-2018 16:00:58              <description>Initial estimate PCF profile FWHMs, in pixels.</description>
12-Apr-2018 16:00:58 -            <value type="string"/>
12-Apr-2018 16:00:58 +            <value type="doubleArray"/>
12-Apr-2018 16:00:58          </param>
12-Apr-2018 16:00:58          <param type="any"  name="pfix">
12-Apr-2018 16:00:58              <any type="variant" limittypes="string stringArray"/>
12-Apr-2018 16:00:58 @@ -4585,17 +4585,17 @@ We use the Componentlist GUI to look at the strongest component.
12-Apr-2018 16:00:58          <param type="any"  name="gmampcon">
12-Apr-2018 16:00:58              <any type="variant" limittypes="double doubleArray"/>
12-Apr-2018 16:00:58              <description>The amplitude ratio constraints for non-reference components to reference component in gaussian multiplets.</description>
12-Apr-2018 16:00:58 -            <value type="string"/>
12-Apr-2018 16:00:58 +            <value type="doubleArray"/>
12-Apr-2018 16:00:58          </param>
12-Apr-2018 16:00:58          <param type="any"  name="gmcentercon">
12-Apr-2018 16:00:58              <any type="variant" limittypes="double doubleArray"/>
12-Apr-2018 16:00:58              <description>The center offset constraints (in pixels) for non-reference components to reference component in gaussian multiplets.</description>
12-Apr-2018 16:00:58 -            <value type="string"/>
12-Apr-2018 16:00:58 +            <value type="doubleArray"/>
12-Apr-2018 16:00:58          </param>
12-Apr-2018 16:00:58          <param type="any"  name="gmfwhmcon">
12-Apr-2018 16:00:58              <any type="variant" limittypes="double doubleArray"/>
12-Apr-2018 16:00:58              <description>The FWHM  ratio constraints for non-reference components to reference component in gaussian multiplets.</description>
12-Apr-2018 16:00:58 -            <value type="string"/>
12-Apr-2018 16:00:58 +            <value type="doubleArray"/>
12-Apr-2018 16:00:58          </param>
12-Apr-2018 16:00:58          <param type="doubleArray"  name="gmampest">
12-Apr-2018 16:00:58              <description>Initial estimate of individual gaussian amplitudes in gaussian multiplets.</description>
12-Apr-2018 16:00:58 @@ -4666,6 +4666,11 @@ We use the Componentlist GUI to look at the strongest component.
12-Apr-2018 16:00:58          </param>
12-Apr-2018 16:00:58          <param type="any"  name="sigma">
12-Apr-2018 16:00:58              <any type="variant" limittypes="string doubleArray intArray"/>
12-Apr-2018 16:00:58 +            <type>string</type>
12-Apr-2018 16:00:58 +            <type>intVec</type>
12-Apr-2018 16:00:58 +            <type>intArray</type>
12-Apr-2018 16:00:58 +            <type>doubleVec</type>
12-Apr-2018 16:00:58 +            <type>doubleArray</type>
12-Apr-2018 16:00:58              <description>Standard deviation array or image name.</description>
12-Apr-2018 16:00:58              <value type="string"/>
12-Apr-2018 16:00:58          </param>
12-Apr-2018 16:00:58 @@ -9512,7 +9517,7 @@ ib.done()
12-Apr-2018 16:00:58            <value>true</value>
12-Apr-2018 16:00:58       </param>
12-Apr-2018 16:00:58       <param type="string"  name="algorithm">
12-Apr-2018 16:00:58 -          <description>Algorithm to use. Supported values are "chauvenet", "classic", "fit-half", and "hinges-fences". Minimum match is supported.</description>
12-Apr-2018 16:00:58 +          <description>Algorithm to use. Supported values are "biweight", "chauvenet", "classic", "fit-half", and "hinges-fences". Minimum match is supported.</description>
12-Apr-2018 16:00:58            <value>classic</value>
12-Apr-2018 16:00:58       </param>
12-Apr-2018 16:00:58       <param type="double"  name="fence">
12-Apr-2018 16:00:58 @@ -9532,13 +9537,17 @@ ib.done()
12-Apr-2018 16:00:58            <value>-1</value>
12-Apr-2018 16:00:58       </param>
12-Apr-2018 16:00:58       <param type="int"  name="maxiter">
12-Apr-2018 16:00:58 -          <description>For chauvenet, this is the maximum number of iterations to attempt. Iterating will stop when either this limit is reached, or the zscore criterion is met. If negative, iterate until the zscore criterion is met. Ignored if algortihm is not "chauvenet".</description>
12-Apr-2018 16:00:58 +          <description>For chauvenet, this is the maximum number of iterations to attempt. Iterating will stop when either this limit is reached, or the zscore criterion is met. If negative, iterate until the zscore criterion is met. Ignored if algorithm is not "chauvenet".</description>
12-Apr-2018 16:00:58            <value>-1</value>
12-Apr-2018 16:00:58       </param>
12-Apr-2018 16:00:58       <param type="string"  name="clmethod">
12-Apr-2018 16:00:58            <description>Method to use for calculating classical statistics. Supported methods are "auto", "tiled", and "framework". Ignored if algorithm is not "classic".</description>
12-Apr-2018 16:00:58            <value>auto</value>
12-Apr-2018 16:00:58       </param>
12-Apr-2018 16:00:58 +     <param type="int"  name="niter">
12-Apr-2018 16:00:58 +          <description>For biweight, this is the maximum number of iterations to attempt. Iterating will stop when either this limit is reached, or the zscore criterion is met. If negative, do a fast, simple computation (see description). Ignored if the algorithm is not "chauvenet".</description>
12-Apr-2018 16:00:58 +          <value>3</value>
12-Apr-2018 16:00:58 +     </param>
12-Apr-2018 16:00:58 </input>
12-Apr-2018 16:00:58
12-Apr-2018 16:00:58 <returns type="record">
12-Apr-2018 16:00:58 @@ -9763,6 +9772,79 @@ Several types of statistical algorithms are supported:
12-Apr-2018 16:00:58    6.5    6,225,098,696
12-Apr-2018 16:00:58    7.0  195,341,107,722
12-Apr-2018 16:00:58    
12-Apr-2018 16:00:58 +* biweight: The biweight algorithm is a robust iterative algorithm that computes two
12-Apr-2018 16:00:58 +  quantities called the "location" and the "scale", which are analogous to the mean
12-Apr-2018 16:00:58 +  and the standard deviation. In this case, the only keys present in the returned
12-Apr-2018 16:00:58 +  dictionary are 'mean' (location), 'sigma' (scale), 'npts', 'min', and 'max'. The
12-Apr-2018 16:00:58 +  last three represent the values using the entire distribution. Note that the
12-Apr-2018 16:00:58 +  biweight algorithm does not support computation of quantile-like values (median,
12-Apr-2018 16:00:58 +  madm, q1, q3, and iqr), so setting robust=True will cause a warning message to
12-Apr-2018 16:00:58 +  be logged regarding that, and the computation will proceed.
12-Apr-2018 16:00:58
12-Apr-2018 16:00:58 +  Important equations for the biweight algorithm are
12-Apr-2018 16:00:58 +
12-Apr-2018 16:00:58 +  A. How to compute u_i values, which are related to the weights w_i = (1 - u_i*u_i),
12-Apr-2018 16:00:58 +     using the
12-Apr-2018 16:00:58 +     equation
12-Apr-2018 16:00:58 +
12-Apr-2018 16:00:58 +      u_i = (x_i - c_bi)/(6.0*s_bi)                 (1)
12-Apr-2018 16:00:58 +
12-Apr-2018 16:00:58 +     where x_i are the data values, c_bi is the biweight location and s_bi is the
12-Apr-2018 16:00:58 +     biweight scale. For the initial computation of the u_i values, c_bi is set
12-Apr-2018 16:00:58 +     equal to the median of the distribution and s_bi is set equal to
12-Apr-2018 16:00:58 +     the normalized median of the absolute deviation about the median (that is the
12-Apr-2018 16:00:58 +     median of the absolute deviation about the median multiplied by the value of
12-Apr-2018 16:00:58 +     the probit function at 0.75).
12-Apr-2018 16:00:58 +     
12-Apr-2018 16:00:58 +  B  The location, c_bi, is computed from
12-Apr-2018 16:00:58 +
12-Apr-2018 16:00:58 +      c_bi = sum(x_i * w_i^2)/sum(w_i^2)            (2)
12-Apr-2018 16:00:58 +
12-Apr-2018 16:00:58 +    where only values of u_i which satisfy abs(u_i) &lt; 1 (w_i &gt; 0) are used in the sums.
12-Apr-2018 16:00:58 +
12-Apr-2018 16:00:58 +  C. The scale value is computed using
12-Apr-2018 16:00:58 +
12-Apr-2018 16:00:58 +               n * sum((x_i - c_bi)^2 * w_i^4)
12-Apr-2018 16:00:58 +      s_bi^2 = _______________________________      (3)
12-Apr-2018 16:00:58 +                      p * max(1, p - 1)
12-Apr-2018 16:00:58 +
12-Apr-2018 16:00:58 +  where n is the number of points for the entire distribution (which includes all
12-Apr-2018 16:00:58 +  the data, even for which abs(u_i) >= 1) and p is given by
12-Apr-2018 16:00:58 +
12-Apr-2018 16:00:58 +     p = abs(sum((w_i) * (5*w_i - 4)))
12-Apr-2018 16:00:58 +
12-Apr-2018 16:00:58 +  Again, the sums include only data for which abs(u_i) &lt; 1.
12-Apr-2018 16:00:58 +
12-Apr-2018 16:00:58 +  The algorithm proceeds as follows.
12-Apr-2018 16:00:58 +    1. Compute initial u_i values (and hence w_i values) from equation (1), setting
12-Apr-2018 16:00:58 +       c_bi equal to the median of the distribution and s_bi equal to the normalized
12-Apr-2018 16:00:58 +       median of the absolute deviation about the median.
12-Apr-2018 16:00:58 +    2. Compute the initial value of the scale using the w_i values computed in
12-Apr-2018 16:00:58 +       step 1. using equation 3.
12-Apr-2018 16:00:58 +    3. Recompute u_i/w_i values using the most recent previous scale and location
12-Apr-2018 16:00:58 +       values.
12-Apr-2018 16:00:58 +    4. Compute the location using the u_i.w_i values from step 3 and equation (2).
12-Apr-2018 16:00:58 +    5. Recompute u_i/w_i values using the most recent previous scale and location
12-Apr-2018 16:00:58 +       values.
12-Apr-2018 16:00:58 +    6. Compute the new scale value using the the u_i/w_i values computed in
12-Apr-2018 16:00:58 +       step 5 and the value of the location computed in step 4.
12-Apr-2018 16:00:58 +    7. Steps 3. - 6. are repeated until convergence occurs or the maximum number of
12-Apr-2018 16:00:58 +       iterations (specified in the niter parameter) is reached. The convergence
12-Apr-2018 16:00:58 +       criterion is given by
12-Apr-2018 16:00:58 +
12-Apr-2018 16:00:58 +         abs(s_bi - s_bi,prev) &lt; 0.03 * sqrt(0.5/(n - 1))
12-Apr-2018 16:00:58 +
12-Apr-2018 16:00:58 +       where s_bi,prev is the value of the scale computed in the previous iteration.
12-Apr-2018 16:00:58 +
12-Apr-2018 16:00:58 +    In the special case where niter is specified to be negative, the faster,
12-Apr-2018 16:00:58 +    non-iterative algorithm proceeds as follows:
12-Apr-2018 16:00:58 +   
12-Apr-2018 16:00:58 +    1. Compute u_i/w_i values using the median for the location and the normalized
12-Apr-2018 16:00:58 +       median of the absolute deviation about the median as the scale
12-Apr-2018 16:00:58 +    2. Compute the location and scale (which can be carried out simultaneously)
12-Apr-2018 16:00:58 +       using the u_i/w_i values computed in step 1. The value of the location is
12-Apr-2018 16:00:58 +       just the median that is used in equation (3) to compute the scale
12-Apr-2018 16:00:58
12-Apr-2018 16:00:58 NOTES ON FLUX DENSITIES AND FLUXES
12-Apr-2018 16:00:58
12-Apr-2018 16:00:58 Fluxes and flux densities are not computed if any of the following conditions is met:
12-Apr-2018 16:00:58 diff --git a/gcwrap/tools/images/image_cmpt.cc b/gcwrap/tools/images/image_cmpt.cc
12-Apr-2018 16:00:58 index 34bb48a..66dc82c 100644
12-Apr-2018 16:00:58 --- a/gcwrap/tools/images/image_cmpt.cc
12-Apr-2018 16:00:58 +++ b/gcwrap/tools/images/image_cmpt.cc
12-Apr-2018 16:00:58 @@ -5114,7 +5114,7 @@ record* image::statistics(
12-Apr-2018 16:00:58      bool stretch, const string& logfile,
12-Apr-2018 16:00:58      bool append, const string& algorithm, double fence,
12-Apr-2018 16:00:58      const string& center, bool lside, double zscore,
12-Apr-2018 16:00:58 -    int maxiter, const string& clmethod
12-Apr-2018 16:00:58 +    int maxiter, const string& clmethod, int niter
12-Apr-2018 16:00:58 ) {
12-Apr-2018 16:00:58      _log << _ORIGIN;
12-Apr-2018 16:00:58      if (detached()) {
12-Apr-2018 16:00:58 @@ -5172,7 +5172,18 @@ record* image::statistics(
12-Apr-2018 16:00:58          }
12-Apr-2018 16:00:58          String myalg = algorithm;
12-Apr-2018 16:00:58          myalg.downcase();
12-Apr-2018 16:00:58 -        if (myalg.startsWith("ch")) {
12-Apr-2018 16:00:58 +        if (myalg.startsWith("b")) {
12-Apr-2018 16:00:58 +            _stats->configureBiweight(niter);
12-Apr-2018 16:00:58 +            if (robust) {
12-Apr-2018 16:00:58 +                _log << LogIO::WARN << "The biweight algorithm "
12-Apr-2018 16:00:58 +                    << "does not support computation of quantile-like "
12-Apr-2018 16:00:58 +                    << "(median, MADM, first/third quartile, IQR) "
12-Apr-2018 16:00:58 +                    << "statistics (robust=True). Proceeding without "
12-Apr-2018 16:00:58 +                    << "calculating those stats." << LogIO::POST;
12-Apr-2018 16:00:58 +                robust = False;
12-Apr-2018 16:00:58 +            }
12-Apr-2018 16:00:58 +        }
12-Apr-2018 16:00:58 +        else if (myalg.startsWith("ch")) {
12-Apr-2018 16:00:58              _stats->configureChauvenet(zscore, maxiter);
12-Apr-2018 16:00:58          }
12-Apr-2018 16:00:58          else if (myalg.startsWith("cl")) {
12-Apr-2018 16:00:58 diff --git a/gcwrap/tools/images/imagepol_cmpt.cc b/gcwrap/tools/images/imagepol_cmpt.cc
12-Apr-2018 16:00:58 index c87276e..3fdaa8f 100644
12-Apr-2018 16:00:58 --- a/gcwrap/tools/images/imagepol_cmpt.cc
12-Apr-2018 16:00:58 +++ b/gcwrap/tools/images/imagepol_cmpt.cc
12-Apr-2018 16:00:58 @@ -138,7 +138,7 @@ imagepol::complexlinpol(const std::string& outfile)
12-Apr-2018 16:00:58 {
12-Apr-2018 16:00:58    bool rstat(false);
12-Apr-2018 16:00:58    try{
12-Apr-2018 16:00:58 -    *itsLog << LogOrigin("imagepol", __FUNCTION__);
12-Apr-2018 16:00:58 +    *itsLog << LogOrigin("imagepol", __func__);
12-Apr-2018 16:00:58      if(itsImPol==0){
12-Apr-2018 16:00:58        *itsLog << LogIO::SEVERE <<"No attached image, please use open "
12-Apr-2018 16:00:58               << LogIO::POST;
12-Apr-2018 16:00:58 @@ -178,7 +178,7 @@ imagepol::depolratio(const std::string& infile, const bool debias, const double
12-Apr-2018 16:00:58 {
12-Apr-2018 16:00:58
12-Apr-2018 16:00:58    try{
12-Apr-2018 16:00:58 -    *itsLog << LogOrigin("imagepol", __FUNCTION__);
12-Apr-2018 16:00:58 +    *itsLog << LogOrigin("imagepol", __func__);
12-Apr-2018 16:00:58      if(itsImPol==0){
12-Apr-2018 16:00:58        *itsLog << LogIO::SEVERE <<"No attached image, please use open "
12-Apr-2018 16:00:58               << LogIO::POST;
12-Apr-2018 16:00:58 @@ -221,11 +221,14 @@ imagepol::done()
12-Apr-2018 16:00:58 }
12-Apr-2018 16:00:58
12-Apr-2018 16:00:58 bool
12-Apr-2018 16:00:58 -imagepol::fourierrotationmeasure(const std::string& complex, const std::string& amp, const std::string& pa, const std::string& real, const std::string& imag, const bool zerolag0)
12-Apr-2018 16:00:58 -{
12-Apr-2018 16:00:58 +imagepol::fourierrotationmeasure(
12-Apr-2018 16:00:58 +    const std::string& complex, const std::string& amp,
12-Apr-2018 16:00:58 +    const std::string& pa, const std::string& real,
12-Apr-2018 16:00:58 +    const std::string& imag, const bool zerolag0
12-Apr-2018 16:00:58 +) {
12-Apr-2018 16:00:58    bool rstat(false);
12-Apr-2018 16:00:58    try{
12-Apr-2018 16:00:58 -    *itsLog << LogOrigin("imagepol", __FUNCTION__);
12-Apr-2018 16:00:58 +    *itsLog << LogOrigin("imagepol", __func__);
12-Apr-2018 16:00:58      if(itsImPol==0){
12-Apr-2018 16:00:58        *itsLog << LogIO::SEVERE <<"No attached image, please use open "
12-Apr-2018 16:00:58               << LogIO::POST;
12-Apr-2018 16:00:58 @@ -272,7 +275,7 @@ image *
12-Apr-2018 16:00:58 imagepol::fractotpol(const bool debias, const double clip, const double sigma, const std::string& outfile)
12-Apr-2018 16:00:58 {
12-Apr-2018 16:00:58    try{
12-Apr-2018 16:00:58 -    *itsLog << LogOrigin("imagepol", __FUNCTION__);
12-Apr-2018 16:00:58 +    *itsLog << LogOrigin("imagepol", __func__);
12-Apr-2018 16:00:58      if(itsImPol==0){
12-Apr-2018 16:00:58        *itsLog << LogIO::SEVERE <<"No attached image, please use open "
12-Apr-2018 16:00:58               << LogIO::POST;
12-Apr-2018 16:00:58 @@ -352,7 +355,7 @@ imagepol::makecomplex(const std::string& complex, const std::string& real, const
12-Apr-2018 16:00:58 {
12-Apr-2018 16:00:58    bool rstat(false);
12-Apr-2018 16:00:58    try{
12-Apr-2018 16:00:58 -    *itsLog << LogOrigin("imagepol", __FUNCTION__);
12-Apr-2018 16:00:58 +    *itsLog << LogOrigin("imagepol", __func__);
12-Apr-2018 16:00:58      if(itsImPol==0){
12-Apr-2018 16:00:58        *itsLog << LogIO::SEVERE <<"No attached image, please use open "
12-Apr-2018 16:00:58               << LogIO::POST;
12-Apr-2018 16:00:58 @@ -415,29 +418,31 @@ imagepol::pol(const std::string& which, const bool debias, const double clip, co
12-Apr-2018 16:00:58    }
12-Apr-2018 16:00:58 }
12-Apr-2018 16:00:58
12-Apr-2018 16:00:58 -bool
12-Apr-2018 16:00:58 -imagepol::rotationmeasure(const std::string& rm, const std::string& rmerr, const std::string& pa0, const std::string& pa0err, const std::string& nturns, const std::string& chisq, const double sigma, const double rmfq, const double rmmax, const double maxpaerr, const std::string& , const int , const int )
12-Apr-2018 16:00:58 -{
12-Apr-2018 16:00:58 -  bool rstat(false);
12-Apr-2018 16:00:58 -  try{
12-Apr-2018 16:00:58 -    *itsLog << LogOrigin("imagepol", __FUNCTION__);
12-Apr-2018 16:00:58 -    if(itsImPol==0){
12-Apr-2018 16:00:58 -      *itsLog << LogIO::SEVERE <<"No attached image, please use open "
12-Apr-2018 16:00:58 -              << LogIO::POST;
12-Apr-2018 16:00:58 -      return rstat;
12-Apr-2018 16:00:58 +bool imagepol::rotationmeasure(
12-Apr-2018 16:00:58 +    const std::string& rm, const std::string& rmerr,
12-Apr-2018 16:00:58 +    const std::string& pa0, const std::string& pa0err,
12-Apr-2018 16:00:58 +    const std::string& nturns, const std::string& chisq,
12-Apr-2018 16:00:58 +    const double sigma, const double rmfq, const double rmmax,
12-Apr-2018 16:00:58 +    const double maxpaerr, const std::string&, const int, const int
12-Apr-2018 16:00:58 +) {
12-Apr-2018 16:00:58 +    try {
12-Apr-2018 16:00:58 +        *itsLog << LogOrigin("imagepol", __func__);
12-Apr-2018 16:00:58 +        if(! itsImPol) {
12-Apr-2018 16:00:58 +            *itsLog << LogIO::SEVERE <<"No attached image, please use open "
12-Apr-2018 16:00:58 +                << LogIO::POST;
12-Apr-2018 16:00:58 +            return False;
12-Apr-2018 16:00:58 +        }
12-Apr-2018 16:00:58 +        itsImPol->rotationMeasure(
12-Apr-2018 16:00:58 +            rm, rmerr, pa0, pa0err, nturns,
12-Apr-2018 16:00:58 +            chisq, -1, sigma, rmfq, rmmax, maxpaerr
12-Apr-2018 16:00:58 +        );
12-Apr-2018 16:00:58 +        return True;
12-Apr-2018 16:00:58      }
12-Apr-2018 16:00:58 -    itsImPol->rotationMeasure(String(rm), String(rmerr),
12-Apr-2018 16:00:58 -                              String(pa0), String(pa0err),
12-Apr-2018 16:00:58 -                              String(nturns), String(chisq),
12-Apr-2018 16:00:58 -                              -1, Float(sigma), Float(rmfq),
12-Apr-2018 16:00:58 -                              Float(rmmax), Float(maxpaerr)/*,
12-Apr-2018 16:00:58 -                              String(plotter), nx, ny*/);
12-Apr-2018 16:00:58 -    rstat = true;
12-Apr-2018 16:00:58 -  } catch (AipsError x) {
12-Apr-2018 16:00:58 -    *itsLog << LogIO::SEVERE << "Exception Reported: " << x.getMesg() << LogIO::POST;
12-Apr-2018 16:00:58 -    RETHROW(x);
12-Apr-2018 16:00:58 -  }
12-Apr-2018 16:00:58 -  return rstat;
12-Apr-2018 16:00:58 +    catch (const AipsError& x) {
12-Apr-2018 16:00:58 +        *itsLog << LogIO::SEVERE << "Exception Reported: " << x.getMesg() << LogIO::POST;
12-Apr-2018 16:00:58 +        RETHROW(x);
12-Apr-2018 16:00:58 +    }
12-Apr-2018 16:00:58 +    return True;
12-Apr-2018 16:00:58 }
12-Apr-2018 16:00:58
12-Apr-2018 16:00:58 double
12-Apr-2018 16:00:58 @@ -445,7 +450,7 @@ imagepol::sigma(const double clip)
12-Apr-2018 16:00:58 {
12-Apr-2018 16:00:58    double rvalue(-1.0);
12-Apr-2018 16:00:58    try{
12-Apr-2018 16:00:58 -    *itsLog << LogOrigin("imagepol", __FUNCTION__);
12-Apr-2018 16:00:58 +    *itsLog << LogOrigin("imagepol", __func__);
12-Apr-2018 16:00:58      if(itsImPol==0){
12-Apr-2018 16:00:58        *itsLog << LogIO::SEVERE <<"No attached image, please use open "
12-Apr-2018 16:00:58               << LogIO::POST;
12-Apr-2018 16:00:58 @@ -463,7 +468,7 @@ image *
12-Apr-2018 16:00:58 imagepol::sigmadepolratio(const std::string& infile, const bool debias, const double clip, const double sigma, const std::string& outfile)
12-Apr-2018 16:00:58 {
12-Apr-2018 16:00:58    try{
12-Apr-2018 16:00:58 -    *itsLog << LogOrigin("imagepol", __FUNCTION__);
12-Apr-2018 16:00:58 +    *itsLog << LogOrigin("imagepol", __func__);
12-Apr-2018 16:00:58      if(itsImPol==0){
12-Apr-2018 16:00:58        *itsLog << LogIO::SEVERE <<"No attached image, please use open "
12-Apr-2018 16:00:58               << LogIO::POST;
12-Apr-2018 16:00:58 @@ -491,7 +496,7 @@ image *
12-Apr-2018 16:00:58 imagepol::sigmafraclinpol(const double clip, const double sigma, const std::string& outfile)
12-Apr-2018 16:00:58 {
12-Apr-2018 16:00:58    try{
12-Apr-2018 16:00:58 -    *itsLog << LogOrigin("imagepol", __FUNCTION__);
12-Apr-2018 16:00:58 +    *itsLog << LogOrigin("imagepol", __func__);
12-Apr-2018 16:00:58      if(itsImPol==0){
12-Apr-2018 16:00:58        *itsLog << LogIO::SEVERE <<"No attached image, please use open "
12-Apr-2018 16:00:58               << LogIO::POST;
12-Apr-2018 16:00:58 @@ -517,7 +522,7 @@ image *
12-Apr-2018 16:00:58 imagepol::sigmafractotpol(const double clip, const double sigma, const std::string& outfile)
12-Apr-2018 16:00:58 {
12-Apr-2018 16:00:58    try{
12-Apr-2018 16:00:58 -    *itsLog << LogOrigin("imagepol", __FUNCTION__);
12-Apr-2018 16:00:58 +    *itsLog << LogOrigin("imagepol", __func__);
12-Apr-2018 16:00:58      if(itsImPol==0){
12-Apr-2018 16:00:58        *itsLog << LogIO::SEVERE <<"No attached image, please use open "
12-Apr-2018 16:00:58               << LogIO::POST;
12-Apr-2018 16:00:58 @@ -545,7 +550,7 @@ imagepol::sigmalinpolint(const double clip, const double sigma, const std::strin
12-Apr-2018 16:00:58 {
12-Apr-2018 16:00:58    double rvalue(-1.0);
12-Apr-2018 16:00:58    try{
12-Apr-2018 16:00:58 -    *itsLog << LogOrigin("imagepol", __FUNCTION__);
12-Apr-2018 16:00:58 +    *itsLog << LogOrigin("imagepol", __func__);
12-Apr-2018 16:00:58      if(itsImPol==0){
12-Apr-2018 16:00:58        *itsLog << LogIO::SEVERE <<"No attached image, please use open "
12-Apr-2018 16:00:58               << LogIO::POST;
12-Apr-2018 16:00:58 @@ -563,7 +568,7 @@ image *
12-Apr-2018 16:00:58 imagepol::sigmalinpolposang(const double clip, const double sigma, const std::string& outfile)
12-Apr-2018 16:00:58 {
12-Apr-2018 16:00:58    try{
12-Apr-2018 16:00:58 -    *itsLog << LogOrigin("imagepol", __FUNCTION__);
12-Apr-2018 16:00:58 +    *itsLog << LogOrigin("imagepol", __func__);
12-Apr-2018 16:00:58      if(itsImPol==0){
12-Apr-2018 16:00:58        *itsLog << LogIO::SEVERE <<"No attached image, please use open "
12-Apr-2018 16:00:58               << LogIO::POST;
12-Apr-2018 16:00:58 @@ -591,7 +596,7 @@ imagepol::sigmastokes(const std::string& which, const double clip)
12-Apr-2018 16:00:58 {
12-Apr-2018 16:00:58    double rvalue(-1.0);
12-Apr-2018 16:00:58    try{
12-Apr-2018 16:00:58 -    *itsLog << LogOrigin("imagepol", __FUNCTION__);
12-Apr-2018 16:00:58 +    *itsLog << LogOrigin("imagepol", __func__);
12-Apr-2018 16:00:58      if(itsImPol==0){
12-Apr-2018 16:00:58        *itsLog << LogIO::SEVERE <<"No attached image, please use open "
12-Apr-2018 16:00:58               << LogIO::POST;
12-Apr-2018 16:00:58 @@ -698,7 +703,7 @@ imagepol::sigmatotpolint(const double clip, const double sigma)
12-Apr-2018 16:00:58 {
12-Apr-2018 16:00:58    double rvalue(-1.0);
12-Apr-2018 16:00:58    try{
12-Apr-2018 16:00:58 -    *itsLog << LogOrigin("imagepol", __FUNCTION__);
12-Apr-2018 16:00:58 +    *itsLog << LogOrigin("imagepol", __func__);
12-Apr-2018 16:00:58      if(itsImPol==0){
12-Apr-2018 16:00:58        *itsLog << LogIO::SEVERE <<"No attached image, please use open "
12-Apr-2018 16:00:58               << LogIO::POST;
12-Apr-2018 16:00:58 diff --git a/gcwrap/tools/measures/measures_cmpt.cc b/gcwrap/tools/measures/measures_cmpt.cc
12-Apr-2018 16:00:58 index d106b70..1c43012 100644
12-Apr-2018 16:00:58 --- a/gcwrap/tools/measures/measures_cmpt.cc
12-Apr-2018 16:00:58 +++ b/gcwrap/tools/measures/measures_cmpt.cc
12-Apr-2018 16:00:58 @@ -12,7 +12,7 @@
12-Apr-2018 16:00:58   ***/
12-Apr-2018 16:00:58
12-Apr-2018 16:00:58 #include <iostream>
12-Apr-2018 16:00:58 -
12-Apr-2018 16:00:58 +#include <casa/OS/Path.h>
12-Apr-2018 16:00:58 #include <casa/Exceptions/Error.h>
12-Apr-2018 16:00:58 #include <casa/Logging/LogIO.h>
12-Apr-2018 16:00:58 #include <casa/Quanta/QuantumHolder.h>
12-Apr-2018 16:00:58 @@ -1937,7 +1937,14 @@ measures::doframe(const String &in) {
12-Apr-2018 16:00:58      if (in.empty()) {
12-Apr-2018 16:00:58        pcomet_p = new MeasComet;
12-Apr-2018 16:00:58      } else {
12-Apr-2018 16:00:58 -      pcomet_p = new MeasComet(in);
12-Apr-2018 16:00:58 +      if(Table::isReadable(in, False)){
12-Apr-2018 16:00:58 +        Table laTable(in);
12-Apr-2018 16:00:58 +        Path leSentier(in);
12-Apr-2018 16:00:58 +        pcomet_p=new MeasComet(laTable, leSentier.absoluteName());
12-Apr-2018 16:00:58 +      }
12-Apr-2018 16:00:58 +      else{
12-Apr-2018 16:00:58 +        pcomet_p = new MeasComet(in);
12-Apr-2018 16:00:58 +      }
12-Apr-2018 16:00:58      };
12-Apr-2018 16:00:58      if (!pcomet_p->ok()) {
12-Apr-2018 16:00:58        delete pcomet_p; pcomet_p = 0;
12-Apr-2018 16:00:58 diff --git a/gcwrap/tools/ms/ms.xml b/gcwrap/tools/ms/ms.xml
12-Apr-2018 16:00:58 index 0761050..55b8db4 100644
12-Apr-2018 16:00:58 --- a/gcwrap/tools/ms/ms.xml
12-Apr-2018 16:00:58 +++ b/gcwrap/tools/ms/ms.xml
12-Apr-2018 16:00:58 @@ -2245,12 +2245,13 @@ ms.tosdfits("myfile.sdfits")  # write SDFITS file
12-Apr-2018 16:00:58    <keyword>getfielddirmeas</keyword>
12-Apr-2018 16:00:58    <input> 
12-Apr-2018 16:00:58        <param type="string" direction="in" name="dircolname">
12-Apr-2018 16:00:58 -      <description>Name of the direction column in the FIELD table. </description>
12-Apr-2018 16:00:58 +      <description>Name of the direction column in the FIELD table or 'EPHEMERIS_DIR'. </description>
12-Apr-2018 16:00:58        <value>PHASE_DIR</value>
12-Apr-2018 16:00:58        <allowed type="enum">
12-Apr-2018 16:00:58          <value>PHASE_DIR</value>
12-Apr-2018 16:00:58          <value>DELAY_DIR</value>
12-Apr-2018 16:00:58          <value>REFERENCE_DIR</value>
12-Apr-2018 16:00:58 +        <value>EPHEMERIS_DIR</value>
12-Apr-2018 16:00:58        </allowed>
12-Apr-2018 16:00:58        </param>
12-Apr-2018 16:00:58
12-Apr-2018 16:00:58 @@ -2277,11 +2278,17 @@ ms.tosdfits("myfile.sdfits")  # write SDFITS file
12-Apr-2018 16:00:58      This function returns the direction measures from the given
12-Apr-2018 16:00:58      direction column of the MS FIELD table as a either a measure
12-Apr-2018 16:00:58      dictionary or sexigesimal string representation.
12-Apr-2018 16:00:58 +    If there is an ephemeris attached, this will give you the time dependent
12-Apr-2018 16:00:58 +    direction for the given direction column including the offset which each
12-Apr-2018 16:00:58 +    field may have to the ephemeris it is referencing. You can use the value
12-Apr-2018 16:00:58 +    "EPHEMERIS_DIR" for parameter "dircolname" to access the unaltered ephemeris
12-Apr-2018 16:00:58 +    direction without any potential mosaic offsets.
12-Apr-2018 16:00:58    </description>
12-Apr-2018 16:00:58    <example>
12-Apr-2018 16:00:58        ms.open('3C273XC1.MS')
12-Apr-2018 16:00:58 -      print "Delay direction from FIELD table row 3 =", \
12-Apr-2018 16:00:58 -          ms.getfielddirmeas("DELAY_DIR", 3)
12-Apr-2018 16:00:58 +      print "Delay direction from FIELD table row 3 =", ms.getfielddirmeas("DELAY_DIR", 3)
12-Apr-2018 16:00:58 +
12-Apr-2018 16:00:58 +      print "Phase direction from ephemeris FIELD table row 4 for time = 5019988459.968 s", ms.getfielddirmeas("PHASE_DIR", 4, 5019988459.968)
12-Apr-2018 16:00:58    </example>
12-Apr-2018 16:00:58   </method>
12-Apr-2018 16:00:58
12-Apr-2018 16:00:58 @@ -3707,16 +3714,21 @@ in spectral window 1.
12-Apr-2018 16:00:58      "corrected" for the CORRECTED_DATA column and "data" for the DATA
12-Apr-2018 16:00:58      column are supported (minimum match, case insensitive). One may
12-Apr-2018 16:00:58      specify 'residual' in which case the values used are the result of
12-Apr-2018 16:00:58 -    the CORRECTED_DATA - MODEL_DATA columns, or 'residual_data' in which
12-Apr-2018 16:00:58 -    case the values used are the DATA - MODEL_DATA columns. The last two
12-Apr-2018 16:00:58 -    options are to allow for operatation on timescales or frequency
12-Apr-2018 16:00:58 -    ranges which are larger than that over which the sky signal is
12-Apr-2018 16:00:58 -    expected to be constant. This situation arises in eg, OTF mapping,
12-Apr-2018 16:00:58 -    and also perhaps with sources with significant spectral structure.
12-Apr-2018 16:00:58 -    In cases where the one of the residual columns is specified and the
12-Apr-2018 16:00:58 -    MODEL_DATA column doesn't exist, the default model visibility of
12-Apr-2018 16:00:58 -    value 1 + 0i will be used. In cases where a necessary column doesn't
12-Apr-2018 16:00:58 +    the CORRECTED_DATA column - model, or 'residual_data' in which
12-Apr-2018 16:00:58 +    case the values used are the DATA column - model, where model
12-Apr-2018 16:00:58 +    is the CORRECTED_DATA column if it exists, or if it doesn't,
12-Apr-2018 16:00:58 +    the virtual source model if one exists, or if that doesn't, then
12-Apr-2018 16:00:58 +    no model is used and the 'residual' and 'residual_data' cases
12-Apr-2018 16:00:58 +    are equivalent to the 'corrected' and 'data' cases, respectively.
12-Apr-2018 16:00:58 +    The last two options are to allow for operation on timescales or
12-Apr-2018 16:00:58 +    frequency ranges which are larger than that over which the sky
12-Apr-2018 16:00:58 +    signal is expected to be constant. This situation arises in eg,
12-Apr-2018 16:00:58 +    OTF mapping, and also perhaps with sources with significant
12-Apr-2018 16:00:58 +    spectral structure. In cases where a necessary column doesn't
12-Apr-2018 16:00:58      exist, an exception will be thrown and no data will be changed.
12-Apr-2018 16:00:58 +    NOTE: It is the user's responsibility to ensure that a model has
12-Apr-2018 16:00:58 +    been set for all selected fields before using datacolumn='residual'
12-Apr-2018 16:00:58 +    or 'residual_data'.
12-Apr-2018 16:00:58
12-Apr-2018 16:00:58      RETURN VALUE
12-Apr-2018 16:00:58
12-Apr-2018 16:00:58 diff --git a/gcwrap/tools/ms/ms_cmpt.cc b/gcwrap/tools/ms/ms_cmpt.cc
12-Apr-2018 16:00:58 index e14e0b6..6d2de1a 100644
12-Apr-2018 16:00:58 --- a/gcwrap/tools/ms/ms_cmpt.cc
12-Apr-2018 16:00:58 +++ b/gcwrap/tools/ms/ms_cmpt.cc
12-Apr-2018 16:00:58 @@ -803,9 +803,7 @@ ms::getspectralwindowinfo()
12-Apr-2018 16:00:58 }
12-Apr-2018 16:00:58
12-Apr-2018 16:00:58 variant*
12-Apr-2018 16:00:58 -ms::getfielddirmeas(
12-Apr-2018 16:00:58 -    const std::string& dircolname, int fieldid,
12-Apr-2018 16:00:58 -    double time, const string& format)
12-Apr-2018 16:00:58 +ms::getfielddirmeas(const std::string& dircolname, int fieldid, double time, const string& format)
12-Apr-2018 16:00:58 {
12-Apr-2018 16:00:58      variant *retval = 0;
12-Apr-2018 16:00:58      try{
12-Apr-2018 16:00:58 @@ -825,6 +823,9 @@ ms::getfielddirmeas(
12-Apr-2018 16:00:58              }
12-Apr-2018 16:00:58              else if(colname=="REFERENCE_DIR"){
12-Apr-2018 16:00:58                  d = msfc.referenceDirMeas(fieldid, time);
12-Apr-2018 16:00:58 +            }
12-Apr-2018 16:00:58 +            else if(colname=="EPHEMERIS_DIR"){
12-Apr-2018 16:00:58 +                d = msfc.ephemerisDirMeas(fieldid, time);
12-Apr-2018 16:00:58              }
12-Apr-2018 16:00:58              else{
12-Apr-2018 16:00:58                  *itsLog << LogIO::SEVERE
12-Apr-2018 16:00:58 @@ -2297,7 +2298,7 @@ ms::selectinit(const int datadescid, const bool resetsel)
12-Apr-2018 16:00:58                                         if (retval)
12-Apr-2018 16:00:58                                                 retval = doMSSelection(*casacRec); // onlyparse=false
12-Apr-2018 16:00:58                                         initSel_p = retval;
12-Apr-2018 16:00:58 -                                } catch (AipsError x) {  // MSSelectionNullSelection
12-Apr-2018 16:00:58 +                                } catch (const AipsError &x) {  // MSSelectionNullSelection
12-Apr-2018 16:00:58                                         String mesg = "selectinit failed for datadescid " + selDDID;
12-Apr-2018 16:00:58                                         *itsLog << LogOrigin("ms", "selectinit");
12-Apr-2018 16:00:58                                         *itsLog << LogIO::WARN << mesg << LogIO::POST;
12-Apr-2018 16:00:58 @@ -3588,6 +3589,12 @@ ms::getdata(const std::vector<std::string>& items, const bool ifraxis, const int
12-Apr-2018 16:00:58      ::casac::record *retval(0);
12-Apr-2018 16:00:58      try {
12-Apr-2018 16:00:58          if(!detached()) {
12-Apr-2018 16:00:58 +          uInt nrows = itsSelectedMS->nrow();
12-Apr-2018 16:00:58 +          if (nrows == 0) {
12-Apr-2018 16:00:58 +              *itsLog << LogIO::WARN << "Selected table is empty, cannot get data" << LogIO::POST;
12-Apr-2018 16:00:58 +                return retval;
12-Apr-2018 16:00:58 +          }
12-Apr-2018 16:00:58 +
12-Apr-2018 16:00:58            if (checkinit()) {
12-Apr-2018 16:00:58              Record out(RecordInterface::Variable);
12-Apr-2018 16:00:58              Vector<String> itemnames(items);
12-Apr-2018 16:00:58 @@ -3595,12 +3602,6 @@ ms::getdata(const std::vector<std::string>& items, const bool ifraxis, const int
12-Apr-2018 16:00:58              doingAveraging_p = average;
12-Apr-2018 16:00:58              bool chanAverage = ((chansel_p.size() > 0) && (chansel_p[2] > 1));
12-Apr-2018 16:00:58
12-Apr-2018 16:00:58 -            uInt nrows = itsSelectedMS->nrow();
12-Apr-2018 16:00:58 -            if (nrows == 0) {
12-Apr-2018 16:00:58 -                *itsLog << LogIO::WARN << "Selected table is empty - use selectinit" << LogIO::POST;
12-Apr-2018 16:00:58 -                return retval;
12-Apr-2018 16:00:58 -            }
12-Apr-2018 16:00:58 -
12-Apr-2018 16:00:58              if (axisgap>0 && ifraxis==false) {
12-Apr-2018 16:00:58                  *itsLog << LogIO::WARN << "ifraxis not requested, ignoring ifraxisgap argument" << LogIO::POST;
12-Apr-2018 16:00:58                  axisgap = 0;
12-Apr-2018 16:00:58 @@ -3899,7 +3900,7 @@ ms::getdata(const std::vector<std::string>& items, const bool ifraxis, const int
12-Apr-2018 16:00:58              retval = casa::fromRecord(out);
12-Apr-2018 16:00:58            } // checkinit
12-Apr-2018 16:00:58          } // !detached
12-Apr-2018 16:00:58 -    } catch (AipsError x) {
12-Apr-2018 16:00:58 +    } catch (const AipsError &x) {
12-Apr-2018 16:00:58          *itsLog << LogIO::SEVERE << "Exception Reported: " << x.getMesg() << LogIO::POST;
12-Apr-2018 16:00:58          Table::relinquishAutoLocks(true);
12-Apr-2018 16:00:58          RETHROW(x);
12-Apr-2018 16:00:58 @@ -6831,6 +6832,12 @@ bool ms::msselect(const ::casac::record& exprs, const bool onlyparse)
12-Apr-2018 16:00:58         return retVal;
12-Apr-2018 16:00:58 }
12-Apr-2018 16:00:58
12-Apr-2018 16:00:58 +void ms::setNewSel(const MeasurementSet& newSelectedMS) {
12-Apr-2018 16:00:58 +    *itsSelectedMS = newSelectedMS;
12-Apr-2018 16:00:58 +    *itsMS = newSelectedMS;
12-Apr-2018 16:00:58 +    if (itsSel) itsSel->setMS(*itsMS);
12-Apr-2018 16:00:58 +}
12-Apr-2018 16:00:58 +
12-Apr-2018 16:00:58 Bool ms::doMSSelection(const ::casac::record& exprs, const bool onlyparse)
12-Apr-2018 16:00:58 {
12-Apr-2018 16:00:58         // for internal use
12-Apr-2018 16:00:58 @@ -6881,18 +6888,23 @@ Bool ms::doMSSelection(const ::casac::record& exprs, const bool onlyparse)
12-Apr-2018 16:00:58                                 obsExpr);
12-Apr-2018 16:00:58                         retVal=(itsMSS->getTEN(itsMS).isNull() == false);
12-Apr-2018 16:00:58                 } else {
12-Apr-2018 16:00:58 -                        MeasurementSet newSelectedMS(*itsSelectedMS);
12-Apr-2018 16:00:58 -                    retVal = mssSetData(*itsSelectedMS, newSelectedMS, "",/*outMSName*/
12-Apr-2018 16:00:58 -                        timeExpr, baselineExpr, fieldExpr, spwExpr, uvDistExpr,
12-Apr-2018 16:00:58 -                            taQLExpr, polnExpr, scanExpr,
12-Apr-2018 16:00:58 -                            arrayExpr, scanIntentExpr, obsExpr, itsMSS);
12-Apr-2018 16:00:58 -                        *itsSelectedMS = newSelectedMS;
12-Apr-2018 16:00:58 -                    *itsMS = newSelectedMS;
12-Apr-2018 16:00:58 -                if (itsSel) itsSel->setMS(*itsMS);
12-Apr-2018 16:00:58 -        }
12-Apr-2018 16:00:58 +                    MeasurementSet newSelectedMS(*itsSelectedMS);
12-Apr-2018 16:00:58 +                    try {
12-Apr-2018 16:00:58 +                        retVal = mssSetData(*itsSelectedMS, newSelectedMS, "",/*outMSName*/
12-Apr-2018 16:00:58 +                                            timeExpr, baselineExpr, fieldExpr, spwExpr, uvDistExpr,
12-Apr-2018 16:00:58 +                                            taQLExpr, polnExpr, scanExpr,
12-Apr-2018 16:00:58 +                                            arrayExpr, scanIntentExpr, obsExpr, itsMSS);
12-Apr-2018 16:00:58 +                    } catch (const MSSelectionNullSelection &mssns) {
12-Apr-2018 16:00:58 +                        // Empty selections are valid in principle, and after this happens
12-Apr-2018 16:00:58 +                        // one should be able to know that for example nrow(true) is 0.
12-Apr-2018 16:00:58 +                        setNewSel(newSelectedMS);
12-Apr-2018 16:00:58 +                        throw;
12-Apr-2018 16:00:58 +                    }
12-Apr-2018 16:00:58 +                    setNewSel(newSelectedMS);
12-Apr-2018 16:00:58 +                }
12-Apr-2018 16:00:58                 return retVal;
12-Apr-2018 16:00:58         }
12-Apr-2018 16:00:58 -        catch (AipsError x)
12-Apr-2018 16:00:58 +        catch (const AipsError &x)
12-Apr-2018 16:00:58         {
12-Apr-2018 16:00:58                 Table::relinquishAutoLocks(true);
12-Apr-2018 16:00:58                 RETHROW(x);
12-Apr-2018 16:00:58 diff --git a/gcwrap/tools/ms/ms_private.h b/gcwrap/tools/ms/ms_private.h
12-Apr-2018 16:00:58 index 1ebdd35..2a0ca1c 100644
12-Apr-2018 16:00:58 --- a/gcwrap/tools/ms/ms_private.h
12-Apr-2018 16:00:58 +++ b/gcwrap/tools/ms/ms_private.h
12-Apr-2018 16:00:58 @@ -2,6 +2,7 @@ casacore::Bool detached();
12-Apr-2018 16:00:58 casacore::Bool ready2write_();
12-Apr-2018 16:00:58 casacore::Bool doMSSelection(const ::casac::record& exprs,
12-Apr-2018 16:00:58         const bool onlyparse=false);
12-Apr-2018 16:00:58 +void setNewSel(const casacore::MeasurementSet& newSelectedMS);
12-Apr-2018 16:00:58
12-Apr-2018 16:00:58 casacore::Bool checkinit();
12-Apr-2018 16:00:58 casacore::Vector<casacore::Int> getCorrTypes(casa::vi::VisBuffer2* vb2);
12-Apr-2018 16:00:58 diff --git a/gcwrap/tools/mstransformer/mstransformer_cmpt.cc b/gcwrap/tools/mstransformer/mstransformer_cmpt.cc
12-Apr-2018 16:00:58 index d5510b5..81ad9f3 100644
12-Apr-2018 16:00:58 --- a/gcwrap/tools/mstransformer/mstransformer_cmpt.cc
12-Apr-2018 16:00:58 +++ b/gcwrap/tools/mstransformer/mstransformer_cmpt.cc
12-Apr-2018 16:00:58 @@ -36,7 +36,7 @@ mstransformer::mstransformer()
12-Apr-2018 16:00:58                 *logger_p << LogIO::DEBUG1
12-Apr-2018 16:00:58                                 << "Stack Trace: " << x.getStackTrace()
12-Apr-2018 16:00:58                                 << LogIO::POST;
12-Apr-2018 16:00:58 -                *logger_p         << LogIO::SEVERE
12-Apr-2018 16:00:58 +                *logger_p         << LogIO::DEBUG1
12-Apr-2018 16:00:58                                         << "Exception Reported: " << x.getMesg()
12-Apr-2018 16:00:58                                         << LogIO::POST;
12-Apr-2018 16:00:58                 RETHROW(x);
12-Apr-2018 16:00:58 @@ -54,7 +54,7 @@ mstransformer::~mstransformer()
12-Apr-2018 16:00:58             Table::relinquishAutoLocks(true);
12-Apr-2018 16:00:58                 *logger_p << LogIO::DEBUG1                 << "Stack Trace: " << x.getStackTrace()
12-Apr-2018 16:00:58                                                                                 << LogIO::POST;
12-Apr-2018 16:00:58 -                *logger_p << LogIO::SEVERE                 << "Exception Reported: " << x.getMesg()
12-Apr-2018 16:00:58 +                *logger_p << LogIO::DEBUG1                 << "Exception Reported: " << x.getMesg()
12-Apr-2018 16:00:58                                                                                 << LogIO::POST;
12-Apr-2018 16:00:58                 RETHROW(x);
12-Apr-2018 16:00:58         }
12-Apr-2018 16:00:58 @@ -77,7 +77,7 @@ mstransformer::done()
12-Apr-2018 16:00:58             Table::relinquishAutoLocks(true);
12-Apr-2018 16:00:58                 *logger_p << LogIO::DEBUG1                 << "Stack Trace: " << x.getStackTrace()
12-Apr-2018 16:00:58                                                                                 << LogIO::POST;
12-Apr-2018 16:00:58 -                *logger_p << LogIO::SEVERE                 << "Exception Reported: " << x.getMesg()
12-Apr-2018 16:00:58 +                *logger_p << LogIO::DEBUG1                 << "Exception Reported: " << x.getMesg()
12-Apr-2018 16:00:58                                                                                 << LogIO::POST;
12-Apr-2018 16:00:58                 RETHROW(x);
12-Apr-2018 16:00:58         }
12-Apr-2018 16:00:58 @@ -107,7 +107,7 @@ mstransformer::config(const ::casac::record& pars)
12-Apr-2018 16:00:58         } catch(AipsError x) {
12-Apr-2018 16:00:58                 *logger_p << LogIO::DEBUG1                 << "Stack Trace: " << x.getStackTrace()
12-Apr-2018 16:00:58                                                                                 << LogIO::POST;
12-Apr-2018 16:00:58 -                *logger_p << LogIO::SEVERE                 << "Exception Reported: " << x.getMesg()
12-Apr-2018 16:00:58 +                *logger_p << LogIO::DEBUG1                 << "Exception Reported: " << x.getMesg()
12-Apr-2018 16:00:58                                                                                 << LogIO::POST;
12-Apr-2018 16:00:58                 RETHROW(x);
12-Apr-2018 16:00:58         }
12-Apr-2018 16:00:58 @@ -130,7 +130,7 @@ mstransformer::open()
12-Apr-2018 16:00:58         } catch(AipsError x) {
12-Apr-2018 16:00:58                 *logger_p << LogIO::DEBUG1                 << "Stack Trace: " << x.getStackTrace()
12-Apr-2018 16:00:58                                                                                 << LogIO::POST;
12-Apr-2018 16:00:58 -                *logger_p << LogIO::SEVERE                 << "Exception Reported: " << x.getMesg()
12-Apr-2018 16:00:58 +                *logger_p << LogIO::DEBUG1                 << "Exception Reported: " << x.getMesg()
12-Apr-2018 16:00:58                                                                                 << LogIO::POST;
12-Apr-2018 16:00:58                 RETHROW(x);
12-Apr-2018 16:00:58         }
12-Apr-2018 16:00:58 @@ -155,7 +155,7 @@ mstransformer::open()
12-Apr-2018 16:00:58         } catch(AipsError x){
12-Apr-2018 16:00:58                 *logger_p << LogIO::DEBUG1                 << "Stack Trace: " << x.getStackTrace()
12-Apr-2018 16:00:58                                                                                 << LogIO::POST;
12-Apr-2018 16:00:58 -                *logger_p << LogIO::SEVERE                 << "Exception Reported: " << x.getMesg()
12-Apr-2018 16:00:58 +                *logger_p << LogIO::DEBUG1                 << "Exception Reported: " << x.getMesg()
12-Apr-2018 16:00:58                                                                                 << LogIO::POST;
12-Apr-2018 16:00:58                 RETHROW(x);
12-Apr-2018 16:00:58
12-Apr-2018 16:00:58 @@ -177,7 +177,7 @@ mstransformer::mergespwtables(const std::vector<std::string> &filenames)
12-Apr-2018 16:00:58         } catch(AipsError x){
12-Apr-2018 16:00:58                 *logger_p << LogIO::DEBUG1                 << "Stack Trace: " << x.getStackTrace()
12-Apr-2018 16:00:58                                                                                 << LogIO::POST;
12-Apr-2018 16:00:58 -                *logger_p << LogIO::SEVERE                 << "Exception Reported: " << x.getMesg()
12-Apr-2018 16:00:58 +                *logger_p << LogIO::DEBUG1                 << "Exception Reported: " << x.getMesg()
12-Apr-2018 16:00:58                                                                                 << LogIO::POST;
12-Apr-2018 16:00:58                 RETHROW(x);
12-Apr-2018 16:00:58         }
12-Apr-2018 16:00:58 diff --git a/gcwrap/tools/plotms/plotms.xml b/gcwrap/tools/plotms/plotms.xml
12-Apr-2018 16:00:58 index f5c062a..29630a1 100644
12-Apr-2018 16:00:58 --- a/gcwrap/tools/plotms/plotms.xml
12-Apr-2018 16:00:58 +++ b/gcwrap/tools/plotms/plotms.xml
12-Apr-2018 16:00:58 @@ -1886,7 +1886,7 @@ Canvas Methods
12-Apr-2018 16:00:58      <description />
12-Apr-2018 16:00:58      <input>
12-Apr-2018 16:00:58          <param type="bool" name="showmajorgrid">
12-Apr-2018 16:00:58 -          <description>Show major grid lines (horiz. and vert.)?</description>
12-Apr-2018 16:00:58 +          <description>Show major grid lines?</description>
12-Apr-2018 16:00:58            <value>false</value>
12-Apr-2018 16:00:58          </param>
12-Apr-2018 16:00:58          <param type="int" name="majorwidth">
12-Apr-2018 16:00:58 @@ -1903,7 +1903,7 @@ Canvas Methods
12-Apr-2018 16:00:58          </param>
12-Apr-2018 16:00:58
12-Apr-2018 16:00:58          <param type="bool" name="showminorgrid">
12-Apr-2018 16:00:58 -          <description>Show minor grid lines (horiz. and vert.)?</description>
12-Apr-2018 16:00:58 +          <description>Show minor grid lines?</description>
12-Apr-2018 16:00:58            <value>false</value>
12-Apr-2018 16:00:58          </param>
12-Apr-2018 16:00:58          <param type="int" name="minorwidth">
12-Apr-2018 16:00:58 diff --git a/gcwrap/tools/synthesis/CalTables/PlotCal.h b/gcwrap/tools/synthesis/CalTables/PlotCal.h
12-Apr-2018 16:00:58 index c183fb9..25181b1 100644
12-Apr-2018 16:00:58 --- a/gcwrap/tools/synthesis/CalTables/PlotCal.h
12-Apr-2018 16:00:58 +++ b/gcwrap/tools/synthesis/CalTables/PlotCal.h
12-Apr-2018 16:00:58 @@ -191,7 +191,8 @@ class PlotCal
12-Apr-2018 16:00:58      // Return which MAIN table column to return for "CAL_DESC_ID",
12-Apr-2018 16:00:58      //  depending on whether we are plotting a new or old table
12-Apr-2018 16:00:58      inline casacore::String CDIcol() { return (isNCT_p ? "SPECTRAL_WINDOW_ID" : "CAL_DESC_ID"); };
12-Apr-2018 16:00:58 -    inline casacore::String GAINcol() { return (isNCT_p ? "CPARAM" : "GAIN"); };
12-Apr-2018 16:00:58 +    inline casacore::String GAINcol() { return (isNCT_p ?
12-Apr-2018 16:00:58 +                (ct_p.isComplex() ? "CPARAM" : "FPARAM") : "GAIN"); };
12-Apr-2018 16:00:58
12-Apr-2018 16:00:58      // Private data
12-Apr-2018 16:00:58      TablePlot *tp_p;
12-Apr-2018 16:00:58 diff --git a/gcwrap/tools/synthesis/calibrater.xml b/gcwrap/tools/synthesis/calibrater.xml
12-Apr-2018 16:00:58 index e2d12db..63257d1 100644
12-Apr-2018 16:00:58 --- a/gcwrap/tools/synthesis/calibrater.xml
12-Apr-2018 16:00:58 +++ b/gcwrap/tools/synthesis/calibrater.xml
12-Apr-2018 16:00:58 @@ -2734,6 +2734,35 @@ cb.done();
12-Apr-2018 16:00:58 </method>
12-Apr-2018 16:00:58
12-Apr-2018 16:00:58
12-Apr-2018 16:00:58 +<method type="function" name="parsecallibfile">
12-Apr-2018 16:00:58 +   <shortdescription>Bootstrap the flux density scale from standard calibrators</shortdescription>
12-Apr-2018 16:00:58 +   
12-Apr-2018 16:00:58 +<input>
12-Apr-2018 16:00:58 +     <param type="string" direction="in" name="filein">
12-Apr-2018 16:00:58 +     <description>Input cal library file name</description>
12-Apr-2018 16:00:58 +     </param>
12-Apr-2018 16:00:58 +</input>
12-Apr-2018 16:00:58 +
12-Apr-2018 16:00:58 +<returns type="record">
12-Apr-2018 16:00:58 +   <description>
12-Apr-2018 16:00:58 +   </description>
12-Apr-2018 16:00:58 +</returns>
12-Apr-2018 16:00:58 +
12-Apr-2018 16:00:58 +<description>
12-Apr-2018 16:00:58 +
12-Apr-2018 16:00:58 +TBD
12-Apr-2018 16:00:58 +
12-Apr-2018 16:00:58 +</description>
12-Apr-2018 16:00:58 +
12-Apr-2018 16:00:58 +<example>
12-Apr-2018 16:00:58 +
12-Apr-2018 16:00:58 +TBD
12-Apr-2018 16:00:58 +
12-Apr-2018 16:00:58 +</example>
12-Apr-2018 16:00:58 +</method>
12-Apr-2018 16:00:58 +
12-Apr-2018 16:00:58 +
12-Apr-2018 16:00:58 +
12-Apr-2018 16:00:58 <method type="function" name="setvi">
12-Apr-2018 16:00:58 <shortdescription>TEMPORARY method to control use of new VI2 regime</shortdescription>
12-Apr-2018 16:00:58
12-Apr-2018 16:00:58 diff --git a/gcwrap/tools/synthesis/calibrater_cmpt.cc b/gcwrap/tools/synthesis/calibrater_cmpt.cc
12-Apr-2018 16:00:58 index f7417eb..581695c 100644
12-Apr-2018 16:00:58 --- a/gcwrap/tools/synthesis/calibrater_cmpt.cc
12-Apr-2018 16:00:58 +++ b/gcwrap/tools/synthesis/calibrater_cmpt.cc
12-Apr-2018 16:00:58 @@ -31,6 +31,7 @@
12-Apr-2018 16:00:58 #include <ms/MeasurementSets/MSField.h>
12-Apr-2018 16:00:58 #include <ms/MeasurementSets/MSSpectralWindow.h>
12-Apr-2018 16:00:58 #include <synthesis/TransformMachines/VisModelData.h>
12-Apr-2018 16:00:58 +#include <synthesis/CalLibrary/CalLibraryTools.h>
12-Apr-2018 16:00:58
12-Apr-2018 16:00:58 #include <measures/Measures/MeasTable.h>
12-Apr-2018 16:00:58 #include <iostream>
12-Apr-2018 16:00:58 @@ -1348,6 +1349,46 @@ calibrater::done()
12-Apr-2018 16:00:58
12-Apr-2018 16:00:58
12-Apr-2018 16:00:58 //----------------------------------------------------------------------------
12-Apr-2018 16:00:58 +// parsecallibfile - convert callib file to a record
12-Apr-2018 16:00:58 +casac::record* calibrater::parsecallibfile(const std::string& filein )
12-Apr-2018 16:00:58 +{
12-Apr-2018 16:00:58 +
12-Apr-2018 16:00:58 +  casac::record* oRec;
12-Apr-2018 16:00:58 +
12-Apr-2018 16:00:58 +  try {
12-Apr-2018 16:00:58 +
12-Apr-2018 16:00:58 +    /*
12-Apr-2018 16:00:58 +    if (! itsMS) {
12-Apr-2018 16:00:58 +      *itsLog << LogIO::SEVERE << "Must first open a MeasurementSet."
12-Apr-2018 16:00:58 +              << endl << LogIO::POST;
12-Apr-2018 16:00:58 +      throw( AipsError( "Must first open a MeasurementSet." ) );
12-Apr-2018 16:00:58 +    }
12-Apr-2018 16:00:58 +    */
12-Apr-2018 16:00:58 +
12-Apr-2018 16:00:58 +    // Log
12-Apr-2018 16:00:58 +    logSink_p.clearLocally();
12-Apr-2018 16:00:58 +    LogIO os(LogOrigin("calibrater", "parsecallibfile"), logSink_p);
12-Apr-2018 16:00:58 +    os << "Beginning parsecallibfile-)-------" << LogIO::POST;
12-Apr-2018 16:00:58 +
12-Apr-2018 16:00:58 +    // Check existence of specified file
12-Apr-2018 16:00:58 +    File diskfile(filein);
12-Apr-2018 16:00:58 +    if (!diskfile.exists())
12-Apr-2018 16:00:58 +      throw( AipsError( "Specified cal library file ('"+filein+ "') does not exist!") );
12-Apr-2018 16:00:58 +
12-Apr-2018 16:00:58 +    // Call parser
12-Apr-2018 16:00:58 +    Record callibRec = callibSetParams(filein);
12-Apr-2018 16:00:58 +
12-Apr-2018 16:00:58 +    oRec = fromRecord( callibRec );
12-Apr-2018 16:00:58 +  } catch (AipsError x) {
12-Apr-2018 16:00:58 +    *itsLog << LogIO::SEVERE << "Exception Reported: " << x.getMesg() << LogIO::POST;
12-Apr-2018 16:00:58 +    RETHROW(x);
12-Apr-2018 16:00:58 +  }
12-Apr-2018 16:00:58 +
12-Apr-2018 16:00:58 +  return( oRec );
12-Apr-2018 16:00:58 +
12-Apr-2018 16:00:58 +}
12-Apr-2018 16:00:58 +
12-Apr-2018 16:00:58 +//----------------------------------------------------------------------------
12-Apr-2018 16:00:58
12-Apr-2018 16:00:58 bool calibrater::setvi(const bool old, const bool quiet)
12-Apr-2018 16:00:58 {
12-Apr-2018 16:00:58 diff --git a/gcwrap/tools/synthesis/synthesisimager_cmpt.cc b/gcwrap/tools/synthesis/synthesisimager_cmpt.cc
12-Apr-2018 16:00:58 index 40781bd..f3d9515 100644
12-Apr-2018 16:00:58 --- a/gcwrap/tools/synthesis/synthesisimager_cmpt.cc
12-Apr-2018 16:00:58 +++ b/gcwrap/tools/synthesis/synthesisimager_cmpt.cc
12-Apr-2018 16:00:58 @@ -62,7 +62,7 @@ namespace casac {
12-Apr-2018 16:00:58 {
12-Apr-2018 16:00:58    
12-Apr-2018 16:00:58    // itsImager = new SynthesisImagerVi2();
12-Apr-2018 16:00:58 -
12-Apr-2018 16:00:58 +  itsLog = new LogIO();
12-Apr-2018 16:00:58    //itsImager = new SynthesisImager();
12-Apr-2018 16:00:58    itsImager = makeSI(true);
12-Apr-2018 16:00:58 }
12-Apr-2018 16:00:58 @@ -179,22 +179,55 @@ synthesisimager::selectdata(const casac::record& selpars)
12-Apr-2018 16:00:58 bool synthesisimager::defineimage(const casac::record& impars, const casac::record& gridpars)
12-Apr-2018 16:00:58 {
12-Apr-2018 16:00:58    Bool rstat(false);
12-Apr-2018 16:00:58 -
12-Apr-2018 16:00:58 +  *itsLog << casacore::LogOrigin("synthesisimager", __func__);
12-Apr-2018 16:00:58    try
12-Apr-2018 16:00:58      {
12-Apr-2018 16:00:58      
12-Apr-2018 16:00:58        //if( ! itsImager ) itsImager = new SynthesisImager();
12-Apr-2018 16:00:58        itsImager = makeSI();
12-Apr-2018 16:00:58      casacore::Record irecpars = *toRecord( impars );
12-Apr-2018 16:00:58 +    ////Temporary fix till we get the checking for phasecenter in fromRecord
12-Apr-2018 16:00:58 +    ////to deal with this
12-Apr-2018 16:00:58 +    //////////////
12-Apr-2018 16:00:58 +    String movingSource="";
12-Apr-2018 16:00:58 +    if( irecpars.dataType("phasecenter") == TpString ){
12-Apr-2018 16:00:58 +      String pcen=irecpars.asString("phasecenter");
12-Apr-2018 16:00:58 +      //seems to be a table so assuming ephemerides table
12-Apr-2018 16:00:58 +      //Or A known planet
12-Apr-2018 16:00:58 +      //Or special case
12-Apr-2018 16:00:58 +      casacore::MDirection::Types refType;
12-Apr-2018 16:00:58 +      Bool trackingNearSource= (Table::isReadable(pcen, False))
12-Apr-2018 16:00:58 +        || ( (casacore::MDirection::getType(refType, pcen)) && (refType > casacore::MDirection::N_Types && refType < casacore::MDirection:: N_Planets ))
12-Apr-2018 16:00:58 +        || (upcase(pcen)==String("TRACKFIELD"));
12-Apr-2018 16:00:58 +      if(trackingNearSource){
12-Apr-2018 16:00:58 +        *itsLog << "Detected tracking of moving source " <<  casacore::LogIO::POST;
12-Apr-2018 16:00:58 +        if(refType > casacore::MDirection::N_Types && refType < casacore::MDirection::COMET){
12-Apr-2018 16:00:58 +         
12-Apr-2018 16:00:58 +          *itsLog << "Will be Using measures internal ephemeris  for  " << casacore::MDirection::showType(refType) << " to track " << casacore::LogIO::POST;
12-Apr-2018 16:00:58 +        }
12-Apr-2018 16:00:58 +        movingSource=pcen;
12-Apr-2018 16:00:58 +        irecpars.define("phasecenter", "");
12-Apr-2018 16:00:58 +      }
12-Apr-2018 16:00:58 +     
12-Apr-2018 16:00:58 +     
12-Apr-2018 16:00:58 +     
12-Apr-2018 16:00:58 +      //cerr << "PCEN " << pcen << "  " << irecpars.asString("phasecenter")<< endl;
12-Apr-2018 16:00:58 +    }
12-Apr-2018 16:00:58 +
12-Apr-2018 16:00:58      SynthesisParamsImage ipars;
12-Apr-2018 16:00:58      ipars.fromRecord( irecpars );
12-Apr-2018 16:00:58 -
12-Apr-2018 16:00:58 +   
12-Apr-2018 16:00:58 +     
12-Apr-2018 16:00:58      casacore::Record grecpars = *toRecord( gridpars );
12-Apr-2018 16:00:58      SynthesisParamsGrid gpars;
12-Apr-2018 16:00:58      gpars.fromRecord( grecpars );
12-Apr-2018 16:00:58 -
12-Apr-2018 16:00:58 +    if(movingSource != casacore::String("")){
12-Apr-2018 16:00:58 +      itsImager->setMovingSource(movingSource);
12-Apr-2018 16:00:58 +    }
12-Apr-2018 16:00:58      itsImager->defineImage( ipars, gpars );
12-Apr-2018 16:00:58 -
12-Apr-2018 16:00:58 +   
12-Apr-2018 16:00:58 +
12-Apr-2018 16:00:58 +   
12-Apr-2018 16:00:58      /*
12-Apr-2018 16:00:58      itsImager->defineImage( ipars.imageName, ipars.imsize[0], ipars.imsize[1],
12-Apr-2018 16:00:58                             ipars.cellsize[0], ipars.cellsize[1], ipars.stokes, ipars.phaseCenter,
12-Apr-2018 16:00:58 @@ -654,6 +687,9 @@ synthesisimager::done()
12-Apr-2018 16:00:58           delete itsImager;
12-Apr-2018 16:00:58           itsImager=NULL;
12-Apr-2018 16:00:58         }
12-Apr-2018 16:00:58 +      if(itsLog)
12-Apr-2018 16:00:58 +        delete itsLog;
12-Apr-2018 16:00:58 +      itsLog=NULL;
12-Apr-2018 16:00:58      }
12-Apr-2018 16:00:58    catch  (AipsError x)
12-Apr-2018 16:00:58      {
12-Apr-2018 16:00:58 diff --git a/gcwrap/tools/synthesis/synthesisimager_private.h b/gcwrap/tools/synthesis/synthesisimager_private.h
12-Apr-2018 16:00:58 index 785f6a2..e9729cd 100644
12-Apr-2018 16:00:58 --- a/gcwrap/tools/synthesis/synthesisimager_private.h
12-Apr-2018 16:00:58 +++ b/gcwrap/tools/synthesis/synthesisimager_private.h
12-Apr-2018 16:00:58 @@ -1,5 +1,5 @@
12-Apr-2018 16:00:58 casa::SynthesisImager *itsImager;
12-Apr-2018 16:00:58
12-Apr-2018 16:00:58 casacore::String checkStr(std::string instr);
12-Apr-2018 16:00:58 -
12-Apr-2018 16:00:58 +casacore::LogIO *itsLog;
12-Apr-2018 16:00:58 casa::SynthesisImager* makeSI(bool forceNew=false, bool oldvi=false);
12-Apr-2018 16:00:58
12-Apr-2018 16:00:58 Comparison returned: 1
12-Apr-2018 16:00:58 Checkout: git checkout ARD-3
12-Apr-2018 16:00:58 Already on 'ARD-3'
12-Apr-2018 16:00:58
12-Apr-2018 16:00:58 [git, tag, -a, 5.3.0-84-test-ARD-3-3, -m 'Automatic tag']
12-Apr-2018 16:00:58
12-Apr-2018 16:00:58 Done tagging 5.3.0-84-test-ARD-3-3
12-Apr-2018 16:00:58 Pushing 5.3.0-84-test-ARD-3-3 to origin
12-Apr-2018 16:00:59 To ssh://git@open-bitbucket.nrao.edu:7999/casa/casa.git
12-Apr-2018 16:00:59 * [new tag]         5.3.0-84-test-ARD-3-3 -> 5.3.0-84-test-ARD-3-3
12-Apr-2018 16:00:59
12-Apr-2018 16:00:59 Pushed 5.3.0-84-test-ARD-3-3 to origin
12-Apr-2018 16:00:59
12-Apr-2018 16:00:59 BUILD SUCCESSFUL
12-Apr-2018 16:00:59
12-Apr-2018 16:00:59 Total time: 7.922 secs
12-Apr-2018 16:00:59 Finished task 'Script' with result: Success
12-Apr-2018 16:00:59 Running post build plugin 'Docker Container Cleanup'
12-Apr-2018 16:00:59 Running post build plugin 'NCover Results Collector'
12-Apr-2018 16:00:59 Running post build plugin 'Clover Results Collector'
12-Apr-2018 16:00:59 Running post build plugin 'npm Cache Cleanup'
12-Apr-2018 16:00:59 Running post build plugin 'Artifact Copier'
12-Apr-2018 16:00:59 Finalising the build...
12-Apr-2018 16:00:59 Stopping timer.
12-Apr-2018 16:00:59 Build ARD-BPT4-TBFP-3 completed.
12-Apr-2018 16:00:59 Running on server: post build plugin 'NCover Results Collector'
12-Apr-2018 16:00:59 Running on server: post build plugin 'Build Hanging Detection Configuration'
12-Apr-2018 16:00:59 Running on server: post build plugin 'Clover Delta Calculator'
12-Apr-2018 16:00:59 Running on server: post build plugin 'Maven Dependencies Postprocessor'
12-Apr-2018 16:00:59 All post build plugins have finished
12-Apr-2018 16:00:59 Generating build results summary...
12-Apr-2018 16:00:59 Saving build results to disk...
12-Apr-2018 16:00:59 Logging substituted variables...
12-Apr-2018 16:00:59 Indexing build results...
12-Apr-2018 16:00:59 Finished building ARD-BPT4-TBFP-3.