352 def build_catexps(self, butlerQC, inputRefs, inputs) -> list[CatalogExposureInputs]:
353 id_tp = self.config.idGenerator.apply(butlerQC.quantum.dataId).catalog_id
355 if self.config.use_cell_coadds:
356 keys = [
"cats_meas",
"coadds_cell",
"backgrounds"]
358 keys = [
"cats_meas",
"coadds"]
359 has_psf_models =
"models_psf" in inputs
361 keys.append(
"models_psf")
362 input_refs_objs = {key: (getattr(inputRefs, key), inputs[key])
for key
in keys}
364 key: {dRef.dataId: obj
for dRef, obj
in zip(refs, objs, strict=
True)}
365 for key, (refs, objs)
in input_refs_objs.items()
367 cats = inputs_sorted[
"cats_meas"]
368 if self.config.use_cell_coadds:
370 for data_id, background
in inputs_sorted[
"backgrounds"].items():
371 mcc = inputs_sorted[
"coadds_cell"][data_id]
372 stitched_coadd = mcc.stitch()
373 exposure = stitched_coadd.asExposure()
374 exposure.image -= background.getImage()
375 exps[data_id] = exposure
377 exps = inputs_sorted[
"coadds"]
381 ref0 = list(inputs_sorted[
"models_psf"].values())[0]
383 if ref0.ref.datasetType.storageClass_name ==
"ArrowAstropy":
384 parameters = {
"strip_astropy_meta_yaml":
False}
386 key: ref.get(parameters=parameters)
387 for key, ref
in inputs_sorted[
"models_psf"].items()
392 dataIds = set(cats).union(set(exps))
393 models_scarlet = inputs[
"models_scarlet"]
396 for dataId
in dataIds:
397 catalog = cats[dataId]
398 exposure = exps[dataId]
399 updateCatalogFootprints(
400 modelData=models_scarlet,
403 imageForRedistribution=exposure,
404 removeScarletData=
False,
405 updateFluxColumns=
False,
410 table_psf_fits=models_psf[dataId]
if has_psf_models
else astropy.table.Table(),
412 id_tract_patch=id_tp,
416 raise RuntimeError(f
"Did not build any catexps for {inputRefs=}")
418 for band
in self.config.get_band_sets()[0]:
419 if band
in catexp_dict:
420 catexp = catexp_dict[band]
424 dataId_band = dataId.to_simple(minimal=
True)
425 dataId_band.dataId[
"band"] = band
427 catalog=afwTable.SourceCatalog(),
429 table_psf_fits=astropy.table.Table(),
430 dataId=dataId.from_simple(dataId_band, universe=dataId.universe),
431 id_tract_patch=id_tp,
433 catexps.append(catexp)