-
Notifications
You must be signed in to change notification settings - Fork 7
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
ss/deconvolving ringmap #126
Conversation
This pull request introduces 1 alert and fixes 1 when merging 537a0e4 into 0c4b397 - view on LGTM.com new alerts:
fixed alerts:
|
@ssiegelx Here is what I have been using for the sky covariance:
Attached, I've plotted this function over the m-transform of a deconvolved ringmap (absolute square, so units of Jy^2). The different colors are different frequencies, which have been artificially shifted so they don't lay on top of each other. Note that this is not a fit---just tweaked by eye. The dashed lines correspond to the equivalent prior |
@ssiegelx I didn't find that I needed to tweak the SN parameter very much. It looks like I was using |
I generated maps using a range of values for inv_s2n_noise_optimization_driftscan_compressed.pdf Page 2 shows the expected thermal noise as a function of Increasing The maps at a single frequency are shown on pg 3. They don't look very different to me. However pg 4 and pg 5 show a slice through two different point sources. You can see that the ability to deconvolve the beam degrades as you increase |
This pull request introduces 1 alert and fixes 1 when merging 78c08f8 into 6135579 - view on LGTM.com new alerts:
fixed alerts:
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm not really qualified to asses changes to core.io
and core.task
, but everything else looks good to me. My two comments are minor accounting details, not something that will break anything.
- Move most of the contents of DeconvolveHybridM into DeconvolveHybridMBase. - Create subclasses that enable the user to deconvolve either the driftscan analytical beam model or an external beam model. - Create subclasses that enable a Tikhonov scheme for deconvolution that uses a single regularisation parameter, or Weiner scheme that assumes some model for the m-mode power spectrum of the signal. - DeconvolveHybridMBase now computes the el-dependent EW dirty beam and saves it to the output RingMap container if requested. - DeconvolveHybridMBase now normalizes by the el-dependent peak of the dirty beam so that point source peak flux is preserved through the map making process. - Create beam.py module and CreateBeamStream task that takes a CommonModeGridBeam container and converts it to a HybridVisStream container that can be m-mode transformed and used in the deconvolving ringmapmakers. - Add an el axis to the weight dataset in the RingMap container, since the noise after deconvolution will be el dependent. - Propagate noise variance through the deconvolution process. Create RADependentWeight task that re-introduces the RA dependence to the weights that was lost in the round-trip m-mode transform. Applying this procedure to Gaussian noise realizations recovers the standard deviation of the noise at the <10% level.
This also makes dirty_beam an optional dataset of HybridVisStream.
@ssiegelx I've forced pushed a branch with the conflicts resolved so it's easier to see what's changed. In case that's gone wrong at all the original commit hash is |
78c08f8
to
e171901
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@ssiegelx this looks great. Just a few comments, the biggest being that Wiener is incorrectly spelled everywhere (currently Weiner is used)
Use the model suggested by Dallas for the signal power spectrum in the Wiener ring map maker. The model spectrum has contributions from galactic synchrotron and extragalactic point source emission. The galactic emission has a power-law dependence on both m and frequency. The point source emission has a power-law dependence on frequency only. Set the default parameters to those suggested by Dallas.
Add the capability to DeconvolveHybridMBase to apply a window to the deconvolved m-mode transform of the ringmap. This can be used to shape the synthesized beam in the EW direction. Provides an option to use the same window for all frequencies to try to produce a frequency-independent synthesized beam.
I think this PR is ready. I've addressed the comments and also add several features that I had in my local version, specifically: use the prior Dallas suggested for the Wiener ringmap maker, add capability to apply a window to shape synthesized beam, and fix a bug in how the number of RA samples was being calculated. It was failing the ci tests because cora now requires python >= 3.7. I changed the GitHub workflow in the same way as was done in this commit. However, it still says that it need to run the tests for python 3.6 and 3.8, but never does. Any ideas how to fix this? Should draco's minimum python requirement in |
@ssiegelx this looks good to me. I think I beat you with merging a commit to get the CI working again, so you may need to rebase to get rid of any conflict. I wondered about the minimum version in setup.py, in theory there's nothing about draco itself that can't support Python 3.6, it's just the dependency. I think maybe we should bump it though to try and keep things a bit more uniform across the repos. |
refactor(ringmapmaker): refactor DeconvolveHybridM
Move most of the contents of DeconvolveHybridM into
DeconvolveHybridMBase.
Create subclasses that enable the user to deconvolve either the
driftscan analytical beam model or an external beam model.
Create subclasses that enable a Tikhonov scheme for deconvolution
that uses a single regularisation parameter, or Weiner scheme that
assumes some model for the m-mode power spectrum of the signal.
DeconvolveHybridMBase now computes the el-dependent EW dirty beam
and saves it to the output RingMap container if requested.
DeconvolveHybridMBase now normalizes by the el-dependent
peak of the dirty beam so that point source peak flux is
preserved through the map making process.
Create beam.py module and CreateBeamStream task that takes a
CommonModeGridBeam container and converts it to a HybridVisStream
container that can be m-mode transformed and used in the
deconvolving ringmapmakers.
Add an el axis to the weight dataset in the RingMap container,
since the noise after deconvolution will be el dependent.
Propagate noise variance through the deconvolution process.
Create RADependentWeight task that re-introduces the RA dependence
to the weights that was lost in the round-trip m-mode transform.
Applying this procedure to Gaussian noise realizations recovers
the standard deviation of the noise at the <10% level.
Branches off
deconvolving-ringmap
(PR #122)