Internal linear combination for cmb data analysis
This repository provides tools for performing Needlets Internal Linear Combination (NILC). Below is an overview of the key components and guidelines for using them effectively.
nilc.py: The main module to perform NILC.
-
./needlets:- Defines the cosine needlets configuration.
- Important Rules:
- Each row's
lminandlpeakmust match the previous row'slpeakandlmax. - The last
lmaxshould matchlmaxin your NILC settings.
- Each row's
- Resolution Note:
Ensure yournsideis greater thanlmax / 2because different needlet bins may have varying resolutions. The calculations forlmaxare valid only whenlmax < 2 * nside.
-
./bandinfo.csv:- Experimental configuration file that includes parameters like frequency and beam.
- Ensure
lmax_almis greater than your NILClmax. - Usage: This file is primarily for testing the NILC effect without beam corrections.
-
./bandinfo_beam.csv:- Experimental configuration file for cases considering beam corrections.
- Important Rules:
- Set
lmax_almcarefully to avoid numerical errors at largeellvalues (e.g., forbeam=60,lmax_alm ~ 500). - Ensure to use the bigger band-limited lmax (when you do deconvolve and convolve your map) than
lmax_alm
- Set
-
test_nilc.py:
A basic (though currently incomplete) tutorial on using NILC. -
test_nilc_beam.py:
A tutorial demonstrating how to perform NILC with beam considerations.
-
Set up
./needletsconfiguration:
Ensure consistency betweenlmin,lpeak, andlmaxacross rows and align with your NILC parameters. -
Verify
nside:
It should be at leastlmax / 2for accurate results. -
Check beam parameters:
When working with./bandinfo_beam.csv, account for potential numerical errors at highell. -
Run Tutorials:
Use thetest_nilc.pyandtest_nilc_beam.pyscripts to understand the process and verify your setup.
- large memory usage in NILC
- slow rate when calculating beta covariance matrix in NILC
- use pytest
- add other ILC
SHT can be replace by other package or use healpy build from sources:
- see https://github.com/healpy/healpy/blob/main/INSTALL.rst#generating-native-binaries first
- download
cfitsioversion 4.5.0, then run ./configure --disable-curl;make;make install - download
healpixversion 3.8.3, configure with yourcfitsiofitsio.h and cfitsio lib to build healpix cxx - add PKG_CONFIG_PATH for
cfitsioandhealpix - pip install --no-binary healpy healpy