btk.sampling_functions module
The sampling_functions modules contains everything related to the SamplingFunction
class.
Contains classes of function for extracing information from catalog in blend batches.
- class btk.sampling_functions.BasicSampling(stamp_size: float = 24.0, max_number: int = 4, min_number: int = 1, mag_name: str = 'i_ab', seed: int = 0)
Bases:
SamplingFunction
Example of basic sampling function features.
Includes magnitude cut, restriction on the shape, shift randomization.
- __call__(table: Table) Table
Samples galaxies from input catalog to make blend scene.
Then number of galaxies in a blend are drawn from a uniform distribution of one up to
self.max_number
.Function always selects one bright galaxy that is less than 24 mag. The other galaxies are selected from a sample with mag<25.3 90% of the times and the remaining 10% with mag<28.
All galaxies must have semi-major axis is between 0.2 and 2 arcsec.
The centers are randomly distributed within 1/30 * sqrt(N) of the postage stamp size, where N is the number of objects in the blend. (keeps density constant)
- Parameters:
table – CatSim-like catalog from which to sample galaxies.
- Returns:
Table with entries corresponding to one blend.
- __init__(stamp_size: float = 24.0, max_number: int = 4, min_number: int = 1, mag_name: str = 'i_ab', seed: int = 0)
Initializes the basic sampling function.
- Parameters:
stamp_size – Size of the desired stamp.
max_number – Defined in parent class.
min_number – Defined in parent class.
seed – Seed to initialize randomness for reproducibility.
mag_name – Name of the magnitude column in the catalog for cuts.
- class btk.sampling_functions.DefaultSampling(stamp_size: float = 24.0, max_number: int = 2, min_number: int = 1, max_shift: float | None = None, seed: int = 0, max_mag: float = 25.3, min_mag: float = -inf, mag_name: str = 'i_ab')
Bases:
SamplingFunction
Default sampling function used for producing blend catalogs.
- __call__(table: Table) Table
Applies default sampling to catalog.
Returns an astropy table with entries corresponding to a blend centered close to postage stamp center.
Number of objects per blend is set at a random integer between
self.min_number
andself.max_number
. The blend table is then randomly sampled entries from the table after magnitude selection cuts. The centers are randomly distributed withinself.max_shift
of the center of the postage stamp.Here even though the galaxies are sampled from a CatSim catalog, their spatial location are not representative of real blends.
- Parameters:
table – Table containing entries corresponding to galaxies from which to sample.
- Returns:
Astropy.table with entries corresponding to one blend.
- __init__(stamp_size: float = 24.0, max_number: int = 2, min_number: int = 1, max_shift: float | None = None, seed: int = 0, max_mag: float = 25.3, min_mag: float = -inf, mag_name: str = 'i_ab')
Initializes default sampling function.
- Parameters:
stamp_size – Size of the desired stamp.
max_number – Defined in parent class
min_number – Defined in parent class
max_shift – Magnitude of maximum value of shift. If None then it is set as one-tenth the stamp size. (in arcseconds)
seed – Seed to initialize randomness for reproducibility.
min_mag – Minimum magnitude allowed in samples
max_mag – Maximum magnitude allowed in samples.
mag_name – Name of the magnitude column in the catalog.
- class btk.sampling_functions.DefaultSamplingShear(stamp_size: float = 24.0, max_number: int = 2, min_number: int = 1, max_shift: float | None = None, seed=0, max_mag: float = 25.3, min_mag: float = -inf, mag_name: str = 'i_ab', shear: Tuple[float, float] = (0.0, 0.0))
Bases:
DefaultSampling
Same as DefaultSampling sampling function but includes shear.
- __call__(table: Table, **kwargs) Table
Same as corresponding function for DefaultSampling but adds shear to output tables.
- __init__(stamp_size: float = 24.0, max_number: int = 2, min_number: int = 1, max_shift: float | None = None, seed=0, max_mag: float = 25.3, min_mag: float = -inf, mag_name: str = 'i_ab', shear: Tuple[float, float] = (0.0, 0.0))
Initializes default sampling function with shear.
- Parameters:
stamp_size – Defined in parent class.
max_number – Defined in parent class.
min_number – Defined in parent class.
stamp_size – Defined in parent class.
max_shift – Defined in parent class.
seed – Defined in parent class.
max_mag – Defined in parent class.
min_mag – Defined in parent class.
mag_name – Defined in parent class.
shear – Constant (g1,g2) shear to apply to every galaxy.
- class btk.sampling_functions.DensitySampling(stamp_size: float = 24.0, max_number: int = 40, min_number: int = 0, density: float = 185, max_shift: float | None = None, seed: int = 0, max_mag: float = 27.3, min_mag: float = -inf, mag_name: str = 'i_ab')
Bases:
SamplingFunction
Sampling function that produces galaxy field with a specified density.
- __call__(table: Table) Table
Applies default sampling to catalog.
Returns an astropy table with entries corresponding to a blend centered close to postage stamp center.
Number of objects per blend is set at a random integer between
self.min_number
andself.max_number
. The blend table is then randomly sampled entries from the table after magnitude selection cuts. The centers are randomly distributed withinself.max_shift
of the center of the postage stamp.Here even though the galaxies are sampled from a CatSim catalog, their spatial location are not representative of real blends.
- Parameters:
table – Table containing entries corresponding to galaxies from which to sample.
- Returns:
Astropy.table with entries corresponding to one blend.
- __init__(stamp_size: float = 24.0, max_number: int = 40, min_number: int = 0, density: float = 185, max_shift: float | None = None, seed: int = 0, max_mag: float = 27.3, min_mag: float = -inf, mag_name: str = 'i_ab')
Initializes default sampling function.
- Parameters:
stamp_size – Size of the desired stamp (in arcseconds)
max_number – Defined in parent class
min_number – Defined in parent class
density – Density of galaxies, default corresponds to 27.3 i-band magnitude cut in CATSIM catalog. (in counts / sq. arcmin)
max_shift – Magnitude of maximum value of shift. If None, then centroids can fall anywhere within the image. (in arcseconds)
seed – Seed to initialize randomness for reproducibility.
min_mag – Minimum magnitude allowed in samples
max_mag – Maximum magnitude allowed in samples.
mag_name – Name of the magnitude column in the catalog.
- class btk.sampling_functions.FriendsOfFriendsSampling(stamp_size: float = 24.0, max_number: int = 10, min_number: int = 2, link_distance: int = 2.5, seed: int = 0, min_mag: float = -inf, max_mag: float = 25.3, mag_name: str = 'i_ab')
Bases:
SamplingFunction
Randomly selects galaxies using Friends Of Friends clustering algorithm.
Friends of friends clustering algorithm assigns a group of object same index if one can each member of the group is within link_distance of any other member in the group. This sampling function explicitly uses the spatial information in the input catalog to generate scenes of galaxies. However, blends might not always be returned as a result if the provided link_distance is too small.
- __call__(table: Table)
Samples galaxies from input catalog to make scene.
We assume the input catalog has ra and dec in degrees, like CATSIM does.
- __init__(stamp_size: float = 24.0, max_number: int = 10, min_number: int = 2, link_distance: int = 2.5, seed: int = 0, min_mag: float = -inf, max_mag: float = 25.3, mag_name: str = 'i_ab')
Initializes the FriendsOfFriendsSampling sampling function.
- Parameters:
stamp_size – Defined in parent class.
max_number – Defined in parent class.
min_number – Defined in parent class.
link_distance – Minimum linkage distance to form a group (arcsec).
stamp_size – Size of the desired stamp (arcsec).
seed – Seed to initialize randomness for reproducibility.
min_mag – Minimum magnitude allowed in samples
max_mag – Maximum magnitude allowed in samples.
mag_name – Name of the magnitude column in the catalog.
- class btk.sampling_functions.PairSampling(stamp_size: float = 24.0, max_shift: float | None = None, mag_name: str = 'i_ab', seed: int = 0, bright_cut: float = 25.3, dim_cut: float = 28.0)
Bases:
SamplingFunction
Sampling function for pairs of galaxies. Picks one centered bright galaxy and second dim.
The bright galaxy is centered at the center of the stamp and the dim galaxy is shifted. The bright galaxy is chosen with magnitude less than bright_cut and the dim galaxy is chosen with magnitude cut larger than bright_cut and less than dim_cut. The cuts can be customized by the user at initialization.
- __call__(table: Table)
Samples galaxies from input catalog to make blend scene.
- __init__(stamp_size: float = 24.0, max_shift: float | None = None, mag_name: str = 'i_ab', seed: int = 0, bright_cut: float = 25.3, dim_cut: float = 28.0)
Initializes the PairSampling function.
- Parameters:
stamp_size – Size of the desired stamp (in arcseconds).
max_shift – Maximum value of shift from center. If None then its set as one-tenth the stamp size (in arcseconds).
mag_name – Name of the magnitude column in the catalog to be used.
seed – See parent class.
bright_cut – Magnitude cut for bright galaxy. (Default: 25.3)
dim_cut – Magnitude cut for dim galaxy. (Default: 28.0)
- class btk.sampling_functions.RandomSquareSampling(stamp_size: float = 24.0, max_number: int = 2, seed: int = 0, max_mag: float = 25.3, min_mag: float = -inf, mag_name: str = 'i_ab')
Bases:
SamplingFunction
Randomly selects galaxies in square region of the input catalog.
This sampling function explicitly uses the spatial information in the input catalog to generate scenes of galaxies. However, blends might not always be returned as a result.
- __call__(table: Table)
Samples galaxies from input catalog to make scene.
We assume the input catalog has ra and dec in degrees, like CATSIM does.
- __init__(stamp_size: float = 24.0, max_number: int = 2, seed: int = 0, max_mag: float = 25.3, min_mag: float = -inf, mag_name: str = 'i_ab')
Initializes the RandomSquareSampling sampling function.
- Parameters:
stamp_size – Size of the desired stamp (arcsec).
max_number – Defined in parent class
seed – Seed to initialize randomness for reproducibility.
min_mag – Minimum magnitude allowed in samples
max_mag – Maximum magnitude allowed in samples.
mag_name – Name of the magnitude column in the catalog.
- class btk.sampling_functions.SamplingFunction(stamp_size: int, max_number: int, min_number: int = 1, seed=0)
Bases:
ABC
Class representing sampling functions to sample input catalog from which to draw blends.
The object can be called to return an astropy table with entries corresponding to the galaxies chosen for the blend.
- abstract __call__(table) Table
Outputs a sample from the given astropy table.
- __init__(stamp_size: int, max_number: int, min_number: int = 1, seed=0)
Initializes the SamplingFunction.
- Parameters:
stamp_size – The size of the stamp in arcseconds.
max_number – maximum number of catalog entries returned from sample.
min_number – minimum number of catalog entries returned from sample. (Default: 1)
seed – Seed to initialize randomness for reproducibility. (Default: btk.DEFAULT_SEED)