CompositeStellib¶

class
beast.physicsmodel.stars.stellib.
CompositeStellib
(osllist, *args, **kwargs)[source]¶ Bases:
beast.physicsmodel.stars.stellib.Stellib
Generates an object from the union of multiple individual libraries
Attributes Summary
source
wavelength
return a common wavelength sampling to all libraries. Methods Summary
genQ
(self, qname, r, \*\*kwargs)Generate a composite value from a previously calculated genSpectrum
(self, T0[, g0, Z0, weights])Generate a composite sprectrum gen_spectral_grid_from_given_points
(self, pts)Reinterpolate a given stellar spectral library on to an Isochrone grid get_boundaries
(self[, dlogT, dlogg])Returns the closed boundary polygon around the stellar library with given margins interp
(self, T0, g0, Z0, L0[, dT_max, eps, …])Interpolation of the T,g grid interpMany
(self, T0, g0, Z0, L0[, dT_max, …])run interp on a list of inputs and returns reduced results which_osl
(self, xypoints[, dlogT, dlogg])Returns the library indice that contains each point in xypoints Attributes Documentation

source
¶

wavelength
¶ return a common wavelength sampling to all libraries. This can be used to reinterpolate any spectrum onto a common definition
Methods Documentation

genQ
(self, qname, r, **kwargs)[source]¶  Generate a composite value from a previously calculated
 interpolation Works on 1 desired star or a population of stars
Parameters:  qname: str
quantity name from self.grid
 r: (osl, r) tuple
osl: is the library index starting from 1. 0 means no coverage. r: is the result from interp call on the corresponding library.
Returns:  q: float
value (from weighted sum)

genSpectrum
(self, T0, g0=None, Z0=None, weights=None, **kwargs)[source]¶  Generate a composite sprectrum
 Does the interpolation or uses a previously calculated interpolation Works on 1 desired star or a population of stars
Parameters:  T0: ndarray(float)
log(Teff) to obtain
 g0: ndarray(float)
log(g) to obtain
 Z0: ndarray(float)
metallicity values
 weights: ndarray(float)
individual weights of each star
 **kwargs forwarded to interp(Many)
Returns:  s: ndarray
an array containing the composite spectrum reinterpolated onto self.wavelength
Note
if T0 and g0 are iterable, it calls interpMany

gen_spectral_grid_from_given_points
(self, pts, bounds={'dlogT': 0.1, 'dlogg': 0.3})[source]¶ Reinterpolate a given stellar spectral library on to an Isochrone grid
Parameters:  pts: dict like structure of points
dictionary like or named data structure of points to interpolate at pts must contain: logg surface gravity in logscale logT log of effective temperatures (in Kelvins) logL log of luminosity in Lsun units Z metallicity
 bounds: dict
sensitivity to extrapolation (see
:func: Stellib.get_boundaries
) default: {dlogT:0.1, dlogg:0.3}
Returns:  g: SpectralGrid
Spectral grid (in memory) containing the requested list of stars and associated spectra

get_boundaries
(self, dlogT=0.1, dlogg=0.3, **kwargs)[source]¶ Returns the closed boundary polygon around the stellar library with given margins
Parameters:  s: Stellib
Stellar library object
 dlogT: float
margin in logT
 dlogg: float
margin in logg
Returns:  b: ndarray[float, ndim=2]
(closed) boundary points: [logg, Teff] (or [Teff, logg] is swap is True)
Note
as computing the boundary could take time, it is saved in the object and only recomputed when parameters are updated

interp
(self, T0, g0, Z0, L0, dT_max=0.1, eps=1e06, bounds={})[source]¶ Interpolation of the T,g grid
Interpolate on the grid and returns star indices and associated weights, and Z. 3 to 12 stars are returned. It calls _interp_, but reduce the output to the relevant stars.
Parameters:  T0: double
log(Teff) to obtain
 g0: double
log(g) to obtain
 T: double
log(Teff) of the grid
 g: double
log(g) of the grid
 dT_max: float
If, T2 (resp. T1) is too far from T compared to T1 (resp. T2), i2 (resp. i1) is not used. (see below for namings)
 eps: foat
temperature sensitivity under which points are considered to have the same temperature
 bounds: dict
sensitivity to extrapolation (see
:func: Stellib.get_boundaries
) default: {dlogT:0.1, dlogg:0.3}
Returns:  (osl, r): tuple
osl: is the library index starting from 1. 0 means no coverage. r: is the result from interp call on the corresponding library. a 3 to 12 star indexes and associated weights

interpMany
(self, T0, g0, Z0, L0, dT_max=0.1, eps=1e06, weights=None, bounds={}, pool=None, nthreads=1)[source]¶ run interp on a list of inputs and returns reduced results
Interpolation of the T,g grid at Z0 metallicity
Interpolate on the grid and returns star indices and associated weights, and Z. 3 to 12 stars are returned. It calls _interp_, but reduce the output to the relevant stars.
Parameters:  T0: ndarray(float)
log(Teff) to obtain
 g0: ndarray(float)
log(g) to obtain
 Z0: ndarray(float)
metallicity values
 L0: ndarray(float)
luminosity values
 dT_max: float
If, T2 (resp. T1) is too far from T compared to T1 (resp. T2), i2 (resp. i1) is not used. (see below for namings)
 eps: foat
temperature sensitivity under which points are considered to have the same temperature
 weights: ndarray(float)
luminosity weigths to apply after interpolation
 bounds: dict
sensitivity to extrapolation (see
:func: Stellib.get_boundaries
) default: {dlogT:0.1, dlogg:0.3} pool: Poollike object
specify a multiprocessing pool for parallel processing
 nthreads: int
number of processes to use by default
Returns:  (osl, r): tuple
osl is the library index starting from 1. 0 means no coverage. r is the result from interp call on the corresponding library. a 3 to 12 star indexes and associated weights

which_osl
(self, xypoints, dlogT=0.0, dlogg=0.0)[source]¶ Returns the library indice that contains each point in xypoints
 The decision is made from a two step search:
 first, each point is checked against the strict boundary of each library (i.e., dlogT = 0, dlogg = 0).
 second, if points are not found in strict mode, the boundary is relaxed and a new search is made.
 Each point is associated to the first library matching the above
 conditions.
Parameters:  xypoints: sequence
a sequence of N logg, logT pairs.
 dlogT: float
margin in logT
 dlogg: float
margin in logg
Returns:  res: ndarray(dtype=int)
 a ndarray, 0 meaning no library covers the point, and 1, … n,
for the nth library
