Using the LSST Stack tools to do positional matching on coadd and src catalogs


Owner: Jim Chiang (@jchiang87)
Updated by: Javier Sánchez (@fjaviersanchez)
Last Run: 2020-06-12

In this notebook, we use the data butler to retrieve catalogs from coadd and visit-level analyses of Run2.2i, and use the lsst.afw.table.matchRaDec function to do positional matching against galaxy truth info extracted from the cosmoDC2 v1.1.4 extragalactic catalog. To enable this, we show how to create a SourceCatalog object from the galaxy truth info provided by the GCR interface.

Set Up

In [1]:
import warnings
from collections import namedtuple
import numpy as np
import matplotlib.pyplot as plt
import lsst.afw.geom as afw_geom
import lsst.afw.table as afw_table
import lsst.daf.persistence as dp
import GCRCatalogs
import healpy as hp
import lsst.geom

How To Create a Source Catalog

In order to use the Stack's spatial matching code, we will need to reformat the extragalactic catalog galaxy position and magnitude information into an afw SourceCatalog object. These table objects are initialized by a "schema", which in turn is built from column definition "Coldef" objects. The mag_cols function below shows how these Coldefs can be created.

In [2]:
def make_SourceCatalog(new_cols):
    """
    Make a SourceCatalog to contain id and coordinates for each object, plus any new
    columns.
    
    Parameters
    ----------
    new_cols: list of Coldefs
        Column info for adding to an afw.table schema.

    Returns
    -------
    lsst.afw.table.SourceCatalog: An empty SourceCatalog with the desired schema.
    """
    # The minimal schema just contains the `id`, `coord_ra`, and `coord_dec` fields.
    schema = afw_table.SourceTable.makeMinimalSchema()
    for coldef in new_cols:
        schema.addField(coldef.name, type=coldef.type, doc=coldef.doc)
    return afw_table.SourceCatalog(schema)


def mag_cols(bands):
    """Return column information for adding magnitude columns to an afw.table schema."""
    Coldef = namedtuple('Coldef', 'name type doc'.split())
    return [Coldef(f'mag_{x}', float, f'{x}-magnitude')
            for x in bands]

Selecting Galaxies

We are going to downselect cosmoDC2 to the sky region being considered. We'll make a general-purpose RegionSelector class, and then sub-class it for selecting objects in either CCDs or patches.

In [3]:
class RegionSelector:
    """
    Class to rotate the protoDC2 galaxies to the Run1.1p sky location and downselect those galaxies
    based on a magnitude limit and on the coordinates of the subregion (i.e., patch or CCD) being
    considered.
    """

    def __init__(self):
        pass
    
    def _set_coord_range(self, bbox, wcs):
        """
        Set the coordinate range of the region.
        
        Notes
        -----
        This method is used by the RegionSelector's subclasses.
        
        Parameters
        ----------
        bbox: Calexp.BBox
            Defines corners of region's bounding box
        wcs: Calexp.Wcs
            Defines pixel to world (sky) coordinate transformation
        """
        region_box = lsst.geom.Box2D(bbox)
        corners = region_box.getCorners()
        ra_values, dec_values = [], []
        for corner in corners:
            ra, dec = wcs.pixelToSky(corner)
            ra_values.append(ra.asDegrees())
            dec_values.append(dec.asDegrees())
        self.ra_range = min(ra_values), max(ra_values)
        self.dec_range = min(dec_values), max(dec_values)

    def __call__(self, gc, band, max_mag):
        """
        Create a SourceCatalog object from the input galaxy catalog for the specified band, and
        apply the region and magnitude cuts.

        Parameters
        ----------
        gc: GCRCatalogs GalaxyCatalog
            The galaxy catalog obtained via GCR.
        band: str
            The band, e.g., 'i', to use for the magnitude comparison with the values measured
            from the simulated data.
        max_mag: float
            The magnitude limit to apply.

        Returns
        -------
        lsst.afw.table.SourceCatalog
        """
        # Retrieve the healpix pixels corresponding to the catalog so we don't query the full catalog
        vertices = hp.ang2vec(np.array([self.ra_range[0], self.ra_range[1],
                                        self.ra_range[1], self.ra_range[0]]),
                              np.array([self.dec_range[0], self.dec_range[0],
                                        self.dec_range[1], self.dec_range[1]]), lonlat=True)
        ipix = hp.query_polygon(32, vertices, inclusive=True)
        # We are going to pass the healpixels that overlap with our catalog as native filters to speed up the process
        native_filter = f'(healpix_pixel == {ipix[0]})'
        for ipx in ipix:
            native_filter=native_filter+f' | (healpix_pixel == {ipx})'
        # Retrieve the desired columns and cut on the magnitude values.
        bandname = f'mag_{band}'
        filter_ = f'{bandname} < {max_mag}'
        print("Applying magnitude filter:", filter_)
        gc_cols = gc.get_quantities(['galaxy_id', 'ra', 'dec',
                                     bandname], filters=[filter_, 
                                                         f'ra > {self.ra_range[0]}',
                                                         f'ra < {self.ra_range[1]}',
                                                         f'dec > {self.dec_range[0]}',
                                                         f'dec < {self.dec_range[1]}',
                                                        ],
                                    native_filters = native_filter)
        print("Number of galaxies within region:", len(gc_cols['ra']))

        # Create a SourceCatalog with the galaxy_ids, coordinates, magnitudes
        galaxy_catalog = make_SourceCatalog(mag_cols((band,)))
        for id_, ra, dec, mag in zip(gc_cols['galaxy_id'], gc_cols['ra'], gc_cols['dec'], gc_cols[bandname]):
            record = galaxy_catalog.addNew()
            record.set('id', id_)
            record.set('coord_ra', lsst.geom.Angle(ra, lsst.geom.degrees))
            record.set('coord_dec', lsst.geom.Angle(dec, lsst.geom.degrees))
            record.set(f'mag_{band}', mag)
        return galaxy_catalog
In [4]:
class CcdSelector(RegionSelector):
    """RegionSelector to use with visit-level calexps, i.e., single CCD exposures."""
    def __init__(self, butler, visit, raft, sensor):
        super(CcdSelector, self).__init__()
        # Get the CCD boundaries
        dataId = dict(visit=visit, raft=raft, sensor=sensor)
        calexp = butler.get('calexp', dataId=dataId)
        self._set_coord_range(calexp.getBBox(), calexp.getWcs())


class PatchSelector(RegionSelector):
    """RegionSelector to use with skyMap patches, i.e., coadd data."""
    def __init__(self, butler, tract, patch):
        super(PatchSelector, self).__init__()
        # Get the patch boundaries.
        skymap = butler.get('deepCoadd_skyMap')
        tractInfo = skymap[tract]
        patchInfo = tractInfo.getPatchInfo(eval(patch))
        self._set_coord_range(patchInfo.getOuterBBox(), tractInfo.getWcs())

Matching Experiments

Now we have the tools we need, let's read in the Run 2.2i-DR3 coadd catalog data and match it to the extragalactic catalog input.

In [5]:
# Create a data butler for the repo.
repo = '/global/cfs/cdirs/lsst/production/DC2_ImSim/Run2.2i/desc_dm_drp/v19.0.0-v1/rerun/run2.2i-coadd-wfd-dr3-v1'
butler = dp.Butler(repo)

Sources or Objects?

We can consider visit-level src catalog data, in which case we would provide a dataId to the butler with (visit, raft, sensor) ids; or we can consider coadd object data, for which we would provid a dataId with (filter, tract, patch) ids.

Somewhat different flux models are available in the Run2.2i data for src catalogs versus coadd catalogs.

In [6]:
mag_max = 24.5
# we_are_matching = "Sources"
we_are_matching = "Objects"

if we_are_matching == "Sources":
    # Get the src catalog for a selected visit, raft, and sensor:
    visit = 219976
    raft = '2,2'
    sensor = '1,1'
    title = f'Run2.2i-DR3, visit={visit}, raft={raft}, sensor={sensor}'
    dataId = dict(visit=visit, raft=raft, sensor=sensor)
    catalog = butler.get('src', dataId=dataId)
    calexp = butler.get('calexp', dataId=dataId)
    filter_ = calexp.getInfo().getFilter().getFilter()
    calib = calexp.getPhotoCalib()
    #flux_model = 'ext_photometryKron_KronFlux'
    flux_model = 'modelfit_CModel'
    region_selector = CcdSelector(butler, visit, raft, sensor)

else:
    # Get the coadd catalog for a selected filter, tract, and patch:
    filter_ = 'r'
    tract = 4638
    patch = '2,2'
    title = f'Run2.2i-DR3, filter={filter_}, tract={tract}, patch={patch}'
    dataId = dict(tract=tract, patch=patch, filter=filter_)
    catalog = butler.get('deepCoadd_meas', dataId=dataId)
    calexp = butler.get('deepCoadd', dataId=dataId)
    calib = calexp.getPhotoCalib()
    flux_model = 'modelfit_CModel'
    region_selector = PatchSelector(butler, tract, patch)

Focusing on Well-measured Galaxies

Galaxies can be selected as extended objects (or sources) using the base_ClassificationExtendedness_value. We use the model flag and flux to ensure that a flux value could be measured, and then apply a selection to ensure that we get deblended objects. Finally, we apply a relatively bright magnitude cut, to avoid confusion when performing the positional match.

In [7]:
# Extract columns to use in the selection:
ext = catalog.get('base_ClassificationExtendedness_value')
model_flag = catalog.get(flux_model + '_flag')
model_flux = catalog.get(flux_model + '_instFlux')
num_children = catalog.get('deblend_nChild')

# Apply the extendedness, flag, and blendedness cuts using the subset method:
cat_temp = catalog.subset((ext == 1) &
                          (model_flag == False) &
                          (model_flux > 0) &
                          (num_children == 0))
# Extract the magnitude and again use subset to apply the depth cut:
_mag = calib.instFluxToMagnitude(cat_temp, flux_model) 
mag = _mag[:,0] #Magnitude
magerr = _mag[:,1] #Magnitude Error
#print(mag, len(mag))
cat_temp = cat_temp.subset(mag < mag_max)

# Repackage everything in a more minimal SourceCatalog and add a magnitude column for comparing
# to the galaxy catalog truth values.
drp_catalog = make_SourceCatalog(mag_cols((filter_,)))
for record in cat_temp:
    new_rec = drp_catalog.addNew()
    for name in 'id coord_ra coord_dec parent'.split():
        new_rec.set(name, record[name])
    mag = calib.instFluxToMagnitude(record, flux_model)
    new_rec.set(f'mag_{filter_}', mag.value)
                
print("Number of observed objects in our DRP galaxy catalog", len(drp_catalog))
Number of observed objects in our DRP galaxy catalog 3658

Extracting the Truth Info

We can now use our region_selector object to process the protoDC2 extragalactic catalog. Note that while we instantiated it with a butler, so that it could work on selecting galaxy observations from either a tract or a CCD, we can call it as a function (via its __call__ method) which takes a GCR catalog object as its first argument. The result will be a DM Stack SourceCatalog object, that we can match to our observed DRP catalog.

In [8]:
# Read in the galaxy catalog data.
with warnings.catch_warnings():
    warnings.filterwarnings('ignore')
    gc = GCRCatalogs.load_catalog('cosmoDC2_v1.1.4_image')
In [9]:
# Create a SourceCatalog from the gc data, applying the region and magnitude selections.
galaxy_catalog = region_selector(gc, band=filter_, max_mag=mag_max)
Applying magnitude filter: mag_r < 24.5
Number of galaxies within region: 3784

Compare the number of galaxies within our region with th enumber of observed galaxies in the DRP catalog. Is this what you would expect?

Doing the Matching

We can now carry out the spatial matching, and compute some quantities to plot.

In [10]:
# Find positional matches within 100 milliarcseconds:
radius = lsst.geom.Angle(0.1, lsst.geom.arcseconds)
matches = afw_table.matchRaDec(drp_catalog, galaxy_catalog, radius)

matches is a list of match objects, each one containing an observed-true matchd galaxy pair. The code below shows how to work with these, looping over the matches and extracting information to plot.

In [11]:
# Compare magnitudes for matched objects:
drp_mag = np.zeros(len(matches), dtype=np.float)
gc_mag = np.zeros(len(matches), dtype=np.float)
sep = np.zeros(len(matches), dtype=np.float)
# Arrays for a quiver plot.
u = np.zeros(len(matches), dtype=np.float)
v = np.zeros(len(matches), dtype=np.float)
for i, match in enumerate(matches):
    drp_mag[i] = match.first[f'mag_{filter_}']
    gc_mag[i] = match.second[f'mag_{filter_}']
    sep[i] = np.degrees(match.distance)*3600.*1000.
    u[i] = match.first['coord_ra'] - match.second['coord_ra']
    v[i] = match.first['coord_dec'] - match.second['coord_dec']
print("Number of matches:", len(matches))
Number of matches: 2951
In [12]:
# Start a 2x2 panel figure:
fig = plt.figure(figsize=(8, 8))
frame_axes = fig.add_subplot(111, frameon=False)
frame_axes.set_title(title)
frame_axes.get_xaxis().set_ticks([])
frame_axes.get_yaxis().set_ticks([])

delta_mag = drp_mag - gc_mag  # Observed - True

# Upper Left: Histogram of match separations.
fig.add_subplot(2, 2, 1)
plt.hist(sep, range=(0, 100), histtype='step', bins=40)
plt.xlabel('separation (marcsec)')
plt.ylabel('entries / bin')

# Upper Right: Quiver plot of (DRP - galaxy_catalog) positions on the sky.
fig.add_subplot(2, 2, 2)
plt.quiver(np.degrees(drp_catalog['coord_ra']),
           np.degrees(drp_catalog['coord_dec']),
           u, v)
plt.xlabel('RA (deg)')
plt.ylabel('Dec (deg)')

# Lower left: Difference in magnitudes vs true magnitude (mag_gc).
fig.add_subplot(2, 2, 3)
plt.errorbar(gc_mag, delta_mag, fmt='.', alpha=0.1)
plt.xlabel(f'True mag {filter_}_gc'.format(filter_))
plt.ylabel(f'Mag difference ({filter_}_gc - {filter_}_drp)')

# Difference in magnitudes vs separation.
fig.add_subplot(2, 2, 4)
plt.errorbar(sep, delta_mag, fmt='.', alpha=0.1)
plt.xlabel('separation (mas)')
plt.ylabel(f'Mag difference ({filter_}_gc - {filter_}_drp)')

plt.tight_layout()

Going Further

The available columns in a SourceCatalog can be seen by printing the info from the schema that it carries around with it. The cells below show you what you have available. The drp_catalog and galaxy_catalog that we made to do the spatial matching only have positions and magnitudes in them - but the parent catalogs have many more quantities.

In [13]:
for item in drp_catalog.schema:
    print(f"{item.field.getName()}:  {item.field.getDoc()}")
id:  unique ID
coord_ra:  position in ra/dec
coord_dec:  position in ra/dec
parent:  unique ID of parent source
mag_r:  r-magnitude
In [14]:
for item in galaxy_catalog.schema:
    print(f"{item.field.getName()}:  {item.field.getDoc()}")
id:  unique ID
coord_ra:  position in ra/dec
coord_dec:  position in ra/dec
parent:  unique ID of parent source
mag_r:  r-magnitude
In [15]:
# All the DRP measurements:
for item in catalog.schema:
    print(f"{item.field.getName()}:  {item.field.getDoc()}")
