rmsMax := 40. #for (i in scans) { d.SRcal( i, mapRef); d.plotc( i)} t := table(msName,readonly=F); #get one row to find data shape someData := t.getcell('FLOAT_DATA',1) flagRows := t.getcol('FLAG_ROW') flagChans:= [600:700] dataShape := shape( someData) nPol := dataShape[1] nChan := dataShape[2] nSpectra := t.nrows(); printf('nSpectra: %ld with %ld Channels\n', nSpectra, nChan) for (k in 1:nSpectra) { if ((100*as_integer( k/100.)) == k) { foo := printf( 'Processing Spectral Row: %ld\n',k) } someData := t.getcell( 'FLOAT_DATA',k); # someData := t.getcell( 'CORRECTED_DATA',k); someData := calData * (someData - refData)/refData foo := t.putcell( 'CORRECTED_DATA', k, someData); # now check for high RMS rms1:=real(stddev(someData[1,flagChans])) rms2:=real(stddev(someData[2,flagChans])) if (rms1 > rmsMax || rms2 > rmsMax) { printf( 'Flagging high RMS Row %ld: %.3f,%.3f > %f\n',k,rms1,rms2,rmsMax); flagRows[k] := T } # end if high RMS } # end for all rows t.putcolkeyword('CORRECTED_DATA','QuantumUnits','Jy') t.putcol('FLAG_ROW',flagRows) t.done()