imaginglss.model.datarelease module¶
Python code to look at the imaging data, containing interfaces to deal with “bricks” and “catalogs”. This is the “highest level” interface to the imaging data and makes use of several lower level objects.
-
class
imaginglss.model.datarelease.
DataRelease
(root, cache, version, dustdir)[source]¶ Bases:
object
The highest level interface into the data for a given imaging data release. Uses several “helper” classes and has methods for looking at pixelized data or catalogs arranged in bricks.
Examples
>>> dr = DataRelease() >>> dr.images['depth']['r'] # r band depth images. >>> dr.images['image']['r'] # r band coadd images. >>> dr.images['model']['r'] # r band tractor model images.
Attributes
brickindex ( BrickIndex
) an index object of all of the bricks (covering the entire sky)bands (dict) a dictionary translating from band name to integer used in Tractor catalogue catalogue ( CachedCatalogue
) the concatenated tractor catalogue, accessed by attributes.extinction (array_like) an array storing the extinction coeffcients. The array matches the defination of DECAM_FLUX column of the catalogue, u, g, r, i, z, Y. images ( ImageRepo
) Image repositories. These image repositories are used by py:meth:readout.footprint ( Footprint
) the footprint of the data release.-
create_catalogue
(footprint)[source]¶ Create a catalogue based on the footprint.
Parameters: footprint : Footprint
created with :py:meth`DataRelease.create_footprint`
-
create_footprint
(extent)[source]¶ Create a footprint based on the extent.
Parameters: extent : tuple, or None
RA1, RA2, DEC1, DEC2. If None the full catalogue is returned
-
read_depths
(coord, bands=[])[source]¶ Read the depth of given bands, return as an array
Returns: array of dtype DECAM_DEPTH and DECAM_MW_TRANSMISSION. Notes
only columns corresponding to band in the bands parameter are filled. the other columns are zeros.
-
readout
(coord, repo, default=nan, ignore_missing=False)[source]¶ Readout pixels from an image.
Parameters: coord : array_like
coordinates of the pixels, (RA, DEC)
repo : ImageRepo
the images to read from.
default : scalar
value to return if the pixel is not in the footprint.
image_missing : boolean
When ignore_missing is True, missing brick files are treated as not in the footprint.
Notes
This is here, because we want to query multiple images at the same time. It is also convenient to have it here to make use of brickindex. (ImageRepo is then just a stub with no business logic)
Otherwise it makes more sense to have readout in ImageRepo.
-
-
class
imaginglss.model.datarelease.
Footprint
(bricks, brickindex)[source]¶ Bases:
object
footprint of a data release.
Use indexing to construct sub-regions of the footprint, for example
Examples
>>> print datarelease.footprint[:100] Footprint(.....)
Attributes
bricks (list of model.brick.Brick) A list of Bricks that are covered by the footprint range ( tuple) The range of RA and DEC of all bricks (ramin, ramax, decmin, decmax) area (float) Covered outline area in square degrees -
filter
(coord)[source]¶ Remove coordinates that are not covered by the footprint
Parameters: coord : array_like
must be compatible with (RA, DEC)
Returns: coord_in_footprint : array_like
items in the input coord that is in the footprint
-
random_sample
(Npoints, rng)[source]¶ Generate uniformly distributed points within the boundary that lie in the footprint.
The random points are generated by first producing random points with int the ra and dec range of the footprint, then remove points that are not in any bricks.
Parameters: Npoints : int
numpy of random points to sample
rng :
numpy.random.RandomState
a random number generator
Returns: coord : array_like (2, Npoints)
(RA, DEC) of the random points
Notes
Internally, the random points are generated in batches of 1 million points.
If the footprint is sparse in the bounding ra, dec range, this algorithm becomes extremely inefficient.
-
-
class
imaginglss.model.datarelease.
Lazy
(calculate_function)[source]¶ Bases:
object
Lazy initialization of object attributes.
-
imaginglss.model.datarelease.
contains
(haystack, needle)[source]¶ test if needle is in haystack.
Parameters: haystack : array_like
Sorted array
needle : array_like
items to look for
Returns: mask : array_like
mask[i] is true only if needle[i] is in haystack;
Examples
>>> contains([1, 2, 3], [2]) [True]