LSST Applications 27.0.0,g0265f82a02+469cd937ee,g02d81e74bb+21ad69e7e1,g1470d8bcf6+cbe83ee85a,g2079a07aa2+e67c6346a6,g212a7c68fe+04a9158687,g2305ad1205+94392ce272,g295015adf3+81dd352a9d,g2bbee38e9b+469cd937ee,g337abbeb29+469cd937ee,g3939d97d7f+72a9f7b576,g487adcacf7+71499e7cba,g50ff169b8f+5929b3527e,g52b1c1532d+a6fc98d2e7,g591dd9f2cf+df404f777f,g5a732f18d5+be83d3ecdb,g64a986408d+21ad69e7e1,g858d7b2824+21ad69e7e1,g8a8a8dda67+a6fc98d2e7,g99cad8db69+f62e5b0af5,g9ddcbc5298+d4bad12328,ga1e77700b3+9c366c4306,ga8c6da7877+71e4819109,gb0e22166c9+25ba2f69a1,gb6a65358fc+469cd937ee,gbb8dafda3b+69d3c0e320,gc07e1c2157+a98bf949bb,gc120e1dc64+615ec43309,gc28159a63d+469cd937ee,gcf0d15dbbd+72a9f7b576,gdaeeff99f8+a38ce5ea23,ge6526c86ff+3a7c1ac5f1,ge79ae78c31+469cd937ee,gee10cc3b42+a6fc98d2e7,gf1cff7945b+21ad69e7e1,gfbcc870c63+9a11dc8c8f
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: