MemoryReader fails when not all spws/bands have same numebr of channels
RFI detector and quality analysis for astronomical radio observations
Brought to you by:
anoko
I'm using aoflagger 2.14.0 on a VLA dataset with four spectral windows. The first three windows have 1024 channels, but the last one only has 896. When I run aoflagger on my dataset, I get:
Number of threads: 12
Adding 'bp.ms'
Opening strategy file 'vla-bumpybp-forreal.rfis'
Strategy parsed succesfully.
Starting strategy on 2019-Oct-01 07:26:23.879995
0% : strategy...
0% : +-For each measurement set...
0% : +-+-Processing measurement set bp.ms...
Initializing image set...
Antennas: 26
Initializing ms cache data...
Unique sequences: 1300
4121 MB required, 25315 MB available: will use memory read mode.
Read-write opening of file bp.ms failed, trying read-only...
Table opened in read-only: writing not possible.
Bands: 4
0% : +-+-+-Strategy...
0% : +-+-+-+-strategy...
0% : +-+-+-+-+-For each baseline...
Initializing ms cache data...
Estimate of memory each thread will use: 8.1 MB.
Detected 23.6 GB of system memory.
Will process 1300 baselines.
0% : +-+-+-+-+-+-Initializing...
Initializing observation times...
Reading the data...
terminate called after throwing an instance of 'casacore::ArrayShapeError'
what(): ArrayBase::validateConformance shape [4, 1024] differs from [4, 896]
Aborted
The exception is coming from MemoryBaselineReader::readSet(). I'm not 100% sure, but as far as I can tell, that function is written in a way that expects all of the bands in the dataset to have the same number of channels.
If I use -indirect-read or -direct-read, it works.
Possibly a bit late, but do you have a small MS with different spws lying around for me to test? -- and thanks for reporting :)
Closing this for now. Feel free to reopen at Gitlab if that's useful.