-
Notifications
You must be signed in to change notification settings - Fork 32
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
Lens map curved with lenspyx #284
base: master
Are you sure you want to change the base?
Conversation
The test failures are due to an incompatibility of |
hopefully the pip version of lenspyx also should work with numpy 2 now. (I dont know if that's relevant, but parsing the comments, you can also directly call lenspyx for 'non-full-sky' geometries, but adapting the geometry input) |
Thanks @carronj! I think the most recent version of lenspyx on pypi is For the non-full-sky geometries, do you mean by using |
lenspyx pypi has been updated. (I believe SO might want only a subset of rings of Fejer-like or similar ? -- if so there is no need to compute all rings (which I thought was what was being done), but only those of interest. That's all what I meant. If this understanding is correct, maybe describe to me a bit more precisely what's needed and I can do a demo) |
Yeah that's right, SO maps (at least for the LAT) will will be a subset of rings in Fejer 1, so agreed no need to compute all the rings (which I think would be accomplished using the |
yes one can use 'restrict' for that for example. pbdGeometry is a residual of earlier attempts where I was actually using proper cutouts, which I abandoned, so it is useless in this public version. The SHT gain is absolutely minimal in this case. You'd gain a little bit more for 'general SHT's' I guess, but not a dramatic gain either (unless you have reasons to think otherwise). |
That makes sense. In that case no need for a demo, I'll add functionality that uses |
Hm, I was planning on implementing this myself, directly using ducc. I already did this for aberration. When I do that, there won't be any advantage to the lenspyx implementation. But I don't have time to do this now that LAT is looming... So I might accept this as an interim solution. I feel bad about dragging my feet with this now that you've had to implement it yourself :/ That said:
|
Adds
lens_map_curved_lenspyx
function topixell.lensing
. This would improve things in 2 ways:lenspyx
, since that is "the" optimized/specialized CMB lensing library, rather than try to maintain our own method in parallel.One thing to note is that this new function has two (minor) limitations that are not fundamental:
lenspyx
output maps, since they don't natively know about the desired geometry. This output function should work in most cases but would fail if pix2sky breaks at RA = +/- 180 due to reliance on floating-point arithmetic #202 is not fixed for edge cases[0, 2]
I think will cover 99% of use-cases.The lensing output maps aren't identical (see below for T, E, B difference maps for a standard cosmology) but their power spectra are very similar (
lmax=2700
forphi_alm
andcmb_alm
, 4 arcmin pixels on full-skyfejer1
geometry), see below (notenp.max(np.abs(lenspyx - pixell))
is ~(20, 14, 12)
uK):