From: Eric H. <hi...@ia...> - 2016-11-16 10:15:41
|
Dear Sandeep, this an old paper, applying the bispectrum to Cobe/DMR data at large scales (l<20). If you want to compute the bispectrum on more recent data up to smaller scales, then the binned bispectrum estimators used in Planck data analysis (and described in eg Bucher 2010) are warranted to save time and decrease noise. In that case you need to compute e_b(theta,phi) = sum_l,m W(l,b) a_lm * Y_lm(theta, phi) where W(l,b) describes the l bin centered on l=b, (plus any other weighting deemed necessary) and is readily produced by synfast in combination with alteralm The e_l(theta,phi) = sum_m a_lm * Y_lm(theta, phi) you asked about originally is a particular case of that (where W(l,b) is non-zero at l=b only), but computing it for every single multipole would take a lot of time and disc space, unless you are only interested in very low l’s. Cheers, Eric > On 15 Nov 2016, at 11:43, sandeep rana <san...@gm...> wrote: > > Sir, > > Sorry for the mistake I made and thanks for replying, actually I am doing bispectrum calculation for which I have to evaluate > Azimuthally averaged harmonic transform of CMB temperature field e_l(theta, phi). > > e_l(theta, phi)= sqrt( 4*pi/(2*l+1) ) sumOver_m a_lm * Y_lm(theta, phi) > (Komatsu et al. 2002) > > If you can suggest any computationally efficient way, to do this using Healpix than it will be a great help. > > > > Thanks again for replying. > > Sandeep Rana > P.hD IISER MOHALI > Knowledge city, Sector 81, > SAS Nagar, Manauli PO 140306 > Ph. no. 07696941847 > > On Tue, Nov 15, 2016 at 3:06 PM, Eric Hivon <hi...@ia...> wrote: > Dear Sandeep, > > do you need only > sum_m a_lm * Y_lm(theta, phi) > or rather > sum_l,m W(l) a_lm * Y_lm(theta, phi) > with some arbitrary W(l) ? > In the latter case, synfast and/or smoothing do exactly what you need, > very efficiently, and without straining your disc space with the precomputed Plm. > > As for the Plm, they are actually Lambda(theta), with Y_lm(theta,phi) = Lambda(theta) exp(i m phi) > and their ordering is described in the header of their FITS file: > outside loop over North ring index (~ theta) on [1, 2*nside], intermediate loop over m on [0, mmax], inside loop over l on [m, lmax] > and therefore, the number of elements is (2*nside) * (mmax+1) * (lmax+1 - mmax/2) = nside * (mmax+1) * (2*lmax -mmax + 2) > (NOT nside*(lmax+1)(2*lmax-mmax+2) as you write below). > Then you have to manage the phi location of the pixel, and the North/South symmetries of the Y_lm’s. > > Once again, and as noted in the Healpix documentation, > I do not recommend using the precomputed Plm, as it would be painfully re-implementing > something already available, optimised and validated. > > Cheers, > Eric Hivon > > > > On 14 Nov 2016, at 19:35, sandeep rana <san...@gm...> wrote: > > > > Sir/Madam, > > Hi, > > I want to calculate Bispectrum for that I have to compute quantity which is > > > > Sum over all m alm*Yml(theta, phi) > > > > I am using Healpix Fortran subroutine plm_gen, but I am not able to understand array size of plm_gen and since its > > nside*(lmax+1)(2*lmax-mmax+2), can you help me out to carry out this operation. > > alm*ylm(theta, phi) sum over all m > > > > how to implement this using Healpix. > > > > Sandeep Rana > > P.hD IISER MOHALI > > Knowledge city, Sector 81, > > SAS Nagar, Manauli PO 140306 > > Ph. no. 07696941847 > > ------------------------------------------------------------------------------ > > _______________________________________________ > > Healpix-support mailing list > > Hea...@li... > > https://lists.sourceforge.net/lists/listinfo/healpix-support > > |