Skip to content

Commit 61d1c71

Browse files
committed
Add the TEx PSF metric in summary stats.
1 parent 40765c0 commit 61d1c71

File tree

1 file changed

+150
-0
lines changed

1 file changed

+150
-0
lines changed

python/lsst/afw/image/_exposureSummaryStats.py

Lines changed: 150 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -162,6 +162,84 @@ class ExposureSummaryStats(Storable):
162162
zeroPoint, and readNoise.
163163
"""
164164

165+
psfTE1e1: float = float('nan')
166+
"""Per-exposure TE1e1 ~ <de1 de1> of PSF residual ellipticity, averaged over
167+
theta [0,1] arcmin via treecorr KK correlation. Dimensionless; used to form the
168+
full-survey TE1 metric.
169+
"""
170+
171+
psfTE1e2: float = float('nan')
172+
"""Per-exposure TE1e2 ~ <de2 de2> of PSF residual ellipticity, averaged over
173+
theta [0,1] arcmin via treecorr KK correlation. Dimensionless; used to form the
174+
full-survey TE1 metric.
175+
"""
176+
177+
psfTE1ex: float = float('nan')
178+
"""Per-exposure TE1ex ~ <de1 de2> of PSF residual ellipticity, averaged over
179+
theta [0,1] arcmin via treecorr KK correlation. Dimensionless; used to form the
180+
full-survey TE1 metric.
181+
"""
182+
183+
psfTE2e1: float = float('nan')
184+
"""Per-exposure TE2e1 ~ <de1 de1> of PSF residual ellipticity, averaged over
185+
theta [5,100] arcmin via treecorr KK correlation. Dimensionless; used to form the
186+
full-survey TE2 metric.
187+
"""
188+
189+
psfTE2e2: float = float('nan')
190+
"""Per-exposure TE2e2 ~ <de2 de2> of PSF residual ellipticity, averaged over
191+
theta [5,100] arcmin via treecorr KK correlation. Dimensionless; used to form the
192+
full-survey TE2 metric.
193+
"""
194+
195+
psfTE2ex: float = float('nan')
196+
"""Per-exposure TE2ex ~ <de1 de2> of PSF residual ellipticity, averaged over
197+
theta [5,100] arcmin via treecorr KK correlation. Dimensionless; used to form the
198+
full-survey TE2 metric.
199+
"""
200+
201+
psfTE3e1: float = float('nan')
202+
"""Per-exposure median-over-CCDs of TE3e1 ~ <de1 de1> of PSF residual
203+
ellipticity, where each CCD uses theta within [0,5] arcmin bins. Dimensionless;
204+
downstream pipelines take the 85th percentile over
205+
images to evaluate TE3.
206+
"""
207+
208+
psfTE3e2: float = float('nan')
209+
"""Per-exposure median-over-CCDs of TE3e2 ~ <de2 de2> of PSF residual
210+
ellipticity, where each CCD uses theta within [0,5] arcmin bins. Dimensionless;
211+
downstream pipelines take the 85th percentile over
212+
images to evaluate TE3.
213+
"""
214+
215+
psfTE3ex: float = float('nan')
216+
"""Per-exposure median-over-CCDs of TE3ex ~ <de1 de2> of PSF residual
217+
ellipticity, where each CCD uses theta within [0,5] arcmin bins. Dimensionless;
218+
downstream pipelines take the 85th percentile over
219+
images to evaluate TE3.
220+
"""
221+
222+
psfTE4e1: float = float('nan')
223+
"""Per-exposure median-over-CCDs of TE4e1 ~ <de1 de1> of PSF residual
224+
ellipticity, where each CCD uses theta within [5,20] arcmin bins. Dimensionless;
225+
downstream pipelines take the 85th percentile over
226+
images to evaluate TE4.
227+
"""
228+
229+
psfTE4e2: float = float('nan')
230+
"""Per-exposure median-over-CCDs of TE4e2 ~ <de2 de2> of PSF residual
231+
ellipticity, where each CCD uses theta within [5,20] arcmin bins. Dimensionless;
232+
downstream pipelines take the 85th percentile over
233+
images to evaluate TE4.
234+
"""
235+
236+
psfTE4ex: float = float('nan')
237+
"""Per-exposure median-over-CCDs of TE4ex ~ <de1 de2> of PSF residual
238+
ellipticity, where each CCD uses theta within [5,20] arcmin bins. Dimensionless;
239+
downstream pipelines take the 85th percentile over
240+
images to evaluate TE4.
241+
"""
242+
165243
def __post_init__(self):
166244
Storable.__init__(self)
167245

@@ -417,6 +495,78 @@ def update_schema(cls, schema: Schema) -> None:
417495
"skyBg, zeroPoint, and readNoise.",
418496
units="mag",
419497
)
498+
schema.addField(
499+
"psfTE1e1",
500+
type="F",
501+
doc="Per-exposure E1e1 ~ <de1 de1> of PSF residual ellipticity "
502+
"over theta within [0,1] arcmin. Dimensionless; contributes to TE1.",
503+
)
504+
schema.addField(
505+
"psfTE1e2",
506+
type="F",
507+
doc="Per-exposure E1e2 ~ <de2 de2> of PSF residual ellipticity "
508+
"over theta within [0,1] arcmin. Dimensionless; contributes to TE1.",
509+
)
510+
schema.addField(
511+
"psfTE1ex",
512+
type="F",
513+
doc="Per-exposure E1ex ~ <de1 de2> of PSF residual ellipticity "
514+
"over theta within [0,1] arcmin. Dimensionless; contributes to TE1.",
515+
)
516+
schema.addField(
517+
"psfTE2e1",
518+
type="F",
519+
doc="Per-exposure E2e1 ~ <de1 de1> of PSF residual ellipticity "
520+
"over theta within [5, 100] arcmin. Dimensionless; contributes to TE2.",
521+
)
522+
schema.addField(
523+
"psfTE2e2",
524+
type="F",
525+
doc="Per-exposure E2e2 ~ <de2 de2> of PSF residual ellipticity "
526+
"over theta within [5, 100] arcmin. Dimensionless; contributes to TE2.",
527+
)
528+
schema.addField(
529+
"psfTE2ex",
530+
type="F",
531+
doc="Per-exposure E2ex ~ <de1 de2> of PSF residual ellipticity "
532+
"over theta within [5, 100] arcmin. Dimensionless; contributes to TE2.",
533+
)
534+
schema.addField(
535+
"psfTE3e1",
536+
type="F",
537+
doc="Per-exposure median-over-CCDs of TE3e1 ~ <de1 de1> with "
538+
"per-CCD theta within [0,5] arcmin. Dimensionless; used for TE3.",
539+
)
540+
schema.addField(
541+
"psfTE3e2",
542+
type="F",
543+
doc="Per-exposure median-over-CCDs of TE3e2 ~ <de2 de2> with "
544+
"per-CCD theta within [0,5] arcmin. Dimensionless; used for TE3.",
545+
)
546+
schema.addField(
547+
"psfTE3ex",
548+
type="F",
549+
doc="Per-exposure median-over-CCDs of TE3ex ~ <de1 de2> with "
550+
"per-CCD theta within [0,5] arcmin. Dimensionless; used for TE3.",
551+
)
552+
schema.addField(
553+
"psfTE4e1",
554+
type="F",
555+
doc="Per-exposure median-over-CCDs of TE4e1 ~ <de1 de1> with "
556+
"per-CCD theta within [5, 20] arcmin. Dimensionless; used for TE4.",
557+
)
558+
schema.addField(
559+
"psfTE4e2",
560+
type="F",
561+
doc="Per-exposure median-over-CCDs of TE4e2 ~ <de2 de2> with "
562+
"per-CCD theta within [5, 20] arcmin. Dimensionless; used for TE4.",
563+
)
564+
schema.addField(
565+
"psfTE4ex",
566+
type="F",
567+
doc="Per-exposure median-over-CCDs of TE4ex ~ <de1 de2> with "
568+
"per-CCD theta within [5, 20] arcmin. Dimensionless; used for TE4.",
569+
)
420570

421571
def update_record(self, record: BaseRecord) -> None:
422572
"""Write summary-statistic columns into a record.

0 commit comments

Comments
 (0)