CLMM (Cluster Lensing Mass Modeling) is a tool to estimate cluster masses from weak lensing data. CLMM provides the initial building blocks for an end-to-end cluster weak lensing pipeline that can be validated on mock data and run on real data from LSST or other telescopes.
It is based on a data operations package to prepare the data vector, a theory package to predict the signal from cluster properties and also includes a routine to generate mock catalogs of various complexity levels. A set of examples are aslo provided, ranging from demos of base functionalities to end-to-end WL mass estimations.
- Back to Main readme
- The
GalaxyCluster
object - Weak lensing signal measurement with
dataops
- Profile and cosmology models with
theory
- Mock data generation
- Galaxy cluster mass estimation
The Galaxy cluster object is the core data structure in CLMM. It contains at least
- The galaxy cluster metadata (
unique_id
,ra
,dec
,z
) - A table of background galaxies: astropy Table containing at least for each galaxy
galaxy_id
,ra
,dec
,e1
,e2
,z
Additional attributes (e.g. binned radial shear profiles) are then added to the GalaxyCluster
object at various steps of the analysis.
All the function of the dataops
package are also methods of the GalaxyCluster
object. In a nutshell, the main functions are:
- The function
compute_tangential_and_cross_components
calculates tangential shear, cross shear, and angular separation of each source galaxy relative to the (ra, dec) coordinates of the center of the cluster. make_radial_profile
averages the tangential and cross shear of galaxies in user-defined bins and support bins in rad, deg, arcmin, arcsec, kpc, or Mpc. The latter are easily generated thanks to themake_bins
function.- See examples/demo_dataops_functionality.ipynb to see all functionalities and possible options.
- the
theory
package holds modules for evaluating theoretical models, whatever backend (cluster-toolkit
,CCL
orNumCosmo
) the user has chosen to use. All is transparent to the user, but some backend will support more functionality than others. The default, that all backends support, is to use an NFW density profile for the cluster, with a M200,m mass definition. - Each theory backend relies on a cosmology object, of a different type, depending on the backend. The CLMM
cosmology
superclass wraps these various types of object to make it transparent for the user. - Finally, the
theory
package has both a functional and object-oriented interface and these may be used whatever the selected theory backend. - See examples/demo_theory_functionality.ipynb and examples/demo_theory_functionality_oo.ipynb for detailed examples of the functional and object-oriented interfaces respectively.
In order to test/develop the code but also help new users or scientists new to the field to explore some of the effects affecting cluster WL mass reconstruction, a CLMM module allows us to generate mock datasets from a variety of ingredients (w/wo shape noise, w/wo photoz errors, etc.).
- See examples/demo_generate_mock_cluster.ipynb for all possible use cases.
CLMM was not designed to provide an end-to-end mass estimation pipeline, but to provide the building blocks to do so. How to use these blocks to make a mass estimation is exemplified in a series of notebooks using either simple scipy
tools for the minimization or Numcosmo
's more sophisticated statistical framework. Look for the notebooks called ExampleXX_Fit_Halo_Mass_to_Shear_Catalog*
in the examples
folder, e.g, examples/Example3_Fit_Halo_Mass_to_Shear_Catalog.ipynb.