input map with (unphysically) high polarisation quadrupole (or dipole) not recovered in runs
Closed this issue · 5 comments
Disclaimer: This issue came up during the component separation course AST9240 (so all this is based on that corresponding branch).
Keep in mind that I am completely new to component separation and commander, so I might not be as precise in formulating this as I'd like to be... Nonetheless, I thought it might be good to summarize what I've been doing for our future selves.
The issue
I've stumbled over the issue that for an input map with a high (unphysical) polarisation dipole or similarly for a high polarisation quadrupole we don't recover the input map.
In the next few postings I'll document what modifications I've done and how they affected this issue.
Current situation
(AST9240_2021_sim
branch)
The below plots are from a run where the dipole map was added to all CMB maps (i.e. I, Q, and U) instead of just to the CMB I map.
Modified branch v1:
no gain sampling, ncorr=0
, correct_sl=false
The issue persists even when turning off gain sampling and when setting the correlated noise to zero.
Note the reduced amplitude range when going from sample 0 (the input) to sample 1.
high dipole
high quadrupole
(when plotting the quadrupole we need to smooth the map to see how the amplitude range drops)
verifying constant gain and zero ncorr for both cases (high dipole or quadrupole)
Modified branch v2:
remove cmb_pol=.false.
when enable_tod_simulations
(still: no gain sampling, ncorr=0
, correct_sl=false
)
Here, I have modified the call to get_sky_signal
in commander.f90
conditional on whether it is a simulation run (enable_tod_simulations
is true) or whether it is a sampling run (enable_tod_simulations
is false). For simulation runs I no longer pass cmb_pol
:
- !call get_sky_signal(i, j, s_sky(j,k)%p, mono=.false.)
- call get_sky_signal(i, j, s_sky(j,k)%p, mono=.false., cmb_pol=.false.)
+ if (cpar%enable_tod_simulations) then
+ call get_sky_signal(i, j, s_sky(j,k)%p, mono=.false.)
+ else
+ call get_sky_signal(i, j, s_sky(j,k)%p, mono=.false., cmb_pol=.false.)
+ end if
Note, how now we roughly recover the input signal (after smoothing) and how the amplitude range is roughly the same (whereas previously it was significantly reduced in the samples).
Modified branch v4:
always remove cmb_pol=.false.
Now we always remove cmb_pol
from get_sky_signal
, not only when running simulations:
- !call get_sky_signal(i, j, s_sky(j,k)%p, mono=.false.)
- call get_sky_signal(i, j, s_sky(j,k)%p, mono=.false., cmb_pol=.false.)
+ call get_sky_signal(i, j, s_sky(j,k)%p, mono=.false.)
+ !call get_sky_signal(i, j, s_sky(j,k)%p, mono=.false., cmb_pol=.false.)
This lets us recover the CMB signal again, and reduces the leakage of signal into the correlated noise.
This was fixed for BP10