Closed SpheMakh closed 5 years ago
okay politsiyakat and rfimasker is in. Still need to integrate them into meerkathi. Need to get sunblocker and the updated msutils onto pypi next. @SpheMakh I'm striking through as I go along
@gigjozsa @paoloserra After this we will lock master and only allow changes via pull requests. This is needed to run changes through automated assurance testing (using IC5264)
What tests are you thinking of? Remember that with IC5264 we are still above thermal noise (also in spectral line). We don't know how much of the excess noise is due to our pipeline and how much to limitations in the data.
@paoloserra noise doesn't matter in this case. I just need the pipeline to run through end to end to ensure changes don't break functionality.
We (at least Paolo and I) can approve pull requests, right?
Everyone in the meerkathi-admins team can approve pull requests. But I couldn't add @paoloserra to the team since he is not part of the ska-sa github repository. Maybe @gigjozsa (or @o-smirnov ) can add him?
I upgraded @paoloserra to admin status for this repo.
On adding spectral weights to the ms. We got a tool to do this using the spec. sensitivity values, but we'll have to rely on H5TOMS to create the WEIGHT_SPECTRUM and SIGMA_SPECTRUM columns. In the interim, I'm using CASA's initweights task.
Can't you create your own columns from scratch?
I tried a bit, but creating MS dminfo is a bit involved. It would be better if a column with the same type, and shape already existed in the MS.
If only you spent your nights studying the DDFacet code, you'd know there is a simple solution to this:
desc = self.ms.getcoldesc("DATA")
desc["name"] = col_name
desc['comment'] = desc['comment'].replace(" ", "_") # got this from Cyril, not sure why
# if a different type is specified, insert that
if dtype:
desc['valueType'] = dtype
self.ms.addcols(desc)
I create the coldesc using "pyrap.table.makearrcoldesc" its the dmiinfo that I couldn't get. But I see in the last line that its not being parsed, probably will be auto-generated if not given.
I think the idea above is to just get that info from the DATA column, and only change the data type.
The data types for the coldmi (data management info) are all ints, and there are a bunch of Keywords are don't really understand.
{'NAME': 'TiledDATA',
'SEQNR': 17,
'SPEC': {'ActualMaxCacheSize': 0,
'DEFAULTTILESHAPE': array([ 4, 40, 819], dtype=int32),
'HYPERCUBES': {'*1': {'BucketSize': 1036640,
'CellShape': array([ 4, 1705], dtype=int32),
'CubeShape': array([ 4, 1705, 376320], dtype=int32),
'ID': {},
'TileShape': array([ 4, 1705, 19], dtype=int32)}},
'IndexSize': 1,
'MAXIMUMCACHESIZE': 0,
'SEQNR': 17},
'TYPE': 'TiledShapeStMan'}
That's the tiling information, but why try to understand it? The whole idea of the recipe above is that you grab it from the DATA column and not worry about it. The only thing you have to change is desc['valueType'] = float
.
Yup, that's what I'm trying.
Cool, it works when I don't give dminfo.
So we can now create an populate WEIGHT/SIGMA_SPECTRUM columns. We''ll continue discussion about estimating the weights on the MSUtils repo
As discussed with @o-smirnov and @bennahugo. The best way to estimate expected thermal noise, is to simulate noise using the spec. SEFD values into a NOISE column in the MS, then image that column. This way you account for:
I'll extend the addnoise function in MSUtils to use a frequency dependent SEFD . Which will be straight forward with the noise estimation tools in MSUtils.ClassESW
Can we keep the simpler approach (i.e., no imaging) for natural noise estimates?
We should have both approaches available.
I vouch for that. We need to know how far we are from thermal as calculated in a simple formula.
Yup, we will have both approaches. The expected, natural weighting, estimate should also be a product of this function.
Changes to MSUtils are in. Now I need to:
Politsiyakat along with the changes to aoflagging and delaycal are almost in as well
Concerning report: In the future the obsreport should also contain: For continuum date
For line data: 2 big PV-cuts through centre of the cube
@SpheMakh Can this be closed?
No changes not implemented yet
Can this be renamed?
I am closing this issue, since the name is utterly opaque, issue refers to a TODO list and not a particular feature. If anyone wants to keep it alive (if stuff here needs to be implemented (@gigjozsa ?) ) or for historical reasons and/or nostalgia, please reopen it. :)
A list of things to do this week
Add to MSUtils
Mode 1: Use spec. SEFD valuesCreate an initialise columns related to spectral weights; SIGMA_SPECTRUM and WEIGHT_SPECTRUM. Use existing addcol functionTool to plot antenna gains as well the plots in the inspect_data workerAdd to Politsiyakat
Revamped flagging techniques for pre and post 1GC flagging. @bennahugo can explain the detailsFlag based on [uncalibrated/calibrated] autocorrelations and flag based on [calibrated] calibrator phase. This should catch closure errors and cases where antenna temperature chances drastically compared to itself or the rest of the arrayAdd to PyPi
Sunblocker(also add to stimela)RFI MaskerMSUtilsAdd to MeerKATHI
CubiCalInitialise and populate spectral weight columnsPolitsiyakat flagging and diagnostic plotsUnit tests (every commit must pass test before going to master)Block direct commits to master branch (only commit master after successful unit test)@bennahugo will setup a jenkins cron job to do the test. (PR BUILDER JOB)The initial IC5264 observations should be a good test dataset (DONE SMALL 4k 2hr dataset... not great continuum or HI to be seen but there is HI)GUI (HTML) for meerkathi configuration editingQA report (jupyter notebook)