diff --git a/CEP/DP3/AOFlagger/detectrfi.kdevelop b/CEP/DP3/AOFlagger/detectrfi.kdevelop index 505bc9a525e57b4847fbcabac42de6a932d1291e..a192725b1bf01e2cdd9af6609ff400fe02aa7b84 100644 --- a/CEP/DP3/AOFlagger/detectrfi.kdevelop +++ b/CEP/DP3/AOFlagger/detectrfi.kdevelop @@ -47,7 +47,7 @@ <default/> </environments> <prio>0</prio> - <defaulttarget>aocopyallscript</defaulttarget> + <defaulttarget>rfigui</defaulttarget> <makeoptions>-s</makeoptions> </make> <blacklist/> diff --git a/CEP/DP3/AOFlagger/include/AOFlagger/msio/timefrequencydata.h b/CEP/DP3/AOFlagger/include/AOFlagger/msio/timefrequencydata.h index 1cb50197569079e00b7d983da0da49df4a70ed80..d252c6137abd3ea52f077021648fa5b88d4707b3 100644 --- a/CEP/DP3/AOFlagger/include/AOFlagger/msio/timefrequencydata.h +++ b/CEP/DP3/AOFlagger/include/AOFlagger/msio/timefrequencydata.h @@ -582,13 +582,24 @@ class TimeFrequencyData } } + bool ContainsData() const + { + return _containsData; + } + size_t ImageWidth() const { - return _images[0]->Width(); + if(!_images.empty()) + return _images[0]->Width(); + else + return 0; } size_t ImageHeight() const { - return _images[0]->Height(); + if(!_images.empty()) + return _images[0]->Height(); + else + return 0; } enum PhaseRepresentation PhaseRepresentation() const diff --git a/CEP/DP3/AOFlagger/include/AOFlagger/rfi/strategy/setflaggingaction.h b/CEP/DP3/AOFlagger/include/AOFlagger/rfi/strategy/setflaggingaction.h index 346b10f49fc2194c1373297ae6562b893add70d1..b177907a62ee30e581c1816ef8f4ce9ef618c9d2 100644 --- a/CEP/DP3/AOFlagger/include/AOFlagger/rfi/strategy/setflaggingaction.h +++ b/CEP/DP3/AOFlagger/include/AOFlagger/rfi/strategy/setflaggingaction.h @@ -60,6 +60,9 @@ namespace rfiStrategy { } virtual void Perform(class ArtifactSet &artifacts, class ProgressListener &) { + if(!artifacts.ContaminatedData().ContainsData()) + throw std::runtime_error("No baseline is loaded! This might mean you forgot to put a For Each Baseline action in front of everything, or you might have forgotten to open an MS."); + switch(_newFlagging) { default: diff --git a/CEP/DP3/AOFlagger/include/AOFlagger/rfi/strategy/thresholdaction.h b/CEP/DP3/AOFlagger/include/AOFlagger/rfi/strategy/thresholdaction.h index 4efd41d1cf1b4c85bd58dc4c9ec000099defcfea..252c496725e92a2a3d0e5779d9acedffa61437f7 100644 --- a/CEP/DP3/AOFlagger/include/AOFlagger/rfi/strategy/thresholdaction.h +++ b/CEP/DP3/AOFlagger/include/AOFlagger/rfi/strategy/thresholdaction.h @@ -32,8 +32,6 @@ namespace rfiStrategy { public: ThresholdAction() : _baseSensitivity(1.0), _inTimeDirection(true), _inFrequencyDirection(true) { - _thresholdConfig.InitializeLengthsDefault(); - _thresholdConfig.InitializeThresholdsFromFirstThreshold(6.0L, ThresholdConfig::Rayleigh); } virtual std::string Description() { @@ -41,16 +39,18 @@ namespace rfiStrategy { } virtual void Perform(ArtifactSet &artifacts, class ProgressListener &) { + ThresholdConfig thresholdConfig; + thresholdConfig.InitializeLengthsDefault(); + thresholdConfig.InitializeThresholdsFromFirstThreshold(6.0L, ThresholdConfig::Rayleigh); if(!_inTimeDirection) - _thresholdConfig.RemoveHorizontalOperations(); + thresholdConfig.RemoveHorizontalOperations(); if(!_inFrequencyDirection) - _thresholdConfig.RemoveVerticalOperations(); + thresholdConfig.RemoveVerticalOperations(); TimeFrequencyData &contaminated = artifacts.ContaminatedData(); Mask2DPtr mask = Mask2D::CreateCopy(contaminated.GetSingleMask()); - //_thresholdConfig.SetVerbose(true); Image2DCPtr image = contaminated.GetSingleImage(); - _thresholdConfig.Execute(image, mask, false, artifacts.Sensitivity() * _baseSensitivity); + thresholdConfig.Execute(image, mask, false, artifacts.Sensitivity() * _baseSensitivity); contaminated.SetGlobalMask(mask); } num_t BaseSensitivity() const { return _baseSensitivity; } @@ -66,7 +66,6 @@ namespace rfiStrategy { bool FrequencyDirectionFlagging() const { return _inFrequencyDirection; } void SetFrequencyDirectionFlagging(bool frequencyDirection) { _inFrequencyDirection = frequencyDirection; } private: - ThresholdConfig _thresholdConfig; num_t _baseSensitivity; bool _inTimeDirection; bool _inFrequencyDirection;