DECADE public release

List of data products

First, we list the different products made available so far. Each is detailed further below in its own subsection. If you do not see a product of interest in this list, please contact me! Our goal is to have made all useful products available right away.

1. Shear Catalog: The shear catalog is available at Noirlab, and via Globus. If you want to query small subsets, then the Noirlab portal is the best place to go. If you want to use the full catalog (e.g., for correlation studies) the Globus portal is easier. This portal also contains a single HDF5 file (shear_catalog_sparse.hdf) which is a curated subset of all objects relevant for the cosmology analysis alone. This is a significantly smaller subset of the full catalog. The globus portal also contains the redshift distributions for the four bins. The necessary calibrations are found in the Table below, can also be obtained from the paper release here. You will need to apply the shear response yourself.

2. Cosmology Likelihood: The full cosmology likelihood is available in the cosmosis-standard-library. The ini file for the decam13k likelihood is here and is the recommended starting point. This file can run a combination of DECADE NGC, DECADE SGC, and DES Y3. All the necessary data for the likelihood runs are already on cosmosis.

3. Cosmic Shear Datavectors: The associated cosmic shear datavectors, ensemble redshift distributions, and covariance matrices are available in this public folder, and also already in the cosmosis-standard-library. See the ini file mentioned above to see the relative filepath within the CSL library. They are also found in the datavectors and n_of_z folders within the Globus endpoint.

4. DELVE DR3: The superset DELVE DR3 catalog, which contains all detected objects, is available at Noirlab via a queryable database. See also this page for more details on the DELVE data release. The raw coadd images, including a cutout service, are made available via Noirlab.

5. Cosmology Posteriors: The chains from the various results shown in Anbajagane, Chang et. al (2025e) are all available as MCMC chains provided here. See the subsection below for details on what chains are available and what the filenames map to.

Shear catalog

Both Noirlab and Globus have the entire base shear catalog, i.e. any and all measurements of shape made for the DECADE coadd detections. This is a significantly larger superset of the fiducial cosmology catalog. The latter is also provided as a single HDF5 file for ease of use. The cosmology selections can be applied as

with h5py.File('shear_catalog_sparse.hdf5', 'r') as f:
    mask = f['MCAL_SEL_NOSHEAR'] == bin_ind  

where bin_ind = (1, 2, 3, 4). We denote unselected objects with bin_ind = 0. A file in the scripts directory of the Globus endpoint lists the shear response calculation required. The quick calibration parameters are found below. If you are not using our fiducial selection, these numbers will be different. If you subselect objects based on area, it is mostly fine to use the numbers below. If you subselect on magnitudes and colors, then that is no longer true. We may be able to provide you with recalibrated numbers for simpler selection choices, please reach out!

Bin\(m\) [\(10^{-2}\)]\(\sigma(\langle z\rangle)\) [\(10^{-2}\)]\(R = (R_{11, \rm tot} + R_{22, \rm tot})/2\)
NGC Bin 1\(-0.92 \pm 0.296\)\(1.63\)\(0.836\)
NGC Bin 2\(-1.90 \pm 0.421\)\(1.39\)\(0.771\)
NGC Bin 3\(-4.00 \pm 0.428\)\(1.01\)\(0.741\)
NGC Bin 4\(-3.73 \pm 0.462\)\(1.17\)\(0.621\)
SGC Bin 1\(-1.33 \pm 0.472\)\(1.61\)\(0.844\)
SGC Bin 2\(-2.26 \pm 0.657\)\(1.40\)\(0.778\)
SGC Bin 3\(-3.67 \pm 0.697\)\(1.00\)\(0.748\)
SGC Bin 4\(-5.72 \pm 0.804\)\(1.16\)\(0.626\)

And here is a description of all the columns in the catalog:

ColumnDescription
COADD_OBJECT_IDUnique identifier for the coadded objects
DECDeclination, in degrees
DNF_D1DNF photo-z photometric directional distance to nearest neighbor.
DNF_DE1DNF photo-z photometric Euclidean distance to nearest neighbor.
DNF_ID1DNF photo-z COADD_OBJECT_ID corresponding to the nearest neighbor in the training sample.
DNF_ZDNF photo-z primary point estimate obtained by fitting to the directional neighborhood.
DNF_ZNDNF photo-z nearest neighbor spec-z. Useful for estimating N(z) for a given sample.
DNF_ZSIGMADNF photo-z uncertainty estimate from photometric uncertainties and residuals from the neighborhood fit
DNF_ZERR_FITDNF photo-z error term derived from the residuals of the regression fit
DNF_ZERR_PARAMDNF photo-z error term due to magnitude/flux uncertainties propagation
DNF_NNEIGHBORSDNF photo-z number of neighbors used for the DNF_Z estimate
FLAGS_FOOTPRINTUse FLAGS_FOOTPRINT == 1 to select objects inside the standard “Gold” footprint.
FLAGS_FOREGROUNDFlag describing whether the object is contained in a region with a foreground astrophysical object; recommend FLAGS_FOREGROUND = 0 for general extragalactic studies.
MCAL_FLAGSuse MCAL_FLAGS == 0 for the science sample
MCAL_FLUX_(RIZ)_(NOSHEAR, 1P, 1M, 2P, 2M)Metacal fluxes in r, i, z bands
MCAL_FLUX_(RIZ)_(NOSHEAR, 1P, 1M, 2P, 2M)_DERED_SFD98extinction-corrected (SFD98) version of metacal fluxes
MCAL_FLUX_(RIZ)_ERR_(NOSHEAR, 1P, 1M, 2P, 2M)The 1sigma error on the metacal fluxes
MCAL_FLUX_(RIZ)_ERR_(NOSHEAR, 1P, 1M, 2P, 2M)_DERED_SFD98The 1sigma error on the extinction-corrected metacal fluxes
MCAL_G_1_(NOSHEAR, 1P, 1M, 2P, 2M)First component of object ellipticity
MCAL_G_2_(NOSHEAR, 1P, 1M, 2P, 2M)Second component of object ellipticity
MCAL_G_COV_0_0_(NOSHEAR, 1P, 1M, 2P, 2M)Covariance of the G_1 estimate
MCAL_G_COV_0_1_(NOSHEAR, 1P, 1M, 2P, 2M)Cross covariance of G_1 and G2
MCAL_G_COV_1_0_(NOSHEAR, 1P, 1M, 2P, 2M)Cross covariance of G_2 and G_1 (same as COV_0_1)
MCAL_G_COV_1_1_(NOSHEAR, 1P, 1M, 2P, 2M)Covariance of the G_2 estimate
MCAL_W_(NOSHEAR, 1P, 1M, 2P, 2M)Shear weights used in the cosmology analysis
MCAL_PSF_G_1_NOSHEARFirst component of PSF ellipticity
MCAL_PSF_G_2_NOSHEARSecond component of PSF ellipticity
MCAL_PSF_T_NOSHEARSize of the PSF
MCAL_S2N_(NOSHEAR, 1P, 1M, 2P, 2M)Signal-to-noise of the object
MCAL_SEL_(NOSHEAR, 1P, 1M, 2P, 2M)Object selection for the cosmology sample. If “mcal_sel == 0” the object is not selected. Objects are assigned values of [1, 4] depending on which tomographic redshift bin they are assigned to.
MCAL_T_(NOSHEAR, 1P, 1M, 2P, 2M)Size of the object (after PSF deconvolution)
MCAL_T_RATIO_(NOSHEAR, 1P, 1M, 2P, 2M)Ratio of object and PSF sizes
RARight ascension

Note that the catalogs contain redshift point estimates from the “Directional Neighborhood Fitting” (DNF) algorithm. These were not used in our fiducial cosmology analysis, but are provided here as they are useful for cluster lensing and other downstream uses of the public catalog. This redshift was determined using the SOF (single object fitting) fluxes provided in the DELVE DR3 processing.

The metacal-based quantities have five variants. Noshear is the fiducial result, while 1p, 1m, 2p, 2m are variants where the galaxy image was sheared in a specific direction. The latter are used to estimate the shear response. Metacal was only run on riz bands.

