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 Attributes | List of all members
lsst.meas.base._id_generator.FullIdGenerator Class Reference
Inheritance diagram for lsst.meas.base._id_generator.FullIdGenerator:
lsst.meas.base._id_generator.IdGenerator

Public Member Functions

 __init__ (self, DimensionPacker dimension_packer, DataCoordinate data_id, int release_id=DEFAULT_RELEASE_ID, int n_releases=DEFAULT_N_RELEASES)
 
DataCoordinate data_id (self)
 
int release_id (self)
 
int catalog_id (self)
 
str __str__ (self)
 
IdFactory make_table_id_factory (self)
 
np.ndarray arange (self, *args, **kwargs)
 

Public Attributes

 data_id
 
 catalog_id
 

Protected Attributes

 _bits
 
 _release_id
 
 _data_id
 
 _packed_data_id
 

Detailed Description

The subclass of `IdGenerator` that actually includes packed data IDs
and release IDs in its generated IDs.

Parameters
----------
dimension_packer : `lsst.daf.butler.DimensionPacker`
    Object that packs data IDs into integers.
data_id : `lsst.daf.butler.DataCoordinate`
    Data ID to embed in all generated IDs and random seeds.
release_id : `int`, optional
    Release identifier to embed in generated IDs.
n_releases : `int`, optional
    Number of (contiguous, starting from zero) `release_id` values to
    reserve space for. One (not zero) is used to reserve no space.

Notes
-----
Instances of this class should usually be constructed via configuration
instead of by calling the constructor directly; see `IdGenerator` for
details.

Definition at line 419 of file _id_generator.py.

Constructor & Destructor Documentation

◆ __init__()

lsst.meas.base._id_generator.FullIdGenerator.__init__ ( self,
DimensionPacker dimension_packer,
DataCoordinate data_id,
int release_id = DEFAULT_RELEASE_ID,
int n_releases = DEFAULT_N_RELEASES )

Definition at line 442 of file _id_generator.py.

448 ):
449 self._bits = _IdGeneratorBits(dimension_packer, n_releases)
450 self._release_id = release_id
451 self._data_id = data_id.subset(self._bits.packer.dimensions)
452 self._packed_data_id = self._bits.packer.pack(self._data_id)
453

Member Function Documentation

◆ __str__()

str lsst.meas.base._id_generator.FullIdGenerator.__str__ ( self)
Return a human-readable representation of the data ID (or a note
about its absence) for use in log and error messages.

Reimplemented from lsst.meas.base._id_generator.IdGenerator.

Definition at line 470 of file _id_generator.py.

470 def __str__(self) -> str:
471 # Docstring inherited.
472 return str(self.data_id)
473

◆ arange()

np.ndarray lsst.meas.base._id_generator.FullIdGenerator.arange ( self,
* args,
** kwargs )
Generate an array of integer IDs for this catalog.

All parameters are forwarded to `numpy.arange` to generate an array of
per-catalog counter integers.  These are then combined with the
`catalog_id`` to form the returned array.

The IDs generated by `arange` will be equivalent to those generated by
`make_table_id_factory` (and by extension, `make_source_catalog`) only
if the counter integers start with ``1``, not ``0``, because that's
what `~lsst.afw.table.IdFactory` does.

Reimplemented from lsst.meas.base._id_generator.IdGenerator.

Definition at line 478 of file _id_generator.py.

478 def arange(self, *args, **kwargs) -> np.ndarray:
479 # Docstring inherited.
480 lower = super().arange(*args, **kwargs)
481 if np.any(lower >= self._bits.n_counters):
482 arg_terms = [repr(arg) for arg in args] + [f"{k}={v!r}" for k, v in kwargs.items()]
483 raise ValueError(
484 f"Integer range from numpy.arange({arg_terms}) has "
485 f"{(lower >= self._bits.n_counters).sum()} values that are not "
486 f"below the upper bound of {self._bits.n_counters}."
487 )
488 return lower + self.catalog_id * self._bits.n_counters
489
490
491@dataclasses.dataclass

◆ catalog_id()

int lsst.meas.base._id_generator.FullIdGenerator.catalog_id ( self)
The integer identifier for the full catalog with this data ID, not
just one of its rows (`int`).

This combines the packed data ID and release ID, but not the
counter.

Reimplemented from lsst.meas.base._id_generator.IdGenerator.

Definition at line 466 of file _id_generator.py.

466 def catalog_id(self) -> int:
467 # Docstring inherited.
468 return self._packed_data_id + self._bits.n_data_ids * self._release_id
469

◆ data_id()

DataCoordinate lsst.meas.base._id_generator.FullIdGenerator.data_id ( self)
The data ID that will be embedded in all generated IDs
(`DataCoordinate`).

Definition at line 455 of file _id_generator.py.

455 def data_id(self) -> DataCoordinate:
456 """The data ID that will be embedded in all generated IDs
457 (`DataCoordinate`)."""
458 return self._data_id
459

◆ make_table_id_factory()

IdFactory lsst.meas.base._id_generator.FullIdGenerator.make_table_id_factory ( self)
Construct a new `lsst.afw.table.IdFactory` for this catalog.

Reimplemented from lsst.meas.base._id_generator.IdGenerator.

Definition at line 474 of file _id_generator.py.

474 def make_table_id_factory(self) -> IdFactory:
475 # Docstring inherited.
476 return IdFactory.makeSource(self.catalog_id, self._bits.counter_bits)
477

◆ release_id()

int lsst.meas.base._id_generator.FullIdGenerator.release_id ( self)
The release ID that will embedded in all generated IDs (`int`).

Definition at line 461 of file _id_generator.py.

461 def release_id(self) -> int:
462 """The release ID that will embedded in all generated IDs (`int`)."""
463 return self._release_id
464

Member Data Documentation

◆ _bits

lsst.meas.base._id_generator.FullIdGenerator._bits
protected

Definition at line 449 of file _id_generator.py.

◆ _data_id

lsst.meas.base._id_generator.FullIdGenerator._data_id
protected

Definition at line 451 of file _id_generator.py.

◆ _packed_data_id

lsst.meas.base._id_generator.FullIdGenerator._packed_data_id
protected

Definition at line 452 of file _id_generator.py.

◆ _release_id

lsst.meas.base._id_generator.FullIdGenerator._release_id
protected

Definition at line 450 of file _id_generator.py.

◆ catalog_id

lsst.meas.base._id_generator.FullIdGenerator.catalog_id

Definition at line 476 of file _id_generator.py.

◆ data_id

lsst.meas.base._id_generator.FullIdGenerator.data_id

Definition at line 472 of file _id_generator.py.


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