LSST Applications g0265f82a02+0e5473021a,g02d81e74bb+f5613e8b4f,g1470d8bcf6+190ad2ba91,g14a832a312+311607e4ab,g2079a07aa2+86d27d4dc4,g2305ad1205+a8e3196225,g295015adf3+b67ee847e5,g2bbee38e9b+0e5473021a,g337abbeb29+0e5473021a,g3ddfee87b4+a761f810f3,g487adcacf7+17c8fdbcbd,g50ff169b8f+96c6868917,g52b1c1532d+585e252eca,g591dd9f2cf+65b5bd823e,g5a732f18d5+53520f316c,g64a986408d+f5613e8b4f,g6c1bc301e9+51106c2951,g858d7b2824+f5613e8b4f,g8a8a8dda67+585e252eca,g99cad8db69+6729933424,g9ddcbc5298+9a081db1e4,ga1e77700b3+15fc3df1f7,ga8c6da7877+ef4e3a5875,gb0e22166c9+60f28cb32d,gb6a65358fc+0e5473021a,gba4ed39666+c2a2e4ac27,gbb8dafda3b+e9bba80f27,gc120e1dc64+eee469a5e5,gc28159a63d+0e5473021a,gcf0d15dbbd+a761f810f3,gdaeeff99f8+f9a426f77a,ge6526c86ff+d4c1d4bfef,ge79ae78c31+0e5473021a,gee10cc3b42+585e252eca,gf1cff7945b+f5613e8b4f,w.2024.16
LSST Data Management Base Package
Loading...
Searching...
No Matches
Public Member Functions | Public Attributes | Protected Member Functions | Protected Attributes | List of all members
lsst.meas.algorithms.stamps.StampsBase Class Reference
Inheritance diagram for lsst.meas.algorithms.stamps.StampsBase:
lsst.meas.algorithms.stamps.Stamps lsst.meas.algorithms.brightStarStamps.BrightStarStamps

Public Member Functions

 __init__ (self, stamps, metadata=None, use_mask=True, use_variance=True, use_archive=False)
 
 readFits (cls, filename)
 
 readFitsWithOptions (cls, filename, options)
 
 writeFits (self, filename)
 
 __len__ (self)
 
 __getitem__ (self, index)
 
 __iter__ (self)
 
 getMaskedImages (self)
 
 getArchiveElements (self)
 
 metadata (self)
 

Public Attributes

 use_mask
 
 use_variance
 
 use_archive
 

Protected Member Functions

 _refresh_metadata (self)
 

Protected Attributes

 _stamps
 
 _metadata
 

Detailed Description

Collection of stamps and associated metadata.

Parameters
----------
stamps : iterable
    This should be an iterable of dataclass objects
    a la ``~lsst.meas.algorithms.Stamp``.
metadata : `~lsst.daf.base.PropertyList`, optional
    Metadata associated with the objects within the stamps.
use_mask : `bool`, optional
    If ``True`` read and write the mask data. Default ``True``.
use_variance : `bool`, optional
    If ``True`` read and write the variance data. Default ``True``.
use_archive : `bool`, optional
    If ``True``, read and write an Archive that contains a Persistable
    associated with each stamp, for example a Transform or a WCS.
    Default ``False``.

Notes
-----
A butler can be used to read only a part of the stamps,
specified by a bbox:

>>> starSubregions = butler.get(
        "brightStarStamps",
        dataId,
        parameters={"bbox": bbox}
    )

Definition at line 311 of file stamps.py.

Constructor & Destructor Documentation

◆ __init__()

lsst.meas.algorithms.stamps.StampsBase.__init__ ( self,
stamps,
metadata = None,
use_mask = True,
use_variance = True,
use_archive = False )

Reimplemented in lsst.meas.algorithms.brightStarStamps.BrightStarStamps.

Definition at line 342 of file stamps.py.

342 def __init__(self, stamps, metadata=None, use_mask=True, use_variance=True, use_archive=False):
343 for stamp in stamps:
344 if not isinstance(stamp, AbstractStamp):
345 raise ValueError(f"The entries in stamps must inherit from AbstractStamp. Got {type(stamp)}.")
346 self._stamps = stamps
347 self._metadata = PropertyList() if metadata is None else metadata.deepCopy()
348 self.use_mask = use_mask
349 self.use_variance = use_variance
350 self.use_archive = use_archive
351

Member Function Documentation

◆ __getitem__()

lsst.meas.algorithms.stamps.StampsBase.__getitem__ ( self,
index )

Definition at line 426 of file stamps.py.

426 def __getitem__(self, index):
427 return self._stamps[index]
428

◆ __iter__()

lsst.meas.algorithms.stamps.StampsBase.__iter__ ( self)

Definition at line 429 of file stamps.py.

429 def __iter__(self):
430 return iter(self._stamps)
431

◆ __len__()

lsst.meas.algorithms.stamps.StampsBase.__len__ ( self)

Definition at line 423 of file stamps.py.

423 def __len__(self):
424 return len(self._stamps)
425

◆ _refresh_metadata()

lsst.meas.algorithms.stamps.StampsBase._refresh_metadata ( self)
protected
Make sure metadata is up to date, as this object can be extended.