id:  unique ID
coord_ra:  position in ra/dec
coord_dec:  position in ra/dec
parent:  unique ID of parent source
merge_footprint_i:  Detection footprint overlapped with a detection from filter i
merge_footprint_r:  Detection footprint overlapped with a detection from filter r
merge_footprint_z:  Detection footprint overlapped with a detection from filter z
merge_footprint_y:  Detection footprint overlapped with a detection from filter y
merge_footprint_g:  Detection footprint overlapped with a detection from filter g
merge_footprint_u:  Detection footprint overlapped with a detection from filter u
merge_footprint_sky:  Detection footprint overlapped with a detection from filter sky
merge_peak_i:  Peak detected in filter i
merge_peak_r:  Peak detected in filter r
merge_peak_z:  Peak detected in filter z
merge_peak_y:  Peak detected in filter y
merge_peak_g:  Peak detected in filter g
merge_peak_u:  Peak detected in filter u
merge_peak_sky:  Peak detected in filter sky
deblend_nChild:  Number of children this object has (defaults to 0)
deblend_deblendedAsPsf:  Deblender thought this source looked like a PSF
deblend_psfCenter_x:  If deblended-as-psf, the PSF centroid
deblend_psfCenter_y:  If deblended-as-psf, the PSF centroid
deblend_psf_instFlux:  If deblended-as-psf, the instrumental PSF flux
deblend_tooManyPeaks:  Source had too many peaks; only the brightest were included
deblend_parentTooBig:  Parent footprint covered too many pixels
deblend_masked:  Parent footprint was predominantly masked
deblend_skipped:  Deblender skipped this source
deblend_rampedTemplate:  This source was near an image edge and the deblender used "ramp" edge-handling.
deblend_patchedTemplate:  This source was near an image edge and the deblender used "patched" edge-handling.
deblend_hasStrayFlux:  This source was assigned some stray flux
base_NaiveCentroid_x:  centroid from Naive Centroid algorithm
base_NaiveCentroid_y:  centroid from Naive Centroid algorithm
base_NaiveCentroid_flag:  General Failure Flag
base_NaiveCentroid_flag_noCounts:  Object to be centroided has no counts
base_NaiveCentroid_flag_edge:  Object too close to edge
base_NaiveCentroid_flag_resetToPeak:  set if CentroidChecker reset the centroid
base_SdssCentroid_x:  centroid from Sdss Centroid algorithm
base_SdssCentroid_y:  centroid from Sdss Centroid algorithm
base_SdssCentroid_xErr:  1-sigma uncertainty on x position
base_SdssCentroid_yErr:  1-sigma uncertainty on y position
base_SdssCentroid_flag:  General Failure Flag
base_SdssCentroid_flag_edge:  Object too close to edge
base_SdssCentroid_flag_noSecondDerivative:  Vanishing second derivative
base_SdssCentroid_flag_almostNoSecondDerivative:  Almost vanishing second derivative
base_SdssCentroid_flag_notAtMaximum:  Object is not at a maximum
base_SdssCentroid_flag_resetToPeak:  set if CentroidChecker reset the centroid
base_SdssCentroid_flag_badError:  Error on x and/or y position is NaN
base_Blendedness_old:  Blendedness from dot products: (child.dot(parent)/child.dot(child) - 1)
base_Blendedness_raw:  Measure of how much the flux is affected by neighbors: (1 - child_instFlux/parent_instFlux).  Operates on the "raw" pixel values.
base_Blendedness_raw_child_instFlux:  Instrumental flux of the child, measured with a Gaussian weight matched to the child.  Operates on the "raw" pixel values.
base_Blendedness_raw_parent_instFlux:  Instrumental flux of the parent, measured with a Gaussian weight matched to the child.  Operates on the "raw" pixel values.
base_Blendedness_abs:  Measure of how much the flux is affected by neighbors: (1 - child_instFlux/parent_instFlux).  Operates on the absolute value of the pixels to try to obtain a "de-noised" value.  See section 4.9.11 of Bosch et al. 2018, PASJ, 70, S5 for details.
base_Blendedness_abs_child_instFlux:  Instrumental flux of the child, measured with a Gaussian weight matched to the child.  Operates on the absolute value of the pixels to try to obtain a "de-noised" value.  See section 4.9.11 of Bosch et al. 2018, PASJ, 70, S5 for details.
base_Blendedness_abs_parent_instFlux:  Instrumental flux of the parent, measured with a Gaussian weight matched to the child.  Operates on the absolute value of the pixels to try to obtain a "de-noised" value.  See section 4.9.11 of Bosch et al. 2018, PASJ, 70, S5 for details.
base_Blendedness_raw_child_xx:  Shape of the child, measured with a Gaussian weight matched to the child.  Operates on the "raw" pixel values.
base_Blendedness_raw_child_yy:  Shape of the child, measured with a Gaussian weight matched to the child.  Operates on the "raw" pixel values.
base_Blendedness_raw_child_xy:  Shape of the child, measured with a Gaussian weight matched to the child.  Operates on the "raw" pixel values.
base_Blendedness_raw_parent_xx:  Shape of the parent, measured with a Gaussian weight matched to the child.  Operates on the "raw" pixel values.
base_Blendedness_raw_parent_yy:  Shape of the parent, measured with a Gaussian weight matched to the child.  Operates on the "raw" pixel values.
base_Blendedness_raw_parent_xy:  Shape of the parent, measured with a Gaussian weight matched to the child.  Operates on the "raw" pixel values.
base_Blendedness_abs_child_xx:  Shape of the child, measured with a Gaussian weight matched to the child.  Operates on the absolute value of the pixels to try to obtain a "de-noised" value.  See section 4.9.11 of Bosch et al. 2018, PASJ, 70, S5 for details.
base_Blendedness_abs_child_yy:  Shape of the child, measured with a Gaussian weight matched to the child.  Operates on the absolute value of the pixels to try to obtain a "de-noised" value.  See section 4.9.11 of Bosch et al. 2018, PASJ, 70, S5 for details.
base_Blendedness_abs_child_xy:  Shape of the child, measured with a Gaussian weight matched to the child.  Operates on the absolute value of the pixels to try to obtain a "de-noised" value.  See section 4.9.11 of Bosch et al. 2018, PASJ, 70, S5 for details.
base_Blendedness_abs_parent_xx:  Shape of the parent, measured with a Gaussian weight matched to the child.  Operates on the absolute value of the pixels to try to obtain a "de-noised" value.  See section 4.9.11 of Bosch et al. 2018, PASJ, 70, S5 for details.
base_Blendedness_abs_parent_yy:  Shape of the parent, measured with a Gaussian weight matched to the child.  Operates on the absolute value of the pixels to try to obtain a "de-noised" value.  See section 4.9.11 of Bosch et al. 2018, PASJ, 70, S5 for details.
base_Blendedness_abs_parent_xy:  Shape of the parent, measured with a Gaussian weight matched to the child.  Operates on the absolute value of the pixels to try to obtain a "de-noised" value.  See section 4.9.11 of Bosch et al. 2018, PASJ, 70, S5 for details.
base_Blendedness_flag:  General Failure Flag
base_Blendedness_flag_noCentroid:  Object has no centroid
base_Blendedness_flag_noShape:  Object has no shape
base_InputCount_flag:  Set for any fatal failure
base_InputCount_value:  Number of images contributing at center, not including anyclipping
base_InputCount_flag_noInputs:  No coadd inputs available
base_SdssShape_xx:  elliptical Gaussian adaptive moments
base_SdssShape_yy:  elliptical Gaussian adaptive moments
base_SdssShape_xy:  elliptical Gaussian adaptive moments
base_SdssShape_xxErr:  Standard deviation of xx moment
base_SdssShape_yyErr:  Standard deviation of yy moment
base_SdssShape_xyErr:  Standard deviation of xy moment
base_SdssShape_x:  elliptical Gaussian adaptive moments
base_SdssShape_y:  elliptical Gaussian adaptive moments
base_SdssShape_instFlux:  elliptical Gaussian adaptive moments
base_SdssShape_instFluxErr:  1-sigma instFlux uncertainty
base_SdssShape_psf_xx:  adaptive moments of the PSF model at the object position
base_SdssShape_psf_yy:  adaptive moments of the PSF model at the object position
base_SdssShape_psf_xy:  adaptive moments of the PSF model at the object position
base_SdssShape_instFlux_xx_Cov:  uncertainty covariance between base_SdssShape_instFlux and base_SdssShape_xx
base_SdssShape_instFlux_yy_Cov:  uncertainty covariance between base_SdssShape_instFlux and base_SdssShape_yy
base_SdssShape_instFlux_xy_Cov:  uncertainty covariance between base_SdssShape_instFlux and base_SdssShape_xy
base_SdssShape_flag:  General Failure Flag
base_SdssShape_flag_unweightedBad:  Both weighted and unweighted moments were invalid
base_SdssShape_flag_unweighted:  Weighted moments converged to an invalid value; using unweighted moments
base_SdssShape_flag_shift:  centroid shifted by more than the maximum allowed amount
base_SdssShape_flag_maxIter:  Too many iterations in adaptive moments
base_SdssShape_flag_psf:  Failure in measuring PSF model shape
ext_shapeHSM_HsmPsfMoments_x:  HSM Centroid
ext_shapeHSM_HsmPsfMoments_y:  HSM Centroid
ext_shapeHSM_HsmPsfMoments_xx:  HSM moments
ext_shapeHSM_HsmPsfMoments_yy:  HSM moments
ext_shapeHSM_HsmPsfMoments_xy:  HSM moments
ext_shapeHSM_HsmPsfMoments_flag:  general failure flag, set if anything went wrong
ext_shapeHSM_HsmPsfMoments_flag_no_pixels:  no pixels to measure
ext_shapeHSM_HsmPsfMoments_flag_not_contained:  center not contained in footprint bounding box
ext_shapeHSM_HsmPsfMoments_flag_parent_source:  parent source, ignored
ext_shapeHSM_HsmShapeRegauss_e1:  PSF-corrected shear using Hirata & Seljak (2003) ''regaussianization
ext_shapeHSM_HsmShapeRegauss_e2:  PSF-corrected shear using Hirata & Seljak (2003) ''regaussianization
ext_shapeHSM_HsmShapeRegauss_sigma:  PSF-corrected shear using Hirata & Seljak (2003) ''regaussianization
ext_shapeHSM_HsmShapeRegauss_resolution:  resolution factor (0=unresolved, 1=resolved)
ext_shapeHSM_HsmShapeRegauss_flag:  general failure flag, set if anything went wrong
ext_shapeHSM_HsmShapeRegauss_flag_no_pixels:  no pixels to measure
ext_shapeHSM_HsmShapeRegauss_flag_not_contained:  center not contained in footprint bounding box
ext_shapeHSM_HsmShapeRegauss_flag_parent_source:  parent source, ignored
ext_shapeHSM_HsmShapeRegauss_flag_galsim:  GalSim failure
ext_shapeHSM_HsmSourceMoments_x:  HSM Centroid
ext_shapeHSM_HsmSourceMoments_y:  HSM Centroid
ext_shapeHSM_HsmSourceMoments_xx:  HSM moments
ext_shapeHSM_HsmSourceMoments_yy:  HSM moments
ext_shapeHSM_HsmSourceMoments_xy:  HSM moments
ext_shapeHSM_HsmSourceMoments_flag:  general failure flag, set if anything went wrong
ext_shapeHSM_HsmSourceMoments_flag_no_pixels:  no pixels to measure
ext_shapeHSM_HsmSourceMoments_flag_not_contained:  center not contained in footprint bounding box
ext_shapeHSM_HsmSourceMoments_flag_parent_source:  parent source, ignored
ext_shapeHSM_HsmSourceMomentsRound_x:  HSM Centroid
ext_shapeHSM_HsmSourceMomentsRound_y:  HSM Centroid
ext_shapeHSM_HsmSourceMomentsRound_xx:  HSM moments
ext_shapeHSM_HsmSourceMomentsRound_yy:  HSM moments
ext_shapeHSM_HsmSourceMomentsRound_xy:  HSM moments
ext_shapeHSM_HsmSourceMomentsRound_flag:  general failure flag, set if anything went wrong
ext_shapeHSM_HsmSourceMomentsRound_flag_no_pixels:  no pixels to measure
ext_shapeHSM_HsmSourceMomentsRound_flag_not_contained:  center not contained in footprint bounding box
ext_shapeHSM_HsmSourceMomentsRound_flag_parent_source:  parent source, ignored
ext_shapeHSM_HsmSourceMomentsRound_Flux:  HSM flux
modelfit_DoubleShapeletPsfApprox_0_xx:  Double-Shapelet approximation to the PSF model at the position of this source
modelfit_DoubleShapeletPsfApprox_0_yy:  Double-Shapelet approximation to the PSF model at the position of this source
modelfit_DoubleShapeletPsfApprox_0_xy:  Double-Shapelet approximation to the PSF model at the position of this source
modelfit_DoubleShapeletPsfApprox_0_x:  Double-Shapelet approximation to the PSF model at the position of this source
modelfit_DoubleShapeletPsfApprox_0_y:  Double-Shapelet approximation to the PSF model at the position of this source
modelfit_DoubleShapeletPsfApprox_0_0:  Double-Shapelet approximation to the PSF model at the position of this source
modelfit_DoubleShapeletPsfApprox_0_1:  Double-Shapelet approximation to the PSF model at the position of this source
modelfit_DoubleShapeletPsfApprox_0_2:  Double-Shapelet approximation to the PSF model at the position of this source
modelfit_DoubleShapeletPsfApprox_0_3:  Double-Shapelet approximation to the PSF model at the position of this source
modelfit_DoubleShapeletPsfApprox_0_4:  Double-Shapelet approximation to the PSF model at the position of this source
modelfit_DoubleShapeletPsfApprox_0_5:  Double-Shapelet approximation to the PSF model at the position of this source
modelfit_DoubleShapeletPsfApprox_1_xx:  Double-Shapelet approximation to the PSF model at the position of this source
modelfit_DoubleShapeletPsfApprox_1_yy:  Double-Shapelet approximation to the PSF model at the position of this source
modelfit_DoubleShapeletPsfApprox_1_xy:  Double-Shapelet approximation to the PSF model at the position of this source
modelfit_DoubleShapeletPsfApprox_1_x:  Double-Shapelet approximation to the PSF model at the position of this source
modelfit_DoubleShapeletPsfApprox_1_y:  Double-Shapelet approximation to the PSF model at the position of this source
modelfit_DoubleShapeletPsfApprox_1_0:  Double-Shapelet approximation to the PSF model at the position of this source
modelfit_DoubleShapeletPsfApprox_1_1:  Double-Shapelet approximation to the PSF model at the position of this source
modelfit_DoubleShapeletPsfApprox_1_2:  Double-Shapelet approximation to the PSF model at the position of this source
modelfit_DoubleShapeletPsfApprox_flag:  General Failure Flag
modelfit_DoubleShapeletPsfApprox_flag_invalidPointForPsf:  PSF model could not be evaluated at the source position
modelfit_DoubleShapeletPsfApprox_flag_invalidMoments:  Moments of the PSF model were not a valid ellipse
modelfit_DoubleShapeletPsfApprox_flag_maxIterations:  optimizer exceeded the maximum number (inner or outer) iterations
base_CircularApertureFlux_3_0_instFlux:  instFlux within 3.000000-pixel aperture
base_CircularApertureFlux_3_0_instFluxErr:  1-sigma instFlux uncertainty
base_CircularApertureFlux_3_0_flag:  General Failure Flag
base_CircularApertureFlux_3_0_flag_apertureTruncated:  aperture did not fit within measurement image
base_CircularApertureFlux_3_0_flag_sincCoeffsTruncated:  full sinc coefficient image did not fit within measurement image
base_CircularApertureFlux_4_5_instFlux:  instFlux within 4.500000-pixel aperture
base_CircularApertureFlux_4_5_instFluxErr:  1-sigma instFlux uncertainty
base_CircularApertureFlux_4_5_flag:  General Failure Flag
base_CircularApertureFlux_4_5_flag_apertureTruncated:  aperture did not fit within measurement image
base_CircularApertureFlux_4_5_flag_sincCoeffsTruncated:  full sinc coefficient image did not fit within measurement image
base_CircularApertureFlux_6_0_instFlux:  instFlux within 6.000000-pixel aperture
base_CircularApertureFlux_6_0_instFluxErr:  1-sigma instFlux uncertainty
base_CircularApertureFlux_6_0_flag:  General Failure Flag
base_CircularApertureFlux_6_0_flag_apertureTruncated:  aperture did not fit within measurement image
base_CircularApertureFlux_6_0_flag_sincCoeffsTruncated:  full sinc coefficient image did not fit within measurement image
base_CircularApertureFlux_9_0_instFlux:  instFlux within 9.000000-pixel aperture
base_CircularApertureFlux_9_0_instFluxErr:  1-sigma instFlux uncertainty
base_CircularApertureFlux_9_0_flag:  General Failure Flag
base_CircularApertureFlux_9_0_flag_apertureTruncated:  aperture did not fit within measurement image
base_CircularApertureFlux_9_0_flag_sincCoeffsTruncated:  full sinc coefficient image did not fit within measurement image
base_CircularApertureFlux_12_0_instFlux:  instFlux within 12.000000-pixel aperture
base_CircularApertureFlux_12_0_instFluxErr:  1-sigma instFlux uncertainty
base_CircularApertureFlux_12_0_flag:  General Failure Flag
base_CircularApertureFlux_12_0_flag_apertureTruncated:  aperture did not fit within measurement image
base_CircularApertureFlux_12_0_flag_sincCoeffsTruncated:  full sinc coefficient image did not fit within measurement image
base_CircularApertureFlux_17_0_instFlux:  instFlux within 17.000000-pixel aperture
base_CircularApertureFlux_17_0_instFluxErr:  1-sigma instFlux uncertainty
base_CircularApertureFlux_17_0_flag:  General Failure Flag
base_CircularApertureFlux_17_0_flag_apertureTruncated:  aperture did not fit within measurement image
base_CircularApertureFlux_25_0_instFlux:  instFlux within 25.000000-pixel aperture
base_CircularApertureFlux_25_0_instFluxErr:  1-sigma instFlux uncertainty
base_CircularApertureFlux_25_0_flag:  General Failure Flag
base_CircularApertureFlux_25_0_flag_apertureTruncated:  aperture did not fit within measurement image
base_CircularApertureFlux_35_0_instFlux:  instFlux within 35.000000-pixel aperture
base_CircularApertureFlux_35_0_instFluxErr:  1-sigma instFlux uncertainty
base_CircularApertureFlux_35_0_flag:  General Failure Flag
base_CircularApertureFlux_35_0_flag_apertureTruncated:  aperture did not fit within measurement image
base_CircularApertureFlux_50_0_instFlux:  instFlux within 50.000000-pixel aperture
base_CircularApertureFlux_50_0_instFluxErr:  1-sigma instFlux uncertainty
base_CircularApertureFlux_50_0_flag:  General Failure Flag
base_CircularApertureFlux_50_0_flag_apertureTruncated:  aperture did not fit within measurement image
base_CircularApertureFlux_70_0_instFlux:  instFlux within 70.000000-pixel aperture
base_CircularApertureFlux_70_0_instFluxErr:  1-sigma instFlux uncertainty
base_CircularApertureFlux_70_0_flag:  General Failure Flag
base_CircularApertureFlux_70_0_flag_apertureTruncated:  aperture did not fit within measurement image
base_GaussianFlux_instFlux:  instFlux from Gaussian Flux algorithm
base_GaussianFlux_instFluxErr:  1-sigma instFlux uncertainty
base_GaussianFlux_flag:  General Failure Flag
base_LocalBackground_instFlux:  background in annulus around source
base_LocalBackground_instFluxErr:  1-sigma instFlux uncertainty
base_LocalBackground_flag:  General Failure Flag
base_LocalBackground_flag_noGoodPixels:  no good pixels in the annulus
base_LocalBackground_flag_noPsf:  no PSF provided
base_PixelFlags_flag:  General failure flag, set if anything went wrong
base_PixelFlags_flag_offimage:  Source center is off image
base_PixelFlags_flag_edge:  Source is outside usable exposure region (masked EDGE or NO_DATA)
base_PixelFlags_flag_interpolated:  Interpolated pixel in the Source footprint
base_PixelFlags_flag_saturated:  Saturated pixel in the Source footprint
base_PixelFlags_flag_cr:  Cosmic ray in the Source footprint
base_PixelFlags_flag_bad:  Bad pixel in the Source footprint
base_PixelFlags_flag_suspect:  Source''s footprint includes suspect pixels
base_PixelFlags_flag_interpolatedCenter:  Interpolated pixel in the Source center
base_PixelFlags_flag_saturatedCenter:  Saturated pixel in the Source center
base_PixelFlags_flag_crCenter:  Cosmic ray in the Source center
base_PixelFlags_flag_suspectCenter:  Source''s center is close to suspect pixels
base_PixelFlags_flag_clippedCenter:  Source center is close to CLIPPED pixels
base_PixelFlags_flag_sensor_edgeCenter:  Source center is close to SENSOR_EDGE pixels
base_PixelFlags_flag_inexact_psfCenter:  Source center is close to INEXACT_PSF pixels
base_PixelFlags_flag_bright_objectCenter:  Source center is close to BRIGHT_OBJECT pixels
base_PixelFlags_flag_clipped:  Source footprint includes CLIPPED pixels
base_PixelFlags_flag_sensor_edge:  Source footprint includes SENSOR_EDGE pixels
base_PixelFlags_flag_inexact_psf:  Source footprint includes INEXACT_PSF pixels
base_PixelFlags_flag_bright_object:  Source footprint includes BRIGHT_OBJECT pixels
base_PsfFlux_instFlux:  instFlux derived from linear least-squares fit of PSF model
base_PsfFlux_instFluxErr:  1-sigma instFlux uncertainty
base_PsfFlux_area:  effective area of PSF
base_PsfFlux_flag:  General Failure Flag
base_PsfFlux_flag_noGoodPixels:  not enough non-rejected pixels in data to attempt the fit
base_PsfFlux_flag_edge:  object was too close to the edge of the image to use the full PSF model
base_Variance_flag:  Set for any fatal failure
base_Variance_value:  Variance at object position
base_Variance_flag_emptyFootprint:  Set to True when the footprint has no usable pixels
ext_photometryKron_KronFlux_instFlux:  flux from Kron Flux algorithm
ext_photometryKron_KronFlux_instFluxErr:  1-sigma instFlux uncertainty
ext_photometryKron_KronFlux_radius:  Kron radius (sqrt(a*b))
ext_photometryKron_KronFlux_radius_for_radius:  radius used to estimate <radius> (sqrt(a*b))
ext_photometryKron_KronFlux_psf_radius:  Radius of PSF
ext_photometryKron_KronFlux_flag:  general failure flag, set if anything went wrong
ext_photometryKron_KronFlux_flag_edge:  bad measurement due to image edge
ext_photometryKron_KronFlux_flag_bad_shape_no_psf:  bad shape and no PSF
ext_photometryKron_KronFlux_flag_no_minimum_radius:  minimum radius could not enforced: no minimum value or PSF
ext_photometryKron_KronFlux_flag_no_fallback_radius:  no minimum radius and no PSF provided
ext_photometryKron_KronFlux_flag_bad_radius:  bad Kron radius
ext_photometryKron_KronFlux_flag_used_minimum_radius:  used the minimum radius for the Kron aperture
ext_photometryKron_KronFlux_flag_used_psf_radius:  used the PSF Kron radius for the Kron aperture
ext_photometryKron_KronFlux_flag_small_radius:  measured Kron radius was smaller than that of the PSF
ext_photometryKron_KronFlux_flag_bad_shape:  shape for measuring Kron radius is bad; used PSF shape
ext_convolved_ConvolvedFlux_seeing:  original seeing (Gaussian sigma) at position
ext_convolved_ConvolvedFlux_0_deconv:  deconvolution required for seeing 3.500000; no measurement made
ext_convolved_ConvolvedFlux_0_3_3_instFlux:  instFlux within 3.300000-pixel aperture
ext_convolved_ConvolvedFlux_0_3_3_instFluxErr:  1-sigma instFlux uncertainty
ext_convolved_ConvolvedFlux_0_3_3_flag:  General Failure Flag
ext_convolved_ConvolvedFlux_0_3_3_flag_apertureTruncated:  aperture did not fit within measurement image
ext_convolved_ConvolvedFlux_0_3_3_flag_sincCoeffsTruncated:  full sinc coefficient image did not fit within measurement image
ext_convolved_ConvolvedFlux_0_4_5_instFlux:  instFlux within 4.500000-pixel aperture
ext_convolved_ConvolvedFlux_0_4_5_instFluxErr:  1-sigma instFlux uncertainty
ext_convolved_ConvolvedFlux_0_4_5_flag:  General Failure Flag
ext_convolved_ConvolvedFlux_0_4_5_flag_apertureTruncated:  aperture did not fit within measurement image
ext_convolved_ConvolvedFlux_0_4_5_flag_sincCoeffsTruncated:  full sinc coefficient image did not fit within measurement image
ext_convolved_ConvolvedFlux_0_6_0_instFlux:  instFlux within 6.000000-pixel aperture
ext_convolved_ConvolvedFlux_0_6_0_instFluxErr:  1-sigma instFlux uncertainty
ext_convolved_ConvolvedFlux_0_6_0_flag:  General Failure Flag
ext_convolved_ConvolvedFlux_0_6_0_flag_apertureTruncated:  aperture did not fit within measurement image
ext_convolved_ConvolvedFlux_0_6_0_flag_sincCoeffsTruncated:  full sinc coefficient image did not fit within measurement image
ext_convolved_ConvolvedFlux_0_kron_instFlux:  convolved Kron flux: seeing 3.500000
ext_convolved_ConvolvedFlux_0_kron_instFluxErr:  1-sigma instFlux uncertainty
ext_convolved_ConvolvedFlux_0_kron_flag:  convolved Kron flux failed: seeing 3.500000
ext_convolved_ConvolvedFlux_1_deconv:  deconvolution required for seeing 5.000000; no measurement made
ext_convolved_ConvolvedFlux_1_3_3_instFlux:  instFlux within 3.300000-pixel aperture
ext_convolved_ConvolvedFlux_1_3_3_instFluxErr:  1-sigma instFlux uncertainty
ext_convolved_ConvolvedFlux_1_3_3_flag:  General Failure Flag
ext_convolved_ConvolvedFlux_1_3_3_flag_apertureTruncated:  aperture did not fit within measurement image
ext_convolved_ConvolvedFlux_1_3_3_flag_sincCoeffsTruncated:  full sinc coefficient image did not fit within measurement image
ext_convolved_ConvolvedFlux_1_4_5_instFlux:  instFlux within 4.500000-pixel aperture
ext_convolved_ConvolvedFlux_1_4_5_instFluxErr:  1-sigma instFlux uncertainty
ext_convolved_ConvolvedFlux_1_4_5_flag:  General Failure Flag
ext_convolved_ConvolvedFlux_1_4_5_flag_apertureTruncated:  aperture did not fit within measurement image
ext_convolved_ConvolvedFlux_1_4_5_flag_sincCoeffsTruncated:  full sinc coefficient image did not fit within measurement image
ext_convolved_ConvolvedFlux_1_6_0_instFlux:  instFlux within 6.000000-pixel aperture
ext_convolved_ConvolvedFlux_1_6_0_instFluxErr:  1-sigma instFlux uncertainty
ext_convolved_ConvolvedFlux_1_6_0_flag:  General Failure Flag
ext_convolved_ConvolvedFlux_1_6_0_flag_apertureTruncated:  aperture did not fit within measurement image
ext_convolved_ConvolvedFlux_1_6_0_flag_sincCoeffsTruncated:  full sinc coefficient image did not fit within measurement image
ext_convolved_ConvolvedFlux_1_kron_instFlux:  convolved Kron flux: seeing 5.000000
ext_convolved_ConvolvedFlux_1_kron_instFluxErr:  1-sigma instFlux uncertainty
ext_convolved_ConvolvedFlux_1_kron_flag:  convolved Kron flux failed: seeing 5.000000
ext_convolved_ConvolvedFlux_2_deconv:  deconvolution required for seeing 6.500000; no measurement made
ext_convolved_ConvolvedFlux_2_3_3_instFlux:  instFlux within 3.300000-pixel aperture
ext_convolved_ConvolvedFlux_2_3_3_instFluxErr:  1-sigma instFlux uncertainty
ext_convolved_ConvolvedFlux_2_3_3_flag:  General Failure Flag
ext_convolved_ConvolvedFlux_2_3_3_flag_apertureTruncated:  aperture did not fit within measurement image
ext_convolved_ConvolvedFlux_2_3_3_flag_sincCoeffsTruncated:  full sinc coefficient image did not fit within measurement image
ext_convolved_ConvolvedFlux_2_4_5_instFlux:  instFlux within 4.500000-pixel aperture
ext_convolved_ConvolvedFlux_2_4_5_instFluxErr:  1-sigma instFlux uncertainty
ext_convolved_ConvolvedFlux_2_4_5_flag:  General Failure Flag
ext_convolved_ConvolvedFlux_2_4_5_flag_apertureTruncated:  aperture did not fit within measurement image
ext_convolved_ConvolvedFlux_2_4_5_flag_sincCoeffsTruncated:  full sinc coefficient image did not fit within measurement image
ext_convolved_ConvolvedFlux_2_6_0_instFlux:  instFlux within 6.000000-pixel aperture
ext_convolved_ConvolvedFlux_2_6_0_instFluxErr:  1-sigma instFlux uncertainty
ext_convolved_ConvolvedFlux_2_6_0_flag:  General Failure Flag
ext_convolved_ConvolvedFlux_2_6_0_flag_apertureTruncated:  aperture did not fit within measurement image
ext_convolved_ConvolvedFlux_2_6_0_flag_sincCoeffsTruncated:  full sinc coefficient image did not fit within measurement image
ext_convolved_ConvolvedFlux_2_kron_instFlux:  convolved Kron flux: seeing 6.500000
ext_convolved_ConvolvedFlux_2_kron_instFluxErr:  1-sigma instFlux uncertainty
ext_convolved_ConvolvedFlux_2_kron_flag:  convolved Kron flux failed: seeing 6.500000
ext_convolved_ConvolvedFlux_3_deconv:  deconvolution required for seeing 8.000000; no measurement made
ext_convolved_ConvolvedFlux_3_3_3_instFlux:  instFlux within 3.300000-pixel aperture
ext_convolved_ConvolvedFlux_3_3_3_instFluxErr:  1-sigma instFlux uncertainty
ext_convolved_ConvolvedFlux_3_3_3_flag:  General Failure Flag
ext_convolved_ConvolvedFlux_3_3_3_flag_apertureTruncated:  aperture did not fit within measurement image
ext_convolved_ConvolvedFlux_3_3_3_flag_sincCoeffsTruncated:  full sinc coefficient image did not fit within measurement image
ext_convolved_ConvolvedFlux_3_4_5_instFlux:  instFlux within 4.500000-pixel aperture
ext_convolved_ConvolvedFlux_3_4_5_instFluxErr:  1-sigma instFlux uncertainty
ext_convolved_ConvolvedFlux_3_4_5_flag:  General Failure Flag
ext_convolved_ConvolvedFlux_3_4_5_flag_apertureTruncated:  aperture did not fit within measurement image
ext_convolved_ConvolvedFlux_3_4_5_flag_sincCoeffsTruncated:  full sinc coefficient image did not fit within measurement image
ext_convolved_ConvolvedFlux_3_6_0_instFlux:  instFlux within 6.000000-pixel aperture
ext_convolved_ConvolvedFlux_3_6_0_instFluxErr:  1-sigma instFlux uncertainty
ext_convolved_ConvolvedFlux_3_6_0_flag:  General Failure Flag
ext_convolved_ConvolvedFlux_3_6_0_flag_apertureTruncated:  aperture did not fit within measurement image
ext_convolved_ConvolvedFlux_3_6_0_flag_sincCoeffsTruncated:  full sinc coefficient image did not fit within measurement image
ext_convolved_ConvolvedFlux_3_kron_instFlux:  convolved Kron flux: seeing 8.000000
ext_convolved_ConvolvedFlux_3_kron_instFluxErr:  1-sigma instFlux uncertainty
ext_convolved_ConvolvedFlux_3_kron_flag:  convolved Kron flux failed: seeing 8.000000
ext_convolved_ConvolvedFlux_flag:  error in running ConvolvedFluxPlugin
modelfit_CModel_initial_instFlux:  flux from the initial fit
modelfit_CModel_initial_instFluxErr:  flux uncertainty from the initial fit
modelfit_CModel_initial_flag:  flag set when the flux for the initial flux failed
modelfit_CModel_initial_instFlux_inner:  flux within the fit region, with no extrapolation
modelfit_CModel_initial_ellipse_xx:  half-light ellipse of the initial fit
modelfit_CModel_initial_ellipse_yy:  half-light ellipse of the initial fit
modelfit_CModel_initial_ellipse_xy:  half-light ellipse of the initial fit
modelfit_CModel_initial_objective:  -ln(likelihood*prior) at best-fit point for the initial fit
modelfit_CModel_initial_nonlinear_0:  nonlinear parameters for the initial fit
modelfit_CModel_initial_nonlinear_1:  nonlinear parameters for the initial fit
modelfit_CModel_initial_nonlinear_2:  nonlinear parameters for the initial fit
modelfit_CModel_initial_fixed_0:  fixed parameters for the initial fit
modelfit_CModel_initial_fixed_1:  fixed parameters for the initial fit
modelfit_CModel_initial_flag_trSmall:  the optimizer converged because the trust radius became too small; this is a less-secure result than when the gradient is below the threshold, but usually not a problem
modelfit_CModel_initial_flag_maxIter:  the optimizer hit the maximum number of iterations and did not converge
modelfit_CModel_initial_nIter:  Number of total iterations in stage
modelfit_CModel_initial_time:  Time spent in stage
modelfit_CModel_initial_flag_numericError:  numerical underflow or overflow in model evaluation; usually this means the prior was insufficient to regularize the fit, or all pixel values were zero.
modelfit_CModel_exp_instFlux:  flux from the exponential fit
modelfit_CModel_exp_instFluxErr:  flux uncertainty from the exponential fit
modelfit_CModel_exp_flag:  flag set when the flux for the exponential flux failed
modelfit_CModel_exp_instFlux_inner:  flux within the fit region, with no extrapolation
modelfit_CModel_exp_ellipse_xx:  half-light ellipse of the exponential fit
modelfit_CModel_exp_ellipse_yy:  half-light ellipse of the exponential fit
modelfit_CModel_exp_ellipse_xy:  half-light ellipse of the exponential fit
modelfit_CModel_exp_objective:  -ln(likelihood*prior) at best-fit point for the exponential fit
modelfit_CModel_exp_nonlinear_0:  nonlinear parameters for the exponential fit
modelfit_CModel_exp_nonlinear_1:  nonlinear parameters for the exponential fit
modelfit_CModel_exp_nonlinear_2:  nonlinear parameters for the exponential fit
modelfit_CModel_exp_fixed_0:  fixed parameters for the exponential fit
modelfit_CModel_exp_fixed_1:  fixed parameters for the exponential fit
modelfit_CModel_exp_flag_trSmall:  the optimizer converged because the trust radius became too small; this is a less-secure result than when the gradient is below the threshold, but usually not a problem
modelfit_CModel_exp_flag_maxIter:  the optimizer hit the maximum number of iterations and did not converge
modelfit_CModel_exp_nIter:  Number of total iterations in stage
modelfit_CModel_exp_time:  Time spent in stage
modelfit_CModel_exp_flag_numericError:  numerical underflow or overflow in model evaluation; usually this means the prior was insufficient to regularize the fit, or all pixel values were zero.
modelfit_CModel_dev_instFlux:  flux from the de Vaucouleur fit
modelfit_CModel_dev_instFluxErr:  flux uncertainty from the de Vaucouleur fit
modelfit_CModel_dev_flag:  flag set when the flux for the de Vaucouleur flux failed
modelfit_CModel_dev_instFlux_inner:  flux within the fit region, with no extrapolation
modelfit_CModel_dev_ellipse_xx:  half-light ellipse of the de Vaucouleur fit
modelfit_CModel_dev_ellipse_yy:  half-light ellipse of the de Vaucouleur fit
modelfit_CModel_dev_ellipse_xy:  half-light ellipse of the de Vaucouleur fit
modelfit_CModel_dev_objective:  -ln(likelihood*prior) at best-fit point for the de Vaucouleur fit
modelfit_CModel_dev_nonlinear_0:  nonlinear parameters for the de Vaucouleur fit
modelfit_CModel_dev_nonlinear_1:  nonlinear parameters for the de Vaucouleur fit
modelfit_CModel_dev_nonlinear_2:  nonlinear parameters for the de Vaucouleur fit
modelfit_CModel_dev_fixed_0:  fixed parameters for the de Vaucouleur fit
modelfit_CModel_dev_fixed_1:  fixed parameters for the de Vaucouleur fit
modelfit_CModel_dev_flag_trSmall:  the optimizer converged because the trust radius became too small; this is a less-secure result than when the gradient is below the threshold, but usually not a problem
modelfit_CModel_dev_flag_maxIter:  the optimizer hit the maximum number of iterations and did not converge
modelfit_CModel_dev_nIter:  Number of total iterations in stage
modelfit_CModel_dev_time:  Time spent in stage
modelfit_CModel_dev_flag_numericError:  numerical underflow or overflow in model evaluation; usually this means the prior was insufficient to regularize the fit, or all pixel values were zero.
modelfit_CModel_instFlux:  flux from the final cmodel fit
modelfit_CModel_instFluxErr:  flux uncertainty from the final cmodel fit
modelfit_CModel_flag:  flag set if the final cmodel fit (or any previous fit) failed
modelfit_CModel_instFlux_inner:  flux within the fit region, with no extrapolation
modelfit_CModel_fracDev:  fraction of flux in de Vaucouleur component
modelfit_CModel_objective:  -ln(likelihood) (chi^2) in cmodel fit
modelfit_CModel_flag_region_maxArea:  number of pixels in fit region exceeded the region.maxArea value
modelfit_CModel_flag_region_maxBadPixelFraction:  the fraction of bad/clipped pixels in the fit region exceeded region.maxBadPixelFraction
modelfit_CModel_flags_region_usedFootprintArea:  the pixel region for the initial fit was defined by the area of the Footprint
modelfit_CModel_flags_region_usedPsfArea:  the pixel region for the initial fit was set to a fixed factor of the PSF area
modelfit_CModel_flags_region_usedInitialEllipseMin:  the pixel region for the final fit was set to the lower bound defined by the initial fit
modelfit_CModel_flags_region_usedInitialEllipseMax:  the pixel region for the final fit was set to the upper bound defined by the initial fit
modelfit_CModel_flag_noShape:  the shape slot needed to initialize the parameters failed or was not defined
modelfit_CModel_flags_smallShape:  initial parameter guess resulted in negative radius; used minimum of 0.100000 pixels instead.
modelfit_CModel_ellipse_xx:  fracDev-weighted average of exp.ellipse and dev.ellipse
modelfit_CModel_ellipse_yy:  fracDev-weighted average of exp.ellipse and dev.ellipse
modelfit_CModel_ellipse_xy:  fracDev-weighted average of exp.ellipse and dev.ellipse
modelfit_CModel_region_initial_ellipse_xx:  ellipse used to set the pixel region for the initial fit (before applying bad pixel mask)
modelfit_CModel_region_initial_ellipse_yy:  ellipse used to set the pixel region for the initial fit (before applying bad pixel mask)
modelfit_CModel_region_initial_ellipse_xy:  ellipse used to set the pixel region for the initial fit (before applying bad pixel mask)
modelfit_CModel_region_final_ellipse_xx:  ellipse used to set the pixel region for the final fit (before applying bad pixel mask)
modelfit_CModel_region_final_ellipse_yy:  ellipse used to set the pixel region for the final fit (before applying bad pixel mask)
modelfit_CModel_region_final_ellipse_xy:  ellipse used to set the pixel region for the final fit (before applying bad pixel mask)
modelfit_CModel_flag_noShapeletPsf:  the multishapelet fit to the PSF model did not succeed
modelfit_CModel_flag_badCentroid:  input centroid was not within the fit region (probably because it''s not within the Footprint)
detect_isPatchInner:  true if source is in the inner region of a coadd patch
detect_isTractInner:  true if source is in the inner region of a coadd tract
detect_isPrimary:  true if source has no children and is in the inner region of a coadd patch and is in the inner region of a coadd tract and is not "detected" in a pseudo-filter (see config.pseudoFilterList)
calib_psf_candidate:  Propagated from visits
calib_psf_used:  Propagated from visits
calib_psf_reserved:  Propagated from visits
calib_astrometry_used:  Propagated from visits
calib_photometry_used:  Propagated from visits
calib_photometry_reserved:  Propagated from visits
base_GaussianFlux_apCorr:  aperture correction applied to base_GaussianFlux
base_GaussianFlux_apCorrErr:  standard deviation of aperture correction applied to base_GaussianFlux
base_GaussianFlux_flag_apCorr:  set if unable to aperture correct base_GaussianFlux
base_PsfFlux_apCorr:  aperture correction applied to base_PsfFlux
base_PsfFlux_apCorrErr:  standard deviation of aperture correction applied to base_PsfFlux
base_PsfFlux_flag_apCorr:  set if unable to aperture correct base_PsfFlux
ext_convolved_ConvolvedFlux_0_3_3_apCorr:  aperture correction applied to ext_convolved_ConvolvedFlux_0_3_3
ext_convolved_ConvolvedFlux_0_3_3_apCorrErr:  standard deviation of aperture correction applied to ext_convolved_ConvolvedFlux_0_3_3
ext_convolved_ConvolvedFlux_0_3_3_flag_apCorr:  set if unable to aperture correct ext_convolved_ConvolvedFlux_0_3_3
ext_convolved_ConvolvedFlux_0_4_5_apCorr:  aperture correction applied to ext_convolved_ConvolvedFlux_0_4_5
ext_convolved_ConvolvedFlux_0_4_5_apCorrErr:  standard deviation of aperture correction applied to ext_convolved_ConvolvedFlux_0_4_5
ext_convolved_ConvolvedFlux_0_4_5_flag_apCorr:  set if unable to aperture correct ext_convolved_ConvolvedFlux_0_4_5
ext_convolved_ConvolvedFlux_0_6_0_apCorr:  aperture correction applied to ext_convolved_ConvolvedFlux_0_6_0
ext_convolved_ConvolvedFlux_0_6_0_apCorrErr:  standard deviation of aperture correction applied to ext_convolved_ConvolvedFlux_0_6_0
ext_convolved_ConvolvedFlux_0_6_0_flag_apCorr:  set if unable to aperture correct ext_convolved_ConvolvedFlux_0_6_0
ext_convolved_ConvolvedFlux_0_kron_apCorr:  aperture correction applied to ext_convolved_ConvolvedFlux_0_kron
ext_convolved_ConvolvedFlux_0_kron_apCorrErr:  standard deviation of aperture correction applied to ext_convolved_ConvolvedFlux_0_kron
ext_convolved_ConvolvedFlux_0_kron_flag_apCorr:  set if unable to aperture correct ext_convolved_ConvolvedFlux_0_kron
ext_convolved_ConvolvedFlux_1_3_3_apCorr:  aperture correction applied to ext_convolved_ConvolvedFlux_1_3_3
ext_convolved_ConvolvedFlux_1_3_3_apCorrErr:  standard deviation of aperture correction applied to ext_convolved_ConvolvedFlux_1_3_3
ext_convolved_ConvolvedFlux_1_3_3_flag_apCorr:  set if unable to aperture correct ext_convolved_ConvolvedFlux_1_3_3
ext_convolved_ConvolvedFlux_1_4_5_apCorr:  aperture correction applied to ext_convolved_ConvolvedFlux_1_4_5
ext_convolved_ConvolvedFlux_1_4_5_apCorrErr:  standard deviation of aperture correction applied to ext_convolved_ConvolvedFlux_1_4_5
ext_convolved_ConvolvedFlux_1_4_5_flag_apCorr:  set if unable to aperture correct ext_convolved_ConvolvedFlux_1_4_5
ext_convolved_ConvolvedFlux_1_6_0_apCorr:  aperture correction applied to ext_convolved_ConvolvedFlux_1_6_0
ext_convolved_ConvolvedFlux_1_6_0_apCorrErr:  standard deviation of aperture correction applied to ext_convolved_ConvolvedFlux_1_6_0
ext_convolved_ConvolvedFlux_1_6_0_flag_apCorr:  set if unable to aperture correct ext_convolved_ConvolvedFlux_1_6_0
ext_convolved_ConvolvedFlux_1_kron_apCorr:  aperture correction applied to ext_convolved_ConvolvedFlux_1_kron
ext_convolved_ConvolvedFlux_1_kron_apCorrErr:  standard deviation of aperture correction applied to ext_convolved_ConvolvedFlux_1_kron
ext_convolved_ConvolvedFlux_1_kron_flag_apCorr:  set if unable to aperture correct ext_convolved_ConvolvedFlux_1_kron
ext_convolved_ConvolvedFlux_2_3_3_apCorr:  aperture correction applied to ext_convolved_ConvolvedFlux_2_3_3
ext_convolved_ConvolvedFlux_2_3_3_apCorrErr:  standard deviation of aperture correction applied to ext_convolved_ConvolvedFlux_2_3_3
ext_convolved_ConvolvedFlux_2_3_3_flag_apCorr:  set if unable to aperture correct ext_convolved_ConvolvedFlux_2_3_3
ext_convolved_ConvolvedFlux_2_4_5_apCorr:  aperture correction applied to ext_convolved_ConvolvedFlux_2_4_5
ext_convolved_ConvolvedFlux_2_4_5_apCorrErr:  standard deviation of aperture correction applied to ext_convolved_ConvolvedFlux_2_4_5
ext_convolved_ConvolvedFlux_2_4_5_flag_apCorr:  set if unable to aperture correct ext_convolved_ConvolvedFlux_2_4_5
ext_convolved_ConvolvedFlux_2_6_0_apCorr:  aperture correction applied to ext_convolved_ConvolvedFlux_2_6_0
ext_convolved_ConvolvedFlux_2_6_0_apCorrErr:  standard deviation of aperture correction applied to ext_convolved_ConvolvedFlux_2_6_0
ext_convolved_ConvolvedFlux_2_6_0_flag_apCorr:  set if unable to aperture correct ext_convolved_ConvolvedFlux_2_6_0
ext_convolved_ConvolvedFlux_2_kron_apCorr:  aperture correction applied to ext_convolved_ConvolvedFlux_2_kron
ext_convolved_ConvolvedFlux_2_kron_apCorrErr:  standard deviation of aperture correction applied to ext_convolved_ConvolvedFlux_2_kron
ext_convolved_ConvolvedFlux_2_kron_flag_apCorr:  set if unable to aperture correct ext_convolved_ConvolvedFlux_2_kron
ext_convolved_ConvolvedFlux_3_3_3_apCorr:  aperture correction applied to ext_convolved_ConvolvedFlux_3_3_3
ext_convolved_ConvolvedFlux_3_3_3_apCorrErr:  standard deviation of aperture correction applied to ext_convolved_ConvolvedFlux_3_3_3
ext_convolved_ConvolvedFlux_3_3_3_flag_apCorr:  set if unable to aperture correct ext_convolved_ConvolvedFlux_3_3_3
ext_convolved_ConvolvedFlux_3_4_5_apCorr:  aperture correction applied to ext_convolved_ConvolvedFlux_3_4_5
ext_convolved_ConvolvedFlux_3_4_5_apCorrErr:  standard deviation of aperture correction applied to ext_convolved_ConvolvedFlux_3_4_5
ext_convolved_ConvolvedFlux_3_4_5_flag_apCorr:  set if unable to aperture correct ext_convolved_ConvolvedFlux_3_4_5
ext_convolved_ConvolvedFlux_3_6_0_apCorr:  aperture correction applied to ext_convolved_ConvolvedFlux_3_6_0
ext_convolved_ConvolvedFlux_3_6_0_apCorrErr:  standard deviation of aperture correction applied to ext_convolved_ConvolvedFlux_3_6_0
ext_convolved_ConvolvedFlux_3_6_0_flag_apCorr:  set if unable to aperture correct ext_convolved_ConvolvedFlux_3_6_0
ext_convolved_ConvolvedFlux_3_kron_apCorr:  aperture correction applied to ext_convolved_ConvolvedFlux_3_kron
ext_convolved_ConvolvedFlux_3_kron_apCorrErr:  standard deviation of aperture correction applied to ext_convolved_ConvolvedFlux_3_kron
ext_convolved_ConvolvedFlux_3_kron_flag_apCorr:  set if unable to aperture correct ext_convolved_ConvolvedFlux_3_kron
ext_photometryKron_KronFlux_apCorr:  aperture correction applied to ext_photometryKron_KronFlux
ext_photometryKron_KronFlux_apCorrErr:  standard deviation of aperture correction applied to ext_photometryKron_KronFlux
ext_photometryKron_KronFlux_flag_apCorr:  set if unable to aperture correct ext_photometryKron_KronFlux
modelfit_CModel_apCorr:  aperture correction applied to modelfit_CModel
modelfit_CModel_apCorrErr:  standard deviation of aperture correction applied to modelfit_CModel
modelfit_CModel_flag_apCorr:  set if unable to aperture correct modelfit_CModel
modelfit_CModel_dev_apCorr:  aperture correction applied to modelfit_CModel_dev
modelfit_CModel_dev_apCorrErr:  standard deviation of aperture correction applied to modelfit_CModel_dev
modelfit_CModel_dev_flag_apCorr:  set if unable to aperture correct modelfit_CModel_dev
modelfit_CModel_exp_apCorr:  aperture correction applied to modelfit_CModel_exp
modelfit_CModel_exp_apCorrErr:  standard deviation of aperture correction applied to modelfit_CModel_exp
modelfit_CModel_exp_flag_apCorr:  set if unable to aperture correct modelfit_CModel_exp
modelfit_CModel_initial_apCorr:  aperture correction applied to modelfit_CModel_initial
modelfit_CModel_initial_apCorrErr:  standard deviation of aperture correction applied to modelfit_CModel_initial
modelfit_CModel_initial_flag_apCorr:  set if unable to aperture correct modelfit_CModel_initial
base_ClassificationExtendedness_value:  Set to 1 for extended sources, 0 for point sources.
base_ClassificationExtendedness_flag:  Set to 1 for any fatal failure.
base_FootprintArea_value:  Number of pixels in the source''s detection footprint.
In [16]:
# All the cosmoDC2 parameters:
# help(gc)
gc.list_all_quantities()
Out[16]:
['sed_9395_583_bulge',
 'sed_7843_486',
 'sed_8846_549_disk',
 'sed_1246_306_no_host_extinction',
 'sed_7843_486_disk',
 'halo_mass',
 'sed_4565_283_no_host_extinction',
 'mag_r_lsst',
 'ellipticity_bulge_true',
 'sed_4565_283',
 'mag_u_sdss',
 'sed_6954_431_disk_no_host_extinction',
 'sed_15143_2259_bulge_no_host_extinction',
 'shear_2_treecorr',
 'mag_g_lsst',
 'position_y',
 'mag_true_u',
 'is_central',
 'sed_6166_382',
 'sed_2407_591_disk',
 'sed_4048_251_no_host_extinction',
 'sed_3184_197_bulge',
 'dec',
 'mag_true_z_sdss',
 'Mag_true_z_sdss_z0_no_host_extinction',
 'mag_true_u_lsst_no_host_extinction',
 'sed_3590_222_no_host_extinction',
 'sed_11467_1710_no_host_extinction',
 'sed_4299_266_bulge',
 'mag_z_sdss_no_host_extinction',
 'sed_17402_2596_disk_no_host_extinction',
 'sed_5806_360',
 'sed_8329_517_bulge_no_host_extinction',
 'mag_true_g_sdss_no_host_extinction',
 'sed_2998_186_no_host_extinction',
 'sed_5467_339_no_host_extinction',
 'sed_8846_549_bulge',
 'sed_6166_382_bulge_no_host_extinction',
 'sed_3381_209_bulge_no_host_extinction',
 'sed_8329_517',
 'A_v',
 'sed_1246_306',
 'sed_7385_458_bulge',
 'sed_13177_1966_disk',
 'sed_15143_2259',
 'sed_13177_1966_no_host_extinction',
 'mag_true_i_sdss',
 'sed_1552_381_bulge',
 'sed_8329_517_bulge',
 'velocity_y',
 'sed_15143_2259_disk_no_host_extinction',
 'sed_3381_209_bulge',
 'sed_17402_2596_disk',
 'stellar_mass_disk',
 'sed_4048_251',
 'mag_true_Y_lsst',
 'sed_3812_236',
 'sed_6166_382_disk_no_host_extinction',
 'sed_4848_300_no_host_extinction',
 'sed_9978_1489_no_host_extinction',
 'shear_2',
 'sed_1552_381_disk',
 'ellipticity_true',
 'sed_8846_549',
 'ellipticity_1_true',
 'sed_9395_583_no_host_extinction',
 'sed_4565_283_disk_no_host_extinction',
 'mag_true_i_sdss_no_host_extinction',
 'sed_1000_246_no_host_extinction',
 'stellar_mass',
 'shear_2_phosim',
 'mag_i_lsst_no_host_extinction',
 'sed_8846_549_bulge_no_host_extinction',
 'sed_1000_246_bulge',
 'Mag_true_z_lsst_z0_no_host_extinction',
 'sed_8329_517_disk_no_host_extinction',
 'Mag_true_z_lsst_z0',
 'sed_5806_360_bulge_no_host_extinction',
 'sed_3184_197_no_host_extinction',
 'Mag_true_g_lsst_z0_no_host_extinction',
 'Mag_true_u_lsst_z0',
 'mag_i_lsst',
 'mag_true_i_lsst_no_host_extinction',
 'Mag_true_y_lsst_z0_no_host_extinction',
 'sed_2407_591_no_host_extinction',
 'mag_r_lsst_no_host_extinction',
 'mag_Y_lsst',
 'Mag_true_r_lsst_z0',
 'sed_5467_339_bulge',
 'size_bulge_true',
 'mag_true_y_lsst',
 'mag_r_sdss_no_host_extinction',
 'mag_true_z',
 'mag_true_g',
 'sed_4565_283_bulge',
 'R_v_bulge',
 'mag_z',
 'sed_3381_209_disk',
 'shear_1',
 'sed_4048_251_disk',
 'mag_Y_lsst_no_host_extinction',
 'mag_y',
 'mag_true_z_lsst',
 'mag_true_u_sdss',
 'sed_5467_339_disk_no_host_extinction',
 'sed_3812_236_bulge',
 'mag_z_sdss',
 'mag_true_g_sdss',
 'sed_3381_209',
 'sed_3812_236_no_host_extinction',
 'ellipticity_2_bulge_true',
 'mag_true_r',
 'sed_1000_246_disk_no_host_extinction',
 'sed_6548_406_bulge',
 'sed_17402_2596',
 'sed_13177_1966_bulge',
 'sed_17402_2596_bulge_no_host_extinction',
 'sed_13177_1966_disk_no_host_extinction',
 'sed_1000_246_bulge_no_host_extinction',
 'sed_5148_319_no_host_extinction',
 'mag_true_i',
 'sed_1933_474_no_host_extinction',
 'size_minor_bulge_true',
 'position_angle_true',
 'sed_1552_381_bulge_no_host_extinction',
 'redshift_true',
 'sed_3184_197_bulge_no_host_extinction',
 'mag_true_r_lsst',
 'sed_9978_1489_bulge_no_host_extinction',
 'sed_2998_186',
 'sed_2407_591',
 'sed_7843_486_bulge_no_host_extinction',
 'mag_z_lsst_no_host_extinction',
 'sed_5467_339_disk',
 'sed_5148_319_disk',
 'ellipticity_2_disk_true',
 'mag_true_z_sdss_no_host_extinction',
 'mag_true_z_lsst_no_host_extinction',
 'sersic_bulge',
 'sed_8846_549_disk_no_host_extinction',
 'sed_3812_236_bulge_no_host_extinction',
 'size_minor_true',
 'mag_g_lsst_no_host_extinction',
 'sed_1933_474_disk_no_host_extinction',
 'sed_1552_381_disk_no_host_extinction',
 'Mag_true_i_sdss_z0_no_host_extinction',
 'sed_13177_1966',
 'sed_9395_583_bulge_no_host_extinction',
 'sed_6548_406_no_host_extinction',
 'sed_4299_266_no_host_extinction',
 'Mag_true_Y_lsst_z0',
 'sed_2407_591_disk_no_host_extinction',
 'mag_true_Y_lsst_no_host_extinction',
 'ra',
 'sed_9978_1489_bulge',
 'sed_11467_1710_bulge_no_host_extinction',
 'mag_true_u_sdss_no_host_extinction',
 'mag_r',
 'sed_5148_319_disk_no_host_extinction',
 'sed_7843_486_bulge',
 'sed_4048_251_bulge',
 'sed_3590_222_bulge',
 'mag_true_u_lsst',
 'mag_g_sdss_no_host_extinction',
 'sed_2998_186_bulge',
 'sed_7385_458_disk_no_host_extinction',
 'sed_1933_474_disk',
 'sed_7843_486_disk_no_host_extinction',
 'sed_6166_382_bulge',
 'size_disk_true',
 'sed_9395_583_disk_no_host_extinction',
 'mag_true_y',
 'sed_3590_222_bulge_no_host_extinction',
 'sed_4848_300_bulge',
 'Mag_true_r_sdss_z0',
 'sed_15143_2259_disk',
 'sed_6548_406_bulge_no_host_extinction',
 'sed_15143_2259_bulge',
 'sed_4565_283_bulge_no_host_extinction',
 'mag_y_lsst_no_host_extinction',
 'sed_3590_222',
 'position_z',
 'sed_11467_1710_disk_no_host_extinction',
 'sed_2998_186_disk_no_host_extinction',
 'mag_u_lsst_no_host_extinction',
 'sed_4048_251_bulge_no_host_extinction',
 'size_minor_disk_true',
 'ellipticity_1_disk_true',
 'Mag_true_y_lsst_z0',
 'dec_true',
 'sed_7385_458_bulge_no_host_extinction',
 'sed_4048_251_disk_no_host_extinction',
 'sed_8329_517_no_host_extinction',
 'sed_6954_431_bulge',
 'Mag_true_z_sdss_z0',
 'sed_3184_197_disk_no_host_extinction',
 'sed_17402_2596_bulge',
 'sed_6954_431',
 'sed_5467_339_bulge_no_host_extinction',
 'sed_5806_360_disk',
 'redshift',
 'sed_1246_306_disk',
 'Mag_true_u_lsst_z0_no_host_extinction',
 'sed_6954_431_bulge_no_host_extinction',
 'sed_5806_360_disk_no_host_extinction',
 'sed_1246_306_bulge_no_host_extinction',
 'sed_6954_431_no_host_extinction',
 'sed_1246_306_disk_no_host_extinction',
 'sed_8329_517_disk',
 'sed_6166_382_disk',
 'velocity_x',
 'sed_4565_283_disk',
 'sed_6548_406_disk_no_host_extinction',
 'sed_4299_266_disk_no_host_extinction',
 'sed_1552_381',
 'sed_2407_591_bulge_no_host_extinction',
 'mag_z_lsst',
 'mag_true_g_lsst_no_host_extinction',
 'Mag_true_i_sdss_z0',
 'sed_3812_236_disk_no_host_extinction',
 'sersic_disk',
 'Mag_true_r_lsst_z0_no_host_extinction',
 'sed_6954_431_disk',
 'mag_g',
 'halo_id',
 'mag_u',
 'mag_true_y_lsst_no_host_extinction',
 'sed_11467_1710',
 'sed_4299_266_bulge_no_host_extinction',
 'sed_1552_381_no_host_extinction',
 'mag_g_sdss',
 'sed_4299_266',
 'sed_5806_360_no_host_extinction',
 'mag_true_r_sdss',
 'sed_9395_583_disk',
 'R_v',
 'Mag_true_g_sdss_z0_no_host_extinction',
 'Mag_true_r_sdss_z0_no_host_extinction',
 'ellipticity_1_bulge_true',
 'Mag_true_i_lsst_z0',
 'sed_15143_2259_no_host_extinction',
 'sed_9395_583',
 'A_v_disk',
 'sed_4848_300_bulge_no_host_extinction',
 'sed_8846_549_no_host_extinction',
 'sed_4848_300_disk_no_host_extinction',
 'Mag_true_g_lsst_z0',
 'mag_i',
 'mag_true_g_lsst',
 'ellipticity_2_true',
 'sed_5806_360_bulge',
 'sed_2998_186_disk',
 'sed_11467_1710_disk',
 'sed_1933_474_bulge_no_host_extinction',
 'Mag_true_i_lsst_z0_no_host_extinction',
 'magnification',
 'sed_6166_382_no_host_extinction',
 'mag_true_r_sdss_no_host_extinction',
 'mag_true_r_lsst_no_host_extinction',
 'sed_1000_246_disk',
 'mag_r_sdss',
 'sed_2407_591_bulge',
 'sed_3381_209_no_host_extinction',
 'galaxy_id',
 'mag_i_sdss',
 'sed_5148_319',
 'sed_9978_1489_disk',
 'sed_13177_1966_bulge_no_host_extinction',
 'sed_4848_300_disk',
 'sed_6548_406_disk',
 'mag_u_lsst',
 'R_v_disk',
 'velocity_z',
 'sed_6548_406',
 'sed_7385_458_disk',
 'sed_9978_1489_disk_no_host_extinction',
 'Mag_true_g_sdss_z0',
 'bulge_to_total_ratio_i',
 'Mag_true_Y_lsst_z0_no_host_extinction',
 'ellipticity_disk_true',
 'sed_1933_474_bulge',
 'sed_3812_236_disk',
 'Mag_true_u_sdss_z0',
 'sed_7385_458',
 'convergence',
 'sed_1000_246',
 'sed_4848_300',
 'size_true',
 'sed_7843_486_no_host_extinction',
 'sed_9978_1489',
 'sed_3590_222_disk',
 'A_v_bulge',
 'sed_3184_197_disk',
 'sed_5467_339',
 'mag_y_lsst',
 'ra_true',
 'sed_5148_319_bulge',
 'sed_3381_209_disk_no_host_extinction',
 'sed_11467_1710_bulge',
 'sed_2998_186_bulge_no_host_extinction',
 'position_x',
 'sed_17402_2596_no_host_extinction',
 'mag_u_sdss_no_host_extinction',
 'sed_4299_266_disk',
 'sed_7385_458_no_host_extinction',
 'mag_i_sdss_no_host_extinction',
 'stellar_mass_bulge',
 'Mag_true_u_sdss_z0_no_host_extinction',
 'sed_5148_319_bulge_no_host_extinction',
 'sed_1246_306_bulge',
 'mag_true_i_lsst',
 'sed_3184_197',
 'sed_1933_474',
 'sed_3590_222_disk_no_host_extinction']
In [ ]: