Build: #4 was successful
Job: Tag Branch for Packages was successful
Build log
The build generated 67,688 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-Sep-2018 15:30:25 | + } |
12-Sep-2018 15:30:25 | + else if (_imageD) { |
12-Sep-2018 15:30:25 | + return _subimage<Double>( |
12-Sep-2018 15:30:25 | + _imageD, outfile, region, vmask, dropDegenerateAxes, overwrite, |
12-Sep-2018 15:30:25 | + list, stretch, keepaxes, wantreturn |
12-Sep-2018 15:30:25 | ); |
12-Sep-2018 15:30:25 | - _addHistory(im, __func__, names, values); |
12-Sep-2018 15:30:25 | - auto res = wantreturn ? new image(im) : nullptr; |
12-Sep-2018 15:30:25 | - return res; |
12-Sep-2018 15:30:25 | + } |
12-Sep-2018 15:30:25 | + else if (_imageDC) { |
12-Sep-2018 15:30:25 | + return _subimage<DComplex>( |
12-Sep-2018 15:30:25 | + _imageDC, outfile, region, vmask, dropDegenerateAxes, overwrite, |
12-Sep-2018 15:30:25 | + list, stretch, keepaxes, wantreturn |
12-Sep-2018 15:30:25 | + ); |
12-Sep-2018 15:30:25 | + } |
12-Sep-2018 15:30:25 | + else { |
12-Sep-2018 15:30:25 | + ThrowCc("Logic error"); |
12-Sep-2018 15:30:25 | } |
12-Sep-2018 15:30:25 | } |
12-Sep-2018 15:30:25 | catch (const AipsError& x) { |
12-Sep-2018 15:30:25 | @@ -5487,30 +5712,39 @@ image* image::subimage( |
12-Sep-2018 15:30:25 | return nullptr; |
12-Sep-2018 15:30:25 | } |
12-Sep-2018 15:30:25 | |
12-Sep-2018 15:30:25 | -template<class T> SPIIT image::_subimage( |
12-Sep-2018 15:30:25 | - SPIIT clone, |
12-Sep-2018 15:30:25 | - const String& outfile, const Record& region, |
12-Sep-2018 15:30:25 | - const String& mask, bool dropDegenerateAxes, |
12-Sep-2018 15:30:25 | - bool overwrite, bool list, bool stretch, |
12-Sep-2018 15:30:25 | - const vector<int>& keepaxes |
12-Sep-2018 15:30:25 | +template<class T> image* image::_subimage( |
12-Sep-2018 15:30:25 | + SPIIT clone, const String& outfile, const variant& region, |
12-Sep-2018 15:30:25 | + const variant& vmask, bool dropDegenerateAxes, bool overwrite, bool list, |
12-Sep-2018 15:30:25 | + bool stretch, const vector<int>& keepaxes, bool wantreturn |
12-Sep-2018 15:30:25 | ) { |
12-Sep-2018 15:30:25 | + SPIIT im; |
12-Sep-2018 15:30:25 | + auto regionRec = _getRegion(region, false); |
12-Sep-2018 15:30:25 | + auto mask = _getMask(vmask); |
12-Sep-2018 15:30:25 | if (! dropDegenerateAxes || keepaxes.empty()) { |
12-Sep-2018 15:30:25 | - return SPIIT( |
12-Sep-2018 15:30:25 | - SubImageFactory<T>::createImage( |
12-Sep-2018 15:30:25 | - *clone, outfile, region, mask, |
12-Sep-2018 15:30:25 | - dropDegenerateAxes, overwrite, list, stretch |
12-Sep-2018 15:30:25 | - ) |
12-Sep-2018 15:30:25 | + im = SubImageFactory<T>::createImage( |
12-Sep-2018 15:30:25 | + *clone, outfile, *regionRec, mask, dropDegenerateAxes, |
12-Sep-2018 15:30:25 | + overwrite, list, stretch |
12-Sep-2018 15:30:25 | ); |
12-Sep-2018 15:30:25 | } |
12-Sep-2018 15:30:25 | else { |
12-Sep-2018 15:30:25 | - return SPIIT( |
12-Sep-2018 15:30:25 | - SubImageFactory<T>::createImage( |
12-Sep-2018 15:30:25 | - *clone, outfile, region, mask, |
12-Sep-2018 15:30:25 | - AxesSpecifier(IPosition(Vector<Int>(keepaxes))), |
12-Sep-2018 15:30:25 | - overwrite, list, stretch |
12-Sep-2018 15:30:25 | - ) |
12-Sep-2018 15:30:25 | + im = SubImageFactory<T>::createImage( |
12-Sep-2018 15:30:25 | + *clone, outfile, *regionRec, mask, |
12-Sep-2018 15:30:25 | + AxesSpecifier(IPosition(Vector<Int>(keepaxes))), |
12-Sep-2018 15:30:25 | + overwrite, list, stretch |
12-Sep-2018 15:30:25 | ); |
12-Sep-2018 15:30:25 | } |
12-Sep-2018 15:30:25 | + if (_doHistory) { |
12-Sep-2018 15:30:25 | + vector<String> names { |
12-Sep-2018 15:30:25 | + "outfile", "region", "mask", "dropdeg", "overwrite", |
12-Sep-2018 15:30:25 | + "list", "stretch", "wantreturn", "keepaxes" |
12-Sep-2018 15:30:25 | + }; |
12-Sep-2018 15:30:25 | + vector<variant> values { |
12-Sep-2018 15:30:25 | + outfile, region, vmask, dropDegenerateAxes, |
12-Sep-2018 15:30:25 | + overwrite, list, stretch, wantreturn, keepaxes |
12-Sep-2018 15:30:25 | + }; |
12-Sep-2018 15:30:25 | + _addHistory(im, "subimage", names, values); |
12-Sep-2018 15:30:25 | + } |
12-Sep-2018 15:30:25 | + return wantreturn ? new image(im) : nullptr; |
12-Sep-2018 15:30:25 | } |
12-Sep-2018 15:30:25 | |
12-Sep-2018 15:30:25 | record* image::summary( |
12-Sep-2018 15:30:25 | @@ -5632,15 +5866,15 @@ bool image::tofits( |
12-Sep-2018 15:30:25 | VersionInfo::report(buffer); |
12-Sep-2018 15:30:25 | origin = String(buffer); |
12-Sep-2018 15:30:25 | |
12-Sep-2018 15:30:25 | - // sanitize: replace CR and LF by SPACE |
12-Sep-2018 15:30:25 | - const Char *cOrigin = origin.chars(); |
12-Sep-2018 15:30:25 | - for(String::size_type i=0; i<origin.length(); i++){ |
12-Sep-2018 15:30:25 | - if(cOrigin[i]==10 || cOrigin[i]==13){ |
12-Sep-2018 15:30:25 | - origin.at(i,(String::size_type)1) = " "; |
12-Sep-2018 15:30:25 | - } |
12-Sep-2018 15:30:25 | - } |
12-Sep-2018 15:30:25 | - origin.rtrim(' '); |
12-Sep-2018 15:30:25 | - |
12-Sep-2018 15:30:25 | + // sanitize: replace CR and LF by SPACE |
12-Sep-2018 15:30:25 | + const Char *cOrigin = origin.chars(); |
12-Sep-2018 15:30:25 | + for(String::size_type i=0; i<origin.length(); i++){ |
12-Sep-2018 15:30:25 | + if(cOrigin[i]==10 || cOrigin[i]==13){ |
12-Sep-2018 15:30:25 | + origin.at(i,(String::size_type)1) = " "; |
12-Sep-2018 15:30:25 | + } |
12-Sep-2018 15:30:25 | + } |
12-Sep-2018 15:30:25 | + origin.rtrim(' '); |
12-Sep-2018 15:30:25 | + |
12-Sep-2018 15:30:25 | } |
12-Sep-2018 15:30:25 | ThrowIf( |
12-Sep-2018 15:30:25 | ! _imageF, |
12-Sep-2018 15:30:25 | @@ -6250,7 +6484,8 @@ bool image::isconform(const string& other) { |
12-Sep-2018 15:30:25 | } |
12-Sep-2018 15:30:25 | |
12-Sep-2018 15:30:25 | SHARED_PTR<Record> image::_getRegion( |
12-Sep-2018 15:30:25 | - const variant& region, const bool nullIfEmpty, const string& otherImageName |
12-Sep-2018 15:30:25 | + const ::casac::variant& region, const bool nullIfEmpty, |
12-Sep-2018 15:30:25 | + const string& otherImageName |
12-Sep-2018 15:30:25 | ) const { |
12-Sep-2018 15:30:25 | switch (region.type()) { |
12-Sep-2018 15:30:25 | case variant::BOOLVEC: |
12-Sep-2018 15:30:25 | @@ -6304,11 +6539,11 @@ SHARED_PTR<Record> image::_getRegion( |
12-Sep-2018 15:30:25 | case variant::RECORD: |
12-Sep-2018 15:30:25 | { |
12-Sep-2018 15:30:25 | SHARED_PTR<variant> clon(region.clone()); |
12-Sep-2018 15:30:25 | - return SHARED_PTR<Record>( |
12-Sep-2018 15:30:25 | + return SHARED_PTR<casacore::Record>( |
12-Sep-2018 15:30:25 | nullIfEmpty && region.size() == 0 |
12-Sep-2018 15:30:25 | - ? 0 |
12-Sep-2018 15:30:25 | + ? nullptr |
12-Sep-2018 15:30:25 | : toRecord( |
12-Sep-2018 15:30:25 | - SHARED_PTR<variant>(region.clone())->asRecord() |
12-Sep-2018 15:30:25 | + SHARED_PTR<::casac::variant>(region.clone())->asRecord() |
12-Sep-2018 15:30:25 | ) |
12-Sep-2018 15:30:25 | ); |
12-Sep-2018 15:30:25 | } |
12-Sep-2018 15:30:25 | @@ -6317,6 +6552,38 @@ SHARED_PTR<Record> image::_getRegion( |
12-Sep-2018 15:30:25 | } |
12-Sep-2018 15:30:25 | } |
12-Sep-2018 15:30:25 | |
12-Sep-2018 15:30:25 | +void image::_setImage(casa::ITUPLE mytuple) { |
12-Sep-2018 15:30:25 | + auto imageF = std::get<0>(mytuple); |
12-Sep-2018 15:30:25 | + auto imageC = std::get<1>(mytuple); |
12-Sep-2018 15:30:25 | + auto imageD = std::get<2>(mytuple); |
12-Sep-2018 15:30:25 | + auto imageDC = std::get<3>(mytuple); |
12-Sep-2018 15:30:25 | + uInt n = 0; |
12-Sep-2018 15:30:25 | + if (imageF) { |
12-Sep-2018 15:30:25 | + ++n; |
12-Sep-2018 15:30:25 | + } |
12-Sep-2018 15:30:25 | + if (imageC) { |
12-Sep-2018 15:30:25 | + ++n; |
12-Sep-2018 15:30:25 | + } |
12-Sep-2018 15:30:25 | + if (imageD) { |
12-Sep-2018 15:30:25 | + ++n; |
12-Sep-2018 15:30:25 | + } |
12-Sep-2018 15:30:25 | + if (imageDC) { |
12-Sep-2018 15:30:25 | + ++n; |
12-Sep-2018 15:30:25 | + } |
12-Sep-2018 15:30:25 | + ThrowIf(n == 0, "No image defined"); |
12-Sep-2018 15:30:25 | + ThrowIf( |
12-Sep-2018 15:30:25 | + n > 1, |
12-Sep-2018 15:30:25 | + "Multiple images (" + String::toString(n) |
12-Sep-2018 15:30:25 | + + ") defined" |
12-Sep-2018 15:30:25 | + ); |
12-Sep-2018 15:30:25 | + _reset(); |
12-Sep-2018 15:30:25 | + _imageF = imageF; |
12-Sep-2018 15:30:25 | + _imageC = imageC; |
12-Sep-2018 15:30:25 | + _imageD = imageD; |
12-Sep-2018 15:30:25 | + _imageDC = imageDC; |
12-Sep-2018 15:30:25 | +} |
12-Sep-2018 15:30:25 | + |
12-Sep-2018 15:30:25 | + |
12-Sep-2018 15:30:25 | vector<double> image::_toDoubleVec(const variant& v) { |
12-Sep-2018 15:30:25 | variant::TYPE type = v.type(); |
12-Sep-2018 15:30:25 | ThrowIf( |
12-Sep-2018 15:30:25 | diff --git a/gcwrap/tools/images/image_private.h b/gcwrap/tools/images/image_private.h |
12-Sep-2018 15:30:25 | index 02435c7..0077512 100644 |
12-Sep-2018 15:30:25 | --- a/gcwrap/tools/images/image_private.h |
12-Sep-2018 15:30:25 | +++ b/gcwrap/tools/images/image_private.h |
12-Sep-2018 15:30:25 | @@ -16,23 +16,24 @@ image(SHARED_PTR<casacore::ImageInterface<casacore::Complex> > inImage); |
12-Sep-2018 15:30:25 | image(SHARED_PTR<casacore::ImageInterface<casacore::Double> > inImage); |
12-Sep-2018 15:30:25 | |
12-Sep-2018 15:30:25 | image(SHARED_PTR<casacore::ImageInterface<casacore::DComplex> > inImage); |
12-Sep-2018 15:30:25 | -//image(SHARED_PTR<casacore::ImageAnalysis> ia); |
12-Sep-2018 15:30:25 | + |
12-Sep-2018 15:30:25 | +image(casa::ITUPLE mytuple); |
12-Sep-2018 15:30:25 | |
12-Sep-2018 15:30:25 | private: |
12-Sep-2018 15:30:25 | |
12-Sep-2018 15:30:25 | typedef casacore::GaussianBeam Angular2DGaussian; |
12-Sep-2018 15:30:25 | |
12-Sep-2018 15:30:25 | -mutable casacore::LogIO _log; |
12-Sep-2018 15:30:25 | +mutable casacore::LogIO _log = casacore::LogIO(); |
12-Sep-2018 15:30:25 | |
12-Sep-2018 15:30:25 | // This class needs to be templated. For now, we maintain two pointers. |
12-Sep-2018 15:30:25 | // At least one of which will be zero for a valid object state. |
12-Sep-2018 15:30:25 | // SHARED_PTR<casacore::ImageInterface<casacore::Float> > _imageFloat; |
12-Sep-2018 15:30:25 | // SHARED_PTR<casacore::ImageInterface<casacore::Complex> > _imageComplex; |
12-Sep-2018 15:30:25 | |
12-Sep-2018 15:30:25 | -casa::SPIIF _imageF; |
12-Sep-2018 15:30:25 | -casa::SPIIC _imageC; |
12-Sep-2018 15:30:25 | -casa::SPIID _imageD; |
12-Sep-2018 15:30:25 | -casa::SPIIDC _imageDC; |
12-Sep-2018 15:30:25 | +casa::SPIIF _imageF = casa::SPIIF(); |
12-Sep-2018 15:30:25 | +casa::SPIIC _imageC = casa::SPIIC(); |
12-Sep-2018 15:30:25 | +casa::SPIID _imageD = casa::SPIID(); |
12-Sep-2018 15:30:25 | +casa::SPIIDC _imageDC = casa::SPIIDC(); |
12-Sep-2018 15:30:25 | |
12-Sep-2018 15:30:25 | std::auto_ptr<casa::ImageStatsCalculator> _stats; |
12-Sep-2018 15:30:25 | |
12-Sep-2018 15:30:25 | @@ -99,9 +100,10 @@ template<class T> image* _decimate( |
12-Sep-2018 15:30:25 | const vector<casacore::String>& msgs |
12-Sep-2018 15:30:25 | ) const; |
12-Sep-2018 15:30:25 | |
12-Sep-2018 15:30:25 | -std::pair<casa::SPIIF, casa::SPIIC> _fromarray( |
12-Sep-2018 15:30:25 | - const string& outfile, const variant& pixels, |
12-Sep-2018 15:30:25 | - const record& csys, bool linear, bool overwrite, bool log |
12-Sep-2018 15:30:25 | +casa::ITUPLE _fromarray( |
12-Sep-2018 15:30:25 | + const std::string& outfile, const casac::variant& pixels, |
12-Sep-2018 15:30:25 | + const casac::record& csys, bool linear, bool overwrite, |
12-Sep-2018 15:30:25 | + bool log, const std::string& type |
12-Sep-2018 15:30:25 | ); |
12-Sep-2018 15:30:25 | |
12-Sep-2018 15:30:25 | template<class T> casacore::Record _getchunk( |
12-Sep-2018 15:30:25 | @@ -127,6 +129,12 @@ SHARED_PTR<casacore::Record> _getRegion( |
12-Sep-2018 15:30:25 | const std::string& otherImageName="" |
12-Sep-2018 15:30:25 | ) const; |
12-Sep-2018 15:30:25 | |
12-Sep-2018 15:30:25 | +template<class T> variant* _getregion2( |
12-Sep-2018 15:30:25 | + SPIIT image, const variant& region, |
12-Sep-2018 15:30:25 | + const std::vector<int>& axes, const variant& mask, |
12-Sep-2018 15:30:25 | + bool list, bool dropdeg, bool getmask, bool stretch |
12-Sep-2018 15:30:25 | +); |
12-Sep-2018 15:30:25 | + |
12-Sep-2018 15:30:25 | template<class T> vector<string> _handleMask( |
12-Sep-2018 15:30:25 | SPIIT myimage, const casacore::String& op, |
12-Sep-2018 15:30:25 | const vector<string>& name |
12-Sep-2018 15:30:25 | @@ -176,6 +184,30 @@ template<class T> void _putchunk( |
12-Sep-2018 15:30:25 | const bool list, const bool locking, const bool replicate |
12-Sep-2018 15:30:25 | ); |
12-Sep-2018 15:30:25 | |
12-Sep-2018 15:30:25 | +template<class T> bool _putregionComplex( |
12-Sep-2018 15:30:25 | + SPIIT image, const variant& v_pixels, const variant& v_pixelmask, |
12-Sep-2018 15:30:25 | + const variant& region, bool list, bool usemask, |
12-Sep-2018 15:30:25 | + bool replicateArray |
12-Sep-2018 15:30:25 | +); |
12-Sep-2018 15:30:25 | + |
12-Sep-2018 15:30:25 | +template<class T> bool _putregionReal( |
12-Sep-2018 15:30:25 | + SPIIT image, const variant& v_pixels, const variant& v_pixelmask, |
12-Sep-2018 15:30:25 | + const variant& region, bool list, bool usemask, |
12-Sep-2018 15:30:25 | + bool replicateArray |
12-Sep-2018 15:30:25 | +); |
12-Sep-2018 15:30:25 | + |
12-Sep-2018 15:30:25 | +template<class T> bool _putregion2( |
12-Sep-2018 15:30:25 | + SPIIT image, const casacore::Array<T>& pixels, |
12-Sep-2018 15:30:25 | + const variant& v_pixelmask, const variant& region, |
12-Sep-2018 15:30:25 | + bool list, bool usemask, bool replicateArray |
12-Sep-2018 15:30:25 | +); |
12-Sep-2018 15:30:25 | + |
12-Sep-2018 15:30:25 | +template<class T, class U> |
12-Sep-2018 15:30:25 | +void _convertArray( |
12-Sep-2018 15:30:25 | + casacore::Array<T>& out, const casacore::Vector<U>& in, |
12-Sep-2018 15:30:25 | + const casacore::IPosition& shape |
12-Sep-2018 15:30:25 | +); |
12-Sep-2018 15:30:25 | + |
12-Sep-2018 15:30:25 | template <class T> image* _regrid( |
12-Sep-2018 15:30:25 | casa::ImageRegridderBase<T>& regridder, |
12-Sep-2018 15:30:25 | const string& method, int decimate, bool replicate, |
12-Sep-2018 15:30:25 | @@ -189,11 +221,13 @@ void _remove(bool verbose); |
12-Sep-2018 15:30:25 | |
12-Sep-2018 15:30:25 | void _reset(); |
12-Sep-2018 15:30:25 | |
12-Sep-2018 15:30:25 | -template<class T> SHARED_PTR<casacore::ImageInterface<T> > _subimage( |
12-Sep-2018 15:30:25 | +void _setImage(casa::ITUPLE mytuple); |
12-Sep-2018 15:30:25 | + |
12-Sep-2018 15:30:25 | +template<class T> image* _subimage( |
12-Sep-2018 15:30:25 | SHARED_PTR<casacore::ImageInterface<T> > clone, |
12-Sep-2018 15:30:25 | - const casacore::String& outfile, const casacore::Record& region, |
12-Sep-2018 15:30:25 | - const casacore::String& mask, bool dropDegenerateAxes, |
12-Sep-2018 15:30:25 | - bool overwrite, bool list, bool stretch, const vector<int>& keepaxes |
12-Sep-2018 15:30:25 | + const casacore::String& outfile, const casac::variant& region, |
12-Sep-2018 15:30:25 | + const casac::variant& vmask, bool dropDegenerateAxes, bool overwrite, |
12-Sep-2018 15:30:25 | + bool list, bool stretch, const vector<int>& keepaxes, bool wantReturn |
12-Sep-2018 15:30:25 | ); |
12-Sep-2018 15:30:25 | |
12-Sep-2018 15:30:25 | template <class T> static record* _summary( |
12-Sep-2018 15:30:25 | diff --git a/gcwrap/tools/ms/ms.xml b/gcwrap/tools/ms/ms.xml |
12-Sep-2018 15:30:25 | index 55b8db4..d9be364 100644 |
12-Sep-2018 15:30:25 | --- a/gcwrap/tools/ms/ms.xml |
12-Sep-2018 15:30:25 | +++ b/gcwrap/tools/ms/ms.xml |
12-Sep-2018 15:30:25 | @@ -3412,7 +3412,7 @@ in spectral window 1. |
12-Sep-2018 15:30:25 | |
12-Sep-2018 15:30:25 | <!-- ====================================================== --> |
12-Sep-2018 15:30:25 | |
12-Sep-2018 15:30:25 | - <method type="function" name="statwt2"> |
12-Sep-2018 15:30:25 | + <method type="function" name="statwt"> |
12-Sep-2018 15:30:25 | <shortdescription>Compute and set weights based on variance of data.</shortdescription> |
12-Sep-2018 15:30:25 | |
12-Sep-2018 15:30:25 | <input> |
12-Sep-2018 15:30:25 | @@ -3541,21 +3541,43 @@ in spectral window 1. |
12-Sep-2018 15:30:25 | |
12-Sep-2018 15:30:25 | 1. If run in preview mode (preview=True), no data are modified and |
12-Sep-2018 15:30:25 | no columns are added. |
12-Sep-2018 15:30:25 | - 2. Else if the MS already has a WEIGHT_SPECTRUM and this column has |
12-Sep-2018 15:30:25 | - been initialized (has values), it will always be populated with |
12-Sep-2018 15:30:25 | + 2. Else if datacolumn equals 'residual' or 'residual_data' and |
12-Sep-2018 15:30:25 | + a CORRECTED_DATA column exists, the WEIGHT and WEIGHT_SPECTRUM |
12-Sep-2018 15:30:25 | + columns are not modified. |
12-Sep-2018 15:30:25 | + 3. Else if the MS already has a WEIGHT_SPECTRUM and this column has |
12-Sep-2018 15:30:25 | + been initialized (has values), it will be populated with |
12-Sep-2018 15:30:25 | the new weights. The WEIGHT column will be populated with the |
12-Sep-2018 15:30:25 | corresponding median values of the associated WEIGHT_SPECTRUM |
12-Sep-2018 15:30:25 | array. |
12-Sep-2018 15:30:25 | - 3. Else if the frequency range specified for the sample is not the |
12-Sep-2018 15:30:25 | + 4. Else if the frequency range specified for the sample is not the |
12-Sep-2018 15:30:25 | default ("spw"), the WEIGHT_SPECTRUM column will be created (if |
12-Sep-2018 15:30:25 | it doesn't already exist) and the new weights will be written to |
12-Sep-2018 15:30:25 | it. The WEIGHT column should be populated with the |
12-Sep-2018 15:30:25 | corresponding median values of the WEIGHT_SPECTRUM array. |
12-Sep-2018 15:30:25 | - 4. Otherwise the single value for each spectral window will be |
12-Sep-2018 15:30:25 | + 5. Otherwise the single value for each spectral window will be |
12-Sep-2018 15:30:25 | written to the WEIGHT column; the WEIGHT_SPECTRUM column will |
12-Sep-2018 15:30:25 | not be added if it doesn't already exist, and if it does, it |
12-Sep-2018 15:30:25 | will remain uninitialized (no values will be written to it). |
12-Sep-2018 15:30:25 | |
12-Sep-2018 15:30:25 | + RULES FOR MODIFYING WEIGHT, WEIGHT_SPECTRUM, SIGMA, and SIGMA_SPECTRUM |
12-Sep-2018 15:30:25 | + |
12-Sep-2018 15:30:25 | + 1. If datacolum='corrected' or 'residual' then values are written |
12-Sep-2018 15:30:25 | + to the WEIGHT and WEIGHT_SPECTRUM (if applicable) columns only. |
12-Sep-2018 15:30:25 | + 2. If datacolumn='data' or 'residual_data' and the 'CORRECTED_DATA' |
12-Sep-2018 15:30:25 | + column does not exist, then values are written to the WEIGHT and |
12-Sep-2018 15:30:25 | + WEIGHT_SPECTRUM (if applicable) columns and values in the SIGMA |
12-Sep-2018 15:30:25 | + and SIGMA_SPECTRUM are set to 1/sqrt(newly computed weight). If |
12-Sep-2018 15:30:25 | + a weight value is 0, the corresponding sigma value is -1. |
12-Sep-2018 15:30:25 | + 3. If datacolumn='data' or 'residual_data' and the 'CORRECTED_DATA' |
12-Sep-2018 15:30:25 | + column does exist, then the WEIGHT and WEIGHT_SPECTRUM columns |
12-Sep-2018 15:30:25 | + are not updated and values in the SIGMA and |
12-Sep-2018 15:30:25 | + SIGMA_SPECTRUM are set to 1/sqrt(of the newly computed weight). |
12-Sep-2018 15:30:25 | + If a weight value is 0, the corresponding sigma value is -1. |
12-Sep-2018 15:30:25 | + In this case, you should either split out the DATA column and |
12-Sep-2018 15:30:25 | + run statwt, or run with datacolumn='corrected' or 'residual' |
12-Sep-2018 15:30:25 | + to update WEIGHT/WEIGHT_SPECTRUM. Otherwise the data are |
12-Sep-2018 15:30:25 | + internally not consistent. |
12-Sep-2018 15:30:25 | + |
12-Sep-2018 15:30:25 | TIME BINNING |
12-Sep-2018 15:30:25 | |
12-Sep-2018 15:30:25 | One of two algorithms can be used for time binning. If |
12-Sep-2018 15:30:25 | @@ -3758,7 +3780,7 @@ in spectral window 1. |
12-Sep-2018 15:30:25 | # update the weights of an MS |
12-Sep-2018 15:30:25 | ms.open("my.ms", nomodify=False) |
12-Sep-2018 15:30:25 | # compute weights, using time bins of 300s |
12-Sep-2018 15:30:25 | - if ms.statwt2(timebin=("300s")): |
12-Sep-2018 15:30:25 | + if ms.statwt(timebin=("300s")): |
12-Sep-2018 15:30:25 | print "Successfully updated weights" |
12-Sep-2018 15:30:25 | else: |
12-Sep-2018 15:30:25 | print "Updating weights failed" |
12-Sep-2018 15:30:25 | @@ -3768,10 +3790,10 @@ in spectral window 1. |
12-Sep-2018 15:30:25 | |
12-Sep-2018 15:30:25 | <!-- ====================================================== --> |
12-Sep-2018 15:30:25 | |
12-Sep-2018 15:30:25 | - <method type="function" name="statwt"> |
12-Sep-2018 15:30:25 | + <method type="function" name="oldstatwt"> |
12-Sep-2018 15:30:25 | <shortdescription>Set WEIGHT and SIGMA from the scatter of the visibilities</shortdescription> |
12-Sep-2018 15:30:25 | |
12-Sep-2018 15:30:25 | - <keyword>statwt</keyword> |
12-Sep-2018 15:30:25 | + <keyword>oldstatwt</keyword> |
12-Sep-2018 15:30:25 | <input> |
12-Sep-2018 15:30:25 | <param type="bool" direction="in" name="dorms"> |
12-Sep-2018 15:30:25 | <description>How the scatter should be estimated (True -> rms, False -> stddev). </description> |
12-Sep-2018 15:30:25 | @@ -3894,13 +3916,13 @@ in spectral window 1. |
12-Sep-2018 15:30:25 | </description> |
12-Sep-2018 15:30:25 | <example> |
12-Sep-2018 15:30:25 | ms.open("multiwin.ms", nomodify=False) |
12-Sep-2018 15:30:25 | - ms.statwt(fitspw='0:0~123;145~211,2:124~255', field=[0], |
12-Sep-2018 15:30:25 | + ms.oldstatwt(fitspw='0:0~123;145~211,2:124~255', field=[0], |
12-Sep-2018 15:30:25 | spw='0,2') |
12-Sep-2018 15:30:25 | |
12-Sep-2018 15:30:25 | In this example the noise estimates are separately made from and |
12-Sep-2018 15:30:25 | applied to spws 0 and 2. |
12-Sep-2018 15:30:25 | |
12-Sep-2018 15:30:25 | - ms.statwt(fitspw='0:0~123;145~211,2:124~255', fitorder=0, |
12-Sep-2018 15:30:25 | + ms.oldstatwt(fitspw='0:0~123;145~211,2:124~255', fitorder=0, |
12-Sep-2018 15:30:25 | field=[0], combine='spw') |
12-Sep-2018 15:30:25 | ms.close() |
12-Sep-2018 15:30:25 | |
12-Sep-2018 15:30:25 | diff --git a/gcwrap/tools/ms/ms_cmpt.cc b/gcwrap/tools/ms/ms_cmpt.cc |
12-Sep-2018 15:30:25 | index 6d2de1a..c8fee6f 100644 |
12-Sep-2018 15:30:25 | --- a/gcwrap/tools/ms/ms_cmpt.cc |
12-Sep-2018 15:30:25 | +++ b/gcwrap/tools/ms/ms_cmpt.cc |
12-Sep-2018 15:30:25 | @@ -88,6 +88,7 @@ |
12-Sep-2018 15:30:25 | #include <msvis/MSVis/statistics/Vi2WeightSpectrumDataProvider.h> |
12-Sep-2018 15:30:25 | |
12-Sep-2018 15:30:25 | #include <mstransform/MSTransform/StatWt.h> |
12-Sep-2018 15:30:25 | +#include <mstransform/MSTransform/StatWtColConfig.h> |
12-Sep-2018 15:30:25 | #include <mstransform/TVI/StatWtTVI.h> |
12-Sep-2018 15:30:25 | |
12-Sep-2018 15:30:25 | #include <ms_cmpt.h> |
12-Sep-2018 15:30:25 | @@ -5916,7 +5917,7 @@ bool ms::contsub(const std::string& outputms, const ::casac::variant& fitspw, |
12-Sep-2018 15:30:25 | return rstat; |
12-Sep-2018 15:30:25 | } |
12-Sep-2018 15:30:25 | |
12-Sep-2018 15:30:25 | -bool ms::statwt(const bool dorms, const bool /*byantenna*/, |
12-Sep-2018 15:30:25 | +bool ms::oldstatwt(const bool dorms, const bool /*byantenna*/, |
12-Sep-2018 15:30:25 | const bool /*sepacs*/, const ::casac::variant& fitspw, |
12-Sep-2018 15:30:25 | const ::casac::variant& /*fitcorr*/, const std::string& combine, |
12-Sep-2018 15:30:25 | const ::casac::variant& timebin, const int minsamp, |
12-Sep-2018 15:30:25 | @@ -5929,7 +5930,7 @@ bool ms::statwt(const bool dorms, const bool /*byantenna*/, |
12-Sep-2018 15:30:25 | Bool rstat(false); |
12-Sep-2018 15:30:25 | |
12-Sep-2018 15:30:25 | try { |
12-Sep-2018 15:30:25 | - *itsLog << LogOrigin("ms", "statwt"); |
12-Sep-2018 15:30:25 | + *itsLog << LogOrigin("ms", __func__); |
12-Sep-2018 15:30:25 | |
12-Sep-2018 15:30:25 | Reweighter reweighter(itsMS->tableName(), dorms, minsamp); |
12-Sep-2018 15:30:25 | |
12-Sep-2018 15:30:25 | @@ -6292,11 +6293,12 @@ ms::iterinit(const std::vector<std::string>& columns, const double interval, |
12-Sep-2018 15:30:25 | return rstat; |
12-Sep-2018 15:30:25 | } |
12-Sep-2018 15:30:25 | |
12-Sep-2018 15:30:25 | -record* ms::statwt2( |
12-Sep-2018 15:30:25 | - const string& combine, const variant& timebin, bool slidetimebin, |
12-Sep-2018 15:30:25 | - const variant& chanbin, int minsamp, const string& statalg, |
12-Sep-2018 15:30:25 | - double fence, const string& center, bool lside, |
12-Sep-2018 15:30:25 | - double zscore, int maxiter, const string& excludechans, |
12-Sep-2018 15:30:25 | +record* ms::statwt( |
12-Sep-2018 15:30:25 | + const string& combine, const casac::variant& timebin, |
12-Sep-2018 15:30:25 | + bool slidetimebin, const casac::variant& chanbin, |
12-Sep-2018 15:30:25 | + int minsamp, const string& statalg, double fence, |
12-Sep-2018 15:30:25 | + const string& center, bool lside, double zscore, |
12-Sep-2018 15:30:25 | + int maxiter, const string& excludechans, |
12-Sep-2018 15:30:25 | const std::vector<double>& wtrange, bool preview, |
12-Sep-2018 15:30:25 | const string& datacolumn |
12-Sep-2018 15:30:25 | ) { |
12-Sep-2018 15:30:25 | @@ -6305,7 +6307,10 @@ record* ms::statwt2( |
12-Sep-2018 15:30:25 | if (detached()) { |
12-Sep-2018 15:30:25 | return nullptr; |
12-Sep-2018 15:30:25 | } |
12-Sep-2018 15:30:25 | - StatWt statwt(itsMS); |
12-Sep-2018 15:30:25 | + StatWtColConfig statwtColConfig( |
12-Sep-2018 15:30:25 | + itsOriginalMS, preview, datacolumn, chanbin |
12-Sep-2018 15:30:25 | + ); |
12-Sep-2018 15:30:25 | + StatWt statwt(itsMS, &statwtColConfig); |
12-Sep-2018 15:30:25 | if (slidetimebin) { |
12-Sep-2018 15:30:25 | // make the size of the encompassing chunks |
12-Sep-2018 15:30:25 | // very large, so that chunk boundaries are determined only |
12-Sep-2018 15:30:25 | @@ -6314,7 +6319,7 @@ record* ms::statwt2( |
12-Sep-2018 15:30:25 | } |
12-Sep-2018 15:30:25 | else { |
12-Sep-2018 15:30:25 | // block time processing |
12-Sep-2018 15:30:25 | - if (timebin.type() == variant::INT) { |
12-Sep-2018 15:30:25 | + if (timebin.type() == casac::variant::INT) { |
12-Sep-2018 15:30:25 | auto n = timebin.toInt(); |
12-Sep-2018 15:30:25 | ThrowIf(n <= 0, "timebin must be positive"); |
12-Sep-2018 15:30:25 | statwt.setTimeBinWidthUsingInterval(timebin.touInt()); |
12-Sep-2018 15:30:25 | diff --git a/gcwrap/tools/ms/msmetadata.xml b/gcwrap/tools/ms/msmetadata.xml |
12-Sep-2018 15:30:25 | index 80d75a3..5f47340 100644 |
12-Sep-2018 15:30:25 | --- a/gcwrap/tools/ms/msmetadata.xml |
12-Sep-2018 15:30:25 | +++ b/gcwrap/tools/ms/msmetadata.xml |
12-Sep-2018 15:30:25 | @@ -673,7 +673,7 @@ windows in the dataset and close the tool. |
12-Sep-2018 15:30:25 | msmd.open("my.ms") |
12-Sep-2018 15:30:25 | # get the exposure time for scan 1, spwid 2, and polid 3 |
12-Sep-2018 15:30:25 | # for obsid=0 and arrayid=0 |
12-Sep-2018 15:30:25 | - integration_time = msmd.getexposuretime(scan=1, spwid=2, polid=3) |
12-Sep-2018 15:30:25 | + integration_time = msmd.exposuretime(scan=1, spwid=2, polid=3) |
12-Sep-2018 15:30:25 | msmd.done() |
12-Sep-2018 15:30:25 | </example> |
12-Sep-2018 15:30:25 | </method> |
12-Sep-2018 15:30:25 | diff --git a/gcwrap/tools/plotms/plotms.xml b/gcwrap/tools/plotms/plotms.xml |
12-Sep-2018 15:30:25 | index 8becb8e..4f7f22d 100644 |
12-Sep-2018 15:30:25 | --- a/gcwrap/tools/plotms/plotms.xml |
12-Sep-2018 15:30:25 | +++ b/gcwrap/tools/plotms/plotms.xml |
12-Sep-2018 15:30:25 | @@ -796,22 +796,22 @@ specifying multiple plots per page will be added here) |
12-Sep-2018 15:30:25 | </param> |
12-Sep-2018 15:30:25 | |
12-Sep-2018 15:30:25 | <param type="bool" name="xselfscale"> |
12-Sep-2018 15:30:25 | - <description>If true, iterated plots should share a common x-axis label per column.</description> |
12-Sep-2018 15:30:25 | + <description>When true, iterated plots have a common x-axis range (scale).</description> |
12-Sep-2018 15:30:25 | <value>false</value> |
12-Sep-2018 15:30:25 | </param> |
12-Sep-2018 15:30:25 | |
12-Sep-2018 15:30:25 | <param type="bool" name="yselfscale"> |
12-Sep-2018 15:30:25 | - <description>If true, iterated plots should share a common y-axis label per row.</description> |
12-Sep-2018 15:30:25 | + <description>When true, iterated plots have a common y-axis range (scale).</description> |
12-Sep-2018 15:30:25 | <value>false</value> |
12-Sep-2018 15:30:25 | </param> |
12-Sep-2018 15:30:25 | |
12-Sep-2018 15:30:25 | <param type="bool" name="commonAxisX"> |
12-Sep-2018 15:30:25 | - <description>Plots should share a common x-axis. Must also set xselfscale=True.</description> |
12-Sep-2018 15:30:25 | + <description>Iterated plots on a grid share a common external x-axis per column. Must also set xselfscale=True and gridrows>1.</description> |
12-Sep-2018 15:30:25 | <value>false</value> |
12-Sep-2018 15:30:25 | </param> |
12-Sep-2018 15:30:25 | |
12-Sep-2018 15:30:25 | <param type="bool" name="commonAxisY"> |
12-Sep-2018 15:30:25 | - <description>Plots should share a common y-axis. Must also set yselfscale=True.</description> |
12-Sep-2018 15:30:25 | + <description>Iterated plots on a grid share a common external y-axis per row. Must also set yselfscale=True and gridcols>1.</description> |
12-Sep-2018 15:30:25 | <value>false</value> |
12-Sep-2018 15:30:25 | </param> |
12-Sep-2018 15:30:25 | |
12-Sep-2018 15:30:25 | @@ -921,7 +921,7 @@ Gets the MS calibration parameters for the plot at the given index as a record |
12-Sep-2018 15:30:25 | <shortdescription>Export all iteration plots or only the current one.</shortdescription> |
12-Sep-2018 15:30:25 | |
12-Sep-2018 15:30:25 | <description> |
12-Sep-2018 15:30:25 | - Plot export range (for multiple page iterations): All plots or only the current one (blank). |
12-Sep-2018 15:30:25 | + Plot export range (for multiple page iterations): All plots or only the current one (blank). |
12-Sep-2018 15:30:25 | </description> |
12-Sep-2018 15:30:25 | |
12-Sep-2018 15:30:25 | <input> |
12-Sep-2018 15:30:25 | diff --git a/gcwrap/tools/synthesis/synthesisimager.xml b/gcwrap/tools/synthesis/synthesisimager.xml |
12-Sep-2018 15:30:25 | index ec7c3c6..896a2f1 100644 |
12-Sep-2018 15:30:25 | --- a/gcwrap/tools/synthesis/synthesisimager.xml |
12-Sep-2018 15:30:25 | +++ b/gcwrap/tools/synthesis/synthesisimager.xml |
12-Sep-2018 15:30:25 | @@ -638,7 +638,79 @@ Define the image coordinate systems and shapes. |
12-Sep-2018 15:30:25 | <input/> |
12-Sep-2018 15:30:25 | <returns type="bool"/> |
12-Sep-2018 15:30:25 | </method> |
12-Sep-2018 15:30:25 | +<!-- ===================================== --> |
12-Sep-2018 15:30:25 | + <method type="function" name="makeimage"> |
12-Sep-2018 15:30:25 | + <shortdescription>calculate images of different type by gridding</shortdescription> |
12-Sep-2018 15:30:25 | |
12-Sep-2018 15:30:25 | +<description> |
12-Sep-2018 15:30:25 | +This tool function actually does gridding (and Fourier inversion if |
12-Sep-2018 15:30:25 | +needed) of visibility data to make an image. It allows calculation of |
12-Sep-2018 15:30:25 | +various types of image: |
12-Sep-2018 15:30:25 | +\begin{description} |
12-Sep-2018 15:30:25 | +\item[observed] Make the dirty image from the DATA column ({\em default}) |
12-Sep-2018 15:30:25 | +\item[model] Make the dirty image from the MODEL\_DATA column |
12-Sep-2018 15:30:25 | +\item[corrected] Make the dirty image from the CORRECTED\_DATA column |
12-Sep-2018 15:30:25 | +\item[residual] Make the dirty image from the difference of the |
12-Sep-2018 15:30:25 | +CORRECTED\_DATA and MODEL\_DATA columns |
12-Sep-2018 15:30:25 | +\item[psf] Make the point spread function |
12-Sep-2018 15:30:25 | +\item[singledish] Make a single dish image |
12-Sep-2018 15:30:25 | +\item[coverage] Make a single dish or mosaic coverage image |
12-Sep-2018 15:30:25 | +\item[holography] Make a complex holography image (experimental) |
12-Sep-2018 15:30:25 | + |
12-Sep-2018 15:30:25 | +\end{description} |
12-Sep-2018 15:30:25 | +</description> |
12-Sep-2018 15:30:25 | +<input> |
12-Sep-2018 15:30:25 | + |
12-Sep-2018 15:30:25 | + <param type="string" name="type"> |
12-Sep-2018 15:30:25 | + <description>Type of output image</description> |
12-Sep-2018 15:30:25 | + <value>observed</value> |
12-Sep-2018 15:30:25 | + <allowed kind="enum"> |
12-Sep-2018 15:30:25 | + <value>observed</value> |
12-Sep-2018 15:30:25 | + <value>model</value> |
12-Sep-2018 15:30:25 | + <value>corrected</value> |
12-Sep-2018 15:30:25 | + <value>residual</value> |
12-Sep-2018 15:30:25 | + <value>psf</value> |
12-Sep-2018 15:30:25 | + <value>singledish</value> |
12-Sep-2018 15:30:25 | + <value>coverage</value> |
12-Sep-2018 15:30:25 | + <value>holography</value> |
12-Sep-2018 15:30:25 | + </allowed> |
12-Sep-2018 15:30:25 | + </param> |
12-Sep-2018 15:30:25 | + |
12-Sep-2018 15:30:25 | + <param type="string" name="image"> |
12-Sep-2018 15:30:25 | + <description>Name of output image</description> |
12-Sep-2018 15:30:25 | + <value></value> |
12-Sep-2018 15:30:25 | + </param> |
12-Sep-2018 15:30:25 | + |
12-Sep-2018 15:30:25 | + <param type="string" name="compleximage"> |
12-Sep-2018 15:30:25 | + <description>Name of output complex image</description> |
12-Sep-2018 15:30:25 | + <value></value> |
12-Sep-2018 15:30:25 | + </param> |
12-Sep-2018 15:30:25 | + |
12-Sep-2018 15:30:25 | + <param type="int" name="model"> |
12-Sep-2018 15:30:25 | + <description>In case of multifield which image</description> |
12-Sep-2018 15:30:25 | + <value>0</value> |
12-Sep-2018 15:30:25 | + </param> |
12-Sep-2018 15:30:25 | + |
12-Sep-2018 15:30:25 | + |
12-Sep-2018 15:30:25 | + |
12-Sep-2018 15:30:25 | +</input> |
12-Sep-2018 15:30:25 | +<returns type="bool"/> |
12-Sep-2018 15:30:25 | +</method> |
12-Sep-2018 15:30:25 | +<!-- ===================================== --> |
12-Sep-2018 15:30:25 | + <method type="function" name="unlockimages"> |
12-Sep-2018 15:30:25 | + <shortdescription>release some images attached to this process</shortdescription> |
12-Sep-2018 15:30:25 | + |
12-Sep-2018 15:30:25 | +<description> |
12-Sep-2018 15:30:25 | + Try to unlock images if the need arise |
12-Sep-2018 15:30:25 | +</description> |
12-Sep-2018 15:30:25 | +<input> |
12-Sep-2018 15:30:25 | + <param type="int" name="imagefieldid"> |
12-Sep-2018 15:30:25 | + <description>which image or outlier to unlock</description> |
12-Sep-2018 15:30:25 | + <value>0</value> |
12-Sep-2018 15:30:25 | + </param> |
12-Sep-2018 15:30:25 | + </input> |
12-Sep-2018 15:30:25 | +<returns type="bool"/> |
12-Sep-2018 15:30:25 | +</method> |
12-Sep-2018 15:30:25 | <!-- ===================================== --> |
12-Sep-2018 15:30:25 | |
12-Sep-2018 15:30:25 | <method type="function" name="getimstore"> |
12-Sep-2018 15:30:25 | diff --git a/gcwrap/tools/synthesis/synthesisimager_cmpt.cc b/gcwrap/tools/synthesis/synthesisimager_cmpt.cc |
12-Sep-2018 15:30:25 | index f3d9515..d8df95e 100644 |
12-Sep-2018 15:30:25 | --- a/gcwrap/tools/synthesis/synthesisimager_cmpt.cc |
12-Sep-2018 15:30:25 | +++ b/gcwrap/tools/synthesis/synthesisimager_cmpt.cc |
12-Sep-2018 15:30:25 | @@ -578,6 +578,23 @@ bool synthesisimager::makesdimage() |
12-Sep-2018 15:30:25 | return rstat; |
12-Sep-2018 15:30:25 | } |
12-Sep-2018 15:30:25 | |
12-Sep-2018 15:30:25 | +bool synthesisimager::makeimage(const std::string& type, const std::string& image, |
12-Sep-2018 15:30:25 | + const std::string& compleximage, const int model) |
12-Sep-2018 15:30:25 | +{ |
12-Sep-2018 15:30:25 | + Bool rstat(true); |
12-Sep-2018 15:30:25 | + |
12-Sep-2018 15:30:25 | + try { |
12-Sep-2018 15:30:25 | + itsImager = makeSI(); |
12-Sep-2018 15:30:25 | + itsImager->makeImage(String(type), String(image), String(compleximage), |
12-Sep-2018 15:30:25 | + model ); |
12-Sep-2018 15:30:25 | + |
12-Sep-2018 15:30:25 | + } catch (AipsError x) { |
12-Sep-2018 15:30:25 | + RETHROW(x); |
12-Sep-2018 15:30:25 | + } |
12-Sep-2018 15:30:25 | + return rstat; |
12-Sep-2018 15:30:25 | +} |
12-Sep-2018 15:30:25 | + |
12-Sep-2018 15:30:25 | + |
12-Sep-2018 15:30:25 | bool synthesisimager::makesdpsf() |
12-Sep-2018 15:30:25 | { |
12-Sep-2018 15:30:25 | Bool rstat(false); |
12-Sep-2018 15:30:25 | @@ -593,7 +610,21 @@ bool synthesisimager::makesdpsf() |
12-Sep-2018 15:30:25 | } |
12-Sep-2018 15:30:25 | return rstat; |
12-Sep-2018 15:30:25 | } |
12-Sep-2018 15:30:25 | +bool synthesisimager::unlockimages(const int id) |
12-Sep-2018 15:30:25 | +{ |
12-Sep-2018 15:30:25 | + Bool rstat(false); |
12-Sep-2018 15:30:25 | + |
12-Sep-2018 15:30:25 | + try { |
12-Sep-2018 15:30:25 | + |
12-Sep-2018 15:30:25 | + //if( ! itsImager ) itsImager = new SynthesisImager(); |
12-Sep-2018 15:30:25 | + itsImager = makeSI(); |
12-Sep-2018 15:30:25 | + rstat=(itsImager->imageStore(id))->releaseLocks(); |
12-Sep-2018 15:30:25 | |
12-Sep-2018 15:30:25 | + } catch (AipsError x) { |
12-Sep-2018 15:30:25 | + RETHROW(x); |
12-Sep-2018 15:30:25 | + } |
12-Sep-2018 15:30:25 | + return rstat; |
12-Sep-2018 15:30:25 | +} |
12-Sep-2018 15:30:25 | synthesisimstore* synthesisimager::getimstore(const int id) |
12-Sep-2018 15:30:25 | { |
12-Sep-2018 15:30:25 | synthesisimstore *rstat; |
12-Sep-2018 15:30:25 | diff --git a/gcwrap/tools/synthesis/synthesismaskhandler.xml b/gcwrap/tools/synthesis/synthesismaskhandler.xml |
12-Sep-2018 15:30:25 | new file mode 100644 |
12-Sep-2018 15:30:25 | index 0000000..30c42ae |
12-Sep-2018 15:30:25 | --- /dev/null |
12-Sep-2018 15:30:25 | +++ b/gcwrap/tools/synthesis/synthesismaskhandler.xml |
12-Sep-2018 15:30:25 | @@ -0,0 +1,107 @@ |
12-Sep-2018 15:30:25 | +<?xml version="1.0" encoding="UTF-8"?> |
12-Sep-2018 15:30:25 | +<?xml-stylesheet type="text/xsl" ?> |
12-Sep-2018 15:30:25 | +<casaxml xmlns="http://casa.nrao.edu/schema/psetTypes.html" |
12-Sep-2018 15:30:25 | +xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" |
12-Sep-2018 15:30:25 | +xsi:schemaLocation="http://casa.nrao.edu/schema/casa.xsd |
12-Sep-2018 15:30:25 | +file:///opt/casa/code/tools/xml/casa.xsd"> |
12-Sep-2018 15:30:25 | + |
12-Sep-2018 15:30:25 | + |
12-Sep-2018 15:30:25 | + <tool name="synthesismaskhandler" module="synthesismaskhandler"> |
12-Sep-2018 15:30:25 | + <shortdescription>tool for mask handling in sysnthesis imaging </shortdescription> |
12-Sep-2018 15:30:25 | + |
12-Sep-2018 15:30:25 | +<description> |
12-Sep-2018 15:30:25 | +synthesismaskhandler is a tool to manupilate mask image used in imager |
12-Sep-2018 15:30:25 | +</description> |
12-Sep-2018 15:30:25 | + |
12-Sep-2018 15:30:25 | +<code> |
12-Sep-2018 15:30:25 | + <include>tools/synthesis/synthesismaskhandler_forward.h</include> |
12-Sep-2018 15:30:25 | +<private> |
12-Sep-2018 15:30:25 | + <include>tools/synthesis/synthesismaskhandler_private.h</include> |
12-Sep-2018 15:30:25 | +</private> |
12-Sep-2018 15:30:25 | + |
12-Sep-2018 15:30:25 | +</code> |
12-Sep-2018 15:30:25 | + |
12-Sep-2018 15:30:25 | + |
12-Sep-2018 15:30:25 | +<!-- ===================================== --> |
12-Sep-2018 15:30:25 | + |
12-Sep-2018 15:30:25 | + <method type="constructor" name="synthesismaskhandler"> |
12-Sep-2018 15:30:25 | + <shortdescription>Construct an synthesismaskhandler tool</shortdescription> |
12-Sep-2018 15:30:25 | + |
12-Sep-2018 15:30:25 | +<description> |
12-Sep-2018 15:30:25 | +This is used to construct {\tt synthesismaskhandler} tool. |
12-Sep-2018 15:30:25 | + |
12-Sep-2018 15:30:25 | +</description> |
12-Sep-2018 15:30:25 | +<input> |
12-Sep-2018 15:30:25 | + |
12-Sep-2018 15:30:25 | +</input> |
12-Sep-2018 15:30:25 | +<returns type="synthesismaskhandler"/> |
12-Sep-2018 15:30:25 | +<example> |
12-Sep-2018 15:30:25 | +# create a synthesismaskhandler tool |
12-Sep-2018 15:30:25 | +maskhandler=casac.synthesismaskhandler() |
12-Sep-2018 15:30:25 | + |
12-Sep-2018 15:30:25 | +nchan=5 # input mask is a cube of 5 channel |
12-Sep-2018 15:30:25 | + |
12-Sep-2018 15:30:25 | +#define channel flag: 1 to skip the channel for pruning |
12-Sep-2018 15:30:25 | +chanflag = np.zeros(nchan) # prune every channel |
12-Sep-2018 15:30:25 | + |
12-Sep-2018 15:30:25 | +maskhandler.pruneregions('testMask.image',2.0, chanflag) |
12-Sep-2018 15:30:25 | + |
12-Sep-2018 15:30:25 | +# output python dictionary contains the number of origin regions |
12-Sep-2018 15:30:25 | +and the number of regions removed at each channel, and prunesize used. |
12-Sep-2018 15:30:25 | +For skipped channels, N_reg and N_reg_pruned elements will be -1. |
12-Sep-2018 15:30:25 | + |
12-Sep-2018 15:30:25 | +{'N_reg': array([5, 0, 0, 1, 1], dtype=uint32), |
12-Sep-2018 15:30:25 | + 'N_reg_pruned': array([4, 0, 0, 1, 1], dtype=uint32), |
12-Sep-2018 15:30:25 | + 'prunesize': 2.0} |
12-Sep-2018 15:30:25 | + |
12-Sep-2018 15:30:25 | +# the resultant pruned mask is create as testMask.image.pruned |
12-Sep-2018 15:30:25 | +maskhandler.done() # to close the synthesismaskhandler tool |
12-Sep-2018 15:30:25 | +</example> |
12-Sep-2018 15:30:25 | +</method> |
12-Sep-2018 15:30:25 | + |
12-Sep-2018 15:30:25 | +<!-- ===================================== --> |
12-Sep-2018 15:30:25 | + |
12-Sep-2018 15:30:25 | + <method type="function" name="pruneregions"> |
12-Sep-2018 15:30:25 | + <shortdescription>prune mask regions</shortdescription> |
12-Sep-2018 15:30:25 | + |
12-Sep-2018 15:30:25 | +<description> |
12-Sep-2018 15:30:25 | +</description> |
12-Sep-2018 15:30:25 | +<input> |
12-Sep-2018 15:30:25 | + <param type="string" name="inmaskname"> |
12-Sep-2018 15:30:25 | + <description>input mask image name </description> |
12-Sep-2018 15:30:25 | + <value type="string"></value> |
12-Sep-2018 15:30:25 | + </param> |
12-Sep-2018 15:30:25 | + |
12-Sep-2018 15:30:25 | + <param type="double" name="prunesize"> |
12-Sep-2018 15:30:25 | + <description>size in pixels to apply pruning </description> |
12-Sep-2018 15:30:25 | + <value type="double">0.0</value> |
12-Sep-2018 15:30:25 | + </param> |
12-Sep-2018 15:30:25 | + |
12-Sep-2018 15:30:25 | + <param type="boolArray" name="chanflag"> |
12-Sep-2018 15:30:25 | + <description>list of channel flags</description> |
12-Sep-2018 15:30:25 | + <value type="boolArray"></value> |
12-Sep-2018 15:30:25 | + </param> |
12-Sep-2018 15:30:25 | + |
12-Sep-2018 15:30:25 | + <param type="string" name="outmaskname"> |
12-Sep-2018 15:30:25 | + <description>optional pruned mask name. If unspecified, use the default name: inmaskname.pruned </description> |
12-Sep-2018 15:30:25 | + <value type="string"></value> |
12-Sep-2018 15:30:25 | + </param> |
12-Sep-2018 15:30:25 | + |
12-Sep-2018 15:30:25 | +</input> |
12-Sep-2018 15:30:25 | +<returns type="record"/> |
12-Sep-2018 15:30:25 | +</method> |
12-Sep-2018 15:30:25 | +<!-- ===================================== --> |
12-Sep-2018 15:30:25 | + |
12-Sep-2018 15:30:25 | + <method type="function" name="done"> |
12-Sep-2018 15:30:25 | + <shortdescription>close maskhandler tool</shortdescription> |
12-Sep-2018 15:30:25 | +<description> |
12-Sep-2018 15:30:25 | +</description> |
12-Sep-2018 15:30:25 | +<input> |
12-Sep-2018 15:30:25 | + |
12-Sep-2018 15:30:25 | +</input> |
12-Sep-2018 15:30:25 | +<returns type="bool"/> |
12-Sep-2018 15:30:25 | +</method> |
12-Sep-2018 15:30:25 | + |
12-Sep-2018 15:30:25 | +</tool> |
12-Sep-2018 15:30:25 | + |
12-Sep-2018 15:30:25 | +</casaxml> |
12-Sep-2018 15:30:25 | diff --git a/gcwrap/tools/synthesis/synthesismaskhandler_cmpt.cc b/gcwrap/tools/synthesis/synthesismaskhandler_cmpt.cc |
12-Sep-2018 15:30:25 | new file mode 100644 |
12-Sep-2018 15:30:25 | index 0000000..933d85c |
12-Sep-2018 15:30:25 | --- /dev/null |
12-Sep-2018 15:30:25 | +++ b/gcwrap/tools/synthesis/synthesismaskhandler_cmpt.cc |
12-Sep-2018 15:30:25 | @@ -0,0 +1,136 @@ |
12-Sep-2018 15:30:25 | +/*** |
12-Sep-2018 15:30:25 | + * Framework independent implementation file for imager... |
12-Sep-2018 15:30:25 | + * |
12-Sep-2018 15:30:25 | + * Implement the imager component here. |
12-Sep-2018 15:30:25 | + * |
12-Sep-2018 15:30:25 | + * // TODO: WRITE YOUR DESCRIPTION HERE! |
12-Sep-2018 15:30:25 | + |
12-Sep-2018 15:30:25 | + ***/ |
12-Sep-2018 15:30:25 | + |
12-Sep-2018 15:30:25 | +#include <iostream> |
12-Sep-2018 15:30:25 | +#include <casa/Exceptions/Error.h> |
12-Sep-2018 15:30:25 | +#include <casa/BasicSL/String.h> |
12-Sep-2018 15:30:25 | +#include <casa/Containers/Record.h> |
12-Sep-2018 15:30:25 | +#include <casa/Utilities/Assert.h> |
12-Sep-2018 15:30:25 | +#include <casa/Logging/LogIO.h> |
12-Sep-2018 15:30:25 | + |
12-Sep-2018 15:30:25 | +#include <casa/OS/Directory.h> |
12-Sep-2018 15:30:25 | +#include <images/Images/PagedImage.h> |
12-Sep-2018 15:30:25 | +#include <coordinates/Coordinates/CoordinateUtil.h> |
12-Sep-2018 15:30:25 | + |
12-Sep-2018 15:30:25 | +#include <synthesis/ImagerObjects/SDMaskHandler.h> |
12-Sep-2018 15:30:25 | + |
12-Sep-2018 15:30:25 | +#include <synthesismaskhandler_cmpt.h> |
12-Sep-2018 15:30:25 | + |
12-Sep-2018 15:30:25 | +using namespace std; |
12-Sep-2018 15:30:25 | +using namespace casacore; |
12-Sep-2018 15:30:25 | +using namespace casa; |
12-Sep-2018 15:30:25 | + |
12-Sep-2018 15:30:25 | + |
12-Sep-2018 15:30:25 | +using namespace casacore; |
12-Sep-2018 15:30:25 | +namespace casac { |
12-Sep-2018 15:30:25 | + |
12-Sep-2018 15:30:25 | +synthesismaskhandler::synthesismaskhandler() |
12-Sep-2018 15:30:25 | +{ |
12-Sep-2018 15:30:25 | + itsLog = new LogIO(); |
12-Sep-2018 15:30:25 | + itsMaskHandler = new SDMaskHandler(); |
12-Sep-2018 15:30:25 | +} |
12-Sep-2018 15:30:25 | + |
12-Sep-2018 15:30:25 | +synthesismaskhandler::~synthesismaskhandler() |
12-Sep-2018 15:30:25 | +{ |
12-Sep-2018 15:30:25 | + done(); |
12-Sep-2018 15:30:25 | +} |
12-Sep-2018 15:30:25 | + |
12-Sep-2018 15:30:25 | + casac::record* synthesismaskhandler::pruneregions(const string& inmaskname, double prunesize, const std::vector<bool>& chanflag, const string& outmaskname) |
12-Sep-2018 15:30:25 | +{ |
12-Sep-2018 15:30:25 | + |
12-Sep-2018 15:30:25 | + casac::record* rstat(0); |
12-Sep-2018 15:30:25 | + *itsLog << casacore::LogOrigin("synthesismaskhandler", __func__); |
12-Sep-2018 15:30:25 | + try |
12-Sep-2018 15:30:25 | + { |
12-Sep-2018 15:30:25 | + PagedImage<Float> inmask(inmaskname); |
12-Sep-2018 15:30:25 | + CoordinateSystem inCsys = inmask.coordinates(); |
12-Sep-2018 15:30:25 | + IPosition inShape = inmask.shape(); |
12-Sep-2018 15:30:25 | + |
12-Sep-2018 15:30:25 | + String outmasknameMod; |
12-Sep-2018 15:30:25 | + if (outmaskname=="") { |
12-Sep-2018 15:30:25 | + outmasknameMod = String(inmaskname)+String(".pruned"); |
12-Sep-2018 15:30:25 | + } |
12-Sep-2018 15:30:25 | + else { |
12-Sep-2018 15:30:25 | + outmasknameMod = outmaskname; |
12-Sep-2018 15:30:25 | + } |
12-Sep-2018 15:30:25 | + |
12-Sep-2018 15:30:25 | + PagedImage<Float> outmask(TiledShape(inShape), inCsys, outmasknameMod); |
12-Sep-2018 15:30:25 | + Vector<Bool> chanFlag(chanflag); |
12-Sep-2018 15:30:25 | + if (chanFlag.nelements()==0) { |
12-Sep-2018 15:30:25 | + *itsLog<<LogIO::SEVERE<<"Please specify chanflag."<<LogIO::POST; |
12-Sep-2018 15:30:25 | + return(rstat); |
12-Sep-2018 15:30:25 | + } |
12-Sep-2018 15:30:25 | + Int inSpecAxis = CoordinateUtil::findSpectralAxis(inCsys); |
12-Sep-2018 15:30:25 | + if (inSpecAxis != -1 && chanFlag.nelements()!=uInt(inShape(inSpecAxis))) { |
12-Sep-2018 15:30:25 | + *itsLog<<LogIO::SEVERE<<"The number elements in chanflag does not match with input mask shape."<<LogIO::POST; |
12-Sep-2018 15:30:25 | + return(rstat); |
12-Sep-2018 15:30:25 | + } |
12-Sep-2018 15:30:25 | + Vector<Bool> allpruned; |
12-Sep-2018 15:30:25 | + Vector<uInt> nreg; |
12-Sep-2018 15:30:25 | + Vector<uInt> npruned; |
12-Sep-2018 15:30:25 | + SHARED_PTR<ImageInterface<Float> > tempIm_ptr = itsMaskHandler->YAPruneRegions(inmask, chanFlag, allpruned, nreg, npruned, prunesize); |
12-Sep-2018 15:30:25 | + *itsLog<<"nreg="<<nreg<<" npruned="<<npruned<<" prunesize="<<prunesize<<LogIO::POST; |
12-Sep-2018 15:30:25 | + outmask.copyData(*(tempIm_ptr.get())); |
12-Sep-2018 15:30:25 | + casacore::Record outinfo; |
12-Sep-2018 15:30:25 | + Vector<Int> nregForReport(nreg.nelements()); |
12-Sep-2018 15:30:25 | + Vector<Int> nprunedForReport(npruned.nelements()); |
12-Sep-2018 15:30:25 | + for (uInt i = 0; i < chanFlag.nelements();i++) { |
12-Sep-2018 15:30:25 | + if (chanFlag[i]) { |
12-Sep-2018 15:30:25 | + nregForReport[i] = -1; |
12-Sep-2018 15:30:25 | + nprunedForReport[i] = -1; |
12-Sep-2018 15:30:25 | + } |
12-Sep-2018 15:30:25 | + else { |
12-Sep-2018 15:30:25 | + nregForReport[i] = (Int) nreg[i]; |
12-Sep-2018 15:30:25 | + nprunedForReport[i] = (Int) npruned[i]; |
12-Sep-2018 15:30:25 | + } |
12-Sep-2018 15:30:25 | + } |
12-Sep-2018 15:30:25 | + outinfo.define("N_reg",nregForReport); |
12-Sep-2018 15:30:25 | + outinfo.define("N_reg_pruned",nprunedForReport); |
12-Sep-2018 15:30:25 | + outinfo.define("prunesize",prunesize); |
12-Sep-2018 15:30:25 | + |
12-Sep-2018 15:30:25 | + rstat = fromRecord(outinfo); |
12-Sep-2018 15:30:25 | + |
12-Sep-2018 15:30:25 | + } |
12-Sep-2018 15:30:25 | + catch (AipsError x) |
12-Sep-2018 15:30:25 | + { |
12-Sep-2018 15:30:25 | + RETHROW(x); |
12-Sep-2018 15:30:25 | + } |
12-Sep-2018 15:30:25 | + |
12-Sep-2018 15:30:25 | + return rstat; |
12-Sep-2018 15:30:25 | +} |
12-Sep-2018 15:30:25 | + |
12-Sep-2018 15:30:25 | + bool synthesismaskhandler::done() |
12-Sep-2018 15:30:25 | +{ |
12-Sep-2018 15:30:25 | + Bool rstat(false); |
12-Sep-2018 15:30:25 | + |
12-Sep-2018 15:30:25 | + try |
12-Sep-2018 15:30:25 | + { |
12-Sep-2018 15:30:25 | + if (itsMaskHandler) |
12-Sep-2018 15:30:25 | + { |
12-Sep-2018 15:30:25 | + delete itsMaskHandler; |
12-Sep-2018 15:30:25 | + itsMaskHandler=NULL; |
12-Sep-2018 15:30:25 | + } |
12-Sep-2018 15:30:25 | + if (itsLog) |
12-Sep-2018 15:30:25 | + { |
12-Sep-2018 15:30:25 | + delete itsLog; |
12-Sep-2018 15:30:25 | + itsLog=NULL; |
12-Sep-2018 15:30:25 | + } |
12-Sep-2018 15:30:25 | + rstat=true; |
12-Sep-2018 15:30:25 | + } |
12-Sep-2018 15:30:25 | + catch (AipsError x) |
12-Sep-2018 15:30:25 | + { |
12-Sep-2018 15:30:25 | + RETHROW(x); |
12-Sep-2018 15:30:25 | + } |
12-Sep-2018 15:30:25 | + |
12-Sep-2018 15:30:25 | + return rstat; |
12-Sep-2018 15:30:25 | +} |
12-Sep-2018 15:30:25 | + |
12-Sep-2018 15:30:25 | + |
12-Sep-2018 15:30:25 | + |
12-Sep-2018 15:30:25 | +} // casac namespace |
12-Sep-2018 15:30:25 | diff --git a/gcwrap/tools/synthesis/synthesismaskhandler_forward.h b/gcwrap/tools/synthesis/synthesismaskhandler_forward.h |
12-Sep-2018 15:30:25 | new file mode 100644 |
12-Sep-2018 15:30:25 | index 0000000..5319d14 |
12-Sep-2018 15:30:25 | --- /dev/null |
12-Sep-2018 15:30:25 | +++ b/gcwrap/tools/synthesis/synthesismaskhandler_forward.h |
12-Sep-2018 15:30:25 | @@ -0,0 +1,12 @@ |
12-Sep-2018 15:30:25 | +// Include file for forward declarations |
12-Sep-2018 15:30:25 | + |
12-Sep-2018 15:30:25 | +#include <stdcasa/StdCasa/CasacSupport.h> |
12-Sep-2018 15:30:25 | +namespace casacore{ |
12-Sep-2018 15:30:25 | + |
12-Sep-2018 15:30:25 | + class LogIO; |
12-Sep-2018 15:30:25 | +} |
12-Sep-2018 15:30:25 | + |
12-Sep-2018 15:30:25 | +namespace casa |
12-Sep-2018 15:30:25 | +{ |
12-Sep-2018 15:30:25 | + class SDMaskHandler; |
12-Sep-2018 15:30:25 | +}; |
12-Sep-2018 15:30:25 | diff --git a/gcwrap/tools/synthesis/synthesismaskhandler_private.h b/gcwrap/tools/synthesis/synthesismaskhandler_private.h |
12-Sep-2018 15:30:25 | new file mode 100644 |
12-Sep-2018 15:30:25 | index 0000000..963369d |
12-Sep-2018 15:30:25 | --- /dev/null |
12-Sep-2018 15:30:25 | +++ b/gcwrap/tools/synthesis/synthesismaskhandler_private.h |
12-Sep-2018 15:30:25 | @@ -0,0 +1,4 @@ |
12-Sep-2018 15:30:25 | + |
12-Sep-2018 15:30:25 | +casacore::LogIO *itsLog; |
12-Sep-2018 15:30:25 | +casa::SDMaskHandler *itsMaskHandler; |
12-Sep-2018 15:30:25 | + |
12-Sep-2018 15:30:25 | diff --git a/gcwrap/tools/synthesis/synthesisnormalizer.xml b/gcwrap/tools/synthesis/synthesisnormalizer.xml |
12-Sep-2018 15:30:25 | index 6ba4139..f5fe959 100644 |
12-Sep-2018 15:30:25 | --- a/gcwrap/tools/synthesis/synthesisnormalizer.xml |
12-Sep-2018 15:30:25 | +++ b/gcwrap/tools/synthesis/synthesisnormalizer.xml |
12-Sep-2018 15:30:25 | @@ -195,6 +195,19 @@ This is used to construct {\tt synthesisnormalizer} tool. |
12-Sep-2018 15:30:25 | <!-- ===================================== --> |
12-Sep-2018 15:30:25 | |
12-Sep-2018 15:30:25 | |
12-Sep-2018 15:30:25 | + <method type="function" name="unlockimages"> |
12-Sep-2018 15:30:25 | + <shortdescription>unlock the images held by this normalizer</shortdescription> |
12-Sep-2018 15:30:25 | + |
12-Sep-2018 15:30:25 | +<description> |
12-Sep-2018 15:30:25 | +</description> |
12-Sep-2018 15:30:25 | +<input/> |
12-Sep-2018 15:30:25 | + |
12-Sep-2018 15:30:25 | +<returns type="bool"/> |
12-Sep-2018 15:30:25 | +</method> |
12-Sep-2018 15:30:25 | + |
12-Sep-2018 15:30:25 | +<!-- ===================================== --> |
12-Sep-2018 15:30:25 | + |
12-Sep-2018 15:30:25 | + |
12-Sep-2018 15:30:25 | <method type="function" name="setimstore"> |
12-Sep-2018 15:30:25 | <shortdescription>Set ImageStore</shortdescription> |
12-Sep-2018 15:30:25 | |
12-Sep-2018 15:30:25 | diff --git a/gcwrap/tools/synthesis/synthesisnormalizer_cmpt.cc b/gcwrap/tools/synthesis/synthesisnormalizer_cmpt.cc |
12-Sep-2018 15:30:25 | index 3f60cdb..4f7f4e8 100644 |
12-Sep-2018 15:30:25 | --- a/gcwrap/tools/synthesis/synthesisnormalizer_cmpt.cc |
12-Sep-2018 15:30:25 | +++ b/gcwrap/tools/synthesis/synthesisnormalizer_cmpt.cc |
12-Sep-2018 15:30:25 | @@ -82,6 +82,19 @@ synthesisimstore* synthesisnormalizer::getimstore() |
12-Sep-2018 15:30:25 | return rstat; |
12-Sep-2018 15:30:25 | } |
12-Sep-2018 15:30:25 | |
12-Sep-2018 15:30:25 | + bool synthesisnormalizer::unlockimages(){ |
12-Sep-2018 15:30:25 | + |
12-Sep-2018 15:30:25 | + Bool rstat(false); |
12-Sep-2018 15:30:25 | + try { |
12-Sep-2018 15:30:25 | + rstat=(itsNormalizer->getImageStore())->releaseLocks(); |
12-Sep-2018 15:30:25 | + } catch (AipsError x) { |
12-Sep-2018 15:30:25 | + RETHROW(x); |
12-Sep-2018 15:30:25 | + } |
12-Sep-2018 15:30:25 | + return rstat; |
12-Sep-2018 15:30:25 | + |
12-Sep-2018 15:30:25 | + |
12-Sep-2018 15:30:25 | + } |
12-Sep-2018 15:30:25 | + |
12-Sep-2018 15:30:25 | bool synthesisnormalizer::gatherweightdensity() |
12-Sep-2018 15:30:25 | { |
12-Sep-2018 15:30:25 | Bool rstat(false); |
12-Sep-2018 15:30:25 | |
12-Sep-2018 15:30:25 | Comparison returned: 1 |
12-Sep-2018 15:30:25 | Checkout: git checkout ARD-3 |
12-Sep-2018 15:30:25 | Already on 'ARD-3' |
12-Sep-2018 15:30:25 | |
12-Sep-2018 15:30:25 | [git, tag, -a, 5.3.0-124-test-ARD-3-CppAWVRtesting-2, -m 'Automatic tag'] |
12-Sep-2018 15:30:25 | |
12-Sep-2018 15:30:25 | Done tagging 5.3.0-124-test-ARD-3-CppAWVRtesting-2 |
12-Sep-2018 15:30:25 | Pushing 5.3.0-124-test-ARD-3-CppAWVRtesting-2 to origin |
12-Sep-2018 15:30:25 | To ssh://git@open-bitbucket.nrao.edu:7999/casa/casa.git |
12-Sep-2018 15:30:25 | * [new tag] 5.3.0-124-test-ARD-3-CppAWVRtesting-2 -> 5.3.0-124-test-ARD-3-CppAWVRtesting-2 |
12-Sep-2018 15:30:25 | |
12-Sep-2018 15:30:25 | Pushed 5.3.0-124-test-ARD-3-CppAWVRtesting-2 to origin |
12-Sep-2018 15:30:25 | |
12-Sep-2018 15:30:25 | BUILD SUCCESSFUL |
12-Sep-2018 15:30:25 | |
12-Sep-2018 15:30:25 | Total time: 11.633 secs |
12-Sep-2018 15:30:26 | Finished task 'Script' with result: Success |
12-Sep-2018 15:30:26 | Running post build plugin 'Docker Container Cleanup' |
12-Sep-2018 15:30:26 | Running post build plugin 'NCover Results Collector' |
12-Sep-2018 15:30:26 | Running post build plugin 'Clover Results Collector' |
12-Sep-2018 15:30:26 | Running post build plugin 'npm Cache Cleanup' |
12-Sep-2018 15:30:26 | Running post build plugin 'Artifact Copier' |
12-Sep-2018 15:30:26 | Finalising the build... |
12-Sep-2018 15:30:26 | Stopping timer. |
12-Sep-2018 15:30:26 | Build ARD-BPT4-TBFP-4 completed. |
12-Sep-2018 15:30:26 | Running on server: post build plugin 'NCover Results Collector' |
12-Sep-2018 15:30:26 | Running on server: post build plugin 'Build Hanging Detection Configuration' |
12-Sep-2018 15:30:26 | Running on server: post build plugin 'Clover Delta Calculator' |
12-Sep-2018 15:30:26 | Running on server: post build plugin 'Maven Dependencies Postprocessor' |
12-Sep-2018 15:30:26 | All post build plugins have finished |
12-Sep-2018 15:30:26 | Generating build results summary... |
12-Sep-2018 15:30:26 | Saving build results to disk... |
12-Sep-2018 15:30:26 | Logging substituted variables... |
12-Sep-2018 15:30:26 | Indexing build results... |
12-Sep-2018 15:30:26 | Finished building ARD-BPT4-TBFP-4. |