Cosmology Posteriors

This table describes the chains provided here. In all analyses, we do not consider the shear ratio measurements from DES.

Table of filenames

FilenameDescription
decam13k.txtThe fiducial analysis combining NGC, SGC, and DES Y3.
decam10k.txtCombination of just NGC and DES Y3
decade-ngc.txtDECADE NGC-only results
decade-sgc.txtDECADE SGC-only results
des.txtResults from DES Y3 (note we never use shear ratio in any of our analyses)
decam13k-ext.txtCombination of DECam 13k with DES Y5 SNe and DESI DR2 BAO
decam13k-ext-w0wa.txtDecam13k + Ext constraints on the w0-wa dynamical dark energy model
decam13k-ext-wphi.txtDecam13k + Ext constraints on the wphi model of Shajib & Frieman 2025
decam13k-bacco.txtDECam13k analysis using all scales and modelling baryons with the public Bacco emulator
decam13k-bcemu.txtDECam13k analysis using all scales and modelling baryons with the public Bcemu emulator
decam13k-Tagn.txtDECam13k analysis using all scales and modelling baryons with HMCode 2020
decam13k-bfg-bacco.txtDECam13k analysis using all scales and modelling baryons with BaryonForge-based halo model of Bacco
decam13k-bfg-bcemu.txtDECam13k analysis using all scales and modelling baryons with BaryonForge-based halo model of BCemu
decam13k-bfg-bacco-wide.txtThe “BFG-Bacco Wide” constraints from the paper
decam13k-Tagn-wide.txtThe “Tagn Wide” constraints from the paper

Reading out the chains

Here are some utils for reading the chains into a dataframe.

def _get_names(file):

    with open(file, 'r') as f:
        params = f.readline()[1:-1].split('\t')
        p_type = [x.split('--')[0] if '--' in x else 'None' for x in params]
        p_name = [x.split('--')[1] if '--' in x else x for x in params]
        p_name = [n + '_delve' if 'delve' in t.lower() else n for n, t in zip(p_name, p_type)]
        p_name = [n + '_sgc'   if 'sgc'   in t.lower() else n for n, t in zip(p_name, p_type)]
        p_name = [n + '_des'   if 'des'   in t.lower() else n for n, t in zip(p_name, p_type)]
        p_name = [n + '_kids'  if 'kids'  in t.lower() else n for n, t in zip(p_name, p_type)]
        p_name = [n + '_' + t  if 'halo_model_parameters' in t else n for n, t in zip(p_name, p_type)]
        p_type = ['None' if p.upper() == p else p for p in p_type]

    p_name = [n + '_lens' if 'lens' in t else n for t, n in zip(p_type, p_name)]
    
    return p_type, p_name


def load_chain_info(file):

    assert os.path.isfile(file), f"The path {file} does not exist"

    CHAINS = pd.read_csv(file, comment = '#', names = _get_names(file)[1], sep = r'\t', engine = 'python')
    
    if 'log_weight' in CHAINS.keys(): CHAINS['weight'] = np.exp(CHAINS['log_weight'])
    if 'OMEGA_M' in CHAINS.keys(): CHAINS['omega_m'] = CHAINS['OMEGA_M']
        
    CHAINS = CHAINS[np.isfinite(CHAINS['post'])]
        
    CHAINS['S8']   = CHAINS['SIGMA_8'] * (CHAINS['omega_m'] / 0.3)**0.5

    return CHAINS


def setup_MCsamples(C, P):
    """
    C is the list of chains (as dataframes) and P is the list of param names you want.
    If a given param name is not in a given chain, we will drop the param from the call for
    that chain
    """
    F = []
    for c in C: 
        
        P_tmp = [p for p in P if p in c.keys()]
        F.append(MCSamples(samples = c[P_tmp].to_numpy(), weights = c['weight'].values, names = c[P_tmp].keys()))

    for f in F:
        for param in f.paramNames.names:
            if param.name in labels: param.label = labels[param.name]
    
    return F