Reimplemented in lsst.meas.algorithms.brightStarStamps.BrightStarStamps, and lsst.meas.algorithms.stamps.Stamps.

Definition at line 399 of file stamps.py.

399 def _refresh_metadata(self):
400 """Make sure metadata is up to date, as this object can be extended."""
401 raise NotImplementedError
402

◆ getArchiveElements()

lsst.meas.algorithms.stamps.StampsBase.getArchiveElements ( self)
Retrieve archive elements associated with each stamp.

Returns
-------
archiveElements :
    `list` [`~lsst.afw.table.io.Persistable`]

Definition at line 442 of file stamps.py.

442 def getArchiveElements(self):
443 """Retrieve archive elements associated with each stamp.
444
445 Returns
446 -------
447 archiveElements :
448 `list` [`~lsst.afw.table.io.Persistable`]
449 """
450 return [stamp.archive_element for stamp in self._stamps]
451

◆ getMaskedImages()

lsst.meas.algorithms.stamps.StampsBase.getMaskedImages ( self)
Retrieve star images.

Returns
-------
maskedImages :
    `list` [`~lsst.afw.image.MaskedImageF`]

Definition at line 432 of file stamps.py.

432 def getMaskedImages(self):
433 """Retrieve star images.
434
435 Returns
436 -------
437 maskedImages :
438 `list` [`~lsst.afw.image.MaskedImageF`]
439 """
440 return [stamp.stamp_im for stamp in self._stamps]
441

◆ metadata()

lsst.meas.algorithms.stamps.StampsBase.metadata ( self)

Definition at line 453 of file stamps.py.

453 def metadata(self):
454 return self._metadata
455
456

◆ readFits()

lsst.meas.algorithms.stamps.StampsBase.readFits ( cls,
filename )
Build an instance of this class from a file.

Parameters
----------
filename : `str`
    Name of the file to read

Reimplemented in lsst.meas.algorithms.brightStarStamps.BrightStarStamps, and lsst.meas.algorithms.stamps.Stamps.

Definition at line 353 of file stamps.py.

353 def readFits(cls, filename):
354 """Build an instance of this class from a file.
355
356 Parameters
357 ----------
358 filename : `str`
359 Name of the file to read
360 """
361
362 return cls.readFitsWithOptions(filename, None)
363

◆ readFitsWithOptions()

lsst.meas.algorithms.stamps.StampsBase.readFitsWithOptions ( cls,
filename,
options )
Build an instance of this class with options.

Parameters
----------
filename : `str`
    Name of the file to read
options : `PropertyList`
    Collection of metadata parameters

Reimplemented in lsst.meas.algorithms.brightStarStamps.BrightStarStamps, and lsst.meas.algorithms.stamps.Stamps.

Definition at line 365 of file stamps.py.

365 def readFitsWithOptions(cls, filename, options):
366 """Build an instance of this class with options.
367
368 Parameters
369 ----------
370 filename : `str`
371 Name of the file to read
372 options : `PropertyList`
373 Collection of metadata parameters
374 """
375 # To avoid problems since this is no longer an abstract method.
376 # TO-DO: Consider refactoring this method. This class check was added
377 # to allow the butler formatter to use a generic type but still end up
378 # giving the correct type back, ensuring that the abstract base class
379 # is not used by mistake. Perhaps this logic can be optimised.
380 if cls is not StampsBase:
381 raise NotImplementedError(f"Please implement specific FITS reader for class {cls}")
382
383 # Load metadata to get class
384 metadata = readMetadata(filename, hdu=0)
385 type_name = metadata.get("STAMPCLS")
386 if type_name is None:
387 raise RuntimeError(
388 f"No class name in file {filename}. Unable to instantiate correct stamps subclass. "
389 "Is this an old version format Stamps file?"
390 )
391
392 # Import class and override `cls`
393 stamp_type = doImport(type_name)
394 cls = stamp_type
395
396 return cls.readFitsWithOptions(filename, options)
397

◆ writeFits()

lsst.meas.algorithms.stamps.StampsBase.writeFits ( self,
filename )
Write this object to a file.

Parameters
----------
filename : `str`
    Name of file to write.

Definition at line 403 of file stamps.py.

403 def writeFits(self, filename):
404 """Write this object to a file.
405
406 Parameters
407 ----------
408 filename : `str`
409 Name of file to write.
410 """
411 self._refresh_metadata()
412 type_name = get_full_type_name(self)
413 writeFits(
414 filename,
415 self._stamps,
416 self._metadata,
417 type_name,
418 self.use_mask,
419 self.use_variance,
420 self.use_archive,
421 )
422

Member Data Documentation

◆ _metadata

lsst.meas.algorithms.stamps.StampsBase._metadata
protected

Definition at line 347 of file stamps.py.

◆ _stamps

lsst.meas.algorithms.stamps.StampsBase._stamps
protected

Definition at line 346 of file stamps.py.

◆ use_archive

lsst.meas.algorithms.stamps.StampsBase.use_archive

Definition at line 350 of file stamps.py.

◆ use_mask

lsst.meas.algorithms.stamps.StampsBase.use_mask

Definition at line 348 of file stamps.py.

◆ use_variance

lsst.meas.algorithms.stamps.StampsBase.use_variance

Definition at line 349 of file stamps.py.


The documentation for this class was generated from the following file: