sdss_specobjid¶
- pydl.pydlutils.sdss.sdss_specobjid(plate, fiber, mjd, run2d, line=None, index=None)[source]¶
Convert SDSS spectrum identifiers into CAS-style specObjID.
Bits are assigned in specObjID thus:
Bits
Name
Comment
50-63
Plate ID
14 bits
38-49
Fiber ID
12 bits
24-37
MJD
Date plate was observed minus 50000 (14 bits)
10-23
run2d
Spectroscopic reduction version
0-9
line/index
0 for use in SpecObj files see below for other uses (10 bits)
- Parameters:
- plate, fiber, mjd
int
or array of int Plate, fiber ID, and MJD for a spectrum. If arrays are passed, all must have the same length. The MJD value must be greater than 50000.
- run2d
int
,str
or array of int or str The run2d value must be an integer or a string of the form ‘vN_M_P’. If an array is passed, it must have the same length as the other inputs listed above. If the string form is used, the values are restricted to \(5 \le N \le 6\), \(0 \le M \le 99\), \(0 \le P \le 99\).
- line
int
, optional A line index, only used for defining specObjID for SpecLine files.
line
andindex
cannot both be non-zero.- index
int
, optional An index measure, only used for defining specObjID for SpecLineIndex files.
line
andindex
cannot both be non-zero.
- plate, fiber, mjd
- Returns:
numpy.ndarray
ofnumpy.uint64
The specObjIDs of the objects.
- Raises:
ValueError
If the sizes of the arrays don’t match or if the array values are out of bounds.
Notes
On 32-bit systems, makes sure to explicitly declare all inputs as 64-bit integers.
This function defines the SDSS-III/IV version of specObjID, used for SDSS DR8 and subsequent data releases. It is not compatible with SDSS DR7 or earlier.
If the string form of
run2d
is used, the bits are assigned by the formula \((N - 5) \times 10000 + M \times 100 + P\).
Examples
>>> from pydl.pydlutils.sdss import sdss_specobjid >>> print(sdss_specobjid(4055,408,55359,'v5_7_0')) [4565636362342690816]