From c4132a59bde6a11d211c7f7b80e7194d669175f0 Mon Sep 17 00:00:00 2001 From: Craig D Warner Date: Tue, 27 Feb 2024 13:48:56 -0800 Subject: [PATCH 1/7] Modified archetypes using BVLS to add -1*all legendre terms to the basis vector (in tdata) so that NNLS can be used instead of BVLS. Fixed bug when ValueError excepted in rebinning --- py/redrock/archetypes.py | 25 ++++++++++++++++++++----- py/redrock/fitz.py | 9 +++++++-- py/redrock/zfind.py | 7 +++++-- py/redrock/zscan.py | 11 +++++++---- 4 files changed, 39 insertions(+), 13 deletions(-) diff --git a/py/redrock/archetypes.py b/py/redrock/archetypes.py index e6de246d..5774b0c8 100644 --- a/py/redrock/archetypes.py +++ b/py/redrock/archetypes.py @@ -63,6 +63,8 @@ def __init__(self, filename): # TODO: Allow Archetype files to specify their IGM model self.igm_model = 'Inoue14' + # TODO: Allow Archetype files to specify bvls or nnls or pca solver method + self._solver_method = 'bvls' return @@ -202,6 +204,9 @@ def nearest_neighbour_model(self, target,weights,flux,wflux,dwave,z, n_nearest, nleg = legendre[list(legendre.keys())[0]].shape[0] iBest = np.argsort(zzchi2)[0:n_nearest] tdata = dict() + tot_nleg = nleg + if (self._solver_method == 'bvls'): + tot_nleg = nleg*2 if (binned is not None): if (use_gpu): binned = { hs:binned[hs][:,iBest].get() for hs in binned } @@ -220,11 +225,14 @@ def nearest_neighbour_model(self, target,weights,flux,wflux,dwave,z, n_nearest, tdata[hs] = binned[hs][None,:,:] if (nleg > 0): tdata[hs] = np.append(tdata[hs], legendre[hs].transpose()[None,:,:], axis=2) + if per_camera and self._solver_method == 'bvls': + #Using BVLS - append negative copies of legendre terms as well to use NNLS with additional bases to approximate BVLS + tdata[hs] = np.append(tdata[hs], -1*legendre[hs].transpose()[None,:,:], axis=2) nbasis = tdata[hs].shape[2] if per_camera: #Use CPU mode since small tdata - (zzchi2, zzcoeff) = per_camera_coeff_with_least_square_batch(target, tdata, weights, flux, wflux, nleg, 1, method='bvls', n_nbh=n_nearest, prior=prior, use_gpu=False, ncam=ncam) + (zzchi2, zzcoeff) = per_camera_coeff_with_least_square_batch(target, tdata, weights, flux, wflux, tot_nleg, 1, method=self._solver_method, n_nbh=n_nearest, prior=prior, use_gpu=False, ncam=ncam) else: #Use CPU mode for calc_zchi2 since small tdata (zzchi2, zzcoeff) = calc_zchi2_batch(spectra, tdata, weights, flux, wflux, 1, nbasis, use_gpu=False) @@ -262,6 +270,10 @@ def get_best_archetype(self,target,weights,flux,wflux,dwave,z, per_camera, n_nea spectra = target.spectra nleg = target.nleg legendre = target.legendre(nleg=nleg, use_gpu=use_gpu) #Get previously calculated legendre + solve_method = self._solver_method + tot_nleg = nleg + if (solve_method == 'bvls'): + tot_nleg = nleg*2 #Select np or cp for operations as arrtype if (use_gpu): @@ -288,8 +300,8 @@ def get_best_archetype(self,target,weights,flux,wflux,dwave,z, per_camera, n_nea obs_wave = np.concatenate([dwave[key] for key in new_keys]) nleg = legendre[list(legendre.keys())[0]].shape[0] - zzchi2 = np.zeros(self._narch, dtype=np.float64) - zzcoeff = np.zeros((self._narch, 1+ncam*(nleg)), dtype=np.float64) + #zzchi2 = np.zeros(self._narch, dtype=np.float64) + #zzcoeff = np.zeros((self._narch, 1+ncam*(nleg)), dtype=np.float64) #TODO: return best fit model as well #zzmodel = np.zeros((self._narch, obs_wave.size), dtype=np.float64) @@ -324,14 +336,17 @@ def get_best_archetype(self,target,weights,flux,wflux,dwave,z, per_camera, n_nea #Create 3-d tdata with narch x nwave x nbasis where nbasis = 1+nleg if nleg > 0: tdata[hs] = arrtype.append(binned[hs].transpose()[:,:,None], arrtype.tile(arrtype.asarray(legendre[hs]).transpose()[None,:,:], (self._narch, 1, 1)), axis=2) + if solve_method == 'bvls': + #Using BVLS - append negative copies of legendre terms as well to use NNLS with additional bases to approximate BVLS + tdata[hs] = arrtype.append(tdata[hs], arrtype.tile(-1*arrtype.asarray(legendre[hs]).transpose()[None,:,:], (self._narch, 1, 1)), axis=2) else: tdata[hs] = binned[hs].transpose()[:,:,None] nbasis = tdata[hs].shape[2] if per_camera: if (use_gpu): - (zzchi2, zzcoeff) = per_camera_coeff_with_least_square_batch(target, tdata, gpuweights, gpuflux, gpuwflux, nleg, self._narch, method=solve_method, n_nbh=1, prior=prior, use_gpu=use_gpu, ncam=ncam) + (zzchi2, zzcoeff) = per_camera_coeff_with_least_square_batch(target, tdata, gpuweights, gpuflux, gpuwflux, tot_nleg, self._narch, method=solve_method, n_nbh=1, prior=prior, use_gpu=use_gpu, ncam=ncam) else: - (zzchi2, zzcoeff) = per_camera_coeff_with_least_square_batch(target, tdata, weights, flux, wflux, nleg, self._narch, method=solve_method, n_nbh=1, prior=prior, use_gpu=use_gpu, ncam=ncam) + (zzchi2, zzcoeff) = per_camera_coeff_with_least_square_batch(target, tdata, weights, flux, wflux, tot_nleg, self._narch, method=solve_method, n_nbh=1, prior=prior, use_gpu=use_gpu, ncam=ncam) else: if (use_gpu): (zzchi2, zzcoeff) = calc_zchi2_batch(spectra, tdata, gpuweights, gpuflux, gpuwflux, self._narch, nbasis, use_gpu=use_gpu) diff --git a/py/redrock/fitz.py b/py/redrock/fitz.py index a0a9c7c7..970959cb 100644 --- a/py/redrock/fitz.py +++ b/py/redrock/fitz.py @@ -292,6 +292,8 @@ def fitz(zchi2, redshifts, target, template, nminima=3, archetype=None, use_gpu= coeff = np.zeros(template.nbasis) zwarn |= ZW.Z_FITLIMIT zwarn |= ZW.BAD_MINFIT + #Set trans to None so as not to pass an empty dict to archetypes! CW 2/26/24 + trans = None else: #- Unknown problem; re-raise error raise err @@ -329,10 +331,13 @@ def fitz(zchi2, redshifts, target, template, nminima=3, archetype=None, use_gpu= ncamera = len(list(dwave.keys())) # number of cameras, for e.g. DESI has three cameras else: ncamera = 1 + tot_deg_legendre = deg_legendre + if archetype._solver_method == 'bvls': + tot_deg_legendre = deg_legendre*2 if n_nearest is None: - prior = prior_on_coeffs(1, deg_legendre, prior_sigma, ncamera) + prior = prior_on_coeffs(1, tot_deg_legendre, prior_sigma, ncamera) else: - prior = prior_on_coeffs(n_nearest, deg_legendre, prior_sigma, ncamera) + prior = prior_on_coeffs(n_nearest, tot_deg_legendre, prior_sigma, ncamera) else: prior=None chi2min, coeff, fulltype = archetype.get_best_archetype(target,weights,flux,wflux,dwave,zbest, per_camera, n_nearest, trans=trans, use_gpu=use_gpu, prior=prior) diff --git a/py/redrock/zfind.py b/py/redrock/zfind.py index bb330828..04e1993f 100644 --- a/py/redrock/zfind.py +++ b/py/redrock/zfind.py @@ -598,10 +598,13 @@ def zfind(targets, templates, mp_procs=1, nminima=3, archetypes=None, priors=Non if archetypes is None or not per_camera: maxcoeff = np.max([t.template.nbasis for t in templates]) else: + tot_deg_legendre = deg_legendre + if archetype._solver_method == 'bvls': + tot_deg_legendre = deg_legendre*2 if n_nearest is not None: - maxcoeff = max(np.max([t.template.nbasis for t in templates]), ncamera*(deg_legendre)+n_nearest) + maxcoeff = max(np.max([t.template.nbasis for t in templates]), ncamera*(tot_deg_legendre)+n_nearest) else: - maxcoeff = max(np.max([t.template.nbasis for t in templates]), ncamera*(deg_legendre)+1) + maxcoeff = max(np.max([t.template.nbasis for t in templates]), ncamera*(tot_deg_legendre)+1) if allzfit['coeff'].ndim == 1: ntarg = allzfit['coeff'].shape diff --git a/py/redrock/zscan.py b/py/redrock/zscan.py index 119873b6..e4a66d7a 100644 --- a/py/redrock/zscan.py +++ b/py/redrock/zscan.py @@ -270,6 +270,7 @@ def per_camera_coeff_with_least_square_batch(target, tdata, weights, flux, wflux spectra = target.spectra nbasis = n_nbh+nleg*ncam # n_nbh : for actual physical archetype(s), nleg: number of legendre polynomials, ncamera: number of cameras + #nleg should be doubled already here if using BVLS so nbasis should be correct ret_zcoeff= {'alpha':[], 'b':[], 'r':[], 'z':[]} #Setup dict of solver args to pass bounds to solver @@ -277,10 +278,12 @@ def per_camera_coeff_with_least_square_batch(target, tdata, weights, flux, wflux solver_args = dict() if (method == 'BVLS'): #only positive coefficients are allowed for the archetypes - bounds = np.zeros((2, nbasis)) - bounds[0][n_nbh:]=-np.inf #constant and slope terms in archetype method (can be positive or negative) - bounds[1] = np.inf - solver_args['bounds'] = bounds + #bounds = np.zeros((2, nbasis)) + #bounds[0][n_nbh:]=-np.inf #constant and slope terms in archetype method (can be positive or negative) + #bounds[1] = np.inf + #solver_args['bounds'] = bounds + #Update solver method + method = 'NNLS' #Use branching options because GPU is faster in batch in 3d #but due to timing weirdness in numpy, CPU is faster looping over From a660106981b32727976610291d99d81aaa28933f Mon Sep 17 00:00:00 2001 From: Craig D Warner Date: Mon, 11 Mar 2024 18:55:35 -0700 Subject: [PATCH 2/7] Modify prior array in prior_on_coeffs to include cross-terms for negative legendre terms. Refactored a little to clean up. For archetypes with legendre terms, NNLS is now actually used with additional terms of -1*each legendre term so that we can use the faster NNLS to get the same result as BVLS. --- py/redrock/archetypes.py | 9 ++++----- py/redrock/fitz.py | 29 +++++++++++++++++++++-------- py/redrock/zscan.py | 10 ++++------ 3 files changed, 29 insertions(+), 19 deletions(-) diff --git a/py/redrock/archetypes.py b/py/redrock/archetypes.py index 5774b0c8..e8ccb673 100644 --- a/py/redrock/archetypes.py +++ b/py/redrock/archetypes.py @@ -299,9 +299,7 @@ def get_best_archetype(self,target,weights,flux,wflux,dwave,z, per_camera, n_nea obs_wave = np.concatenate([dwave[key] for key in new_keys]) - nleg = legendre[list(legendre.keys())[0]].shape[0] - #zzchi2 = np.zeros(self._narch, dtype=np.float64) - #zzcoeff = np.zeros((self._narch, 1+ncam*(nleg)), dtype=np.float64) + #nleg = legendre[list(legendre.keys())[0]].shape[0] #TODO: return best fit model as well #zzmodel = np.zeros((self._narch, obs_wave.size), dtype=np.float64) @@ -343,10 +341,11 @@ def get_best_archetype(self,target,weights,flux,wflux,dwave,z, per_camera, n_nea tdata[hs] = binned[hs].transpose()[:,:,None] nbasis = tdata[hs].shape[2] if per_camera: + #Hard code NNLS as solve method for per_camera_coeff_with_least_square_batch if (use_gpu): - (zzchi2, zzcoeff) = per_camera_coeff_with_least_square_batch(target, tdata, gpuweights, gpuflux, gpuwflux, tot_nleg, self._narch, method=solve_method, n_nbh=1, prior=prior, use_gpu=use_gpu, ncam=ncam) + (zzchi2, zzcoeff) = per_camera_coeff_with_least_square_batch(target, tdata, gpuweights, gpuflux, gpuwflux, tot_nleg, self._narch, method='NNLS', n_nbh=1, prior=prior, use_gpu=use_gpu, ncam=ncam) else: - (zzchi2, zzcoeff) = per_camera_coeff_with_least_square_batch(target, tdata, weights, flux, wflux, tot_nleg, self._narch, method=solve_method, n_nbh=1, prior=prior, use_gpu=use_gpu, ncam=ncam) + (zzchi2, zzcoeff) = per_camera_coeff_with_least_square_batch(target, tdata, weights, flux, wflux, tot_nleg, self._narch, method='NNLS', n_nbh=1, prior=prior, use_gpu=use_gpu, ncam=ncam) else: if (use_gpu): (zzchi2, zzcoeff) = calc_zchi2_batch(spectra, tdata, gpuweights, gpuflux, gpuwflux, self._narch, nbasis, use_gpu=use_gpu) diff --git a/py/redrock/fitz.py b/py/redrock/fitz.py index 970959cb..2af0093f 100644 --- a/py/redrock/fitz.py +++ b/py/redrock/fitz.py @@ -116,7 +116,7 @@ def legendre_calculate(nleg, dwave): return legendre -def prior_on_coeffs(n_nbh, deg_legendre, sigma, ncamera): +def prior_on_coeffs(n_nbh, deg_legendre, sigma, ncamera, method=None): """ Args: @@ -124,15 +124,30 @@ def prior_on_coeffs(n_nbh, deg_legendre, sigma, ncamera): deg_legendre (int): number of Legendre polynomials sigma (int): prior sigma to be used for archetype fitting ncamera (int): number of cameras for given instrument + method (str): archetype solver method - if bvls then prior will be + adjusted to account for negative legendre terms Returns: 2d array to be added while solving for archetype fitting """ - nbasis = n_nbh+deg_legendre*ncamera # 3 desi cameras + tot_legendre_terms = deg_legendre + if method == 'bvls': + #Double total legendre term count to reflect negative terms + tot_legendre_terms = deg_legendre*2 + nbasis = n_nbh+tot_legendre_terms*ncamera # 3 desi cameras prior = np.zeros((nbasis, nbasis), dtype='float64');np.fill_diagonal(prior, 1/(sigma**2)) for i in range(n_nbh): prior[i][i]=0. ## Do not add prior to the archetypes, added only to the Legendre polynomials + + if method == 'bvls': + #Add cross terms to prior array + for i in range(ncamera): + for j in range(deg_legendre): + idx1 = n_nbh+i*tot_legendre_terms+j + idx2 = n_nbh+i*tot_legendre_terms+deg_legendre+j + prior[idx1][idx2] = -prior[idx1][idx1] + prior[idx2][idx1] = -prior[idx2][idx2] return prior @@ -331,13 +346,11 @@ def fitz(zchi2, redshifts, target, template, nminima=3, archetype=None, use_gpu= ncamera = len(list(dwave.keys())) # number of cameras, for e.g. DESI has three cameras else: ncamera = 1 - tot_deg_legendre = deg_legendre - if archetype._solver_method == 'bvls': - tot_deg_legendre = deg_legendre*2 if n_nearest is None: - prior = prior_on_coeffs(1, tot_deg_legendre, prior_sigma, ncamera) - else: - prior = prior_on_coeffs(n_nearest, tot_deg_legendre, prior_sigma, ncamera) + n_nearest = 1 + #Abstract the construction of prior including cross-terms for negative legendre terms + #to prior_on_coeffs method. + prior = prior_on_coeffs(n_nearest, deg_legendre, prior_sigma, ncamera, archetype._solver_method) else: prior=None chi2min, coeff, fulltype = archetype.get_best_archetype(target,weights,flux,wflux,dwave,zbest, per_camera, n_nearest, trans=trans, use_gpu=use_gpu, prior=prior) diff --git a/py/redrock/zscan.py b/py/redrock/zscan.py index e4a66d7a..65949bc3 100644 --- a/py/redrock/zscan.py +++ b/py/redrock/zscan.py @@ -278,12 +278,10 @@ def per_camera_coeff_with_least_square_batch(target, tdata, weights, flux, wflux solver_args = dict() if (method == 'BVLS'): #only positive coefficients are allowed for the archetypes - #bounds = np.zeros((2, nbasis)) - #bounds[0][n_nbh:]=-np.inf #constant and slope terms in archetype method (can be positive or negative) - #bounds[1] = np.inf - #solver_args['bounds'] = bounds - #Update solver method - method = 'NNLS' + bounds = np.zeros((2, nbasis)) + bounds[0][n_nbh:]=-np.inf #constant and slope terms in archetype method (can be positive or negative) + bounds[1] = np.inf + solver_args['bounds'] = bounds #Use branching options because GPU is faster in batch in 3d #but due to timing weirdness in numpy, CPU is faster looping over From 7911c5bc6fc4db3982c9956e00074930596d2228 Mon Sep 17 00:00:00 2001 From: Craig D Warner Date: Mon, 11 Mar 2024 19:26:32 -0700 Subject: [PATCH 3/7] Only use additional negative legendre terms and NNLS when in GPU mode because on CPU, the additional computation time for the larger array sizes dominates any time savings of NNLS vs BVLS --- py/redrock/archetypes.py | 21 +++++++++++---------- py/redrock/fitz.py | 15 +++++++++------ 2 files changed, 20 insertions(+), 16 deletions(-) diff --git a/py/redrock/archetypes.py b/py/redrock/archetypes.py index e8ccb673..ae135a14 100644 --- a/py/redrock/archetypes.py +++ b/py/redrock/archetypes.py @@ -205,7 +205,8 @@ def nearest_neighbour_model(self, target,weights,flux,wflux,dwave,z, n_nearest, iBest = np.argsort(zzchi2)[0:n_nearest] tdata = dict() tot_nleg = nleg - if (self._solver_method == 'bvls'): + if (self._solver_method == 'bvls' and use_gpu): + #Only use NNLS with additional legendre terms if BVLS AND gpu mode tot_nleg = nleg*2 if (binned is not None): if (use_gpu): @@ -225,8 +226,8 @@ def nearest_neighbour_model(self, target,weights,flux,wflux,dwave,z, n_nearest, tdata[hs] = binned[hs][None,:,:] if (nleg > 0): tdata[hs] = np.append(tdata[hs], legendre[hs].transpose()[None,:,:], axis=2) - if per_camera and self._solver_method == 'bvls': - #Using BVLS - append negative copies of legendre terms as well to use NNLS with additional bases to approximate BVLS + if per_camera and self._solver_method == 'bvls' and use_gpu: + #Using BVLS and GPU - append negative copies of legendre terms as well to use NNLS with additional bases to approximate BVLS tdata[hs] = np.append(tdata[hs], -1*legendre[hs].transpose()[None,:,:], axis=2) nbasis = tdata[hs].shape[2] @@ -243,7 +244,7 @@ def nearest_neighbour_model(self, target,weights,flux,wflux,dwave,z, n_nearest, #print(z, zzchi2, zzcoeff, fsstype) return zzchi2[0], zzcoeff[0], self._rrtype+':::%s'%(fsstype) - def get_best_archetype(self,target,weights,flux,wflux,dwave,z, per_camera, n_nearest, trans=None, solve_method='bvls', prior=None, use_gpu=False): + def get_best_archetype(self,target,weights,flux,wflux,dwave,z, per_camera, n_nearest, trans=None, prior=None, use_gpu=False): """Get the best archetype for the given redshift and spectype. @@ -257,7 +258,6 @@ def get_best_archetype(self,target,weights,flux,wflux,dwave,z, per_camera, n_nea per_camera (bool): True if fitting needs to be done in each camera n_nearest (int): number of nearest neighbours to be used in chi2 space (including best archetype) trans (dict): pass previously calcualated Lyman transmission instead of recalculating - solve_method (string): bvls or pca use_gpu (bool): use GPU or not prior (2d array): prior matrix on coefficients (1/sig**2) @@ -270,9 +270,10 @@ def get_best_archetype(self,target,weights,flux,wflux,dwave,z, per_camera, n_nea spectra = target.spectra nleg = target.nleg legendre = target.legendre(nleg=nleg, use_gpu=use_gpu) #Get previously calculated legendre - solve_method = self._solver_method + solve_method = self._solver_method #get solve method from archetype class instead of passing as arg tot_nleg = nleg - if (solve_method == 'bvls'): + if (solve_method == 'bvls' and use_gpu): + #Only use NNLS with additional legendre terms if BVLS AND gpu mode tot_nleg = nleg*2 #Select np or cp for operations as arrtype @@ -334,18 +335,18 @@ def get_best_archetype(self,target,weights,flux,wflux,dwave,z, per_camera, n_nea #Create 3-d tdata with narch x nwave x nbasis where nbasis = 1+nleg if nleg > 0: tdata[hs] = arrtype.append(binned[hs].transpose()[:,:,None], arrtype.tile(arrtype.asarray(legendre[hs]).transpose()[None,:,:], (self._narch, 1, 1)), axis=2) - if solve_method == 'bvls': + if solve_method == 'bvls' and use_gpu: #Using BVLS - append negative copies of legendre terms as well to use NNLS with additional bases to approximate BVLS tdata[hs] = arrtype.append(tdata[hs], arrtype.tile(-1*arrtype.asarray(legendre[hs]).transpose()[None,:,:], (self._narch, 1, 1)), axis=2) else: tdata[hs] = binned[hs].transpose()[:,:,None] nbasis = tdata[hs].shape[2] if per_camera: - #Hard code NNLS as solve method for per_camera_coeff_with_least_square_batch + #Hard code NNLS as solve method for GPU mode only, use solve_method (BVLS) for CPU if (use_gpu): (zzchi2, zzcoeff) = per_camera_coeff_with_least_square_batch(target, tdata, gpuweights, gpuflux, gpuwflux, tot_nleg, self._narch, method='NNLS', n_nbh=1, prior=prior, use_gpu=use_gpu, ncam=ncam) else: - (zzchi2, zzcoeff) = per_camera_coeff_with_least_square_batch(target, tdata, weights, flux, wflux, tot_nleg, self._narch, method='NNLS', n_nbh=1, prior=prior, use_gpu=use_gpu, ncam=ncam) + (zzchi2, zzcoeff) = per_camera_coeff_with_least_square_batch(target, tdata, weights, flux, wflux, tot_nleg, self._narch, method=solve_method, n_nbh=1, prior=prior, use_gpu=use_gpu, ncam=ncam) else: if (use_gpu): (zzchi2, zzcoeff) = calc_zchi2_batch(spectra, tdata, gpuweights, gpuflux, gpuwflux, self._narch, nbasis, use_gpu=use_gpu) diff --git a/py/redrock/fitz.py b/py/redrock/fitz.py index 2af0093f..2330535a 100644 --- a/py/redrock/fitz.py +++ b/py/redrock/fitz.py @@ -116,7 +116,7 @@ def legendre_calculate(nleg, dwave): return legendre -def prior_on_coeffs(n_nbh, deg_legendre, sigma, ncamera, method=None): +def prior_on_coeffs(n_nbh, deg_legendre, sigma, ncamera, add_negative_legendre_terms=False): """ Args: @@ -124,15 +124,15 @@ def prior_on_coeffs(n_nbh, deg_legendre, sigma, ncamera, method=None): deg_legendre (int): number of Legendre polynomials sigma (int): prior sigma to be used for archetype fitting ncamera (int): number of cameras for given instrument - method (str): archetype solver method - if bvls then prior will be - adjusted to account for negative legendre terms + add_negative_legendre_terms (bool): whether to adjust prior + to account for negative legendre terms Returns: 2d array to be added while solving for archetype fitting """ tot_legendre_terms = deg_legendre - if method == 'bvls': + if add_negative_legendre_terms: #Double total legendre term count to reflect negative terms tot_legendre_terms = deg_legendre*2 nbasis = n_nbh+tot_legendre_terms*ncamera # 3 desi cameras @@ -140,7 +140,7 @@ def prior_on_coeffs(n_nbh, deg_legendre, sigma, ncamera, method=None): for i in range(n_nbh): prior[i][i]=0. ## Do not add prior to the archetypes, added only to the Legendre polynomials - if method == 'bvls': + if add_negative_legendre_terms: #Add cross terms to prior array for i in range(ncamera): for j in range(deg_legendre): @@ -350,7 +350,10 @@ def fitz(zchi2, redshifts, target, template, nminima=3, archetype=None, use_gpu= n_nearest = 1 #Abstract the construction of prior including cross-terms for negative legendre terms #to prior_on_coeffs method. - prior = prior_on_coeffs(n_nearest, deg_legendre, prior_sigma, ncamera, archetype._solver_method) + add_negative_legendre_terms = False + if archetype._solver_method == 'bvls' and use_gpu: + add_negative_legendre_terms = True + prior = prior_on_coeffs(n_nearest, deg_legendre, prior_sigma, ncamera, add_negative_legendre_terms) else: prior=None chi2min, coeff, fulltype = archetype.get_best_archetype(target,weights,flux,wflux,dwave,zbest, per_camera, n_nearest, trans=trans, use_gpu=use_gpu, prior=prior) From 1ac311ad684e88e184d655b1aea38bf43f540359 Mon Sep 17 00:00:00 2001 From: Craig D Warner Date: Sat, 20 Apr 2024 23:25:50 -0700 Subject: [PATCH 4/7] Moved as much logic as possible related to using NNLS with extra negative legendre terms on the GPU in lieu of BVLS into per_camera_coeff_with_least_square_batch. Moved prior_on_coeffs into zscan.py, called from within per_camera_coeff_with_least_square_batch. Pass prior_sigma, a scalar, insted of the array from fitz to archetypes. Bug fix on case where only some object types, not all, have an archetype. --- py/redrock/archetypes.py | 34 +++++++++++------------- py/redrock/fitz.py | 46 ++------------------------------- py/redrock/zfind.py | 7 ++--- py/redrock/zscan.py | 56 +++++++++++++++++++++++++++++++++++++--- 4 files changed, 74 insertions(+), 69 deletions(-) diff --git a/py/redrock/archetypes.py b/py/redrock/archetypes.py index ae135a14..7c111109 100644 --- a/py/redrock/archetypes.py +++ b/py/redrock/archetypes.py @@ -167,7 +167,7 @@ def eval(self, subtype, dwave, coeff, wave, z): return flux - def nearest_neighbour_model(self, target,weights,flux,wflux,dwave,z, n_nearest, zzchi2, trans, per_camera, dedges=None, binned=None, use_gpu=False, prior=None, ncam=None): + def nearest_neighbour_model(self, target,weights,flux,wflux,dwave,z, n_nearest, zzchi2, trans, per_camera, dedges=None, binned=None, use_gpu=False, prior_sigma=None, ncam=None): """Nearest neighbour archetype approach; fitting with a combinating of nearest archetypes in chi2 space @@ -185,7 +185,7 @@ def nearest_neighbour_model(self, target,weights,flux,wflux,dwave,z, n_nearest, dedges (dict): in GPU mode, use pre-computed dict of wavelength bin edges, already on GPU binned (dict): already computed dictionary of rebinned fluxes use_gpu (bool): use GPU or not - prior (2d array): prior matrix on coefficients (1/sig**2) + prior_sigma (float): prior to add in the final solution matrix: added as 1/(prior_sigma**2) only for per-camera mode ncam (int): Number of camera for given Instrument Returns: @@ -204,10 +204,6 @@ def nearest_neighbour_model(self, target,weights,flux,wflux,dwave,z, n_nearest, nleg = legendre[list(legendre.keys())[0]].shape[0] iBest = np.argsort(zzchi2)[0:n_nearest] tdata = dict() - tot_nleg = nleg - if (self._solver_method == 'bvls' and use_gpu): - #Only use NNLS with additional legendre terms if BVLS AND gpu mode - tot_nleg = nleg*2 if (binned is not None): if (use_gpu): binned = { hs:binned[hs][:,iBest].get() for hs in binned } @@ -233,7 +229,9 @@ def nearest_neighbour_model(self, target,weights,flux,wflux,dwave,z, n_nearest, if per_camera: #Use CPU mode since small tdata - (zzchi2, zzcoeff) = per_camera_coeff_with_least_square_batch(target, tdata, weights, flux, wflux, tot_nleg, 1, method=self._solver_method, n_nbh=n_nearest, prior=prior, use_gpu=False, ncam=ncam) + #CW - 4/19/24 - pass use_gpu and solver method to per_camera_coeff_with_least_square_batch + #it will decide there if narch == 1 to use CPU and it will calculate correct prior array + (zzchi2, zzcoeff) = per_camera_coeff_with_least_square_batch(target, tdata, weights, flux, wflux, nleg, 1, method=self._solver_method, n_nbh=n_nearest, prior_sigma=prior_sigma, use_gpu=use_gpu, ncam=ncam) else: #Use CPU mode for calc_zchi2 since small tdata (zzchi2, zzcoeff) = calc_zchi2_batch(spectra, tdata, weights, flux, wflux, 1, nbasis, use_gpu=False) @@ -244,7 +242,7 @@ def nearest_neighbour_model(self, target,weights,flux,wflux,dwave,z, n_nearest, #print(z, zzchi2, zzcoeff, fsstype) return zzchi2[0], zzcoeff[0], self._rrtype+':::%s'%(fsstype) - def get_best_archetype(self,target,weights,flux,wflux,dwave,z, per_camera, n_nearest, trans=None, prior=None, use_gpu=False): + def get_best_archetype(self,target,weights,flux,wflux,dwave,z, per_camera, n_nearest, trans=None, prior_sigma=None, use_gpu=False): """Get the best archetype for the given redshift and spectype. @@ -259,7 +257,7 @@ def get_best_archetype(self,target,weights,flux,wflux,dwave,z, per_camera, n_nea n_nearest (int): number of nearest neighbours to be used in chi2 space (including best archetype) trans (dict): pass previously calcualated Lyman transmission instead of recalculating use_gpu (bool): use GPU or not - prior (2d array): prior matrix on coefficients (1/sig**2) + prior_sigma (float): prior to add in the final solution matrix: added as 1/(prior_sigma**2) only for per-camera mode Returns: chi2 (float): chi2 of best archetype @@ -271,10 +269,6 @@ def get_best_archetype(self,target,weights,flux,wflux,dwave,z, per_camera, n_nea nleg = target.nleg legendre = target.legendre(nleg=nleg, use_gpu=use_gpu) #Get previously calculated legendre solve_method = self._solver_method #get solve method from archetype class instead of passing as arg - tot_nleg = nleg - if (solve_method == 'bvls' and use_gpu): - #Only use NNLS with additional legendre terms if BVLS AND gpu mode - tot_nleg = nleg*2 #Select np or cp for operations as arrtype if (use_gpu): @@ -324,9 +318,11 @@ def get_best_archetype(self,target,weights,flux,wflux,dwave,z, per_camera, n_nea # because prior was defined based on n_nearest argument.. # this logic is needed because the first fitting is done with just one archetype #and then nearest neighbour approach is implemented - if n_nearest is not None: - nnearest_prior = prior.copy() # prior corresponding to nearest_nbh method - prior = prior[n_nearest-1:,][:,n_nearest-1:] # removing first rows/columns corresponding to the nearest_archetypes, and keeping just one row for one archetype + + ##CW 04/19/24 - no need to redefine prior since it is now not calculated until per_camera_coeff_with_least_square_batch + #if n_nearest is not None: + # nnearest_prior = prior.copy() # prior corresponding to nearest_nbh method + # prior = prior[n_nearest-1:,][:,n_nearest-1:] # removing first rows/columns corresponding to the nearest_archetypes, and keeping just one row for one archetype for hs, wave in dwave.items(): if (trans[hs] is not None): @@ -344,9 +340,9 @@ def get_best_archetype(self,target,weights,flux,wflux,dwave,z, per_camera, n_nea if per_camera: #Hard code NNLS as solve method for GPU mode only, use solve_method (BVLS) for CPU if (use_gpu): - (zzchi2, zzcoeff) = per_camera_coeff_with_least_square_batch(target, tdata, gpuweights, gpuflux, gpuwflux, tot_nleg, self._narch, method='NNLS', n_nbh=1, prior=prior, use_gpu=use_gpu, ncam=ncam) + (zzchi2, zzcoeff) = per_camera_coeff_with_least_square_batch(target, tdata, gpuweights, gpuflux, gpuwflux, nleg, self._narch, method=solve_method, n_nbh=1, prior_sigma=prior_sigma, use_gpu=use_gpu, ncam=ncam) else: - (zzchi2, zzcoeff) = per_camera_coeff_with_least_square_batch(target, tdata, weights, flux, wflux, tot_nleg, self._narch, method=solve_method, n_nbh=1, prior=prior, use_gpu=use_gpu, ncam=ncam) + (zzchi2, zzcoeff) = per_camera_coeff_with_least_square_batch(target, tdata, weights, flux, wflux, nleg, self._narch, method=solve_method, n_nbh=1, prior_sigma=prior_sigma, use_gpu=use_gpu, ncam=ncam) else: if (use_gpu): (zzchi2, zzcoeff) = calc_zchi2_batch(spectra, tdata, gpuweights, gpuflux, gpuwflux, self._narch, nbasis, use_gpu=use_gpu) @@ -354,7 +350,7 @@ def get_best_archetype(self,target,weights,flux,wflux,dwave,z, per_camera, n_nea (zzchi2, zzcoeff) = calc_zchi2_batch(spectra, tdata, weights, flux, wflux, self._narch, nbasis, use_gpu=use_gpu) if n_nearest is not None: - best_chi2, best_coeff, best_fulltype = self.nearest_neighbour_model(target,weights,flux,wflux,dwave,z, n_nearest, zzchi2, trans, per_camera, dedges=dedges, binned=binned, use_gpu=use_gpu, prior=nnearest_prior, ncam=ncam) + best_chi2, best_coeff, best_fulltype = self.nearest_neighbour_model(target,weights,flux,wflux,dwave,z, n_nearest, zzchi2, trans, per_camera, dedges=dedges, binned=binned, use_gpu=use_gpu, prior_sigma=prior_sigma, ncam=ncam) #print(best_chi2, best_coeff, best_fulltype) return best_chi2, best_coeff, best_fulltype else: diff --git a/py/redrock/fitz.py b/py/redrock/fitz.py index a6bc8922..da1a9fb7 100644 --- a/py/redrock/fitz.py +++ b/py/redrock/fitz.py @@ -116,41 +116,6 @@ def legendre_calculate(nleg, dwave): return legendre -def prior_on_coeffs(n_nbh, deg_legendre, sigma, ncamera, add_negative_legendre_terms=False): - - """ - Args: - n_nbh (int): number of dominant archetypes - deg_legendre (int): number of Legendre polynomials - sigma (int): prior sigma to be used for archetype fitting - ncamera (int): number of cameras for given instrument - add_negative_legendre_terms (bool): whether to adjust prior - to account for negative legendre terms - Returns: - 2d array to be added while solving for archetype fitting - - """ - - tot_legendre_terms = deg_legendre - if add_negative_legendre_terms: - #Double total legendre term count to reflect negative terms - tot_legendre_terms = deg_legendre*2 - nbasis = n_nbh+tot_legendre_terms*ncamera # 3 desi cameras - prior = np.zeros((nbasis, nbasis), dtype='float64');np.fill_diagonal(prior, 1/(sigma**2)) - for i in range(n_nbh): - prior[i][i]=0. ## Do not add prior to the archetypes, added only to the Legendre polynomials - - if add_negative_legendre_terms: - #Add cross terms to prior array - for i in range(ncamera): - for j in range(deg_legendre): - idx1 = n_nbh+i*tot_legendre_terms+j - idx2 = n_nbh+i*tot_legendre_terms+deg_legendre+j - prior[idx1][idx2] = -prior[idx1][idx1] - prior[idx2][idx1] = -prior[idx2][idx2] - return prior - - def fitz(zchi2, redshifts, target, template, nminima=3, archetype=None, use_gpu=False, deg_legendre=None, zminfit_npoints=15, per_camera=False, n_nearest=None, prior_sigma=None): """Refines redshift measurement around up to nminima minima. @@ -349,15 +314,8 @@ def fitz(zchi2, redshifts, target, template, nminima=3, archetype=None, use_gpu= ncamera = 1 if n_nearest is None: n_nearest = 1 - #Abstract the construction of prior including cross-terms for negative legendre terms - #to prior_on_coeffs method. - add_negative_legendre_terms = False - if archetype._solver_method == 'bvls' and use_gpu: - add_negative_legendre_terms = True - prior = prior_on_coeffs(n_nearest, deg_legendre, prior_sigma, ncamera, add_negative_legendre_terms) - else: - prior=None - chi2min, coeff, fulltype = archetype.get_best_archetype(target,weights,flux,wflux,dwave,zbest, per_camera, n_nearest, trans=trans, use_gpu=use_gpu, prior=prior) + #Pass prior_sigma as a scalar and move calculation of prior array to zscan.py in per_camera_coeff_with_least_square_batch + chi2min, coeff, fulltype = archetype.get_best_archetype(target,weights,flux,wflux,dwave,zbest, per_camera, n_nearest, trans=trans, use_gpu=use_gpu, prior_sigma=prior_sigma) del trans results.append(dict(z=zbest, zerr=zerr, zwarn=zwarn, diff --git a/py/redrock/zfind.py b/py/redrock/zfind.py index 04e1993f..41a06447 100644 --- a/py/redrock/zfind.py +++ b/py/redrock/zfind.py @@ -251,6 +251,10 @@ def zfind(targets, templates, mp_procs=1, nminima=3, archetypes=None, priors=Non if archetypes: archetypes = All_archetypes(archetypes_dir=archetypes).archetypes archetype_spectype = list(archetypes.keys()) # to account for the case if only one archetype is provided + tot_deg_legendre = deg_legendre + for key in archetypes: + if archetypes[key]._solver_method == 'bvls': + tot_deg_legendre = deg_legendre*2 if not priors is None: priors = Priors(priors) @@ -598,9 +602,6 @@ def zfind(targets, templates, mp_procs=1, nminima=3, archetypes=None, priors=Non if archetypes is None or not per_camera: maxcoeff = np.max([t.template.nbasis for t in templates]) else: - tot_deg_legendre = deg_legendre - if archetype._solver_method == 'bvls': - tot_deg_legendre = deg_legendre*2 if n_nearest is not None: maxcoeff = max(np.max([t.template.nbasis for t in templates]), ncamera*(tot_deg_legendre)+n_nearest) else: diff --git a/py/redrock/zscan.py b/py/redrock/zscan.py index 07db5d6f..7405d68b 100644 --- a/py/redrock/zscan.py +++ b/py/redrock/zscan.py @@ -238,7 +238,41 @@ def calc_zchi2_one(spectra, weights, flux, wflux, tdata, solve_matrices_algorith return zchi2, zcoeff -def per_camera_coeff_with_least_square_batch(target, tdata, weights, flux, wflux, nleg, narch, method=None, n_nbh=None, prior=None, use_gpu=False, ncam=None): +def prior_on_coeffs(n_nbh, deg_legendre, sigma, ncamera, add_negative_legendre_terms=False): + + """ + Args: + n_nbh (int): number of dominant archetypes + deg_legendre (int): number of Legendre polynomials + sigma (int): prior sigma to be used for archetype fitting + ncamera (int): number of cameras for given instrument + add_negative_legendre_terms (bool): whether to adjust prior + to account for negative legendre terms + Returns: + 2d array to be added while solving for archetype fitting + + """ + + tot_legendre_terms = deg_legendre + if add_negative_legendre_terms: + #Double total legendre term count to reflect negative terms + tot_legendre_terms = deg_legendre*2 + nbasis = n_nbh+tot_legendre_terms*ncamera # 3 desi cameras + prior = np.zeros((nbasis, nbasis), dtype='float64');np.fill_diagonal(prior, 1/(sigma**2)) + for i in range(n_nbh): + prior[i][i]=0. ## Do not add prior to the archetypes, added only to the Legendre polynomials + + if add_negative_legendre_terms: + #Add cross terms to prior array + for i in range(ncamera): + for j in range(deg_legendre): + idx1 = n_nbh+i*tot_legendre_terms+j + idx2 = n_nbh+i*tot_legendre_terms+deg_legendre+j + prior[idx1][idx2] = -prior[idx1][idx1] + prior[idx2][idx1] = -prior[idx2][idx2] + return prior + +def per_camera_coeff_with_least_square_batch(target, tdata, weights, flux, wflux, nleg, narch, method=None, n_nbh=None, prior_sigma=None, use_gpu=False, ncam=None): """This function calculates coefficients for archetype mode in each camera using normal linear algebra matrix solver or BVLS (bounded value least square) method @@ -268,7 +302,24 @@ def per_camera_coeff_with_least_square_batch(target, tdata, weights, flux, wflux ### TODO - implement BVLS on GPU # number of cameras in DESI: b, r, z spectra = target.spectra - + method = method.upper() + add_negative_legendre_terms = False + if (method == 'BVLS' and use_gpu): + add_negative_legendre_terms = True + + #Calculate prior here + prior = prior_on_coeffs(n_nbh, nleg, prior_sigma, ncam, add_negative_legendre_terms) + + if (method == 'BVLS' and use_gpu): + #Hard-code se NNLS with additional legendre terms if BVLS AND gpu mode + method = 'NNLS' + #tdata should already have the additional negative legendre terms + nleg *= 2 + if narch == 1: + #Use CPU if only 1 narch (nearest neighbor) + use_gpu = False + + #Calculate nbasis after accounting for legendre terms nbasis = n_nbh+nleg*ncam # n_nbh : for actual physical archetype(s), nleg: number of legendre polynomials, ncamera: number of cameras if nleg>0: @@ -277,7 +328,6 @@ def per_camera_coeff_with_least_square_batch(target, tdata, weights, flux, wflux ret_zcoeff= {'alpha':[]} # in case no Legendre polynomials are used at all, only archetypes. #Setup dict of solver args to pass bounds to solver - method = method.upper() solver_args = dict() if (method == 'BVLS'): #only positive coefficients are allowed for the archetypes From d1b7b8f868101b68db70c48e0e313a717484e183 Mon Sep 17 00:00:00 2001 From: Craig D Warner Date: Thu, 9 May 2024 15:36:37 -0700 Subject: [PATCH 5/7] Compress output COEFF when using BVLS-NNLS trick to remove legendre terms with 0 coefficients and make the coeffs negative for negative terms. Refactored to remove the last bit of the BVLS-NNLS trick from archetypes.py and zfind.py by passing binned instead of tdata to per_camera_coeff_with_least_square_batch. --- py/redrock/archetypes.py | 51 +++++++++++++++-------------- py/redrock/zfind.py | 8 ++--- py/redrock/zscan.py | 71 ++++++++++++++++++++++++++++++++++++++-- 3 files changed, 97 insertions(+), 33 deletions(-) diff --git a/py/redrock/archetypes.py b/py/redrock/archetypes.py index 7c111109..51ca61ca 100644 --- a/py/redrock/archetypes.py +++ b/py/redrock/archetypes.py @@ -203,7 +203,6 @@ def nearest_neighbour_model(self, target,weights,flux,wflux,dwave,z, n_nearest, nleg = legendre[list(legendre.keys())[0]].shape[0] iBest = np.argsort(zzchi2)[0:n_nearest] - tdata = dict() if (binned is not None): if (use_gpu): binned = { hs:binned[hs][:,iBest].get() for hs in binned } @@ -218,22 +217,23 @@ def nearest_neighbour_model(self, target,weights,flux,wflux,dwave,z, n_nearest, #Only multiply if trans[hs] is not None #Both arrays are on CPU so no need to wrap with asarray binned[hs] *= trans[hs][:,None] - for hs, w in dwave.items(): - tdata[hs] = binned[hs][None,:,:] - if (nleg > 0): - tdata[hs] = np.append(tdata[hs], legendre[hs].transpose()[None,:,:], axis=2) - if per_camera and self._solver_method == 'bvls' and use_gpu: - #Using BVLS and GPU - append negative copies of legendre terms as well to use NNLS with additional bases to approximate BVLS - tdata[hs] = np.append(tdata[hs], -1*legendre[hs].transpose()[None,:,:], axis=2) - nbasis = tdata[hs].shape[2] if per_camera: #Use CPU mode since small tdata #CW - 4/19/24 - pass use_gpu and solver method to per_camera_coeff_with_least_square_batch #it will decide there if narch == 1 to use CPU and it will calculate correct prior array - (zzchi2, zzcoeff) = per_camera_coeff_with_least_square_batch(target, tdata, weights, flux, wflux, nleg, 1, method=self._solver_method, n_nbh=n_nearest, prior_sigma=prior_sigma, use_gpu=use_gpu, ncam=ncam) + #CW - 5/2/24 - pass binned instead of tdata to put all BVLS/NNLS code into per_camera_coeff_with_least_square_batch + #(zzchi2, zzcoeff) = per_camera_coeff_with_least_square_batch(target, binned, weights, flux, wflux, nleg, 1, method=self._solver_method, n_nbh=n_nearest, prior_sigma=prior_sigma, use_gpu=use_gpu, bands=target.bands) + (zzchi2, zzcoeff) = per_camera_coeff_with_least_square_batch(target, binned, weights, flux, wflux, nleg, 1, method=self._solver_method, n_nbh=n_nearest, prior_sigma=prior_sigma, use_gpu=use_gpu, ncam=ncam) else: #Use CPU mode for calc_zchi2 since small tdata + #Calculate tdata here because binned is passed to per_camera_coeff_with_least_square_batch + tdata = dict() + for hs, w in dwave.items(): + tdata[hs] = binned[hs][None,:,:] + if (nleg > 0): + tdata[hs] = np.append(tdata[hs], legendre[hs].transpose()[None,:,:], axis=2) + nbasis = tdata[hs].shape[2] (zzchi2, zzcoeff) = calc_zchi2_batch(spectra, tdata, weights, flux, wflux, 1, nbasis, use_gpu=False) sstype = ['%s'%(self._subtype[k]) for k in iBest] # subtypes of best archetypes @@ -311,9 +311,6 @@ def get_best_archetype(self,target,weights,flux,wflux,dwave,z, per_camera, n_nea #Rebin in batch binned = self.rebin_template_batch(z, dwave, trapz=True, dedges=dedges, use_gpu=use_gpu) - tdata = dict() - nbasis = 1 - ## Prior must be redefined to remove nearest neighbour approach, # because prior was defined based on n_nearest argument.. # this logic is needed because the first fitting is done with just one archetype @@ -328,22 +325,26 @@ def get_best_archetype(self,target,weights,flux,wflux,dwave,z, per_camera, n_nea if (trans[hs] is not None): #Only multiply if trans[hs] is not None binned[hs] *= arrtype.asarray(trans[hs][:,None]) - #Create 3-d tdata with narch x nwave x nbasis where nbasis = 1+nleg - if nleg > 0: - tdata[hs] = arrtype.append(binned[hs].transpose()[:,:,None], arrtype.tile(arrtype.asarray(legendre[hs]).transpose()[None,:,:], (self._narch, 1, 1)), axis=2) - if solve_method == 'bvls' and use_gpu: - #Using BVLS - append negative copies of legendre terms as well to use NNLS with additional bases to approximate BVLS - tdata[hs] = arrtype.append(tdata[hs], arrtype.tile(-1*arrtype.asarray(legendre[hs]).transpose()[None,:,:], (self._narch, 1, 1)), axis=2) - else: - tdata[hs] = binned[hs].transpose()[:,:,None] - nbasis = tdata[hs].shape[2] + if per_camera: - #Hard code NNLS as solve method for GPU mode only, use solve_method (BVLS) for CPU + #Use per_camera_coeff_with_least_square_batch which has all logic associated with BVLS/NNLS solver methods if (use_gpu): - (zzchi2, zzcoeff) = per_camera_coeff_with_least_square_batch(target, tdata, gpuweights, gpuflux, gpuwflux, nleg, self._narch, method=solve_method, n_nbh=1, prior_sigma=prior_sigma, use_gpu=use_gpu, ncam=ncam) + #(zzchi2, zzcoeff) = per_camera_coeff_with_least_square_batch(target, binned, gpuweights, gpuflux, gpuwflux, nleg, self._narch, method=solve_method, n_nbh=1, prior_sigma=prior_sigma, use_gpu=use_gpu, bands=bands) + (zzchi2, zzcoeff) = per_camera_coeff_with_least_square_batch(target, binned, gpuweights, gpuflux, gpuwflux, nleg, self._narch, method=solve_method, n_nbh=1, prior_sigma=prior_sigma, use_gpu=use_gpu, ncam=ncam) else: - (zzchi2, zzcoeff) = per_camera_coeff_with_least_square_batch(target, tdata, weights, flux, wflux, nleg, self._narch, method=solve_method, n_nbh=1, prior_sigma=prior_sigma, use_gpu=use_gpu, ncam=ncam) + #(zzchi2, zzcoeff) = per_camera_coeff_with_least_square_batch(target, binned, weights, flux, wflux, nleg, self._narch, method=solve_method, n_nbh=1, prior_sigma=prior_sigma, use_gpu=use_gpu, bands=bands) + (zzchi2, zzcoeff) = per_camera_coeff_with_least_square_batch(target, binned, weights, flux, wflux, nleg, self._narch, method=solve_method, n_nbh=1, prior_sigma=prior_sigma, use_gpu=use_gpu, ncam=ncam) else: + #Calculate tdata here because binned is passed to per_camera_coeff_with_least_square_batch + tdata = dict() + nbasis = 1 + for hs, wave in dwave.items(): + #Create 3-d tdata with narch x nwave x nbasis where nbasis = 1+nleg + if nleg > 0: + tdata[hs] = arrtype.append(binned[hs].transpose()[:,:,None], arrtype.tile(arrtype.asarray(legendre[hs]).transpose()[None,:,:], (self._narch, 1, 1)), axis=2) + else: + tdata[hs] = binned[hs].transpose()[:,:,None] + nbasis = tdata[hs].shape[2] if (use_gpu): (zzchi2, zzcoeff) = calc_zchi2_batch(spectra, tdata, gpuweights, gpuflux, gpuwflux, self._narch, nbasis, use_gpu=use_gpu) else: diff --git a/py/redrock/zfind.py b/py/redrock/zfind.py index 41a06447..bb330828 100644 --- a/py/redrock/zfind.py +++ b/py/redrock/zfind.py @@ -251,10 +251,6 @@ def zfind(targets, templates, mp_procs=1, nminima=3, archetypes=None, priors=Non if archetypes: archetypes = All_archetypes(archetypes_dir=archetypes).archetypes archetype_spectype = list(archetypes.keys()) # to account for the case if only one archetype is provided - tot_deg_legendre = deg_legendre - for key in archetypes: - if archetypes[key]._solver_method == 'bvls': - tot_deg_legendre = deg_legendre*2 if not priors is None: priors = Priors(priors) @@ -603,9 +599,9 @@ def zfind(targets, templates, mp_procs=1, nminima=3, archetypes=None, priors=Non maxcoeff = np.max([t.template.nbasis for t in templates]) else: if n_nearest is not None: - maxcoeff = max(np.max([t.template.nbasis for t in templates]), ncamera*(tot_deg_legendre)+n_nearest) + maxcoeff = max(np.max([t.template.nbasis for t in templates]), ncamera*(deg_legendre)+n_nearest) else: - maxcoeff = max(np.max([t.template.nbasis for t in templates]), ncamera*(tot_deg_legendre)+1) + maxcoeff = max(np.max([t.template.nbasis for t in templates]), ncamera*(deg_legendre)+1) if allzfit['coeff'].ndim == 1: ntarg = allzfit['coeff'].shape diff --git a/py/redrock/zscan.py b/py/redrock/zscan.py index 7405d68b..dbccf33e 100644 --- a/py/redrock/zscan.py +++ b/py/redrock/zscan.py @@ -272,7 +272,7 @@ def prior_on_coeffs(n_nbh, deg_legendre, sigma, ncamera, add_negative_legendre_t prior[idx2][idx1] = -prior[idx2][idx2] return prior -def per_camera_coeff_with_least_square_batch(target, tdata, weights, flux, wflux, nleg, narch, method=None, n_nbh=None, prior_sigma=None, use_gpu=False, ncam=None): +def per_camera_coeff_with_least_square_batch(target, binned, weights, flux, wflux, nleg, narch, method=None, n_nbh=None, prior_sigma=None, use_gpu=False, ncam=None): """This function calculates coefficients for archetype mode in each camera using normal linear algebra matrix solver or BVLS (bounded value least square) method @@ -282,7 +282,7 @@ def per_camera_coeff_with_least_square_batch(target, tdata, weights, flux, wflux Args: target (object): target object - tdata (dict): template data for model fit for ALL archetypes + binned (dict): template data for model fit for ALL archetypes weights (array): concatenated spectral weights (ivar). flux (array): concatenated flux values. wflux (array): concatenated weighted flux values. @@ -302,6 +302,19 @@ def per_camera_coeff_with_least_square_batch(target, tdata, weights, flux, wflux ### TODO - implement BVLS on GPU # number of cameras in DESI: b, r, z spectra = target.spectra +# ncam = len(bands) +# nbasis = n_nbh+nleg*ncam # n_nbh : for actual physical archetype(s), nleg: number of legendre polynomials, ncamera: number of cameras + +# if bands is None or bands[0] is None: +# bands = ['b', 'z', 'r'] +# ret_zcoeff = {} +# ret_zcoeff['alpha'] = [] +# if nleg>0: +# for b in bands: # bands as save in targets object +# ret_zcoeff[b] = [] + +# new_bands = sorted(bands) # saves as correct order + method = method.upper() add_negative_legendre_terms = False if (method == 'BVLS' and use_gpu): @@ -309,6 +322,47 @@ def per_camera_coeff_with_least_square_batch(target, tdata, weights, flux, wflux #Calculate prior here prior = prior_on_coeffs(n_nbh, nleg, prior_sigma, ncam, add_negative_legendre_terms) + legendre = target.legendre(nleg=nleg, use_gpu=False) #Get previously calculated legendre + +# if add_negative_legendre_terms: +# #Hard-code NNLS with additional legendre terms if BVLS AND gpu mode +# method = 'NNLS' +# #tdata should already have the additional negative legendre terms +# nleg *= 2 +# if narch == 1: +# #Use CPU if only 1 narch (nearest neighbor) +# use_gpu = False + +# #Calculate nbasis after accounting for legendre terms +# nbasis = n_nbh+nleg*ncam # n_nbh : for actual physical archetype(s), nleg: number of legendre polynomials, ncamera: number of cameras + + #Calculate tdata arrays here instead of in archetypes + #Select np or cp for operations as arrtype + if (use_gpu): + import cupy as cp + arrtype = cp + else: + arrtype = np + tdata = dict() + for hs in binned: + #Create 3-d tdata with narch x nwave x nbasis where nbasis = 1+nleg + if narch == 1: + tdata[hs] = binned[hs][None,:,:] + if nleg > 0: + tdata[hs] = np.append(tdata[hs], legendre[hs].transpose()[None,:,:], axis=2) + #if add_negative_legendre_terms: + if method == 'BVLS' and use_gpu: + #Using BVLS and GPU - append negative copies of legendre terms as well to use NNLS with additional bases to approximate BVLS + tdata[hs] = np.append(tdata[hs], -1*legendre[hs].transpose()[None,:,:], axis=2) + else: + if nleg > 0: + tdata[hs] = arrtype.append(binned[hs].transpose()[:,:,None], arrtype.tile(arrtype.asarray(legendre[hs]).transpose()[None,:,:], (narch, 1, 1)), axis=2) + #if add_negative_legendre_terms: + if method == 'BVLS' and use_gpu: + #Using BVLS - append negative copies of legendre terms as well to use NNLS with additional bases to approximate BVLS + tdata[hs] = arrtype.append(tdata[hs], arrtype.tile(-1*arrtype.asarray(legendre[hs]).transpose()[None,:,:], (narch, 1, 1)), axis=2) + else: + tdata[hs] = binned[hs].transpose()[:,:,None] if (method == 'BVLS' and use_gpu): #Hard-code se NNLS with additional legendre terms if BVLS AND gpu mode @@ -364,6 +418,8 @@ def per_camera_coeff_with_least_square_batch(target, tdata, weights, flux, wflux tdata2[hs][:,k+nleg*i] = tdata[hs][j,:,k] # Legendre polynomials terms tdata2[hs] = tdata2[hs][None,:,:] zzchi2[j], zzcoeff[j] = calc_zchi2_batch(spectra, tdata2, weights, flux, wflux, 1, nbasis, solve_matrices_algorithm=method, solver_args=solver_args, prior=prior, use_gpu=use_gpu) + if (add_negative_legendre_terms): + zzcoeff = remove_extra_legendre_terms(zzcoeff, n_nbh, ncam, nleg) # saving leading archetype coefficients in correct order ret_zcoeff['alpha'] = [zzcoeff[:,k] for k in range(n_nbh)] # archetype coefficient(s) @@ -377,13 +433,24 @@ def per_camera_coeff_with_least_square_batch(target, tdata, weights, flux, wflux # In target spectra redrock saves values as 'b', 'z', 'r'. # So just re-ordering them here to 'b', 'r', 'z' for easier reading old_coeff = {band: split_coeff[i] for i, band in enumerate(['b', 'z', 'r'])} + #old_coeff = {band: split_coeff[i] for i, band in enumerate(bands)} for band in ['b', 'r', 'z']:# 3 cameras + #for band in new_bands:# 3 cameras ret_zcoeff[band] = old_coeff[band] coeff = np.concatenate(list(ret_zcoeff.values()), axis=1) #print(f'{time.time()-start} [sec] took for per camera BVLS method\n') return zzchi2, coeff +def remove_extra_legendre_terms(zzcoeff, n_nbh, ncam, nleg): + nleg = nleg // 2 + zzcoeff2 = np.zeros_like(zzcoeff, shape=(zzcoeff.shape[0], n_nbh+ncam*(nleg))) + zzcoeff2[:,:n_nbh] = zzcoeff[:,:n_nbh] + for j in range(ncam): + for l in range(nleg): + zzcoeff2[:,n_nbh+nleg*j+l] = zzcoeff[:,n_nbh+nleg*j*2+l] - zzcoeff[:,n_nbh+nleg*j*2+nleg+l] + return zzcoeff2 + def batch_dot_product_sparse(spectra, tdata, nz, use_gpu): """Calculate a batch dot product of the 3 sparse matrices in spectra with every template in tdata. Sparse matrix libraries are used From fd7661725bab695cf836851360f3614c298694dd Mon Sep 17 00:00:00 2001 From: Craig D Warner Date: Thu, 9 May 2024 16:27:19 -0700 Subject: [PATCH 6/7] Refactor to bring more in-line with main where the conflicts mostly involve using a list of bands instead of ncam to be more general. --- py/redrock/archetypes.py | 14 ++++---- py/redrock/zscan.py | 73 +++++++++++++++------------------------- 2 files changed, 35 insertions(+), 52 deletions(-) diff --git a/py/redrock/archetypes.py b/py/redrock/archetypes.py index 51ca61ca..e03330ec 100644 --- a/py/redrock/archetypes.py +++ b/py/redrock/archetypes.py @@ -199,6 +199,7 @@ def nearest_neighbour_model(self, target,weights,flux,wflux,dwave,z, n_nearest, #is multiplied by trans in get_best_archetype spectra = target.spectra nleg = target.nleg + bands = None legendre = target.legendre(nleg=nleg, use_gpu=False) #Get previously calculated legendre nleg = legendre[list(legendre.keys())[0]].shape[0] @@ -223,8 +224,8 @@ def nearest_neighbour_model(self, target,weights,flux,wflux,dwave,z, n_nearest, #CW - 4/19/24 - pass use_gpu and solver method to per_camera_coeff_with_least_square_batch #it will decide there if narch == 1 to use CPU and it will calculate correct prior array #CW - 5/2/24 - pass binned instead of tdata to put all BVLS/NNLS code into per_camera_coeff_with_least_square_batch - #(zzchi2, zzcoeff) = per_camera_coeff_with_least_square_batch(target, binned, weights, flux, wflux, nleg, 1, method=self._solver_method, n_nbh=n_nearest, prior_sigma=prior_sigma, use_gpu=use_gpu, bands=target.bands) - (zzchi2, zzcoeff) = per_camera_coeff_with_least_square_batch(target, binned, weights, flux, wflux, nleg, 1, method=self._solver_method, n_nbh=n_nearest, prior_sigma=prior_sigma, use_gpu=use_gpu, ncam=ncam) + (zzchi2, zzcoeff) = per_camera_coeff_with_least_square_batch(target, binned, weights, flux, wflux, nleg, 1, method=self._solver_method, n_nbh=n_nearest, prior_sigma=prior_sigma, use_gpu=use_gpu, bands=bands) + #(zzchi2, zzcoeff) = per_camera_coeff_with_least_square_batch(target, binned, weights, flux, wflux, nleg, 1, method=self._solver_method, n_nbh=n_nearest, prior_sigma=prior_sigma, use_gpu=use_gpu, ncam=ncam) else: #Use CPU mode for calc_zchi2 since small tdata #Calculate tdata here because binned is passed to per_camera_coeff_with_least_square_batch @@ -267,6 +268,7 @@ def get_best_archetype(self,target,weights,flux,wflux,dwave,z, per_camera, n_nea """ spectra = target.spectra nleg = target.nleg + bands = None legendre = target.legendre(nleg=nleg, use_gpu=use_gpu) #Get previously calculated legendre solve_method = self._solver_method #get solve method from archetype class instead of passing as arg @@ -329,11 +331,11 @@ def get_best_archetype(self,target,weights,flux,wflux,dwave,z, per_camera, n_nea if per_camera: #Use per_camera_coeff_with_least_square_batch which has all logic associated with BVLS/NNLS solver methods if (use_gpu): - #(zzchi2, zzcoeff) = per_camera_coeff_with_least_square_batch(target, binned, gpuweights, gpuflux, gpuwflux, nleg, self._narch, method=solve_method, n_nbh=1, prior_sigma=prior_sigma, use_gpu=use_gpu, bands=bands) - (zzchi2, zzcoeff) = per_camera_coeff_with_least_square_batch(target, binned, gpuweights, gpuflux, gpuwflux, nleg, self._narch, method=solve_method, n_nbh=1, prior_sigma=prior_sigma, use_gpu=use_gpu, ncam=ncam) + (zzchi2, zzcoeff) = per_camera_coeff_with_least_square_batch(target, binned, gpuweights, gpuflux, gpuwflux, nleg, self._narch, method=solve_method, n_nbh=1, prior_sigma=prior_sigma, use_gpu=use_gpu, bands=bands) + #(zzchi2, zzcoeff) = per_camera_coeff_with_least_square_batch(target, binned, gpuweights, gpuflux, gpuwflux, nleg, self._narch, method=solve_method, n_nbh=1, prior_sigma=prior_sigma, use_gpu=use_gpu, ncam=ncam) else: - #(zzchi2, zzcoeff) = per_camera_coeff_with_least_square_batch(target, binned, weights, flux, wflux, nleg, self._narch, method=solve_method, n_nbh=1, prior_sigma=prior_sigma, use_gpu=use_gpu, bands=bands) - (zzchi2, zzcoeff) = per_camera_coeff_with_least_square_batch(target, binned, weights, flux, wflux, nleg, self._narch, method=solve_method, n_nbh=1, prior_sigma=prior_sigma, use_gpu=use_gpu, ncam=ncam) + (zzchi2, zzcoeff) = per_camera_coeff_with_least_square_batch(target, binned, weights, flux, wflux, nleg, self._narch, method=solve_method, n_nbh=1, prior_sigma=prior_sigma, use_gpu=use_gpu, bands=bands) + #(zzchi2, zzcoeff) = per_camera_coeff_with_least_square_batch(target, binned, weights, flux, wflux, nleg, self._narch, method=solve_method, n_nbh=1, prior_sigma=prior_sigma, use_gpu=use_gpu, ncam=ncam) else: #Calculate tdata here because binned is passed to per_camera_coeff_with_least_square_batch tdata = dict() diff --git a/py/redrock/zscan.py b/py/redrock/zscan.py index dbccf33e..d54fc941 100644 --- a/py/redrock/zscan.py +++ b/py/redrock/zscan.py @@ -272,7 +272,7 @@ def prior_on_coeffs(n_nbh, deg_legendre, sigma, ncamera, add_negative_legendre_t prior[idx2][idx1] = -prior[idx2][idx2] return prior -def per_camera_coeff_with_least_square_batch(target, binned, weights, flux, wflux, nleg, narch, method=None, n_nbh=None, prior_sigma=None, use_gpu=False, ncam=None): +def per_camera_coeff_with_least_square_batch(target, binned, weights, flux, wflux, nleg, narch, method=None, n_nbh=None, prior_sigma=None, use_gpu=False, bands=None): """This function calculates coefficients for archetype mode in each camera using normal linear algebra matrix solver or BVLS (bounded value least square) method @@ -292,6 +292,7 @@ def per_camera_coeff_with_least_square_batch(target, binned, weights, flux, wflu n_nbh (int): number of nearest best archetypes prior (array): prior matrix added to the Legendre coefficients (1/sigma^2) use_gpu (bool): use GPU or not + bands (list): list of wavelength bands ncam (int): number of cameras for given instrument Returns: @@ -302,18 +303,17 @@ def per_camera_coeff_with_least_square_batch(target, binned, weights, flux, wflu ### TODO - implement BVLS on GPU # number of cameras in DESI: b, r, z spectra = target.spectra -# ncam = len(bands) -# nbasis = n_nbh+nleg*ncam # n_nbh : for actual physical archetype(s), nleg: number of legendre polynomials, ncamera: number of cameras + if bands is None: + bands = ['b', 'z', 'r'] + ncam = len(bands) -# if bands is None or bands[0] is None: -# bands = ['b', 'z', 'r'] -# ret_zcoeff = {} -# ret_zcoeff['alpha'] = [] -# if nleg>0: -# for b in bands: # bands as save in targets object -# ret_zcoeff[b] = [] + ret_zcoeff = {} + ret_zcoeff['alpha'] = [] + if nleg>0: + for b in bands: # bands as save in targets object + ret_zcoeff[b] = [] -# new_bands = sorted(bands) # saves as correct order + new_bands = sorted(bands) # saves as correct order method = method.upper() add_negative_legendre_terms = False @@ -324,17 +324,17 @@ def per_camera_coeff_with_least_square_batch(target, binned, weights, flux, wflu prior = prior_on_coeffs(n_nbh, nleg, prior_sigma, ncam, add_negative_legendre_terms) legendre = target.legendre(nleg=nleg, use_gpu=False) #Get previously calculated legendre -# if add_negative_legendre_terms: -# #Hard-code NNLS with additional legendre terms if BVLS AND gpu mode -# method = 'NNLS' -# #tdata should already have the additional negative legendre terms -# nleg *= 2 -# if narch == 1: -# #Use CPU if only 1 narch (nearest neighbor) -# use_gpu = False + if add_negative_legendre_terms: + #Hard-code NNLS with additional legendre terms if BVLS AND gpu mode + method = 'NNLS' + #tdata should already have the additional negative legendre terms + nleg *= 2 + if narch == 1: + #Use CPU if only 1 narch (nearest neighbor) + use_gpu = False -# #Calculate nbasis after accounting for legendre terms -# nbasis = n_nbh+nleg*ncam # n_nbh : for actual physical archetype(s), nleg: number of legendre polynomials, ncamera: number of cameras + #Calculate nbasis after accounting for legendre terms + nbasis = n_nbh+nleg*ncam # n_nbh : for actual physical archetype(s), nleg: number of legendre polynomials, ncamera: number of cameras #Calculate tdata arrays here instead of in archetypes #Select np or cp for operations as arrtype @@ -350,37 +350,20 @@ def per_camera_coeff_with_least_square_batch(target, binned, weights, flux, wflu tdata[hs] = binned[hs][None,:,:] if nleg > 0: tdata[hs] = np.append(tdata[hs], legendre[hs].transpose()[None,:,:], axis=2) - #if add_negative_legendre_terms: - if method == 'BVLS' and use_gpu: + if add_negative_legendre_terms: + #if method == 'BVLS' and use_gpu: #Using BVLS and GPU - append negative copies of legendre terms as well to use NNLS with additional bases to approximate BVLS tdata[hs] = np.append(tdata[hs], -1*legendre[hs].transpose()[None,:,:], axis=2) else: if nleg > 0: tdata[hs] = arrtype.append(binned[hs].transpose()[:,:,None], arrtype.tile(arrtype.asarray(legendre[hs]).transpose()[None,:,:], (narch, 1, 1)), axis=2) - #if add_negative_legendre_terms: - if method == 'BVLS' and use_gpu: + if add_negative_legendre_terms: + #if method == 'BVLS' and use_gpu: #Using BVLS - append negative copies of legendre terms as well to use NNLS with additional bases to approximate BVLS tdata[hs] = arrtype.append(tdata[hs], arrtype.tile(-1*arrtype.asarray(legendre[hs]).transpose()[None,:,:], (narch, 1, 1)), axis=2) else: tdata[hs] = binned[hs].transpose()[:,:,None] - if (method == 'BVLS' and use_gpu): - #Hard-code se NNLS with additional legendre terms if BVLS AND gpu mode - method = 'NNLS' - #tdata should already have the additional negative legendre terms - nleg *= 2 - if narch == 1: - #Use CPU if only 1 narch (nearest neighbor) - use_gpu = False - - #Calculate nbasis after accounting for legendre terms - nbasis = n_nbh+nleg*ncam # n_nbh : for actual physical archetype(s), nleg: number of legendre polynomials, ncamera: number of cameras - - if nleg>0: - ret_zcoeff= {'alpha':[], 'b':[], 'r':[], 'z':[]} - else: - ret_zcoeff= {'alpha':[]} # in case no Legendre polynomials are used at all, only archetypes. - #Setup dict of solver args to pass bounds to solver solver_args = dict() if (method == 'BVLS'): @@ -432,11 +415,9 @@ def per_camera_coeff_with_least_square_batch(target, binned, weights, flux, wflu split_coeff = np.split(zzcoeff[:,n_nbh:], ncam, axis=1) # n_camera = 3 # In target spectra redrock saves values as 'b', 'z', 'r'. # So just re-ordering them here to 'b', 'r', 'z' for easier reading - old_coeff = {band: split_coeff[i] for i, band in enumerate(['b', 'z', 'r'])} - #old_coeff = {band: split_coeff[i] for i, band in enumerate(bands)} + old_coeff = {band: split_coeff[i] for i, band in enumerate(bands)} - for band in ['b', 'r', 'z']:# 3 cameras - #for band in new_bands:# 3 cameras + for band in new_bands:# 3 cameras ret_zcoeff[band] = old_coeff[band] coeff = np.concatenate(list(ret_zcoeff.values()), axis=1) #print(f'{time.time()-start} [sec] took for per camera BVLS method\n') From a4a953103fe4f7ba3fb70fbc4f4c716b325a6266 Mon Sep 17 00:00:00 2001 From: Craig D Warner Date: Tue, 14 May 2024 11:48:53 -0700 Subject: [PATCH 7/7] Created a new branch to handle the merging of legendre_nnls and main because results were different and timing as well. --- doc/changes.rst | 48 ++++- py/redrock/_version.py | 2 +- py/redrock/archetypes.py | 128 +++++++++--- py/redrock/constants.py | 1 + py/redrock/external/desi.py | 244 ++++++++++++++++++----- py/redrock/fitz.py | 30 +-- py/redrock/plotspec.py | 5 +- py/redrock/results.py | 58 +++--- py/redrock/targets.py | 116 +++++++++-- py/redrock/templates.py | 261 +++++++++++++++++++------ py/redrock/test/data/README | 12 ++ py/redrock/test/data/redrock-test.fits | 10 + py/redrock/test/data/rrdetails-test.h5 | Bin 0 -> 607162 bytes py/redrock/test/test_archetypes.py | 43 ++++ py/redrock/test/test_io.py | 102 ++-------- py/redrock/test/test_templates.py | 190 ++++++++++++++++++ py/redrock/test/test_utils.py | 21 ++ py/redrock/utils.py | 21 ++ py/redrock/zfind.py | 45 +++-- py/redrock/zscan.py | 43 ++-- 20 files changed, 1073 insertions(+), 307 deletions(-) create mode 100644 py/redrock/test/data/README create mode 100644 py/redrock/test/data/redrock-test.fits create mode 100644 py/redrock/test/data/rrdetails-test.h5 create mode 100644 py/redrock/test/test_archetypes.py create mode 100644 py/redrock/test/test_templates.py diff --git a/doc/changes.rst b/doc/changes.rst index 0c93ded9..7f89e94d 100644 --- a/doc/changes.rst +++ b/doc/changes.rst @@ -2,19 +2,60 @@ redrock Change Log ================== -0.19.0 (unreleased) +0.20.1 (unreleased) +------------------- + +* No changes yet. + +0.20.0 (2024-05-03) +------------------- + +Used for DESI Jura run. + +* Add rrdesi --model option to pre-generate model files (PR `#283`_). +* Add load_templates_from_header (PR `#290`_). +* Add units to fibermap output (PR `#292`_). +* Set ZWARN/NODATA to z=0 GALAXY, no SUBTYPE, zero coefficients (PR `#294`_). +* Add TEMFILnn keywords to header to support non-standard template names + (PR `#295`_). +* Fix read_zscan; add make_fulltype, parse_fulltype to standardize + fulltype,spectype,subtype parsing (PR `#297`_). +* Fix warning from zero-sized array (PR `#298`_). +* Standardize wavelength -> [-1,1] mapping for Legendre poly (PR `#299`_). +* Set max_velo_diff to 100 km/s for stars (PR `#300`_). +* Ensure `FITMETHOD` holds 4-string `NONE` (addresses `#301`) (PR `#303`_). +* Fix FITMETHOD bytes vs. str for details file output (PR `#304`_). +* Remove unnecessary desispec dependency (PR `#306`_). + +.. _`#283`: https://github.com/desihub/redrock/pull/283 +.. _`#290`: https://github.com/desihub/redrock/pull/290 +.. _`#292`: https://github.com/desihub/redrock/pull/292 +.. _`#294`: https://github.com/desihub/redrock/pull/294 +.. _`#295`: https://github.com/desihub/redrock/pull/295 +.. _`#297`: https://github.com/desihub/redrock/pull/297 +.. _`#298`: https://github.com/desihub/redrock/pull/298 +.. _`#299`: https://github.com/desihub/redrock/pull/299 +.. _`#300`: https://github.com/desihub/redrock/pull/300 +.. _`#301`: https://github.com/desihub/redrock/issues/301 +.. _`#303`: https://github.com/desihub/redrock/pull/303 +.. _`#304`: https://github.com/desihub/redrock/pull/304 +.. _`#306`: https://github.com/desihub/redrock/pull/306 + +0.19.0 (2024-04-19) ------------------- * Write test files to temporary directory (PR `#263`_). * Check template dimension so code works on a single template (PR `#264`_). * Versioned templates, NMF support, and updated IGM models (PR `#271`_). +* Mask significantly negative flux (PR `#282`_). +* Add ``results.read_zscan(..., select=targetids=...)`` option (PR `#289`_). * Archetype updates: * Added default --nminima for archetypes (PR `#265`_). * Adjust coeff size for Legendre for archetypes (PR `#266`_). * Docstring cleanup (PR `#267`_). * Fix --archetype_nnearest option (PR `#272`_). - + * fix --archetype-legendre-degree=0 crash corner case (PR `#278`_). .. _`#263`: https://github.com/desihub/redrock/pull/263 .. _`#264`: https://github.com/desihub/redrock/pull/264 @@ -23,6 +64,9 @@ redrock Change Log .. _`#267`: https://github.com/desihub/redrock/pull/267 .. _`#271`: https://github.com/desihub/redrock/pull/271 .. _`#272`: https://github.com/desihub/redrock/pull/272 +.. _`#278`: https://github.com/desihub/redrock/pull/278 +.. _`#282`: https://github.com/desihub/redrock/pull/282 +.. _`#289`: https://github.com/desihub/redrock/pull/289 0.18.0 (2023-09-14) ------------------- diff --git a/py/redrock/_version.py b/py/redrock/_version.py index a950f3e3..03e2d79a 100644 --- a/py/redrock/_version.py +++ b/py/redrock/_version.py @@ -1 +1 @@ -__version__ = '0.18.0.dev797' +__version__ = '0.20.0.dev1043' diff --git a/py/redrock/archetypes.py b/py/redrock/archetypes.py index e03330ec..3b5dc161 100644 --- a/py/redrock/archetypes.py +++ b/py/redrock/archetypes.py @@ -7,10 +7,13 @@ import os from glob import glob from astropy.io import fits +from astropy.table import Table import numpy as np from scipy.interpolate import interp1d import scipy.special +from .utils import reduced_wavelength + from .zscan import calc_zchi2_one, calc_zchi2_batch from .rebin import trapz_rebin @@ -19,6 +22,8 @@ from .zscan import per_camera_coeff_with_least_square_batch +from .templates import make_fulltype + class Archetype(): """Class to store all different archetypes from the same spectype. @@ -31,6 +36,7 @@ class Archetype(): def __init__(self, filename): # Load the file + self._filename = filename h = fits.open(os.path.expandvars(filename), memmap=False) hdr = h['ARCHETYPES'].header @@ -40,7 +46,7 @@ def __init__(self, filename): self._rrtype = hdr['RRTYPE'].strip() self._subtype = np.array(np.char.strip(h['ARCHETYPES'].data['SUBTYPE'].astype(str))) self._subtype = np.char.add(np.char.add(self._subtype,'_'),np.arange(self._narch,dtype=int).astype(str)) - self._full_type = np.char.add(self._rrtype+':::',self._subtype) + self._full_type = np.array([make_fulltype(self._rrtype, subtype) for subtype in self._subtype]) self._version = hdr['VERSION'] self.wave = np.asarray(hdr['CRVAL1'] + hdr['CDELT1']*np.arange(self.flux.shape[1])) @@ -66,6 +72,8 @@ def __init__(self, filename): # TODO: Allow Archetype files to specify bvls or nnls or pca solver method self._solver_method = 'bvls' + self.method = 'ARCH' # for API symmetry with Template.method + return @property @@ -84,6 +92,27 @@ def gpuflux(self): self._gpuflux = cp.asarray(self.flux) return self._gpuflux + @property + def version(self): + return self._version + + @property + def filename(self): + return self._filename + + #- template_type, sub_type, and full_type like Template object methods + @property + def template_type(self): + return self._rrtype + + @property + def sub_type(self): + return self._subtype + + @property + def full_type(self): + return self._full_type + def rebin_template(self,index,z,dwave,trapz=True): """ """ @@ -149,23 +178,46 @@ def rebin_template_batch(self,z,dwave,trapz=True,dedges=None,indx=None,use_gpu=F #return {hs:self._archetype['INTERP'](wave/(1.+z)) for hs, wave in dwave.items()} return result - def eval(self, subtype, dwave, coeff, wave, z): - """ + def eval(self, subtype, coeff, wave, z, R=None, legcoeff=None): + """Return archetype for given subtype, coefficients, wavelengths, and redshift + + Args: + subtype (str) : comma separated str of archetype subtype(s) + coeff : array of archetype coefficients + wave : wavelengths at which to evaluate template flux + z : redshift at which to evaluate template flux + + Options: + R : array[nwave,nwave] resolution matrix to convolve with model + legcoeff : array of additional legendre coefficients + Returns: + archetype flux array + + Notes: + No factors of (1+z) are applied to the resampled flux, i.e. + evaluating the same coeffs at different z does not conserve + integrated flux, but more directly maps model=templates.dot(coeff) """ - deg_legendre = (coeff!=0.).size-1 - index = np.arange(self._narch)[self._subtype==subtype][0] + subtypes = subtype.split(';') + model = np.zeros(len(wave)) + for this_subtype, c in zip(subtypes, coeff[0:len(subtypes)]): + index = np.where(self._subtype == this_subtype)[0][0] + binned_archetype = trapz_rebin((1+z)*self.wave, self.flux[index], wave) + binned_archetype *= transmission_Lyman(z,wave,model=self.igm_model) + + model += c*binned_archetype - w = np.concatenate([ w for w in dwave.values() ]) - wave_min = w.min() - wave_max = w.max() - legendre = np.array([scipy.special.legendre(i)( (wave-wave_min)/(wave_max-wave_min)*2.-1. ) for i in range(deg_legendre)]) - binned = trapz_rebin((1+z)*self.wave, self.flux[index], wave)*transmission_Lyman(z,wave,model=self.igm_model) - flux = np.append(binned[None,:],legendre, axis=0) - flux = flux.T.dot(coeff).T / (1+z) + if legcoeff is not None: + deg_legendre = len(legcoeff) + legendre = np.array([scipy.special.legendre(i)( reduced_wavelength(wave) ) for i in range(deg_legendre)]) + model += legendre.T.dot(legcoeff).T - return flux + if R is not None: + model = R.dot(model) + + return model def nearest_neighbour_model(self, target,weights,flux,wflux,dwave,z, n_nearest, zzchi2, trans, per_camera, dedges=None, binned=None, use_gpu=False, prior_sigma=None, ncam=None): @@ -238,17 +290,17 @@ def nearest_neighbour_model(self, target,weights,flux,wflux,dwave,z, n_nearest, (zzchi2, zzcoeff) = calc_zchi2_batch(spectra, tdata, weights, flux, wflux, 1, nbasis, use_gpu=False) sstype = ['%s'%(self._subtype[k]) for k in iBest] # subtypes of best archetypes - fsstype = '_'.join(sstype) + fsstype = ';'.join(sstype) #print(sstype) #print(z, zzchi2, zzcoeff, fsstype) - return zzchi2[0], zzcoeff[0], self._rrtype+':::%s'%(fsstype) + return zzchi2[0], zzcoeff[0], make_fulltype(self._rrtype, fsstype) def get_best_archetype(self,target,weights,flux,wflux,dwave,z, per_camera, n_nearest, trans=None, prior_sigma=None, use_gpu=False): """Get the best archetype for the given redshift and spectype. Args: - spectra (list): list of Spectrum objects. + target (object): target object. weights (array): concatenated spectral weights (ivar). flux (array): concatenated flux values. wflux (array): concatenated weighted flux values. @@ -257,8 +309,8 @@ def get_best_archetype(self,target,weights,flux,wflux,dwave,z, per_camera, n_nea per_camera (bool): True if fitting needs to be done in each camera n_nearest (int): number of nearest neighbours to be used in chi2 space (including best archetype) trans (dict): pass previously calcualated Lyman transmission instead of recalculating - use_gpu (bool): use GPU or not prior_sigma (float): prior to add in the final solution matrix: added as 1/(prior_sigma**2) only for per-camera mode + use_gpu (bool): use GPU or not Returns: chi2 (float): chi2 of best archetype @@ -271,6 +323,7 @@ def get_best_archetype(self,target,weights,flux,wflux,dwave,z, per_camera, n_nea bands = None legendre = target.legendre(nleg=nleg, use_gpu=use_gpu) #Get previously calculated legendre solve_method = self._solver_method #get solve method from archetype class instead of passing as arg + bands = target.bands #Select np or cp for operations as arrtype if (use_gpu): @@ -291,10 +344,9 @@ def get_best_archetype(self,target,weights,flux,wflux,dwave,z, per_camera, n_nea else: ncam = 1 # entire spectra - wkeys = list(dwave.keys()) - new_keys = [wkeys[0], wkeys[2], wkeys[1]] - - obs_wave = np.concatenate([dwave[key] for key in new_keys]) + #wkeys = list(dwave.keys()) + #new_keys = [wkeys[0], wkeys[2], wkeys[1]] + #obs_wave = np.concatenate([dwave[key] for key in new_keys]) #nleg = legendre[list(legendre.keys())[0]].shape[0] @@ -327,7 +379,6 @@ def get_best_archetype(self,target,weights,flux,wflux,dwave,z, per_camera, n_nea if (trans[hs] is not None): #Only multiply if trans[hs] is not None binned[hs] *= arrtype.asarray(trans[hs][:,None]) - if per_camera: #Use per_camera_coeff_with_least_square_batch which has all logic associated with BVLS/NNLS solver methods if (use_gpu): @@ -387,6 +438,36 @@ def __init__(self, lstfilename=None, archetypes_dir=None, verbose=False): return +def split_archetype_coeff(subtype, coeff, nbands, nleg=None): + """ + Split coeff array into archetype + legendre terms + + Args: + subtype (str): comma separated archetype subtypes + coeff (array): coefficients from redrock fit + nbands (int): number of spectrograph bands (e.g. 3 for DESI b/r/z) + + Options + nleg (int): number of legendre terms per band + + Returns (archcoeff, legcoeff) where archcoeff is array of archetype coefficients + for each subtype, and legcoeff is list of legendre coefficients per band. + + If nleg is None, it will be derived from counting non-zero terms of coeff. + Expected length of non-zero coeffs is num_subtypes + nbands*nleg. + """ + narchetypes = len(subtype.split(';')) + archcoeff = coeff[0:narchetypes] + all_legcoeff = coeff[narchetypes:] + + if nleg is None: + # derive number of legendre coefficients used from non-zero terms + nleg = np.count_nonzero(all_legcoeff) // nbands + + legcoeff = [all_legcoeff[i*nleg:(i+1)*nleg] for i in range(nbands)] + + return archcoeff, legcoeff + def find_archetypes(archetypes_dir=None): """Return list of rrarchetype-\*.fits archetype files @@ -422,3 +503,6 @@ def find_archetypes(archetypes_dir=None): lstfilename = sorted([ f.replace(archetypes_dir_expand,archetypes_dir) for f in lstfilename]) return lstfilename + + + diff --git a/py/redrock/constants.py b/py/redrock/constants.py index 1b707267..f9be64d8 100644 --- a/py/redrock/constants.py +++ b/py/redrock/constants.py @@ -5,6 +5,7 @@ Set constants used by the rest of the package. """ max_velo_diff = 1000.0 # km/s +max_velo_diff_star = 100.0 # km/s min_resolution_integral = 0.99 min_deltachi2 = 9. diff --git a/py/redrock/external/desi.py b/py/redrock/external/desi.py index 0572350e..cb740b33 100644 --- a/py/redrock/external/desi.py +++ b/py/redrock/external/desi.py @@ -9,13 +9,14 @@ import re import warnings import traceback +import itertools import argparse import numpy as np from astropy.io import fits -from astropy.table import Table +from astropy.table import Table, vstack from desiutil.io import encode_table from desiutil.depend import add_dependencies, setdep @@ -24,6 +25,8 @@ from desispec.coaddition import coadd_fibermap from desispec.specscore import compute_coadd_tsnr_scores from desispec.maskbits import fibermask +from desispec.io.util import get_tempfilename +from desispec.io.fibermap import annotate_fibermap from ..utils import elapsed, get_mp, distribute_work, getGPUCountMPI @@ -39,38 +42,36 @@ from .._version import __version__ -from ..archetypes import All_archetypes - - -def write_zbest(outfile, zbest, fibermap, exp_fibermap, tsnr2, - template_version, archetype_version, - spec_header=None): - """Write zbest and fibermap Tables to outfile +from ..archetypes import All_archetypes, Archetype +def _get_header(templates, archetypes=None, spec_header=None): + """Get standardized header with template and archetype versions + Args: - outfile (str): output path. - zbest (Table): best fit table. - fibermap (Table): the coadded fibermap from the original inputs. - tsnr2 (Table): table of input coadded TSNR2 values - exp_fibermap (Table): the per-exposure fibermap from the orig inputs. - template_version (str): template version used - archetype_version (str): archetype version used + templates : list or dict of template objects Options: - spec_header (dict-like): header of HDU 0 of input spectra - - Modifies input tables.meta['EXTNAME'] + archetypes : list or dict of Archetype objects + spec_header (dict-like): header of HDU 0 of input spectra/coadd """ + if isinstance(templates, dict): + templates = templates.values() + + if isinstance(archetypes, dict): + archetypes = archetypes.values() + header = fits.Header() header['LONGSTRN'] = 'OGIP 1.0' header['RRVER'] = (__version__, 'Redrock version') - for i, fulltype in enumerate(template_version.keys()): - header['TEMNAM'+str(i).zfill(2)] = fulltype - header['TEMVER'+str(i).zfill(2)] = template_version[fulltype] - if not archetype_version is None: - for i, fulltype in enumerate(archetype_version.keys()): - header['ARCNAM'+str(i).zfill(2)] = fulltype - header['ARCVER'+str(i).zfill(2)] = archetype_version[fulltype] + for i, t in enumerate(templates): + header[f'TEMNAM{i:02d}'] = t.full_type + header[f'TEMVER{i:02d}'] = t.version + header[f'TEMFIL{i:02d}'] = os.path.basename(t.filename) + if archetypes is not None: + for i, atyp in enumerate(archetypes): + header[f'ARCNAM{i:02d}'] = atyp.template_type + header[f'ARCVER{i:02d}'] = atyp.version + header[f'ARCFIL{i:02d}'] = os.path.basename(atyp.filename) # record code versions and key environment variables add_dependencies(header) @@ -85,6 +86,29 @@ def write_zbest(outfile, zbest, fibermap, exp_fibermap, tsnr2, if key in spec_header: header[key] = spec_header[key] + return header + +def write_zbest(outfile, zbest, fibermap, exp_fibermap, tsnr2, + templates, archetypes=None, + spec_header=None): + """Write zbest and fibermap Tables to outfile + + Args: + outfile (str): output path. + zbest (Table): best fit table. + fibermap (Table): the coadded fibermap from the original inputs. + tsnr2 (Table): table of input coadded TSNR2 values + exp_fibermap (Table): the per-exposure fibermap from the orig inputs. + templates : list or dict of template objects + + Options: + archetypes : list or dict of Archetype objects + spec_header (dict-like): header of HDU 0 of input spectra + + Modifies input tables.meta['EXTNAME'] + """ + header = _get_header(templates, archetypes, spec_header) + zbest.meta['EXTNAME'] = 'REDSHIFTS' fibermap.meta['EXTNAME'] = 'FIBERMAP' exp_fibermap.meta['EXTNAME'] = 'EXP_FIBERMAP' @@ -93,7 +117,8 @@ def write_zbest(outfile, zbest, fibermap, exp_fibermap, tsnr2, hx = fits.HDUList() hx.append(fits.PrimaryHDU(header=header)) hx.append(fits.convenience.table_to_hdu(zbest)) - hx.append(fits.convenience.table_to_hdu(fibermap)) + # ADM annotate_fibermap adds units to fibermap HDUs. + hx.append(annotate_fibermap(fits.convenience.table_to_hdu(fibermap))) hx.append(fits.convenience.table_to_hdu(exp_fibermap)) hx.append(fits.convenience.table_to_hdu(tsnr2)) @@ -108,6 +133,54 @@ def write_zbest(outfile, zbest, fibermap, exp_fibermap, tsnr2, return +def write_bestmodel(outfile, zbest, modeldict, wavedict, templates, + archetypes=None, spec_header=None): + """ + Writes best fit redrock model in the outfile + + Args: + outfile (str): output file name (fits) + zbest (Table): best fit redshift table + modeldict (dict): models[ntargets, nwave] keyed by camera band + wavedict (dict): wavelength dictionary keyed by camera band + templates : list or dict of template objects + + Options: + archetypes : list or dict of Archetype objects + spec_header (dict-like): header of HDU 0 of input spectra + + The output file format mirrors the structure of an input coadd, with B/R/Z_MODEL + HDUs instead of B/R/Z_FLUX HDUs. + """ + header = _get_header(templates, archetypes, spec_header) + + zbest.meta['EXTNAME'] = 'REDSHIFTS' + hx = fits.HDUList() + hx.append(fits.PrimaryHDU(header=header)) + hx.append(fits.convenience.table_to_hdu(zbest)) + + for band in wavedict.keys(): + BAND = band.upper() + hdu = fits.ImageHDU(name=f'{BAND}_WAVELENGTH') + hdu.data = wavedict[band] + hdu.header["BUNIT"] = "Angstrom" + hx.append(hdu) + + hdu = fits.ImageHDU(name=f'{BAND}_MODEL') + hdu.data = modeldict[band].astype('float32') + hx.append(hdu) + + outfile = os.path.expandvars(outfile) + outdir = os.path.dirname(os.path.abspath(outfile)) + if not os.path.exists(outdir): + os.makedirs(outdir) + + tempfile = get_tempfilename(outfile) + hx.writeto(tempfile, overwrite=True) + os.rename(tempfile, outfile) + + return + class DistTargetsDESI(DistTargets): """Distributed targets for DESI. @@ -400,8 +473,8 @@ def __init__(self, spectrafiles, coadd=True, targetids=None, nspec = len(self._target_specs[sfile][t]) for s in range(nspec): sindx = self._target_specs[sfile][t][s] - speclist.append(Spectrum(self._wave[sfile][b], - None, None, None, None)) + speclist.append(Spectrum(wave=self._wave[sfile][b], + flux=None, ivar=None, R=None, band=b)) self._my_data.append(Target(t, speclist, coadd=False)) @@ -575,7 +648,7 @@ def rrdesi(options=None, comm=None): required=False, help="If True, in archetype mode the fitting will be done for each camera/band") parser.add_argument("--archetype-legendre-prior", type=float, default=0.1, - required=False, help="sigma to add as prior in solving linear equation, 1/sig**2 will be added, default is 0.1") + required=False, help="sigma to add as prior in solving linear equation, 1/sig**2 will be added, default is 0.1, Note: provide anything <=0 if you do not want to add any prior") parser.add_argument("--archetypes-no-legendre", default=False, action="store_true", required=False, help="Use this flag with archetypes if want to TURN OFF all archetype related default values") @@ -588,6 +661,9 @@ def rrdesi(options=None, comm=None): parser.add_argument("-o", "--outfile", type=str, default=None, required=False, help="output FITS file with best redshift per target") + + parser.add_argument("--model", type=str, default=None, + required=False, help="output FITS file containing spectral model") parser.add_argument("--targetids", type=str, default=None, required=False, help="comma-separated list of target IDs") @@ -657,7 +733,7 @@ def rrdesi(options=None, comm=None): args = parser.parse_args() else: args = parser.parse_args(options) - + if args.ncpu is not None: print('WARNING: --ncpu is deprecated; use --mp instead') args.mp = args.ncpu @@ -727,7 +803,7 @@ def rrdesi(options=None, comm=None): comm.Abort() else: sys.exit(1) - + if args.archetypes is not None: print('\n===== Archetype argument is provided, doing necessary checks=======\n') if os.path.exists(args.archetypes) and os.access(args.archetypes, os.R_OK): @@ -754,6 +830,11 @@ def rrdesi(options=None, comm=None): else: sys.exit(1) + #- All ranks read the archetypes file(s) + archetypes = None + if args.archetypes is not None: + archetypes = All_archetypes(archetypes_dir=args.archetypes, verbose=(comm_rank==0)).archetypes + targetids = None if args.targetids is not None: targetids = [ int(x) for x in args.targetids.split(",") ] @@ -859,7 +940,7 @@ def rrdesi(options=None, comm=None): ii |= (9792. <= s.wave) & (s.wave <= 9795.) s.ivar[ii] = 0.0 - # Get the dictionary of wavelength grids + # Get the dictionary of wavelength grids (with keys as wavehashes) dwave = targets.wavegrids() ncamera = len(list(dwave.keys())) # number of cameras for given instrument @@ -872,9 +953,9 @@ def rrdesi(options=None, comm=None): else: if comm_rank == 0 and args.archetypes is not None: print('Will be using default archetype values.') - print('number of minimum redshift for which archetype redshift fitting will be done = %d'%(nminima)) + print('Number of minimum redshift for which archetype redshift fitting will be done = %d'%(nminima)) - if ncamera>1: + if ncamera>=1: archetype_legendre_percamera = True if comm_rank == 0 and args.archetypes is not None: print('Number of cameras = %d, percamera fitting will be done'%(ncamera)) @@ -888,9 +969,16 @@ def rrdesi(options=None, comm=None): else: if comm_rank == 0 and args.archetypes is not None: print('No Legendre polynomial will be added to archetypes.') - archetype_legendre_prior = args.archetype_legendre_prior + if args.archetype_legendre_prior<=0: + archetype_legendre_prior = None + printstr = 'no' + else: + archetype_legendre_prior = args.archetype_legendre_prior + printstr = 'a' if comm_rank == 0 and args.archetypes is not None: - print('archetype_legendre_prior = %s has been provided, so a prior will be added while solving for the coefficients'%(archetype_legendre_prior)) + if archetype_legendre_prior is None: + print('A zero or negative prior is provided so setting archetype_legendre_prior = None') + print('archetype_legendre_prior = %s has been provided, so %s prior will be added while solving for the coefficients'%(archetype_legendre_prior, printstr)) if args.archetype_nnearest is not None: if comm_rank == 0 and args.archetypes is not None: print('nearest neighbour = %d is provided, will do the final fitting for N-best nearest archetypes in chi2 space..'%(args.archetype_nnearest)) @@ -912,13 +1000,14 @@ def rrdesi(options=None, comm=None): # refinement. This function only returns data on the rank 0 process. start = elapsed(None, "", comm=comm) - + scandata, zfit = zfind(targets, dtemplates, mpprocs, - nminima=nminima, archetypes=args.archetypes, + nminima=nminima, archetypes=archetypes, priors=args.priors, chi2_scan=args.chi2_scan, use_gpu=use_gpu, zminfit_npoints=args.zminfit_npoints, per_camera=archetype_legendre_percamera, deg_legendre=args.archetype_legendre_degree, n_nearest=args.archetype_nnearest, prior_sigma=archetype_legendre_prior, ncamera=ncamera) stop = elapsed(start, "Computing redshifts", comm=comm) + zbest = None # Set some DESI-specific ZWARN bits from input fibermap if comm_rank == 0: fiberstatus = targets.fibermap['COADD_FIBERSTATUS'] @@ -941,6 +1030,13 @@ def rrdesi(options=None, comm=None): ii = np.isin(zfit['targetid'], targetids[badpos | broken | unassigned | bad]) zfit['zwarn'][ii] |= ZWarningMask.NODATA + # ADM set NODATA cases to z=0, GALAXY with zero coefficients. + zfit['spectype'][ii] = 'GALAXY' + zfit['subtype'][ii] = '' + zfit['coeff'][ii] = 0. + # ADM enforce 4-string in case we've only populated PCA/NMF. + zfit['fitmethod'] = zfit['fitmethod'].astype('U4') + zfit['fitmethod'][ii] = 'NONE' ii = np.isin(zfit['targetid'], targetids[broken]) zfit['zwarn'][ii] |= ZWarningMask.UNPLUGGED @@ -951,6 +1047,18 @@ def rrdesi(options=None, comm=None): ii = np.isin(zfit['targetid'], targetids[badcoverage]) zfit['zwarn'][ii] |= ZWarningMask.LITTLE_COVERAGE + # gather templates and archetypes for final I/O header metadata + templates = dict() + for dt in dtemplates: + spectype = dt.template.template_type + subtype = dt.template.sub_type + templates[(spectype,subtype)] = dt.template + + archetypes = None + if not args.archetypes is None: + archetypes = All_archetypes(archetypes_dir=args.archetypes, + verbose=(comm_rank==0)).archetypes + # Write the outputs if args.details is not None: @@ -958,7 +1066,7 @@ def rrdesi(options=None, comm=None): if comm_rank == 0: write_zscan(args.details, scandata, zfit, clobber=True) stop = elapsed(start, "Writing zscan data took", comm=comm) - + if args.outfile: start = elapsed(None, "", comm=comm) if comm_rank == 0: @@ -966,27 +1074,67 @@ def rrdesi(options=None, comm=None): # Remove extra columns not needed for zbest zbest.remove_columns(['zz', 'zzchi2', 'znum']) - - # Change to upper case like DESI + + # Change to upper case like SDSS / DESI for colname in zbest.colnames: if colname.islower(): zbest.rename_column(colname, colname.upper()) - template_version = {t._template.full_type:t._template._version for t in dtemplates} - archetype_version = None - if not args.archetypes is None: - archetypes = All_archetypes(archetypes_dir=args.archetypes, - verbose=(comm_rank==0)).archetypes - archetype_version = {name:arch._version for name, arch in archetypes.items() } + # Allow 4 char for ARCH (vs. PCA/NMF) even if archetypes aren't used + zbest['FITMETHOD'] = zbest['FITMETHOD'].astype('U4') write_zbest(args.outfile, zbest, targets.fibermap, targets.exp_fibermap, targets.tsnr2, - template_version, archetype_version, + templates, archetypes=archetypes, spec_header=targets.header0) + + if comm is not None: + zbest = comm.bcast(zbest, root=0) stop = elapsed(start, f"Writing {args.outfile} took", comm=comm) + #- Evaluate models + if args.model is not None: + + #- Evaluate best-fit models for local targets, + #- then collect into all_models on rank 0 + local_models = targets.eval_models(zbest, templates, archetypes) + local_targetids = targets.local_target_ids() + if targets.comm is not None: + all_models = targets.comm.gather(local_models, root=0) + all_targetids = targets.comm.gather(local_targetids, root=0) + else: + all_models = [local_models,] + all_targetids = [local_targetids,] + + stop = elapsed(start, f"Evaluating best fit models took", comm=comm) + if comm_rank == 0: + #- collapse list of lists of dictionaries -> single list of dictionaries + all_models = list(itertools.chain.from_iterable(all_models)) + + #- find sort orrder to match zbest + all_targetids = np.concatenate(all_targetids) + xsorted = np.argsort(all_targetids) + ypos = np.searchsorted(all_targetids[xsorted], zbest['TARGETID']) + sort_indices = xsorted[ypos] + + #- double check sorting + all_targetids = np.array(all_targetids)[sort_indices] + np.testing.assert_array_equal(zbest['TARGETID'].data, all_targetids) + + #- convert list[targets] of dict[bands] into dict[band] of sorted array[targets] + #- for DESI, the wavegrid keys = wavehashes = camera bands b/r/z + all_models_dict = dict() + wave_dict = targets.wavegrids() + for band in wave_dict: + all_models_dict[band] = np.vstack([m[band] for m in all_models])[sort_indices] + + write_bestmodel(args.model, zbest, all_models_dict, wave_dict, + templates, archetypes, spec_header=targets.header0) + + stop = elapsed(start, f"Writing {args.model} took", comm=comm) + except Exception as err: exc_type, exc_value, exc_traceback = sys.exc_info() lines = traceback.format_exception(exc_type, exc_value, exc_traceback) diff --git a/py/redrock/fitz.py b/py/redrock/fitz.py index da1a9fb7..6a10d497 100644 --- a/py/redrock/fitz.py +++ b/py/redrock/fitz.py @@ -9,13 +9,13 @@ import numpy as np import scipy.constants -import scipy.special from . import constants from .rebin import rebin_template from .zscan import calc_zchi2_one, spectral_data, calc_zchi2_batch +from .zscan import calc_negOII_penalty from .zwarning import ZWarningMask as ZW @@ -106,8 +106,6 @@ def minfit(x, y): return (x0, xerr, y0, zwarn) - - def legendre_calculate(nleg, dwave): wave = np.concatenate([ w for w in dwave.values() ]) wmin = wave.min() @@ -116,7 +114,8 @@ def legendre_calculate(nleg, dwave): return legendre -def fitz(zchi2, redshifts, target, template, nminima=3, archetype=None, use_gpu=False, deg_legendre=None, zminfit_npoints=15, per_camera=False, n_nearest=None, prior_sigma=None): +def fitz(zchi2, redshifts, target, template, nminima=3, archetype=None, use_gpu=False, deg_legendre=None, + zminfit_npoints=15, per_camera=False, n_nearest=None, prior_sigma=None): """Refines redshift measurement around up to nminima minima. TODO: @@ -154,7 +153,7 @@ def fitz(zchi2, redshifts, target, template, nminima=3, archetype=None, use_gpu= dwave = { s.wavehash:s.wave for s in spectra } (weights, flux, wflux) = spectral_data(spectra) - + if (use_gpu): #Get CuPy arrays of weights, flux, wflux #These are created on the first call of gpu_spectral_data() for a @@ -175,15 +174,20 @@ def fitz(zchi2, redshifts, target, template, nminima=3, archetype=None, use_gpu= else: nz = zminfit_npoints + if template.template_type == 'STAR': + max_velo_diff = constants.max_velo_diff_star + else: + max_velo_diff = constants.max_velo_diff + for imin in find_minima(zchi2): if len(results) == nminima: break - #- Skip this minimum if it is within constants.max_velo_diff km/s of a + #- Skip this minimum if it is within max_velo_diff km/s of a # previous one dv is in km/s zprev = np.array([tmp['z'] for tmp in results]) dv = get_dv(z=redshifts[imin],zref=zprev) - if np.any(np.abs(dv) < constants.max_velo_diff): + if np.any(np.abs(dv) < max_velo_diff): continue #- Sample more finely around the minimum @@ -232,6 +236,10 @@ def fitz(zchi2, redshifts, target, template, nminima=3, archetype=None, use_gpu= solve_matrices_algorithm=template.solve_matrices_algorithm, use_gpu=use_gpu) + #- Penalize chi2 for negative [OII] flux; ad-hoc + if hasattr(template, 'OIItemplate'): + zzchi2 += calc_negOII_penalty(template.OIItemplate, zzcoeff) + #- fit parabola to 3 points around minimum i = min(max(np.argmin(zzchi2),1), len(zz)-2) zmin, sigma, chi2min, zwarn = minfit(zz[i-1:i+2], zzchi2[i-1:i+2]) @@ -296,16 +304,16 @@ def fitz(zchi2, redshifts, target, template, nminima=3, archetype=None, use_gpu= zwarn |= ZW.Z_FITLIMIT #- Skip this better defined minimum if it is within - #- constants.max_velo_diff km/s of a previous one + #- max_velo_diff km/s of a previous one zprev = np.array([tmp['z'] for tmp in results]) dv = get_dv(z=zbest, zref=zprev) - if np.any(np.abs(dv) < constants.max_velo_diff): + if np.any(np.abs(dv) < max_velo_diff): continue if archetype is None: results.append(dict(z=zbest, zerr=zerr, zwarn=zwarn, chi2=chi2min, zz=zz, zzchi2=zzchi2, - coeff=coeff)) + coeff=coeff, fitmethod=template.method)) else: if prior_sigma is not None: if per_camera: @@ -320,7 +328,7 @@ def fitz(zchi2, redshifts, target, template, nminima=3, archetype=None, use_gpu= results.append(dict(z=zbest, zerr=zerr, zwarn=zwarn, chi2=chi2min, zz=zz, zzchi2=zzchi2, - coeff=coeff, fulltype=fulltype)) + coeff=coeff, fulltype=fulltype, fitmethod=archetype.method)) #- Sort results by chi2min; detailed fits may have changed order ii = np.argsort([tmp['chi2'] for tmp in results]) diff --git a/py/redrock/plotspec.py b/py/redrock/plotspec.py index a65e72b0..58286df0 100644 --- a/py/redrock/plotspec.py +++ b/py/redrock/plotspec.py @@ -9,6 +9,7 @@ from . import zwarning +from .templates import make_fulltype class PlotSpec(object): def __init__(self, targets, templates, zscan, zfit, truth=None, archetypes=False): @@ -104,9 +105,7 @@ def plot(self, keepzoom=False): zz = zfit[zfit['znum'] == self.znum][0] coeff = zz['coeff'] - fulltype = zz['spectype'] - if zz['subtype'] != '': - fulltype = fulltype+':::'+zz['subtype'] + fulltype = make_fulltype(zz['spectype'], zz['subtype']) if self.archetypes: dwave = { s.wavehash:s.wave for s in target.spectra } tp = self.archetypes.archetypes[zz['spectype']] diff --git a/py/redrock/results.py b/py/redrock/results.py index b512ef26..2ce0ccd9 100644 --- a/py/redrock/results.py +++ b/py/redrock/results.py @@ -13,7 +13,7 @@ from astropy.table import Table from .utils import encode_column - +from .templates import parse_fulltype def write_zscan(filename, zscan, zfit, clobber=False): """Writes redrock.zfind results to a file. @@ -47,8 +47,10 @@ def write_zscan(filename, zscan, zfit, clobber=False): zfit = zfit.copy() #- convert unicode to byte strings - zfit.replace_column('spectype', np.char.encode(zfit['spectype'], 'ascii')) - zfit.replace_column('subtype', np.char.encode(zfit['subtype'], 'ascii')) + for colname in ('spectype', 'subtype', 'fitmethod'): + if colname in zfit.columns: + if zfit[colname].dtype.kind == 'U': + zfit.replace_column(colname, np.char.encode(zfit[colname], 'ascii')) zbest = zfit[zfit['znum'] == 0] zbest.remove_column('znum') @@ -94,25 +96,23 @@ def read_zscan(filename, select_targetids=None): select_targetids (list): array of TARGETIDs to read Returns: - tuple: (zbest, results) where zbest is a Table with keys TARGETID, Z, - ZERR, ZWARN and results is a nested dictionary - results[targetid][templatetype] with keys: - - - z: array of redshifts scanned - - zchi2: array of chi2 fit at each z + tuple: ``(zscan, zfit)`` where + ``zfit`` is a Table with the N best fits for each target + per spectype and subtype; and + ``zscan`` is a nested dictionary ``zscan[targetid][templatetype]`` + with keys: + + - redshifts: array of redshifts scanned + - zchi2: array of chi2 of fit vs. redshifts - penalty: array of chi2 penalties for unphysical fits at each z - - zbest: best fit redshift (finer resolution fit around zchi2 - min) - - minchi2: chi2 at zbest - - zerr: uncertainty on zbest - - zwarn: 0=good, non-0 is a warning flag - + - zcoeff: array of coefficients fit per redshifts + - zfit: table of N best-fit redshifts for just this target and templatetype """ import h5py # zbest = Table.read(filename, format='hdf5', path='zbest') with h5py.File(os.path.expandvars(filename), mode='r') as fx: targetids = fx['targetids'][()] # .value - spectypes = list(fx['zscan'].keys()) + fulltypes = list(fx['zscan'].keys()) if select_targetids is not None: indx = np.where(np.isin(targetids, select_targetids))[0] @@ -122,29 +122,31 @@ def read_zscan(filename, select_targetids=None): zscan = dict() for targetid in targetids[indx]: zscan[targetid] = dict() - for spectype in spectypes: - zscan[targetid][spectype] = dict() + for fulltype in fulltypes: + zscan[targetid][fulltype] = dict() - for spectype in spectypes: + for fulltype in fulltypes: + spectype, subtype = parse_fulltype(fulltype) # blat[()] is obtuse syntax for what used to be clear blat.value - zchi2 = fx['/zscan/{}/zchi2'.format(spectype)][()] - penalty = fx['/zscan/{}/penalty'.format(spectype)][()] - zcoeff = fx['/zscan/{}/zcoeff'.format(spectype)][()] - redshifts = fx['/zscan/{}/redshifts'.format(spectype)][()] + zchi2 = fx['/zscan/{}/zchi2'.format(fulltype)][()] + penalty = fx['/zscan/{}/penalty'.format(fulltype)][()] + zcoeff = fx['/zscan/{}/zcoeff'.format(fulltype)][()] + redshifts = fx['/zscan/{}/redshifts'.format(fulltype)][()] for i, targetid in zip(indx, targetids[indx]): - zscan[targetid][spectype]['redshifts'] = redshifts - zscan[targetid][spectype]['zchi2'] = zchi2[i] - zscan[targetid][spectype]['penalty'] = penalty[i] - zscan[targetid][spectype]['zcoeff'] = zcoeff[i] + zscan[targetid][fulltype]['redshifts'] = redshifts + zscan[targetid][fulltype]['zchi2'] = zchi2[i] + zscan[targetid][fulltype]['penalty'] = penalty[i] + zscan[targetid][fulltype]['zcoeff'] = zcoeff[i] thiszfit = fx['/zfit/{}/zfit'.format(targetid)][()] ii = (thiszfit['spectype'].astype('U') == spectype) + ii &= (thiszfit['subtype'].astype('U') == subtype) thiszfit = Table(thiszfit[ii]) thiszfit.remove_columns(['targetid', 'znum', 'deltachi2']) thiszfit.replace_column('spectype', encode_column(thiszfit['spectype'])) thiszfit.replace_column('subtype', encode_column(thiszfit['subtype'])) - zscan[targetid][spectype]['zfit'] = thiszfit + zscan[targetid][fulltype]['zfit'] = thiszfit zfit = [fx['zfit/{}/zfit'.format(tid)][()] for tid in targetids[indx]] zfit = Table(np.hstack(zfit)) diff --git a/py/redrock/targets.py b/py/redrock/targets.py index 5b06a860..a08be80d 100644 --- a/py/redrock/targets.py +++ b/py/redrock/targets.py @@ -11,7 +11,7 @@ import numpy as np import scipy.sparse -from .utils import mp_array, distribute_work +from .utils import mp_array, distribute_work, reduced_wavelength from . import constants @@ -25,10 +25,11 @@ class Spectrum(object): R (scipy.sparse.dia_matrix): the resolution matrix in band diagonal format. Rcsr (scipy.sparse.csr_matrix): the resolution matrix in CSR format. + band (str): camera band name """ # @profile - def __init__(self, wave, flux, ivar, R, Rcsr=None): + def __init__(self, wave, flux, ivar, R, Rcsr=None, band=None): if R is not None: w = np.asarray(R.sum(axis=1))[:,0] None for filename purposes + if subtype == '': + subtype = None + + filenames.append(f'rrtemplate-{spectype}-{subtype}-v{version}.fits') + + #- preprend template directory + if template_dir is None: + template_dir = os.environ['RR_TEMPLATE_DIR'] + + filenames = [os.path.join(template_dir, fn) for fn in filenames] + + return filenames + + +def load_templates_from_header(hdr, template_dir=None): + """Return templates matching header keywords + + Args: + hdr: dict-like with keys TEMNAMnn+TEMVERnn and/or TEMFILnn + + Options: + template_dir (str): full path to redrock-templates directory + + Returns list of Template objects + """ + template_filenames = header2templatefiles(hdr, template_dir=template_dir) + return load_templates(template_filenames) + +def load_templates(template_path=None, zscan_galaxy=None, zscan_star=None, zscan_qso=None, + asdict=False): """ - Return list of Template objects + Return list or dict of Template objects + + Options: + template_path: list of template files, directory, or text file with list of templates + zscan_galaxy (str): zmin,zmax,dz redshift range for galaxies + zscan_star (str): zmin,zmax,dz redshift range for stars + zscan_qso (str): zmin,zmax,dz redshift range for QSOs + asdict (bool): return dict keyed by (spectype, subtype) instead of list `template_path` is list of template file paths, or path to provide to find_templates, i.e. a path to a directory with templates, a path to a text file containing a list of templates, a path to a single template file, or None to use $RR_TEMPLATE_DIR instead. - Returns: list of Template objects + Returns: list or dict of Template objects - Note: this always returns a list, even if template_path is a path to a + Note: this always returns a list/dict, even if template_path is a path to a single template file. """ if isinstance(template_path, (str, type(None))): @@ -314,9 +447,18 @@ def load_templates(template_path=None): templates = list() for filename in template_path: - templates.append(Template(filename)) + tx = Template(filename, zscan_galaxy=zscan_galaxy, + zscan_star=zscan_star, zscan_qso=zscan_qso) + templates.append(tx) - return templates + if asdict: + templates_dict = dict() + for tx in templates: + templates_dict[(tx.template_type, tx.sub_type)] = tx + + return templates_dict + else: + return templates class DistTemplatePiece(object): @@ -583,30 +725,22 @@ def load_dist_templates(dwave, templates=None, comm=None, mp_procs=1, after distributed rebinning so each process has the full redshift range for the template. - Returns: - list: a list of DistTemplate objects. - + Returns dist_templates: a list of DistTemplate objects, sampled at redshifts """ timer = elapsed(None, "", comm=comm) - template_files = None - if (comm is None) or (comm.rank == 0): - template_files = find_templates(templates) - - if comm is not None: - template_files = comm.bcast(template_files, root=0) - - template_data = list() + template_dict = None if (comm is None) or (comm.rank == 0): - for t in template_files: - template_data.append(Template(filename=t, zscan_galaxy=zscan_galaxy, - zscan_star=zscan_star, zscan_qso=zscan_qso)) + template_dict = load_templates(templates, asdict=True, + zscan_galaxy=zscan_galaxy, + zscan_star=zscan_star, + zscan_qso=zscan_qso) if comm is not None: - template_data = comm.bcast(template_data, root=0) + template_dict = comm.bcast(template_dict, root=0) timer = elapsed(timer, "Read and broadcast of {} templates"\ - .format(len(template_files)), comm=comm) + .format(len(template_dict)), comm=comm) if (use_gpu): import cupy as cp @@ -618,7 +752,7 @@ def load_dist_templates(dwave, templates=None, comm=None, mp_procs=1, # Compute the interpolated templates in a distributed way with every # process generating a slice of the redshift range. dtemplates = list() - for t in template_data: + for t in template_dict.values(): if redistribute: dtemplate = ReDistTemplate(t, dwave, mp_procs=mp_procs, comm=comm, use_gpu=use_gpu, gpu_mode=gpu_mode) else: @@ -656,23 +790,30 @@ def eval_model(data, wave, R=None, templates=None): a dictionary of model fluxes, one for each camera. """ if templates is None: - templates = dict() - templatefn = find_templates() - for fn in templatefn: - tx = Template(fn) - templates[(tx.template_type, tx.sub_type)] = tx + templates = load_templates(asdict=True) + + #- if wave is a dictionary of wavelength arrays, recursively call + #- eval_model to return dictionary of models if isinstance(wave, dict): - Rdict = R if R is not None else {x: None for x in wave} - return {x: eval_model(data, wave[x], R=Rdict[x], templates=templates) - for x in wave} - out = np.zeros((len(data), len(wave)), dtype='f4') + if R is None: + Rdict = {x: None for x in wave} + else: + if not isinstance(R, dict) or set(R.keys()) != set(wave.keys()): + raise ValueError('R must be dict with same keys as wave') + Rdict = R + + out = dict() + for key in wave: + out[key] = eval_model(data, wave[key], R=Rdict[key], templates=templates) + + return out + + models = np.zeros((len(data), len(wave)), dtype='f4') for i in range(len(data)): tx = templates[(data['SPECTYPE'][i], data['SUBTYPE'][i])] coeff = data['COEFF'][i][0:tx.nbasis] - model = tx.flux.T.dot(coeff).T - mx = trapz_rebin(tx.wave*(1+data['Z'][i]), model, wave) - if R is None: - out[i] = mx - else: - out[i] = R[i].dot(mx) - return out + z = data['Z'][i] + models[i] = tx.eval(coeff, wave, z, R=R[i]) + + return models + diff --git a/py/redrock/test/data/README b/py/redrock/test/data/README new file mode 100644 index 00000000..7c5ef372 --- /dev/null +++ b/py/redrock/test/data/README @@ -0,0 +1,12 @@ +Test data generated with a templates.txt file: +``` +/global/common/software/desi/perlmutter/desiconda/20230111-2.1.0/code/redrock-templates/main/rrtemplate-GALAXY-None-v2.6.fits +/global/common/software/desi/perlmutter/desiconda/20230111-2.1.0/code/redrock-templates/main/rrtemplate-QSO-HIZ-v1.1.fits +``` + +and the command: +``` +rrdesi -n 3 -i $DESI_ROOT/spectro/redux/fuji/tiles/cumulative/100/20210505/coadd-0-100-thru20210505.fits \ + -t templates.txt -o redrock-test.fits -d rrdetails-test.h5 +``` + diff --git a/py/redrock/test/data/redrock-test.fits b/py/redrock/test/data/redrock-test.fits new file mode 100644 index 00000000..c0469832 --- /dev/null +++ b/py/redrock/test/data/redrock-test.fits @@ -0,0 +1,10 @@ +SIMPLE = T / conforms to FITS standard BITPIX = 8 / array data type NAXIS = 0 / number of array dimensions EXTEND = T LONGSTRN= 'OGIP 1.0' RRVER = '0.19.0.dev943' / Redrock version TEMNAM00= 'GALAXY ' TEMVER00= '2.6 ' TEMFIL00= 'rrtemplate-GALAXY-None-v2.6.fits' TEMNAM01= 'QSO:::HIZ' TEMVER01= '1.1 ' TEMFIL01= 'rrtemplate-QSO-HIZ-v1.1.fits' DEPNAM00= 'python ' DEPVER00= '3.10.8 ' DEPNAM01= 'numpy ' DEPVER01= '1.22.4 ' DEPNAM02= 'scipy ' DEPVER02= '1.8.1 ' DEPNAM03= 'astropy ' DEPVER03= '5.2.1 ' DEPNAM04= 'yaml ' DEPVER04= '6.0 ' DEPNAM05= 'fitsio ' DEPVER05= '1.1.8 ' DEPNAM06= 'h5py ' DEPVER06= '3.7.0 ' DEPNAM07= 'desiutil' DEPVER07= '3.4.3.dev1103' DEPNAM08= 'desispec' DEPVER08= '0.61.0.dev8145' DEPNAM09= 'desitarget' DEPVER09= '2.7.0.dev5481' DEPNAM10= 'speclite' DEPVER10= '' DEPNAM11= 'redrock ' DEPVER11= '0.19.0.dev943' DEPNAM12= 'DESI_ROOT' DEPVER12= '/global/cfs/cdirs/desi' DEPNAM13= 'DESI_SPECTRO_DATA' DEPVER13= '/global/cfs/cdirs/desi/spectro/data' DEPNAM14= 'DESI_SPECTRO_REDUX' DEPVER14= '/global/cfs/cdirs/desi/spectro/redux' DEPNAM15= 'SPECPROD' DEPVER15= 'sjbailey' DEPNAM16= 'DESI_SPECTRO_CALIB' DEPVER16= '/global/cfs/cdirs/desi/spectro/desi_spectro_calib/trunk' DEPNAM17= 'DESI_BASIS_TEMPLATES' DEPVER17= '/global/cfs/cdirs/desi/spectro/templates/basis_templates/v3.2' DEPNAM18= 'DESI_TARGET' DEPVER18= '/global/cfs/cdirs/desi/target' DEPNAM19= 'DESIMODEL' DEPVER19= '/global/common/software/desi/perlmutter/desiconda/20230111-2.1.0/co&'CONTINUE 'de/desimodel/main' DEPNAM20= 'RR_TEMPLATE_DIR' DEPVER20= '/global/common/software/desi/perlmutter/desiconda/20230111-2.1.0/co&'CONTINUE 'de/redrock-templates/main' SPGRP = 'cumulative' SPGRPVAL= 20210505 TILEID = 100 SPECTRO = 0 PETAL = 0 NIGHT = 20210505 END XTENSION= 'BINTABLE' / binary table extension BITPIX = 8 / array data type NAXIS = 2 / number of array dimensions NAXIS1 = 170 / length of dimension 1 NAXIS2 = 3 / length of dimension 2 PCOUNT = 0 / number of group parameters GCOUNT = 1 / number of groups TFIELDS = 11 / number of table fields TTYPE1 = 'TARGETID' TFORM1 = 'K ' TTYPE2 = 'Z ' TFORM2 = 'D ' TTYPE3 = 'ZERR ' TFORM3 = 'D ' TTYPE4 = 'ZWARN ' TFORM4 = 'K ' TTYPE5 = 'CHI2 ' TFORM5 = 'D ' TTYPE6 = 'COEFF ' TFORM6 = '10D ' TDIM6 = '(10) ' TTYPE7 = 'NPIXELS ' TFORM7 = 'K ' TTYPE8 = 'SPECTYPE' TFORM8 = '6A ' TTYPE9 = 'SUBTYPE ' TFORM9 = '20A ' TTYPE10 = 'NCOEFF ' TFORM10 = 'K ' TTYPE11 = 'DELTACHI2' TFORM11 = 'D ' EXTNAME = 'REDSHIFTS' END ŒÎ\pÀß?õ@¤($xÂ?ð­tO€@¼Ïm~€ÀA³”w(ã¹ÀldŠB„ùÀ†½ŒÇجÀpù$`߀@ƒÁvÓŸaÀt§6i #,@;1OÄÀ˜ÀuуK gº@Sü8ù¿áôÀ17aöXøGALAXY +@,;/„ŒÎ\qé?ÄÎ{w~?[pï¬-x@¾`oÃà@ŒÓcÌ¡;Û@„y_>Ú+’@Hÿ¿òtÃϧpÊ@ƵFÆ/w@¤2fs~K@œšú–xºÈ@rÕà¨×ÑÀ€±º[`ÙÀCíÃݬ°@QßAÀ>mÀuØ8½yÀ!#±"++?ï¶M{éj~Àdf jÊ +ðGALAXY +@½)"qü!XTENSION= 'BINTABLE' / binary table extension BITPIX = 8 / array data type NAXIS = 2 / number of array dimensions NAXIS1 = 387 / length of dimension 1 NAXIS2 = 3 / length of dimension 2 PCOUNT = 0 / number of group parameters GCOUNT = 1 / number of groups TFIELDS = 81 / number of table fields TTYPE1 = 'TARGETID' / Unique DESI target ID TFORM1 = 'K ' TTYPE2 = 'PETAL_LOC' / Petal location [0-9] TFORM2 = 'I ' TTYPE3 = 'DEVICE_LOC' / Device location on focal plane [0-523] TFORM3 = 'J ' TTYPE4 = 'LOCATION' / FP location PETAL_LOC*1000 + DEVICE_LOC TFORM4 = 'K ' TTYPE5 = 'FIBER ' / Fiber ID on the CCDs [0-4999] TFORM5 = 'J ' TTYPE6 = 'COADD_FIBERSTATUS' / Bitwise-AND of input FIBERSTATUS TFORM6 = 'J ' TTYPE7 = 'TARGET_RA' / Barycentric right ascension in ICRS TFORM7 = 'D ' TUNIT7 = 'deg ' / TARGET_RA units TTYPE8 = 'TARGET_DEC' / Barycentric declination in ICRS TFORM8 = 'D ' TUNIT8 = 'deg ' / TARGET_DEC units TTYPE9 = 'PMRA ' / Proper motion in the +RA direction TFORM9 = 'E ' TUNIT9 = 'mas yr^-1' / PMRA units TTYPE10 = 'PMDEC ' / Proper motion in the +Dec direction TFORM10 = 'E ' TUNIT10 = 'mas yr^-1' / PMDEC units TTYPE11 = 'REF_EPOCH' / Reference epoch for Gaia/Tycho astrometry TFORM11 = 'E ' TUNIT11 = 'yr ' / REF_EPOCH units TTYPE12 = 'LAMBDA_REF' / Wavelength at which fiber was centered TFORM12 = 'E ' TUNIT12 = 'Angstrom' / LAMBDA_REF units TTYPE13 = 'FA_TARGET' / Fiberassign internal target bitmask TFORM13 = 'K ' TTYPE14 = 'FA_TYPE ' / Fiberassign internal target type TFORM14 = 'B ' TTYPE15 = 'OBJTYPE ' / Object type: TGT, SKY, NON, BAD TFORM15 = '3A ' TTYPE16 = 'FIBERASSIGN_X' / Expected CS5 X location on focal plane TFORM16 = 'E ' TUNIT16 = 'mm ' / FIBERASSIGN_X units TTYPE17 = 'FIBERASSIGN_Y' / Expected CS5 Y location on focal plane TFORM17 = 'E ' TUNIT17 = 'mm ' / FIBERASSIGN_Y units TTYPE18 = 'PRIORITY' / Target current priority TFORM18 = 'J ' TTYPE19 = 'SUBPRIORITY' / Assignment subpriority [0-1) TFORM19 = 'D ' TTYPE20 = 'OBSCONDITIONS' / Bitmask of allowed observing conditions TFORM20 = 'J ' TTYPE21 = 'RELEASE ' / Imaging surveys release ID TFORM21 = 'I ' TTYPE22 = 'BRICKNAME' / Brick name from tractor input TFORM22 = '8A ' TTYPE23 = 'BRICKID ' / Brick ID from tractor input TFORM23 = 'J ' TTYPE24 = 'BRICK_OBJID' / Imaging Surveys OBJID on that brick TFORM24 = 'J ' TTYPE25 = 'MORPHTYPE' / Imaging Surveys morphological type TFORM25 = '4A ' TTYPE26 = 'EBV ' / Galactic extinction E(B-V) reddening TFORM26 = 'E ' TUNIT26 = 'mag ' / EBV units TTYPE27 = 'FLUX_G ' / Flux in the Legacy Survey g-band (AB) TFORM27 = 'E ' TUNIT27 = 'nanomaggy' / FLUX_G units TTYPE28 = 'FLUX_R ' / Flux in the Legacy Survey r-band (AB) TFORM28 = 'E ' TUNIT28 = 'nanomaggy' / FLUX_R units TTYPE29 = 'FLUX_Z ' / Flux in the Legacy Survey z-band (AB) TFORM29 = 'E ' TUNIT29 = 'nanomaggy' / FLUX_Z units TTYPE30 = 'FLUX_W1 ' / WISE flux in W1 (AB) TFORM30 = 'E ' TUNIT30 = 'nanomaggy' / FLUX_W1 units TTYPE31 = 'FLUX_W2 ' / WISE flux in W2 (AB) TFORM31 = 'E ' TUNIT31 = 'nanomaggy' / FLUX_W2 units TTYPE32 = 'FLUX_IVAR_G' / Inverse variance of FLUX_G (AB) TFORM32 = 'E ' TUNIT32 = 'nanomaggy^-2' / FLUX_IVAR_G units TTYPE33 = 'FLUX_IVAR_R' / Inverse variance of FLUX_R (AB) TFORM33 = 'E ' TUNIT33 = 'nanomaggy^-2' / FLUX_IVAR_R units TTYPE34 = 'FLUX_IVAR_Z' / Inverse variance of FLUX_Z (AB) TFORM34 = 'E ' TUNIT34 = 'nanomaggy^-2' / FLUX_IVAR_Z units TTYPE35 = 'FLUX_IVAR_W1' / Inverse variance of FLUX_W1 (AB) TFORM35 = 'E ' TUNIT35 = 'nanomaggy^-2' / FLUX_IVAR_W1 units TTYPE36 = 'FLUX_IVAR_W2' / Inverse variance of FLUX_W2 (AB) TFORM36 = 'E ' TUNIT36 = 'nanomaggy^-2' / FLUX_IVAR_W2 units TTYPE37 = 'FIBERFLUX_G' / Predicted g-band flux in 1.5" fiber TFORM37 = 'E ' TUNIT37 = 'nanomaggy' / FIBERFLUX_G units TTYPE38 = 'FIBERFLUX_R' / Predicted r-band flux in 1.5" fiber TFORM38 = 'E ' TUNIT38 = 'nanomaggy' / FIBERFLUX_R units TTYPE39 = 'FIBERFLUX_Z' / Predicted z-band flux in 1.5" fiber TFORM39 = 'E ' TUNIT39 = 'nanomaggy' / FIBERFLUX_Z units TTYPE40 = 'FIBERTOTFLUX_G' / g-band flux in 1.5" fiber from all sources TFORM40 = 'E ' TUNIT40 = 'nanomaggy' / FIBERTOTFLUX_G units TTYPE41 = 'FIBERTOTFLUX_R' / r-band flux in 1.5" fiber from all sources TFORM41 = 'E ' TUNIT41 = 'nanomaggy' / FIBERTOTFLUX_R units TTYPE42 = 'FIBERTOTFLUX_Z' / z-band flux in 1.5" fiber from all sources TFORM42 = 'E ' TUNIT42 = 'nanomaggy' / FIBERTOTFLUX_Z units TTYPE43 = 'MASKBITS' / Bitmask for photometry issues TFORM43 = 'I ' TTYPE44 = 'SERSIC ' / Power-law index for the Sersic profile model TFORM44 = 'E ' TTYPE45 = 'SHAPE_R ' / Half-light radius of galaxy model (>0) TFORM45 = 'E ' TUNIT45 = 'arcsec ' / SHAPE_R units TTYPE46 = 'SHAPE_E1' / Ellipticity component 1 of galaxy model TFORM46 = 'E ' TTYPE47 = 'SHAPE_E2' / Ellipticity component 2 of galaxy model TFORM47 = 'E ' TTYPE48 = 'REF_ID ' / Astrometric cat refID (Gaia SOURCE_ID) TFORM48 = 'K ' TTYPE49 = 'REF_CAT ' / Reference catalog source for star TFORM49 = '2A ' TTYPE50 = 'GAIA_PHOT_G_MEAN_MAG' / Gaia G band magnitude TFORM50 = 'E ' TUNIT50 = 'mag ' / GAIA_PHOT_G_MEAN_MAG units TTYPE51 = 'GAIA_PHOT_BP_MEAN_MAG' / Gaia BP band magnitude TFORM51 = 'E ' TUNIT51 = 'mag ' / GAIA_PHOT_BP_MEAN_MAG units TTYPE52 = 'GAIA_PHOT_RP_MEAN_MAG' / Gaia RP band magnitude TFORM52 = 'E ' TUNIT52 = 'mag ' / GAIA_PHOT_RP_MEAN_MAG units TTYPE53 = 'PARALLAX' / Reference catalog parallax TFORM53 = 'E ' TUNIT53 = 'mas ' / PARALLAX units TTYPE54 = 'PHOTSYS ' / N for BASS/MzLS, S for DECam TFORM54 = '1A ' TTYPE55 = 'PRIORITY_INIT' / Target initial priority TFORM55 = 'K ' TTYPE56 = 'NUMOBS_INIT' / Initial number of observations for target TFORM56 = 'K ' TTYPE57 = 'SV3_DESI_TARGET' / DESI target selection bitmask for SV3 TFORM57 = 'K ' TTYPE58 = 'SV3_BGS_TARGET' / BGS target selection bitmask for SV3 TFORM58 = 'K ' TTYPE59 = 'SV3_MWS_TARGET' / MWS target selection bitmask for SV3 TFORM59 = 'K ' TTYPE60 = 'SV3_SCND_TARGET' / Secondary target selection bitmask for SV3 TFORM60 = 'K ' TTYPE61 = 'DESI_TARGET' / DESI target selection bitmask TFORM61 = 'K ' TTYPE62 = 'BGS_TARGET' / BGS target selection bitmask TFORM62 = 'K ' TTYPE63 = 'MWS_TARGET' / Milky Way Survey targeting bits TFORM63 = 'K ' TTYPE64 = 'PLATE_RA' / Right Ascension to be used by PlateMaker TFORM64 = 'D ' TUNIT64 = 'deg ' / PLATE_RA units TTYPE65 = 'PLATE_DEC' / Declination to be used by PlateMaker TFORM65 = 'D ' TUNIT65 = 'deg ' / PLATE_DEC units TTYPE66 = 'TILEID ' / Unique DESI tile ID TFORM66 = 'J ' TTYPE67 = 'COADD_NUMEXP' / Number of exposures in coadd TFORM67 = 'I ' TTYPE68 = 'COADD_EXPTIME' / Summed exposure time for coadd TFORM68 = 'E ' TUNIT68 = 's ' / COADD_EXPTIME units TTYPE69 = 'COADD_NUMNIGHT' / Number of nights in coadd TFORM69 = 'I ' TTYPE70 = 'COADD_NUMTILE' / Number of tiles in coadd TFORM70 = 'I ' TTYPE71 = 'MEAN_DELTA_X' / Mean (over exposures) fiber difference in X TFORM71 = 'E ' TUNIT71 = 'mm ' / MEAN_DELTA_X units TTYPE72 = 'RMS_DELTA_X' / RMS (over exposures) fiber difference in X TFORM72 = 'E ' TUNIT72 = 'mm ' / RMS_DELTA_X units TTYPE73 = 'MEAN_DELTA_Y' / Mean (over exposures) fiber difference in Y TFORM73 = 'E ' TUNIT73 = 'mm ' / MEAN_DELTA_Y units TTYPE74 = 'RMS_DELTA_Y' / RMS (over exposures) difference in Y TFORM74 = 'E ' TUNIT74 = 'mm ' / RMS_DELTA_Y units TTYPE75 = 'MEAN_FIBER_RA' / Mean (over exposures) RA of fiber position TFORM75 = 'D ' TUNIT75 = 'deg ' / MEAN_FIBER_RA units TTYPE76 = 'STD_FIBER_RA' / Standard deviation (over exposures) of RA TFORM76 = 'E ' TUNIT76 = 'deg ' / STD_FIBER_RA units TTYPE77 = 'MEAN_FIBER_DEC' / Mean (over exposures) DEC of fiber position TFORM77 = 'D ' TUNIT77 = 'deg ' / MEAN_FIBER_DEC units TTYPE78 = 'STD_FIBER_DEC' / Standard deviation (over exposures) of DEC TFORM78 = 'E ' TUNIT78 = 'deg ' / STD_FIBER_DEC units TTYPE79 = 'MEAN_PSF_TO_FIBER_SPECFLUX' / Mean of PSF_TO_FIBER_SPECFLUX TFORM79 = 'E ' TTYPE80 = 'MEAN_FIBER_X' / Mean (over exposures) fiber CS5 X location TFORM80 = 'E ' TUNIT80 = 'mm ' / MEAN_FIBER_X units TTYPE81 = 'MEAN_FIBER_Y' / Mean (over exposures) fiber CS5 Y location TFORM81 = 'E ' TUNIT81 = 'mm ' / MEAN_FIBER_Y units EXTNAME = 'FIBERMAP' CHECKSUM= 'GbQFJZQ9GaQEGYQ9' / HDU checksum updated 2024-04-23T15:43:28 DATASUM = '190268092' / data unit checksum updated 2024-04-23T15:43:28 END ŒÎ\pÀß77@g£.QLªw@NCkÖæ“àE¨ÀSKYB¨?ÙÃÝÏÿÿÿÿ?ïý@/þu?#31888p605 qÃß¼ÎÔ×¼”Í +¼qÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ@g£.QLªw@NCkÖæ“àdD á2;D›¦;‹Ù:Ä›¦:Ï>7@g£.… è‚>6Cî@NCk¦5¬Ÿ;ßëq?JƪB¨7ÃÚ=ŒÎ\qé@gª7>jöÐ@NKÛ€‰4DûðE¨ÀTGTBc ÈK?Ü?ÕWË‚b#31893p605 qÄéSER¾&Œ¾GËí\ˆ—G2A£WuA¡ÀA”[qNŽÔ@gª7>jöÐ@NKÛ€‰4dD á2;“t¼;¨¯:Ä›¦; Ù@gª7Œ#KD>•@NKÛOy’à<«o|?D#Bc}ôÈHŒÎ\q Äüü@g²A¾-æ@NLñ9"j@NLñ…Ð8,±¶?IûçAÑÑìÇ*°XTENSION= 'BINTABLE' / binary table extension BITPIX = 8 / array data type NAXIS = 2 / number of array dimensions NAXIS1 = 162 / length of dimension 1 NAXIS2 = 6 / length of dimension 2 PCOUNT = 0 / number of group parameters GCOUNT = 1 / number of groups TFIELDS = 26 / number of table fields TTYPE1 = 'TARGETID' TFORM1 = 'K ' TTYPE2 = 'PRIORITY' TFORM2 = 'J ' TTYPE3 = 'SUBPRIORITY' TFORM3 = 'D ' TTYPE4 = 'NIGHT ' TFORM4 = 'J ' TTYPE5 = 'EXPID ' TFORM5 = 'J ' TTYPE6 = 'MJD ' TFORM6 = 'D ' TTYPE7 = 'TILEID ' TFORM7 = 'J ' TTYPE8 = 'EXPTIME ' TFORM8 = 'D ' TTYPE9 = 'PETAL_LOC' TFORM9 = 'I ' TTYPE10 = 'DEVICE_LOC' TFORM10 = 'J ' TTYPE11 = 'LOCATION' TFORM11 = 'K ' TTYPE12 = 'FIBER ' TFORM12 = 'J ' TTYPE13 = 'FIBERSTATUS' TFORM13 = 'J ' TTYPE14 = 'FIBERASSIGN_X' TFORM14 = 'E ' TTYPE15 = 'FIBERASSIGN_Y' TFORM15 = 'E ' TTYPE16 = 'LAMBDA_REF' TFORM16 = 'E ' TTYPE17 = 'PLATE_RA' TFORM17 = 'D ' TTYPE18 = 'PLATE_DEC' TFORM18 = 'D ' TTYPE19 = 'NUM_ITER' TFORM19 = 'K ' TTYPE20 = 'FIBER_X ' TFORM20 = 'D ' TTYPE21 = 'FIBER_Y ' TFORM21 = 'D ' TTYPE22 = 'DELTA_X ' TFORM22 = 'D ' TTYPE23 = 'DELTA_Y ' TFORM23 = 'D ' TTYPE24 = 'FIBER_RA' TFORM24 = 'D ' TTYPE25 = 'FIBER_DEC' TFORM25 = 'D ' TTYPE26 = 'PSF_TO_FIBER_SPECFLUX' TFORM26 = 'D ' EXTNAME = 'EXP_FIBERMAP' END ŒÎ\pÀßÿÿÿÿ?ïý@/þu4cHTÄ@ìùdÏ¡mÎd@€~0¾ í)77B¨?ÙÃÝÏE¨À@g£.QLªw@NCkÖæ“à@U$Ý/ÀrS÷ÎÙ?x“t¼j~ú?PbMÒñ©ü@g£.¸,ß@NCk¶"?éYŽþªHÊŒÎ\qé?Ü?ÕWË‚b4cHTÄ@ìùdÏ¡mÎd@€~0¾ í)Bc ÈKE¨À@gª7>jöÐ@NKÛ€‰4@Lm/Ÿ¾wÀq $Ý/?|¬1&éy€@gª7¶Â]ÿ@NKÛ€= ?è|O†ï€¶ŒÎ\q Ä?ÆZ ÖýÏ€4cHTÄ@ìùdÏ¡mÎd@€~0¾ í)üüAÑúwÇ-PE¨À@g²A¾-æ@NLñjöÐ@NKÛ€‰4@LrMÒñ©üÀqýó¶E¢?`bMÒñ©ü?h“t¼j~ú@gª7a„8Š@NKÛ¶§?èŒvp¦×.ŒÎ\q Ä?ÆZ ÖýÏ€4cIUA@ìù‡çÔ?ˆd@\ï¬q ²–üüAÑúwÇ-PE¨À@g²A¾-æ@NLñŠ=]=àïE» @’ô=CÑéO<¼™Cð)*EG?¸H?@ÖXÌ6d¹’Ap{54;ÔD@.;6º*š@O·@è9E +ŸA€CÓóþ@æV™D£Ê1EI>Ö@ž‘uA`ü>ŒÎ\qéA¬öY<0L@‰/Ü@ó´¨B€iËBÁ>‘Èe=ëˆlEç@›ZCÜ«<·îCû€wEOÍà?¡¢@áè6vÅYA€¨c5AÜjDI»!6Ç¢@\ú—@õùE@ôA§…úCÞ>j@ô„D«ÄKERä@¨B:AmÇÞŒÎ\q ÄA¢ú´<#U±@pü@Ýß7BoŽ‘B ´>‡Ç=Ü,­EÏä@“¡VCÑ­<ŠOCïyvEF˜?¸«é@Öå>6iv1Au¤à57®¬DAª6½"@S(6@ëh·E +ÙAŸÏ0CÓ²Ý@Þ&|D¤/ÒEH¾æ@ 1AbßT \ No newline at end of file diff --git a/py/redrock/test/data/rrdetails-test.h5 b/py/redrock/test/data/rrdetails-test.h5 new file mode 100644 index 0000000000000000000000000000000000000000..d1ef19191b32268213db8f32892a62433d7c2ee9 GIT binary patch literal 607162 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%0A@?j`xw; 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€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 z zbdiL&cxI8R1hC$}_P%XM4NZ+Fd8810SIHo0f#bw{^)WVHSu}$e>T)0ET_&MM0+L5- z;*XFcr-r8C``o*@rTvDk_ZtZmSOtNTFNBcCL|aU5Gc`~YFPLlfaG~07b@nIDFXODg zoXXDB_TX}qpFLS}*}y*kibpvI8&v4(vG6BNGQJq`x3E-)qmruWSTsH zuIMUN6tv01l2NT{`IHjcly$kOo5TTDX9L6zBvB%{&{sn_A>y!f%avaHEG@(N3y{`f%9JX+qe^-pjt`mAoY?sgf{k8YJ zn6WfLJxJhQ?&Q%hLQ9KB2fqnYAk931GrulTqMh0T*0^*4xNkkb()0e{TYOTOIZg_9xuIu>0-Z_&)R z_|#YA=t}yy;+bSZ-;0mm=oZ#QhczBLxUvI?Cyw@x(wj=e$kamM^zWnQs`^dwywh&43@`oUSB(tAB&@!ou5!8%*FG6Wk<6 zD1Oct$Uk)&>Vo%=*U1az7KkC);>#e?0y~x-s0;uUD$kzA#omk4$v~`fHx-Qjqz`zB zB%wLHD`fv6g zt7a2)Z0Wj%y(THFF)KKFy0XJ;P(azSURfB3(Ggs^PKjJZzuQ>++QPc-Ngw;cOb;IE z8&T(&G(hIEj?2=fDdKNAa`={pI#kYbk6uYKKs(ieRG)9n<8{{V|1o_V#i!;v{ii}C zpuA8?np1KblV@s`=vQvVUYoef8x<~KCnQ|=WQ172JXA@8zFQT|r^<`0GD?6HXLPRH zz6xs0P}O<;tOp~x$NZIFzZthRrliy!VgftAfi4a9U5x$=U;798CG63GS*roQ9_-3U zsSj70BBYB9jH^B-xDb}lxh#JIPyz?aF zqyaixRFdt)L5)bJYWW+2sL*Sp<8RfLgoyi;W#;aG+`#9k8fB@Lgv&pRzVo1n1^)22 z1$SFu@abIX_D^0L!k_o4+y1H^9IC!-tdeVj$^_2KJ$tu@jeU9e+qz`{dlb|^>9;Qn zj=!_3!UYy_C7;6~ejfdJ=qIf&LkXO~FBK)jOU&~T|G04n0S6Sl8&Roh0+8^sijS9g zf7#Nq7>jKZJqY>N&E_AIql(P-Y2Ba7up2TJx#qZwm3fKvbrb%Ave=5dFWopmG=Hjh z_qid6`qr{&DA*z5CZ1C+LZy)sAI zT3_yyh|l8p5C1N@O3H*zdVH?Sf2IgOT;@;mm~z8UdP!15^eFJNKR1qh&IR6=w@p7h zu!3>S=W0irD>|P1p}oq~3>aziDqRz;k!6@O1+xPK{Gv8|1TD z3BGC_!kD*z z1v`@!e=OwJI@UmInFFwfdAc8>ze=Kpw5&eVK0GZ6NG{Ou0 zk3aoThn~;96il0<$jdGt}CCw&7B8OP@^{n~Z3rn!g7 zSh;j7IxJ%sR;z>Ahgi|1ZUZg7wIC9gc;rBPN(^nWu!v7BF~DBC$jO(VCDF#V%ALm7 zL)cBzNKdWKPuS$I^gG=~{17O0LeTm}6MmCT1&^Tlhn2l;TvK^Gi_Zj&gs?mXn3Uq* z{e0aXiP6;daBJ$rs^j%rdm*OidgAMZ{R`jmzd8R|`RA14RiLk3rl$fXZ-QUtN3jBr z;$ar8Q(#=hFSn@k|hk52c-7 zNCEWby#ST4ydng791zV9*F-gJ-X_cQJ$O$KmCH&$Et*?5pwDBJgEJYkuo;bi@U9>`->qahL!X?T72O(iZ3f>!^1deILfn zkk0k4kO_@3?2(at(1h+Mg*RXAvp|=BzqEzZ6y|blvrBw~47jx;WFKC!24%5*QGYsj zlyR<-$NP*qC~+0VQXAN!r^l$8q(8F5&j`cMLCide+{ z=N>71L7&uN_u&5Pf1A3MUK99L^+vyV)t)#I@a!wg0*REM=6Zz>P8kHL! z>SK6iYHi>xvwmE|89H%9=l0$QdT?x& zOZ76H!%}9qey#AT!y`2YhVa;7+|=ASxW9K5XBf3HesYr*dJgfJ_7i%zb?5YN&!0}n zK*1)G&e{m5n$6Cy_M0Ocmlw2R6r-5?-4NTK3Cv)5%0=Duq6W<8zDU%~e~r_Vk&+!e zI*$iwwW9DPpL zmv~Q)X?=13E+zog56?ub4m`z@dP*gKOp&7bD=pF`a)O}$M$q~=n+kjo4EuYlO&>+J z_%;pAsepXV@@{#D9^xoaO*ZWyMP;G|!BW?7TrK0nx9l-q(AspE3)tAiI#*aN@3+z; z&%O@dSH+z0TA$MAVVW9Xzmva*vY4P{jSkssx3oarLQ~RtN*`INY+iqHZWLE`)KfOx zt;4v^9!eZ1=E(}h+qCIp|1egvD$=O0q$q)Ln39#?cU{^H?ZY@_!N;{B#_l7*$(oW< z64F!!SKedm+j+W(R(|jKqAe|YpiS;CmB)k{{rbqVZ_C1l`J)aSwN*^-%UV4D@*dt5 z*7P#t$28U&PRZCM%>#=Df7+^K4N#Z6`SYy_MHsnVRxtWN1C8v929AWcVVa*68YNQL zPy~D7uUraguv;|w=vzq+=eSu+L)kuI3ex7KT?<3__|>Ckf__`LGiBMOaw1pE!Sf>f z2D=E*SEi@-mnosuOeZDvNk-VRESspMXF&|g2Q)Y{g&~`YB6Z*_Im&i_@Jmr>4&z%* zdDB)ji1YTw?@B+Dg}saC1%EyS)KYB8Tj8$??f*zuj;ZP*IzP5izN4hb>$H&NbzU7~NJ58Ppl(TaC1s0_kX&$E{B;=uU-c{I+CCNLuGZOP1Sfj(cyQx4Qo16SZJmN?BAZ26z- z6vrbiV2={cY2)6+c3<-yD%IG>&uw7a2}B=@@r;u}IKj7#i8~Uh&gO{R-EO>n`vRb| zaHHvhIdT5hHr%EN=L8|Gmj@=g33O}m3wno->M;BHSJsP>A$)5;Ju!S{1$+33gX%R0 zJ=mze<23y8lAKclW zKCA@olFT|}{X1B(c)Z$|5pwk4M^!@q(k@nVsC>VQ=u;YNa?U&#Z-t(SipY#JrmbfoVR=XN1EI8ZaaD{NOI)uxD*d3tV>`2PN+85qAI8OAlv+5O#l zrUrwyr!br6k_sLR%ed0CHg9np6AVn$xl7%uNVr6jwSv9->m2R9Gl)xsptEWp>5%^e@@R?lb?ipyi*x-2ZMYQwB*~U4 zH~e8|X*f#w!K&4(?AGb0uvVU3K^`MYq|bop%IK7kSg}HWt1daz3?|;;idn@6Ikm1A z=CY!ewc??q57a2#?8PJ5m#cWxh@&9(k`?|1AITMR*}!xYE*_%n+{JV#=-m5CH}NG; zczHo|h3ISF|L0nyf+mJ}%vG2~A!_gN5B?8|=z^JSYG=+0X8Lluzj~Gu-1OHiuP=ze zlg8Y6VRvd&KKJ(X1FBuzMmE?Z_~t)6`saUxh6@~ESUyBGMW&4$mhQHC{U-xL7K{CP zmg?xF7pYEWC86U?TdN1pEMcm>g(u%yiNR3yMD6L`4ea}+^I4S(lQ_r+zjh)x1M*VO zzGeGt;taA5zo`jMRrk-(zOEr&I3MX@2!wA@@!rI7zlv?VWx~bOLShp0EpPKbN95xf zP6iy@@M^%vh8l+tt*qk5J`GZZ4E@76AKm=ee|!&r?@BQ^kRpc!Edo4(Plz+1u zu{?T~9~&=5oZ~+dQVWnD716-!I%~nk55rACZ_(i~yk6^+NcHJGtdU%3{v*-vT`jye z-7m=lcFE~7js%D8UJ9~i&65W5w)0n~h~C1{gBMH_oXDW*I8x<$P78zla^bSBgr2BA zvAN~BgHsIjEp!LaBgGh>;=e_km`7|h1OHoHDEci(xwL1293MoSX85B624u^xTJ4Nb z)Tv0l`rIejw{HX^qVX@5uB_#(LRLRzduCM|XJwl68; zp$#lpMD)6i6)9M!jEo%xBF_|G(sC3==rhGM{z2k(@^ z=^2A#_YKi&p7euu#J-SKliz27(67G7j0En9vcd~dQ>j~H6tJfF@ z=qVka+~50Kf;n%<@47|K;1)hY;kH6*Af6cZ%KQMq8BW`Hcx_Y*-kn?}_w_PFD=x<# zx9kzVoTS~@vzJNGjFya@&s$ZXEA^2U+Z@HtDnHG}J$_?-Wp~8-+{dwsGL+*<>}N(g zmK37+h~C~2_Bl2;BCi?p-{8$jGxRV%^XZEbdMMHA`4CV|iyDtnPbX(;!JVKuiB8)Z z+{`{rG8iAhm8!yW?kteQEsnm^2gsEm<)-lWKgFgVX$072B}$Zvzbcq~@@PUoUqiJFZ}l3uHv4N;M(7 zXw9TE%LL&XbV(VMnsCspl>Bi&hSoI`Vt?NuAu!j@f`cDP!I3#~Ixj~GUUM>vGTIOg zjep2HuUoWXPFWZ3{71qG>`IT+dmByQ@zGmMQp7$beUEWg={&&t>u<~=x6DyuNA9!r z`37m@6`f;ondU`1@sK8qD>ehhSEPf%y z*tF#65WdemJ0`|U4Wuup73V0W;0MFNBK1#W)RV43@~%!D)ER!uRTb$VJ&q4pmm@vg z4|2}FcJLRTPU96%MW+Natb<`Qi|x42G2^bNOH&xvA=i0z%|R^Kx|Hz_i$2tL+)?Yk zZHF?q^(dJ?>p+**y`Yz#CMe9FR&r8>4xO`XyIRf7fjXVX{>GQ7gD^09wX^MG-|MCx z$GVQ-`SCBOxGgB)oy;i3j{<@-X?K->UC0f=s>{LEATuD{64y2#u|`w&S~>fB^Z0cQ z9fy+-H}Ig?U)29m5q?H*mus@kY>*av?0hr#0_M!)_pYLn4gAt~?cL+eK;-AEv={GP zP{Hcwo5A;tfqI_TX8)xn8ncRcpBzp+&m7|_!euPL@j}SLq)Z$B%(1PKZ_*;IupQd# z<1FZb^ljrPaux^`rhYE09eHz%UtR;L*DWh!xfjdFpuAa zzG|?CRYTpC45AlUzg|L2%ytla)!cfJ!*?H>%^i>%Oy`8S0<(iI!Uo`PxPi{-StFy` znvet*J&5C$Y~-FXMmg%)+81-Dv4_#N#l39fIHTu;>bq(M&|z(jDao9{?(WX6e0H6~ zoVPtIR5RG%+*A9JwHL-jZ$)2XYPACzjeo|TN$3gR{hQf}KAWMlbo+mU|1v?#qw~|G zru5*?MOLKStOC3DQ2<2{IdbUbyLjHY2dDBa9l8023o4ZiM^C*nflY1B%N0&eXy9?c zF9RPV@QXBH_0A@G7)nZb9u{_Bd`ZI!zN6%jd0`=6ds!WFm0z_pzw5&Gl(`RZjP~IV zEbIkBY&gI6aj zAXIM1dX1RZWRkAD42amo$xL4HaS^@a0$mY`e2jcRgqww42%Cbmcbc4mjuWaIm}YYz zxYUniL|Nm-ED&EnnAvl}7u3MG9AR&`hxv(G)sZBqL730x2=nC?JkRS+XcOlm?x06E zs>Vs2dnR?-&5VXnsvEf{r*4DtIZtCeYWg4m@#L3po1o$~0d!G%5F4idsZ2&mis;)j z7+QWQgQt}5g6)kRjP^vpMr7{>{`KO`QmRsJAb+@$zSe04r+vzq?peB`f5-dV%WKSl zrt;stF9dghbTKE-{K!0Bphrfc)7Oc!TmNQGC*DV@Hv68EJXCPN$AU#~a}ejeIHke1 zEe;a`-<>}UIe>|}74P|d4|I;UOhiG@8cuzAEtql25q(L0+^X?~9M=2|m&TI3Tgf0r8653kAxn$My)Fq%pAm<4&&hL-T3mptIHmQAp)a!Ci2o9K!x6ga zqC6JQyCAn`9$N`-1VED`ZcEW)6bmqVP_rsw49?{T;~2Te@f(h(BLj^$u*Qi^-GP4+ z#QZ0ptE1%v_>H63ds=TqKf*g#8DV@psD%F%QJLpZb)>b2TLP@f&&Yvr}U>!14>odsFzxmqQAAJC0 zm-4R+F4Mwluj~UBp%zS|pj|4ioEN${NN1S-Izwy${U3H6Uj(6iB=_3wf#dY|!SjSZ z@y2y1-;$s=5LGh0*ce|LD0pm+4kwTq+Ij9{CGFdHRTjz7w+_yt#wvYy&{Z2c zSVsz!CPMcjJ=?Hrr!1~o96diwc!7fZ`gWP+D;HZWiu==kR8yJ4SADaFP+m@pEuW!=; zD!6&LOs_bi*S9`4`Nk34FoB1+9}SowjWk#9i_BZtpt+Crw8RK5ct6tN#&s>2Hl#JL zrP;?=Kh0JJ|5(H4Znj8tp8XRJh64f;r!oGESshbxx<9)Sxv*!!9Ff?l%FmG)P zdK_=vW{sWEI=?qvb~C^+N^7f8J98A~aL|4~`wv!9Cdeo6y@fX~Y&CPe)rQUsOf@0z z$-$_=H_`Ss6`D34Vxfqmg8s;D68k<|xNFlwCZ6ez=)ZU!3lO)0uvOlyR~vQ+%a}41 zyTSskn|C=@E_Gt1%#+ltQwJb9$F)?0$bXz^=Xv3Aa1D$9@mpCugAW*ub#8pjvW9TU zx6CPA?r5wzXi1*L0)}Y{11#U!qPQ)u)|?;gko<dU3DCN7QL40>2a=O;c5Zvj5mk;ieK^8;%&~WA?*8g{4&)$z4&e6rzB?Z{PxVZ`K z`}>Dc^0gTHLODwqvG#i4A#9J#(!98hEtsH-_|Li9ckzyD^RKmjMsR^=G4qtx1ioY{ zu}iB{gLO~7RI&78g|}1F#fcXjz+9F?r_0|9>8K@4Tiql+&&jW`)G?08&A~GI<2g<+ z(EMstBsGjBt%jE7cNv3klJXgiCJJQl{~<9+VIL!xiV>P2cos_^IUaf|Izi|u9&b${ zZ}irBT)h2(Ed*$>y}TIVgh)bPzoiq~##SxAXbSIcV5i5$@A)|zLuc!sn-l6Wu1XPEW-j)y;+m0s%%l9pm}C8Jr4-l zB;6X_V1Trs)@NFC7%2Kw<=^?iieA+l`@KBfhFP%dc}V`@1U{Fm)~!rN;34!eWt7|* z(dyB-_QqoHtl+XaJ2AhUd;Rh~9@dC=(`c*ZGO(dz7G%lNA9bMdQh4v>Y;v$TasGRX zp|F zJc02;qIwrQG!=DaRW|5?&nWikaJwbC_kjOTowY9Uyj?fYP9f&!=uFL-i$C#tE+w(c zBfGd!#Hp3MFeNxwmB91Zgbt)nN%<@uB|+(jy^p9xv%3xKn*&gXn1vWTdu|Uz)*GUD9Z4w8yZ?=WkScFQ~%k@PqI}mv^w!nHTm|bLr4& zAM&LAn{06UR{iC?eLY~mdXOQ-%LcK!o=9p^(1)TS%8VO#jL{)wYV$Q(3TQp7zwWKe zhHj82uuUB#{7Nz}-36X-!yfI6>u*&Su;2j>$tW5&(4(^NC}T4O-*ib~k`AJ$gSMDm_(pkjBn)RvPxDn^Mi8qdefZk~&@S(+Ez<`pXM8IU!D?3Q1oc z0K5LzW25(HORMrpps~h3 z`c{M%{H$@fW+?p&cX({-FlV(%^a;|KGqdr5#}OMd84`1l?ma+%NzNHnx7^QjxM~FN zk3_dSl2{QOT{V84fO_2YM7+J|^(Fke!c1H3X$`<#`jp569X6h3 zT~h_=+6E3@_di&g)@0pE8L_{nmMM5oDguEKx38WKFoiqkE}Wg5c0j`Q%2F>M8o`@k znYIccBLDVb(>n1M;n$0P_vJgOOT6 z0X{5Sz2uTHSeyQG43D)#hl3MB)#m_K4IY=*-!(&akI$~GMG!g5-LGqL4OB2xJ3*>S zs{+Z7FPIoqQzA7rvr5?)a~Ms`_b;_f!jN0=v_-hi5OizUgD)=FqMCj6I4wZ~IJ|sh z(WTV{h5HAE(C}?wU)`=;f&+V4%A)t%fJQlas#PB}Lo4f)f+0LpSfl8P%)0g^oZ_LZ`C6J}P-qnRC3$45uRUgkYaV+_RaHIt1s%M8`W@*H-fuER(S|E&FZwu?J7eYS)nnxOFF z=910bN$eSydPVrDMeIhES@ww}R!IN-#D{`X7r4FhDS}0Mfn<` z;ua4j{ft#iB4vMBWR=M2Gv6*P%2I_|f@|H_+<;GO^1q|MNR3Lbo{Dv+qXLaBT9pS$ znlRT$^-cST8H!iBBz^!V_NyYzw*A@|y8phdsNe!QJOt*?L7|Jdr>fBN2V1hhbt=)L zq-Ga;pUdP^b(bEkj_%n1p`(T6hdW1K>T1Jr$LMHxHZ$~g(kl7vmLBl_Rg`^u1w&$y z;%{owcd_qB!wR2|)?#guwu7_!G7#$d^6%GQ6u@semZU#Jg5Ehqd3^rI3R%AP;}+wZ zAZ7QxK|j#~wcLH(ShlAPjhU| z_H~8tV(hOUJg-lCgH6mUT^S4221b)8r+w-zOe;iT@Xm8eWEk*+D@c_Bl$K7N<4n+i z%)50STanf%>{C0#){-_fR{0%fvIpeGHemeY+ZHBpb*H3Qtp|U4Gqtf+K?6PyH0D{p zp1|b3*#7euYsae@mjXHoUH0gzz1H%A8f-CG%&+uWBIAM>*0ZWQP$D*Rn(enC+D3oY1Ms})!YKlVdxbru>TJEgI#gpH$?pcQi3&j3nzt1b@-Z32z zk@zB<^VkZV4gOQ}AF*%m?u=&qYGs5z>^{*MwIPH5x>}p03BRfKW9#7VcvVpNUeCha zLWVA+K9rwM8pHfPT+qv!Wr4iHN0Da-jo@Mjd+ZTWJH$8oLP6spHBai;z?J5$Ilds_{Z2#?ccKWcH3QSiS}}(#bIH{u=#$C<&r7T z2*_D#R6C+JS;qCRh5(1UU#1klvq0sdn%!qTt0g-$W=of^D7+YLjlt+=BS=JGoB9`dKl zXTF`WK_%9M?^a5PJnM1C_rJJI&;r%AlF1+`+`fPgb89T(^cK;FY|p3yS)Ap8^N0Ro zZ$BQ<5x%#9C12g?8m!>~w_l-d2lI@;=h=6PMh>EvMbA2_z#jwdSD{(4V1~|kytlq9 zGmTkYKEPXTvy9anH9Z_{QvrpilSiY`F3w=h%dq-n5Yyt2o%7itdcVbEispKZfi{l% z&c!)9bUG{KlA0I>tkv%dEs6ePd+j;3=SR12%CwTDa?@}4<6ZL%UP@IcXDrSbc<=xV zquBYVNrPjuTR+Q&u86^a0Y{2thY1wr2&$gVwnw~Foh=3}0C!FuqVjGqM;E`cUq1PY z6nh#fr_LMfk z1B&LzSSZtETSym#(%jQ@a*Pl*9!$-$T8O=vv>d`~H?h#Sea|!9<=~OWr&99CEPPz` zMR6C`m%f!W_di@M@jp{HMGjbHy-Su!0;%fTJYKLbk*_afL>NS`an`~-5Y)JSKC`}3WJ@NV7 zmv6RNTf$P4(lXc^wPAy|)O<~88!!AHMd#s<<=cjFd+$Axz4zYk)26aVDoRD6rHqhK zBqfQ4NE9M7WR%E#WoEVX6C!)d-t)cRf8hB%pXa&Od7j7dJst`Q*6V)8`Niy69ILqD zOu}qncY`VTRVhzxjyNJ6M$PO`r%j;wjN;@Y7E5$FBL4fL4LkUTERcLv=*2wb!(*M1 z4#9Icoi+RN11_3nuQhmR3BNk{#qdlzCy1A1ALiLGftJL3#iJh`kcQ%(4#OQ|a5-zU z-(_ooo@PUpPs$#)dvl&SznB(X5U$NNuGWH&N)8NLeJsG;+$VE@^8@x$ZgGG86*q9# zf4z@x7y!!xLyo(U6$;atyqEJ)540;A!c6*%QPlfI{oh0Ln3&j1)Y`~07M@UCx}&8E z5^nWR`eK&wU*ukxnZ`2CQsFD%mBkI-$L<6*ywC^BB?-ImGl!Am-BSrUoci$W>f6Of z#Q99yG&PjELGI<$Ll2BV+y6Mt`6uS+Y)RnP#zqdfpr2%G#X$y72dhiy_f^0N ze9AK((V$^jQ6D4YWz6TIS>3}lVc;rC41O|X0{j1BlHU{ks$ko_s`))bIM2aX5=+d_ zWlLWAsb()=gJc0qVO*rpe1|XcOP(sMFL<%dWS8M#C$ewz+HBynEdqDgQ-vX~{KTE= zd2^7LUq*XQj_CKMU=amI=&`OJzbNW=2)(6sv+I7w0Axy!Go1cxU>UqC_RXwXAY(Ub zU`yoioD^BtG{mXVO5lt~V~#M)Qp9hbd13*xDSS`H6`YZnMx#QTsTmxjxM8VI5l$-2Ks5euLru=~r4 zWD7g@X}+65)fRc32Q(Y0&Pmc)fXrvj z>)RGCXn=C&#*&3Oe0q1_+iUy7sQB^$QeO?CkFj8w#3rFe9q z^ss(BTP=Ec4!0$}-C?+m!99(sNk&&1bg0MPv?FeY=r_Hzh$!cUVD(%}f=dnRRq_#n z*By|1Ql)W922tPa)usm}n;{`3*Jjo9EzFF6r);fe6CYtc_a#_K4_*ep@>+A-z@oU@ zM<+ir!<9ZHsI9^QVPB$rBO?i3b5)swtG5HvENA=ti_Q@4Xxj?sP@5z3(zMN3UQ#$h z`rluAWfqwH^TO8rsxE9&s$FI!CndN?FUz=SC{bu-)R;syCqxd?F*3i!Ajp48%QV6c zX?=d%##}-8aa|mOcK3-qdaA=uRh@~tnE3wU6fygz<2_ z+sACA(>%U@e56(g=)fK{6&$LbUd10o$Tfezssl~3?A{h{DdA7P$UtQd z!glibo+odz!(wL7H#J3L;7C&lv)FM!x8xiZ1HTx;%w5LS-*x6Fe{1A{&hc5yaaZOw zZ5SO2^;G94{h?$|uN1z21OiQwX8P|Jt~J!~V_)~_)zgHY0bPncE~Nu%-V?&2ZGG5gs>{IkBf{6Y z?(M}$!Ul`7RYHZN7zntTRrwJ0^zr*B3_S*r-CbfDH84S^$@$P^DoxryZMMYn;=$qlu`-obArQJvvKbO+K_Ml?W(=B6;kf(>u-|P zgV1r8W-m@7BwVGF*sZ|`_hdgC1mBq_^3Sk-i5PW|&dxurdHx5UZ=jl{mbZj!4_(&G z4B-T&dlwL8s|LK{Dr-iNpgChfrwW+iavyu9Wv6CF7{&X(+ zJfjU|8T}zYev&~6lT7P-?@p|8iKND?k{_g5XbD4{0nGB#Gu$QS36=qs@5j9WL~M?x zcXyhg{LFZ%j#H$taJS2I(~|||(SLpX=71idf4AG>%wh+}KUa?3*jvU!<)|y)#4^Ai zr#epBN`TtIU;lmAb3$LO*_58p83E;F743ks87ko}4L3T<2o7b1pIXZ~(9)dlK8-4X zl;fL#Xd4!|e#@gqeU}9(#JW~QxD)w4U3eHgc<{ZkLSUbbd|r)G9Gw7+3wFTTcZ|7j8YbGv3Gf3vni{eJ#L_ z8r&-BT*tT5f)6*OQXplIcczy&`Qel`&D%4{x?ry+_Fk>m201^PV>){d;CIiZk0M1z zDE^+Pt-p2yF5;}ZT3J8oa zcGd^i!nJ&QutVL;UE~Ut7(9Pj|NS$+37V{6?<})t0Kt{vfm+i|T))1c!mp9YRngp` z-z4f)4+{8r07IS7*rvDNY<0MQ<6xNkPxQ^6CyKkKuf6`=lZKF^_)JLT83@ zBc{jbKe56Q$&7mx;r}rAi8^s~k~mL|J8N#T?qGSBO7JI~-|>&0`iu+~91s)wJq~dj zLIm60ud)SpguiybvSAQ|$!hc2kP;$im)o0Gf758pXE8W9(3JUEM2wf(Zl9uuHg3!u0G$H%}{Oa`CBtt#04LDOu zk$VXFSu3@7^XUU)uTxcKq!CIY;=Us<&SMW#>i)FO?%|X+L8M0rKJ~#cXU1;AKdnSp zTBs~YhCFX=nT|vrfU2o1GF}S<7`z@Xi<=xq=PCvh&iWJjl6z1r=|kj`To-?t{b3CA zFP&M8C-T7Z&7<`Gb5;hs$Ajb-ObNd43(E4Vp(LnEbH#h;haj|wzCt{gdCV zR_IyJkB9Cl`XExgH+Wsj7%>bp75Tc7fQ^OP%}ewNc&4TCZJDoXM87qK(PXm`mwp{n z{Ga__4xUy{LWE>UsR*39+_}cL$(^OyI(#g&xGFNA-)E zSfWl7ZNnB~{&+^nT=j>q5vsOPWy&LG0F|GkIfVzmZNhYBHBV=o14~d>aGi|w65lj-_6nQ^GSPU?!>&VrFwza!3dpIy!MPGz-Hr?e)+BSCP#P5xz z*+pzc|A$Vyvk-LB>A5$sWAOM{V4Ti}!-%Yb;O?I${@-vTvD{CD-|8k+TT|~IRvz)G z^jyal7SA(eD;=l|BIA)`iy_oVD*W`qvcUo#rIJ>iJ0bw2RF~F`y)@vw_vgDgLnf#= zDAI6aS{>3d<`p#z0jV9IFSNQhjTgs@m^V}Y#U1f_v5mX3pr3ePq?2P2yDZ1)+96Sa zheH52*ZBib{=hD||CltyJc{c4`OyIJ>_(k73sV6}i%++&C2OHe?$TEUJ`G})ekoy9 zsS_Bl`1IR<XZL6I!~ zaq1r+&WFIUTZe8Lpw6VD|D6{n^f?1sM!H;NXrW^yz0X({9+5ko5}@A07!vI2&Qb5< zzv{Bs^N#XBdbzDKhr0?elRZD&?{11jSRY$Ei4lB=8q7e7(E#~N{&z#DjRHEoDOsr= zP@-#kMmaKHVqaX42giT>wq3?X=wmf&nKYs2O5Q)w=5|UKxkft2J>jDTBDsgW$(Ia$ zxcQy0{GklwktzKYD_g@tW90I^Wk)gm?%t<$2|oB(+$#3EKotz%B5u`bfJ?^l0oXB`_PR-V~!Hd=x>K1j~qAlyfCLaaJBAL_VXh&ccNm+^6i_ zU5%T<@OweOtU6EyluGZ`9`w{iQB6tInf_{!I&lAwceXCt;@Z(Eu%`t*`2d;Xv;Xi< zY)rQfdJ_B=k68Q9n%%fcfkwg5*(q#6)Pm!wt{7;Mej}OA)`0OzSraQ3Ei^8pbEL{u z1!SAU|2+&cK%34A2J4Qrs9h+iz4t9CYNj9;FcD$_yYjCtDXBE@ui>2W?nhEokyq=P zQX>x0Z+ zL+F_JAUO@7fr$%K#Xsk<#ruEbjE%Q(AGSMe3d6F{dt4;Xda?&U&v}msN8QDOMnaN! z0|bDfUVPyuml`Ck-O9WB$P~qSG(WvRsRp;0YaGs#V5shzR^tNe6HF)j-RS+EVT|dD zTm?&&0_fLtQT2y(Vx+tFZvUod@UJImHSCCbuuYa*Y|TRzx>7DGzw|djzdi|1e@`Ox z53;^uPd@7-vO-ImioGQ)E_rmmd~hG5Yr4aiktYWo9$z|LuxcXVXI_mIiKJ$qWxT)(?~gNoB6ZLL=P6Pb;a8?e>_nhjEz!>x z5E{}SC?xW&oa|lGh&=62gD%lzE*v1HCfqtMMDQLccfNQN{;EXXkRWfm2}~yGOE-DG zFjVHf)+>rqfhC7k4n-|P^#1I$?Yj&Wu%k1WjbYVCERp{>K16L`cXTk07&bZ>X@0O= zxj^tI4ZFh3#pj9HvbiaL>%E(F3VzA4M~k}wu~Rg}PLf^_lkiO6> zk2E#ZGpkLxbf5=27z4Y`#K8_;&A*KBXCZD-Acy z1+N|cw1MX!Sf7{3Tj%p2E37Yjm~?>!`k%jXgznZx(67x=Nc{I^7Zxz{61 zb*PKT30mZsWm&_;W81j+%(%c)>qDpmp|ACRqR09E)*)0((>@t@NDl()!totZ-;l5tz#ZWqg{ z>STE4wvRd3XEVH&J^=`8z9Z~lnwqDGu48>{A4jE z&rgDeqFekArHMfQ8NEOqKLxn6_wkpDj|S?#v`XIcg76PEn>gqiYNOF*nyamsXK+2= zqvzv@Jlzb&6Le=d`5}QxGupsu3uAwEFIHEg3TvErDCpQC1bHd@N=dxxAaXN0Rf`!z zLej2t&X(#RSbWFoI;8=!W)FCCS8EHCJXrE{K5!pvW=iK|rxJnf8A}G-f)qVNX%vrd z{KBng%+wyN2*aZ!)6sBBx+MFXllM__*lybISgl)_OwjkdS7L? z3ThYer;Vw-xUC%6>)z5|y|s+3h*YYoT=|P%*1OSl^`$VxVKq8Q4jM23li_ztEKsG~ zsifC=njqmnUvuFp5PEMYt@YmYuhcy2z=C#ek$Np&= z*Tg&?KCt0|sEu2hm&SJCvMFw_R!r8*~-NdvStYRa?B!2+dr)>{h> zW#mz#D=kUIrnDL_(e=cE7fv(K^e3>zdFjgq+{&syd@EXbcicH zF_&Y48(iDWjcR%{!7r$?ZrRkhOwm&K9#c2`40QXx!b(%y;fT{F>PWSzpF zuKIBWkE_Ey)0-1=KiFY{_EX1^n?!EscdTUHiUR}`a>4zKG92DFC6lMJMHMgJu=dSs zfb&!NWf@`~zoHWmC!I*#ll}2Y*ZD>#J9_CEC9G^v zqKsxj4|Sn8r0~Ny-tx_ruB3b&|2zK4i_kd1kR88jXMQ0wKlkcp?DSoeQ za;d97l&>QYJ;m_ zjop(#K=XIGcFFsxAvht^Z`XGnXVlHKQ%g_-&&mW>$Gu_vqWe1qlJOt-tg^yu$)g-l zocyI~dX(S?2Nj)VbTdaR4VnE8FEzmY-@A#*R^mPRmF(v=QhKOK`^-34--cD>uDF>u zDG~JtrdMJ$fjd%=kU97-V(E<4|D{Otfd#b6 zZV~6Hd}!~T!}~k93(rpm&D+y>6NS{pji;i3sco2$eqX{amRSjpq|V`GhlFJVUmgUW z?KunmSMrcpUoSebfFV*pZN_(gsxaYrmPxTe8(orY+YGDvhn>Z1Si3Xi3Hei5#RzS;4a3k;Bgs^z^>sh$l?_T^MI6R1M8 zX1^28{}I0=_cV%|d=1~YKW@HK%?ey`ucS6wX06Z7UY&?FZIr z4iyMnIr-jT!5l?q{7~Ra)C3y`llXtx`pC;QOeY|P72Zl@zNmRNjTI>ks`u!q0N(*R z$uHe~_`Q+#x(jS;xK(ubgR6GjAbmcO*5qi-(Y`ehxdNScn`S z|4$m?*^Lv+WKB?Q3%kbLEfv@=U&>&6t&IX==K{Asj9|eF)V0i?NYLvqCi7A`N|4z` zntqYcz2Dr*Nlxxx!o}}LXuq;%g8+R+#pkTjFiO8QQypoHY&msr%M<#VoLQzdH%e_Z z&nNl#;eiG0^2f(fQ-sgQ=}|J}*BB-6{`3B0ZrLc#cAL^PIEVx_U45NaF~tgf8f%rK zfr{{m|aO?jwt^kHwJ(?tK| zg8oF>5qh_pD|CBWE7&uEmi*ZB3ee{KDS0GjMHRBO9LtPJctJ63uTYoVRmvy7|hEU}wXGDG;M^$%jkM8E3F zKgG>g7N}ubT>a3z8W7TJ@7i`fWG(&Pa_|c|{6P12mrZFwd06MK)^RnsK|jf1dX)_Q zJVtKT;!pU#txF=GZZJdir>vovTZ$l=7TkpYI)uIiPVGHk)&LqNp1Qj!dZ^@DTZcpu zIXvdIi@rL+2zph{Sy9COTWh3xHSj4pV$7U>{-9z+hw)L8+0ja5u!o|`_Gb{ng2yO))ISqu6rj~3I3ZsUI( zL!vvqaxs;mnCwg)dU#DD`T1<2EMP-Ih8vY;i1I~N;`$##KU~kk; z2G88rvWdK?A&>iU@1s=V%F^5R+!7}AZ)JAfCu;|fc>X=1SBRD1#giWS*)Ia`Z2R-x zh8iQG8w`7SClsOXhkfecK}|GYpC5I_p9+OU3+%nt?!%uym)-RvQvsS7)7xf(Ir#Lh zB$w`mMSPsG)}Q$_9T@#&e7bHc4kK(jMiI|U(EY>$5pQ1=c%(J%aFA0Ai7ZDQv+qj5 z<^Ao&g$}IZ3jQk^4~Y8Ynr{7cN8v0kId^znLU|20|L+D5Z6*aMqtwOecj8bsqI@vN z9uQyG%hQ|5DlmTf`p>i$4HV7Ybh^l58asmdY}dIDU^Xv29C$9sL3KB}(SEoSFPYv_ z`*~>tZ;nhuiCc`&G45Y=vs)6xii0CpHVFRdWFK=e;ZJ2e@+jr`Q4NCEmzC({*^Osk z+&O%HmEgOEJe<8l)CCXIZK8ad7*RvS;bp#Tc4Q-P{TcZmE{IdzI^g_F8bs=;e~io+ zpo=8lq_<^=`ug)3t-tD8=+~DYgdB?mwAZ5dM((d*e)G0oM{Y=gXPF-b^WYlmj%VvfN+uI*SG^ald!E4 z72+Me`_BF_51c;AqOAQ=4hr@?Nqf%eqfS@b%`kDI`9^WqN9?u!7aIA*%PsRXr^8b@fYOi?ij zZ))`%!FRUgvk=bHL&vwZSpRhpd}n%zND4y#VbeDEy}(2XI816R&+gA-f-X8rZ2|+> zD_@g+@_9bEId!IGESD9nEv1zBM1cRMg^Q?hU8@_yWg=ApdW(kC(+oTkfYtv z)h|?G>1PpL^qvmVTiAM2Ts4K0&%|ig66@?5pU{3wn;vMLx;A`}ZwHf3yKKQ&-;9gq zy|+v*9m4peHe7C&E5mi|hzgQ_408##f=MM=;v$nvWt_?79YkAJ?qq6{bb=q|+EhipRszC^W?t+s)YDUgw;JFnv+8~Wp?9(}}P%JL08PDp@5i%{_gMN?Gjug&X9 z@Vq{z?Y{79*Fs6HlOZH(tdRC+#roNqd3@_*E zm1(Usz9$E2Odqv^HwH0B&+yK2YbGS4WB|Fi+APW?zQcL%OTtNQF5WX0|F~}u}=4+ zfd81m=t_wApC{=ZnO zI)%B@M>SC2^&b=LrAL>~c5Wpt&tvfvvYbEP5j<0=Nm+(=1?cH=t*O!@_&M>fCWgjT zA^yP8kH(lDs$GdM^m;vu2{)$-KX2&5{8^aSqKwsHr=6?5c!?6)`wd?ST4!La>K|ha zTUns-*UDUph8Tbc@4^=kQ>2jFq$B!N30(d;MlD%sp@Qa<5nL8Dkk06HbRm8TC(OQ! z?Eh3iYNn>~e_6OFVDUVrzz7W&Sk4)DDnmT; z>o5yRZS+y-dQf|7FaGk1Z{d|C3ixhXg1=c&fEM4y4|*MA829v$Xs#|b>U5e)$RzYM z5ym&1NO+||u}Crg;%7tjG~Rlm%|Z!+I=$1>wY1SIe?hV{RvTDIu}H=~G4~#xuD_^_ zc&VPp72LIsv|un|9T#58^J0SBCG zGFdT87lT!+?Dar`Zy0DAEBUQN9>!c`&WV|;qp--=p7oy=FsjUhRqUfo#8E=#;U^#r zzEbbs&i4MrEw?KJxP$iaQrpR~#+SU%*LJnI_KOgFRr)dItEGXOhFNLv%t`=nOc|?v zr5bu_rXDo&;4j7;=3MLW9|?#Z|WK!X&8zGSBGvV$4_{fZ@`Pp+77%k;x@K#FSaooHVf8rTwDO>{L- z%3jZr4=ig~n^uTX1P{SMOQcIz>6ZhiGL_ej?Q{_OekQ2x6g8Ax6xQbVV28@$AMq!h zMM2u&r{2K}cyTDmd7J1lK z4Z5_EWrZT+EH1o!s}6VNQ!Wb>>7mAx)e|`k>llxs$)|I7XK@C*YcVH9bYMoU$J*fH z0`AEZnH8M2je9LKxSk;Lcf+#$Qz&KRAZg?4FTZ+QR2wDZ%f&_L1((G5$UXFtytAVY zgX|LaxBZ9jQ;iio%ZR!7lf3~fn=x>gysE*cLa0ysT6ExH9Y+uUE}Fsux>yu)Udup; zB$LI=cRO@CqI|(~O&iJsZe5-6CEi2+2D-cRbkKfm>h=Q@YEa}`$U%fYP+ikJ?5o={ z-g!;8qGJ9N{+#5XdChtSMjiXIbP}YYAw}NUpu!pr${ekIrO5xa2@kLjXr29nrv zBCmVvQTTqQH}Q_HIr{g|ur7qj=Dm8PI)%R}RoYZhAw!Qwzncq$En?>)x7d>uq~RKQ zucSbTIoj}x_ofX}1x!QAA^4v*N*e!s{X!}Q(9?@v%PB6!X`+qxF8HWHw%jDkwcTaB z-t?(^hwKi%*;ptMc#sab#+Ee<#>Bw*^vh2hdnRb$IG5dNYgIVF_vzWDsU{M$$*ujZ zLIU>O-joxPWbkU@06R;z3N$|B8Z3$Zf!YxbYeVjICMwfH>jg;b%pStnAw^#i8! z=4-0$p||)7b87g<1{S!?6zWj^nHNO=Ip5r^vqXu?JG!(T%J62^f|Fg5o0#w&zjEUt(*nVdD@OY*qm2Y-N-2(= z`U~OjIdOoNUYQt#zBbJH6{C(8{Rvn{|gH4Z=4Qw&6!mhULrbL7Zy3765B`;eZ#_u9+twL3l_Mi8}L*8wy zd%g2SQ_c|fpjk>Qm{tu`Oh289I8ONNgl%q%jIQEVruoSsM84l|D(db)IzC9>*B&f* zYld7j$fJiRmB3uf?~nI;b!4ONwJ!0UIHz6-eosK{c#?S_=c#6OB5&u3(NosnI4GCU zT#9SPxD^WbK2$Ga#$h(}vJS#Y;;efbBP?!to&Q7E}U?Hl53ZV(9=z2d)0njRDo~L&!*fNQbqP9-(A;BnW2EK zSc=St9KA`}d_}9N0+lOM77xyD;!HOw|H-?OK|#!9(!@hDSeT&7aS&vJzT#wZ(X-l! zf4N#IK|%_oneUFt>IhV z5)BF``X^zb41muw-BBuF0+}xf#a_S_0Hc5Y+EWg}eTjjMPE!z+#fc`nct?@_*df#9-T848HlRYoYH zi?e@7n3#9er6{{7Bd0^tj?V}G;@*~dtDaPA*m9xQiEc~?vhquxC89>`&Cim{0o`Qi z-goAMF^gPaXj}73&`ua6o6GBD$S~v->s^13IA4QweeR!ZQ%5_)H*E6MzTz)d8dYnc~YQ=3kkkJLhw(9Tvlo6RDr`SWwVci4pCHH$|_e}z}4TL z9m?Tl1LI7txsF8v$oj~wY-ekVX!$h%E)cx+qYB>ip>pa-`Pd;#TkaLS!a-~}edjx7 zs;SB%9jXd%?OX#d4(((9LZ%cmIgF4ZV$LZY&H}nEaVw2&9METE@*r!?5Glwm8aPMF zLZZ-Y>rrFP8lD0~)H~2mCLLMi&?wn+uDMyZ$={&52 zeOVyM?Vs4&dJecjG90$8N%Ys3ZIRj)1*k|J_c$b}f{rBr#@EsaeUKTOR;m^`2vo&O zkcr8FMF4+Z{PSLX&g_X9Z}~s$6vmce+QA9u&PO{wAat@1j}Kq&o;F4lO!B-=mWtqV zv*VflDK&I~CCgkknhhk-Gx4AcW4NVGR+p!d3T*c+(k@Wn}6#+2`L z@X5*krfDJe&Ul1XInn_?O-*u3JQ!%Nm1*!iO2<%>Lu;BkE+SA@tJmz<}J-4gD?2X(_p1+UUW z#GliT&qq-JZvkIuoU8##eoNsJ`Bo7I9`;6PCn+I%lf5ohg+0k{0gi@9=77$@0b*E~hft*t_O|bzZ7^hyCW&AHKRH?u6>Ndf9?83aA zjs8$XZfa z9q!-%wGci>jSBgjN?GgH@cWORx|96?7*6fNs}@bGzMV*ea< zvIrcm3zbH7t5Z!&5SJ6>srizY#^N z2@%&(rMW&a?|EePGP8XR>nL^a{8!nIo0nu?48>M3{aKo;`feu3xBPAS5g93neXAE? zDXfB075rpE@>{Uzhj`khpJa&IoyuDEg&GXmd_3GGy@eabd0KS7pTxGI03mutgxp%G}4$1?eA?Tg*{P% z%D2xXpFH2he#uHvKDzl#6bSk=ui|vlF_F=8HE)1jEfACWi4zE~ug@GY`QvQAGK29BC_PnH=9r=aNPgYBEK~|i> zT)aOkIJ1xD)I>?3z#DJG((L5G!ofvQ|;RiUoc;baF9Y)b*b#n*@VR}{oUG9&IF9F! zNv? z_7%5aos6DT(M1=II__N^m4Ho)JdMgb^5|XIxh_KuTC^5ZTk%|%4gJkx2{t?+11oBR z3PLYdFvH#@L2|-xWh3c&N-B~atWtPQtHzdadI=Ah5YtENn<{6c1%<(&PUovunj%8g zeZp=PyO?%xiNxu2e&i|r;mEgRvM?^V>1*FWk4zTX)}NEmfTMXIqA+8Fcp;DWdxRQ9wX)Z?OHGHdSVwFWSFIi7>-k!oo4%YuG=p%=NAD@PN7?Flu6I#;l z$uaD2C;i#jYEqO?v#z1>fygtnxSFWjzlHVtsLc4f8lX29>yN+5l?6`~s^3$$6;W|j z-kqqz1$^y+yT}po9qcQ<{vUOWJkT7bn7sS93-e(wR{OfVi6;*pXd6>vfePOPspLvC z*b{?b*>AWpVl)-fYA5#7F@D>n_lFeF*4)2zKWkbv7Wd%_E6qR5UPoqdwLuj&6Hd@e zrPCwFq-#>{rNj8Mpe~ujF;X!7qG3(`pc_vsO4{!2H9;ML4IPyLK!hni+z_C)mqApR-KH_*;tbz`xDDX-(Qb_0dURkX|iA>1zX`Aabk!ylJDrV8w>+G$nt~q9SN!Xvpr?f4U*!b`1eY$?YI%sef#4)_ zcUO}8=^~mz@f(lUL?LaEewjx|36*M{KF}6Ehfg`pV@2+pc&*?Gj; zw}&PQl&4JL1}xkAo?b+ruqlh^E1NFNCi?`1#z#P<3vRDMyd}UtFy)3GixP6!b1Rin zqJ}GLQ7(LfBUo}7l+BJQf|qYku~aA*GW&Y&!ySon{7)=p6b~AzvQE5Ht7U_@xTFn9H*Osg(Qf4I@ev*UYK@{#t)ZLGogmfNvu^>j(d&h4L zs-b({e{J**7{lAS=J#`6>$s6shRC-*9mGI8pkLM}3Imjt4f^V`@PHv%`$CpDnAv)y znz|iC*U!^jKVeA&0)I{lvgMGV&3?hu_;FQKWPPvR@D{;0O^+>7XA?oaCGK}bYxz-H z3=$yeTE~ttZ`%wJzwehTema6#d-zU9Z`8Y|dsyTTiwXAkOc1}y^({wy1<&DT-*FPt zMDBCqey22);C=08T*OsLw8dz-c*>9$l`K4en##6@H99Q*7HE(n=7*|D+dN!I;cK6W zJHf%17*v-rxJ3sxJ5uLz)#~sPWmPJJAzeh*bT;}mMgvclFA1HcRzWn^GK8KL(E{UI zeu0F+K{S3O=y@@_4BXl2|4kAkgS-u6en?3Z_h}BJrtA(a*hiIfb1l*#^je}rGnKgC zepe^ab4dVqP@^IJkQ5S%&+PSUU&Q+g9_hZxCv~$1Ew8Zi{DllsQ+eLdGWl3{2i=GICJy{DM zhHEF$#F=K(m@9(Bx;>0--Z_cl58xwS&KPt{x{^ol5c^wgVCr#~z-bH4Y`_Yb&d6Ms2cScRfrnU4jjz z4EfDz=dNIxO$tMd%eL@!+f&DO)&;%Dul5PK7J>Ro>Z<-0T|!cpHeSo~VUTgXWoSgn z4UreQO-fk_L$4?GKckPwP>S1%d-$d{e3ACM5Oaih_wo9s)^Q#}rQNg@U!28JK4S^;JpPhhNm%rePv?_{i zQYaU++Qvtw^MJXG@_!VahdY-48;0$@XG8W%_TFw=_TGE%?4330l(eL^F0}co8`+V-_{#@62VrK>S@h5kTaerI$(vMVK__PS8%Sm|f{GwL@ zM9bidH|mEtiF+HF#rhNbiT%b_amOe>F~@pVCnkLy<-xvvf|EHKcy zYqzqSAI^!~-ey0a0zrF6Z)WlYfTZ!O2d77g|BuA{7|#H&A? z=zZ?ds&%zAD9^0wCovLv3T=aYAxkd0ji!ND71|@x^+KJu=*7Z9YQu z&gsgRPQLn)32l|`lbXWekRQ|IBAJtp(J7P}iyFR!_b+7WU#$+L$MJadpYj3Wc%NXq zFM1fn`EeqV$m`tc?N`{Zq6O-)ELHf~6mQjuQN4H>iBxGP4*rwyz;D#)UBiDPVYukM z0sodVp8M^2VcSClM7XMwl8){{PL}fHN1XoYv^C4w90q#W!zo>G^`RGTi`Bj?)U<{} zfgNHcw~OFL-oRLEVFKJO|9L#5v;fVY3WfFzhQJO*1)BunS9r`eBDCZa1V=>nkGW8r zqGWyyxP9B~mpkQ7CU{LAdNUu>nmskf2|p`i?`QrvCo|RP!03RyjoPwv*8ZS(KYL&O z9c7HWv*`Tgs5sQ$7aCsrdI06dGz4rHc6AsH-w1O#)4{3Ux@!$_W)MMdRA<|6i)oq) z^LR1^2a?9$M3x03b?*La7W&CxSNS32lbAh*rRct#C-yag%Nl>%TrDv~^K{z`*&$;8 z<$dLNIgvM`q5R@HY6bT157uO8+aX=Ed*?&yG-Ur|N3G-%f)9DFILmCMKz8cSlqXd> z_-j({xvZNY6eq?kQagU_PhCnrznue5qWQo5dy|Fa$FBA z=!ozJ=UC1=;EeDlMH#0OKyz>T`u!~Uz^0KDBoF~UTkp2G`7$v%*z;yqnm0HdmooQi zCHmwfUM*=x?m%MeW(!9((c{_uW-G!EcSO>?V#HSkhrY|+x6K3;H>8Tyc;o_e;cH){ zZ3r*dMY1r`B70179=RpptqT^%3fo;%2tI?((e)QU064wA-*d^_hu%i7=*kal^}iOn z{cK%_AJ1@gs0Irdpws7eSpgRfh+LHVT{}G6AGNUF8^R!j0ZAV@ECTd_bo#mf8#8sd z%p&7OS!x9PM0SR9nZ(iB^v=fPe4LSwiTnP}54LFf5F5EZzV^oOIEkWG4D!f%oUKtQeHR^0>>L zo5JEi^XJ_9+RTnlT+&1&N#m3LZ|)J=F>kcM>uFB)PjRQ=oxj@wR&J- z<-mja%t+u;lFaFeS3(gz^YWi;av<8iFl!YljFyaj4tGWw@QXyKcOW8vF0CwsOJO)og-S80%G zmR9`wKpd|s3T4uZup{m55~+yCjySb^X8HyT1!@-jAvZXk1!qim)V+xFCRIYwb)AxEO+Fv02SI zOBbZB6ll|Yn~2fI6n9eV0#VJdNALJ#0&Hkn_D8xq;esvgx%W#7V0&K}eZp+mD8!GZ(e*UF@z-mE=naT@T+xuLPR{J4m`_SNGYYC3659KUnq!4qnGNIophD))R z*y87dG3~%!@%EFnpsh|v^Jvr`g9d7z_|fWtMLfyDu6v~5^WkM$c>lT&HRV|KS}jQ7)j9xtAB#k@%SGDZ7f(30ja zoo#o-qJ%XG#wBsMry`Obuj7oxr>ttkj}ZCSPK~lco8LO(OO>@eFC39-bap*00^l0u z;~3NKYmlbL+V#HHx62TODzKxY#oD4k{ilX7t?wIjjsmg8NQt&K6h z8L+zD%|U~#x4t|eKjR7h-fV;0-ro4``9sA<#u8LrxvBA>A{i}dpE5Ct6+@lNy2MM# z0BrGVa-HzvL^o~@QL*#h_`7ZH#|1u3khArgHh9AZjoJgpDc)*>TXYhG|C%M1&+C)7 z*~VfV|54SPG+&(1+~bsC5CaMO(%aQex}tW2ves%BHQbdSB5xmX!S|i?Ql=#upqKSu zHMuAwY*z=(OXn-0iUgexqqQ8?h6i0r_WPua9K2M*b2ppRKxHdt^ZLgO zI28Q4PlGWO=>El(cDo$K-hrmO8J9uNsOu9R zV$C{MGos(-(;Sg)A^48mJtZjJ|Ic^-l`Pn{?Us$G4u{jvmgDXm%0$U#S+{L+C(ycc zJ~-2uShEDZ54r1U17A;sT}`}n5F6Gl$z#Me`jxxBMWjv;=d{7UFBuI)PhN>mH^s65 zW=EfwzhsI7#{!d1dGUNSO|Yw9*~w%r0IrKx(r8>T1qK=p>a{cGf#=OnS_F zk%>|lG}Vo2EQA%2H&kLjqYvS8WSV7uwoQxad=Bz`0+yW{a*|R;S;Ny?CFhQ^#7G^@9AR*V|pW+vbMkb z3$EOD3COm`4ad0WQ617Kn)q%?H#7sh8KO^Q>^@D2KZg~BHxwsJou^M z_-T_>g3I6h%jpTD5`2)RoN~#@hx5L%;%5U2wQ@Akpp?jFk30=>v*fcDtKxLV63&Xk_+P>iok*!jK-JwxIer+bSX0Hrp zqjp7#1C0L3#CyEz+6l&`xg0RnnyE-W7X|LJm{d5Og-;S?4Jpn2;4zTyoD?_=61n#; z=zjJAvHJ9@N(!2Iz2~o_(HUN(k99nL@l*hMWM8Iw7Gwv<3QL^oOHY8@4KDH%66ug+ zKHOp}QI0cAg1;VGM1y}AMl4^lfcn20(SGz%aLw~n*~=4_cp>}V6U$~nEOowDrjx6T zw$>*v7kt;k?QvE4DRx^J(lK4LAR~I69e)mdJYkA%!ogJ+59)$&hI+#x>D+h5I~FSgflT zD!Y~mpNFyf^rjOA9do8OZsG?q6{HiYvBtNv*BrSi6@mBTBcVp_4juJhq4ZuI_UKr^ z_~v;b(X*QWXdPCN34Q93&*y)H5xpUmFaO!4<17A`B-8eO@KO5ZgUYYEpr4ZHO5WfD zjpEnXTjTW*N9ZlD(=%gg-s0o@|5RXWuxmVi%nHBi#HgxWia;4>8<(@)Zph8W`@@zz z0?KM0W?aivLHenL0HSgTEZo{3vzZid?{@5+$a)sIag0MfC3Uf%jQ3y4pZol{be2xW zB8lj;ClvASk<&ww-y0+JuF80QOypSQfC1dAy~szqDGbM&nkXQZ@Y8+V+x@#i0#4}l zr#x%eixD)mYTaw3m`W0*(sb4U8$MAnhrd$93sZ9A{O*B3vdx^7HE9i_VMXMlnSNO4 zRGG)lKybj*kAl6R8W>UaeYPcXS|1lADvS30)X~54XD_3~PX7h6H5yJm4-}azJG*$? zh~O`s$bHkB4`vDT|7qF8LJUpO!R2eY7;}@SAOY0m}Wyq87A*DOQ$mRS>gQ&C*HA5V_RSn8enj)<(Fr z(>W6#=YkpgfA`RBo8$Jg$ITxceT6eDM<69uNoecq43X6>cU9a1m3U8iUuY8*9Bwq1dG=2u&v@e!n;o|?bO zq5)bzdMWRwD?laPrMvy(au8>&tCA$Ot5ejo(|PsWwvM_F?}eF91mCeiGs5kn4HitD z(0%qf7S9)_nU@Rs;-${uveP$W;N7tY=Z!wt;I)*N9%_9Nc>Zu(T>0W*yx7{sa%xBx zYTkJ_9J1ckd26V+Uwv2^Bp7Lv8&8{IQPgD26!G~xd1vbHH)~f^BCGvZeIp#2L^4_^ z9q91J_L0@r|0E&Y=h&~bRRx&1Z}7aZixfUglx-NEApseU4)N?=d$=WI{NU)gM9j^d%NULPraCfu7wn;wPjqg$ra`~)86JF{(n*MyPNiQT!b0Ym^{j}f5->>R#Sf1>%Ti(f)eZ*tA`p>&}#X&4$I48$atSHyL34W?^yEK zQ}OZP`@o8SNd`gaXKnqesO2#HTewke9L5IZI%E6ZrkNwzD5%(!R0s?sMn-D%lTU#cRo^WdTCN( zP2AY!AwPXMz{1Y->WTw8-Pbv$_&pw-B&${n6aDau-9S6TuQ&+2!mN8MRsoZ{>b=Mr zRN#+6rmVXH8yIw-9QJS6(y`q4Ww))E4DZDXQk0PE1F^j5eW>P)Chc#&cP=Gj*3CDa zdrt=9n+K_(8uA;;TVvf2%RsTSO;75Mzo}_Z|BzTu+ z$UU6u-B3+xhvY56nNoZoH|r&m2R1U@eU?|Ep;bICzR5TT2c<4CDeZcL_t=8BCow-e zpO^cr=Ds$yzF#)(k@AN&2u2rj>@PilbiUN|^vc+~1lBIui3I#o*N z5BuERzf;_fN53GM(M@Jo@GR)IbRqU|m#3#f5AwRe?bd14cf|X>`jH!jb*ETy)w$1p ziNXgv_0D$iHrc?AcHTmZYcX8T^0i&Mmk3|Q>pdTk7h*_No~*+CND$6@I7k*~1o?^d zk#rCNLn{Y*H?vKUOtkw%%qvcO;HDXTyIh~}-aooSNBA(5jQjIhFDK%=bqf9KEB-kD zo=-|OG69C>_liIMV}{*}!VjF-#X;(X+_xyAFLH1&C1RvU5S(Zd9zA^YvtPi}F^Fmh z@Wl5t`mPQ#G;jRl&>;{A>@RmFBx&qmNX1BMLe>wP3iQJq5?sJR_M;;>slvsH|DKt? zbp>-5^FiYqs`!3{QMEUEt^dTua_K|6GB6$f={*U*0cvpEd*&$_j3P}p$}JZi5$4(2 zj-CyKG|p7J)_EiB31p3Lui}QK2CJJ>tcJ+$G4{3IRDeigXz4&YT#GH0QbVjXd@$cU_QDF2HD) z4K~fLQ9D{qg2uUV>8>qOnHAk zIvw*-xL6zpq8mr+I}G$-Z(#E9$2TD`XxUa8L}rXD+@aMC+ay^0#$vj|Llm{Nk5&aS zsbggPY1$2SMSTA2N@0~W6OOE|L{(X9!$AUGA!}+20ZF{qZTBdFal^S--p5Yh^|j%) zzzcc2e}5R+ZeP=x=}Z`HIbnzQo|4w3WvIaK3GKfJTT@}Ks<59ll+ONXCef zsHLt&Zz%JEuv4G4VCHJ>0Y58mV88$R-A`s+bS7EvO*1D!QrSL_03Ih?uGjV>v=;<_ z`CGUdO%~i$H=G|bi+~p#?Z*!v$UuQdLn;31zOWk4P`nlcu;-@4Wd5`_OxBmM*BJrc zc+?@SX-tJq_0MJ}ICQ{LyY3>dwH-R`w%apL#^W>c6I*MezW95v;h5>YIEeo->X0r3 zsHqhom$^ms2ZoM*9hjCtpX#6KhXqLS{Qi5*oE|&<=FRyXT*->qTIQM-?yrl5r>bb$ zbqRsg3r?;MA_qNxK}_J!>Yskmlw4jJBWtL8o!hBps{!P9vU6f>?Vyn1#OC&}9LBg9 zSzlnHMGvXp$|Qs4DAX5lGsIc|pQRpr)Kx>w^}>J4+a)~Vai^;C((wpXsylt=SgI#b z7!_PRU9Sr&PpiV3K6=6H17`vPcy+Pl*3eq;O%D8|Q^-JE0D*P)>QKp)7plI|OFb7@ zfEfqF8y;MaN9~Fros<{(;A{DEqiQf1)5mvf4&EYiws)4aTABjU;mz%eM;iu&M=mJ( zPV}nIE8+12w6;EY>RAj8i=riXMKx&1UoC>$w`GQtM-w3G&y9e(+Xd*Dzo4kh6bK_O zRj-}I44{g1Rc8NVCZQK5+aoLVnE>as|?^8YnKk{;&I*~y-` z(EKLvc(4`Lh(*)HS$jg>H|L^TVTAwhcXi_DX)z!(+szxhXN&)Sw+e?=s({n%+mu1x z_d1KMN5j>K=O~M`b5QM#K>?9mtNSWBV9d>YEL+zPn>mO4 zUZ_!nkbRrprk*z@`X%{ltpmJqN;hLk`lHj`O3tD;YXJ{w6b+*GxFDxsEPWhi;c+In zmlZ{k$e%X4pY~`bXjxH)GuJqx$fCOz^IUq|7mb)T8`SF(t@&`+prztfHfIU(lK^LD<# zH}Y)i`;l0TI>hbwKGX>a+|YJ~pC-KGDqMKA-~fmCT5C%@l`y#LVSQjF35tbHM1MJ8 z43j>h0em7ZI6hvo{ns%AhYl>UJktxqZ5bcc%f&}QyMmeHK&%T+vK+REXA*}?=@l#v zj~sB?d9$yCn9sKgtSS9XH~M+VcTKZk|dN#!ukI`DiEzF9-#Pc2>>z^LDdGtZ~mryPEY9An=O7I^ud~am(Ic}jo4xDmoJ6gT8u~j?> zzPh%-HzL7Ja9(-rq>EWGE|ZyUXj=js-SQ)KzM7&rmG{a;Vn0hN`!OT;zAo0vR%!iH zbO7I}Viy+L9i6KyX62NhRUzO-)AfDE5>S8ruZ%V$32wP+cSrnTL$8pelz-v=SRTCK zUGT&XT)s)amoX{>Wp3#wC7Q%@`iM)yuaV=p|Klq&dGbiYv$FJ|!O0jRemTXwEDnWV z&y-GBuo%x7LM~2=&Eq8&Ah2W5CFP%ztTVO%>VA?jxNbD=K|I7yR zO5oUl`k7#cK$!M5YrVN{1E+Fc!E&ZQRYw@{9~B#50#AL#K7aCb zz~$qd(oSwi@#^A*a?`jF>|t5=w@*!lB$2SCACGOY$26~3=9Ul$@f;WIyGzVzCC(1b z-9+DJN#8;6OGbY`|A%vyl=c|BPkvSGqd1`J=2yz86d0YQ`Er^$2xi&d&f0xT!rLFm zqeHS?z-vfB^i#DCTpsejZp`Hb4-(7#j-FOQJ=W$=@!||f^Y}Vb#IP+|2F5dX6Zh!{ ztKO4QJxhRFS4h)?a{LI6y_w(6r#QU)pLELftPN;gNhk>?c*4Se4az2;T7beKvpoBd zgUH*&XR>rLB);wXczfSiTSu4GDF#&7zcXXn0 zkI{#wnIm^*4r;@%)(+@$GlIrq$3n$CK|HV)^CGd74IN4od+jzPH1Fwfed$qKd@d)13VlwIyDXkWwS3SAfx| z7Ax^)I&9TTGTRO{gomjesvdVe(5y!7Pbp~@Qb*qWkqQy$W<@_>H<$s+r3E`)GTvw* zSiGqlA`L;JJ@4$!yP>kIeZj*bb;z{UxYfO%9Djc)x#?O;BW2j@kQmRM`F}sP!n>qMLA<1PIFruT8pA$C_^gb1;M7Qk z>12u-a!D&bzi;RPRCaBb9J=&S$(72XhfW2`hg)jpJ#^8uT*$oSqzLr;&A)9Kp+xSu z1ASfmy127_yYk>uL(KW6GCw0?41+pbmlJFyVK|_aJfXw@%iSEvl7w|pmSnTdo#0wdq$0W+jb&7GqjMKAvRrq#27=>it^-a=rGG#=lF-` zG}t@8@=q+D4_xI+vA$moHFurnDtMHks$p|n@{=~o=V~R;XovvKT7Os5SxOvXN}B*4 zM`+<&9#ZP|MV7y9&NU*0a)U#gCYL-3s}`H&2sbiFQ_pf=ejkO_S&E)>ri@7U()3xi zUld-O*d}%VVFjZ3nW9pW>pHVFwQ8dh*63_!-J6(8@G)|>*7ZHY!DcCH^gnLmzAW_T zk;ucLc)?WpYmJpOq~v&9(v;JN+-Fj=H!`>S4IZ3f_A}h-e`NYnK+1y^N&m#tY!@Dc z&|{Z)$nzaBtBbKgN+TAnMzkf{+Po1y3hljW8v|W8Xa0U*u*G3E9gBuO1qey$VLW`w z8jpMuQ&)c@4_uW=>G}htNab!)Yw-|}R$uz=^fz;4NOm_en`ehv+Gv_Lc>-XruAI{VHrOgme$drDke5F}b*fBJr0sj^%c& z^)Kq-^PjG!Yb7BdqEnX5WyB}%Hq#&p2_doItI$X?_P zNl?E+_OgFp#iX}}H5YDkbso_&H$XSKm*jtoEikUt=MeicIXvsc5 z!9`<~)891zL|DWHAD^3n^-40fe0|%{z{rie&E5ZwCrw^EoBoKV=r6x{B}Zf6o|`z$N9>OO1d2z`A>@Dw#I{f4rQ& zFS%*}?-#c?YToLBQc*(3(d#;JzMGrby@wiGtz6d|=y>p6y#JfJbzV4Zd-Pvji7T>7 z4ZF?>#^e6JpFIO=KFFl7M?jD+4hp5Y<1GWtalt9Khw*9e8{FT#AV<6h=zr9ds%*4$gy^nepJANnP_`x73LX7#qzb7m-d!kzzN zrw2G_^syu~nL>GE@6?MRSG2RBeijx;3umLAt3BN*4{ zqww3-1@mY=s_b}0z&Cl_d-sWZzXL8C(bh3);C+IEGUT2L#t3#Z?N{0de1F7@9UAvw zqMk=hWYB)lmCVjFKjVnLd!Ey$nZ=^YSvIvpSG@2)#S3{4)}z5q<%z*I1b*KuFMQlm0Idd0 z%?=OAgYml~Y>g!D#QpdS=~scNcy`de{kc^jHe~%{qwGwE>z1r}!*zBz-z-sD`BNFb z3Ah$f63@Bvw`!b{@(1D9scD%MfxReNd86^(4-b5k*`pMa`&;Mo>*u|U8d(It``?T4 zQ<3nAlI^<0lMGzk5S0@Xat33sr^1EqhLB6;moQmx3*&mg)>$Wy$@>)j_umr0@uI1` zKURilC!8BPU|@;gs)ZP@-sQlwTVVG~k_RjMsF~^o2oC}M!DD@*uE^(1z0>wj0p9XV z-TamAg;F9V+ET9S5Ki^TG$WM*i_IIo6#DJ)72)fiua(Ei1ewavkyu#yIoHA)=?yfg z*12!EV^GSBf8FA}Jl@lcA)6J@fb{ei{$=^bI8Zqhw4Y51dagT|ktuPac$S86D&cEW zd@}viQ_=&=&qwsJ$)w}TW5)-%Ore-c{k2<^I}J`Vem*vD?u*~IvkFgI$U=6rhHtoy z50;%gutfJ&2YQ&IKW&k-qts>ooyVt%eYaD-;?{yICLR&;5g1O!MQwwwtF3`J2B)3U z#F8NT?b=zBJ-*oBS$2euRF*(incOUy^+7gm8374JePG_WcfGuq1*$Z=ND8O}4ZRmIieh$3ZF5;I0o%{)}Y0LdFF!}6qz!wQPTl9%$nZX~K ze45CHLt(y-nYkuZ~6Y^23(l>ZTr{^|@smpoQXLkM za->O6Vnk2k9#BTYv^R)}k&q@}Yt9RK?eou$*%16~iE@WOgp(Y#JU*{92Gc zWe+Vwo;_Wyx?oF4oo-3lfZ(of*`r$$xZE4DIH@m)v(E%SoR+i0ZL7&F_me_+;?1M@ zQ^#V#c}B9OrQZh_NX!)cIAc(w+CJi=vMp51W|2ByBmB0H{#4&$wt@H8Thm@l%OOi` z#)cxbF!uhkVZ16R46kHdZCqdj(9;mQ|Z8H6-M1MUP93g#?Two0+3wUUDiMitN%0^Yp zf5OO>SV>*}%N9MG$d6A@T+|6nHKUHdkO=l$d9i0s`h(-ZUGL=|a!z4fQ{p?d+hK!eM9+AL(u?5C=aws9Psf5` zzR9_;1s~x3>Acgm5RLs}5*BrZZqV)b)32Y=07|~R?|k*n9mE-{?;Yb%BRsrhJP~9f z_#u$ngL8IE=a#^o#=$iQ+w>$|=IsZFAl2alDcXt)L~fx}vg|t1kC#20YUGi87##^^14z97Yq zk~J>^{rxR5e^uw&ry)(em@srwqBR7T4mojYd~gCGop^rZtcr_}a2Z zOb;Ue>6+J=T7$Eqwk2K5A^h1mmuq}pfO!9PTxOirK(UslHcmfNTrFBIT2$3XA^XAy z6CC1r?8iM1U*hxTa#va5(}#nY>-}i!p065cKWyfq&J@8|??@o`32DoK)IR)! zuTFJ)nqtAeb>mqvU8Lu&)e}o~2bB*`evke&hP2mXTbaajo0~>Glw?g05AlkkT)`*FswkYc^$*|8}Z@%=>Oeo9CS9FxHahe488E2Xi+1lJ{VSA&Z|~ z?qSF}Sdx9H!wbcg=j0Tma*^I^{A;#YG#(vz`yt>)HgpYSeJE(~#~Z%SW4VqC!KI_D zj@+xn`O$MRTeVjoLMPl=#<%Ej=1_Taj=3RnWQ#CNpD;r9wbTP5ekPExZS>~neofdL z_Q<|B%LMP54^A=P{EKIlCvzx&K}K#)cvn?@q>!?ZpY+@#ey6 z;+!@-d8O_c2fTKX;M>EU0i?37YWvK>;IBeM%B=@!Sfu@2nU&5S1`|0ze;OrbA}arWhv?RhatYx z@X?l`18#18D&rt>bE)wz%(cw`sqYSLHk;_cGiLkl#yW1i0m`-R^89$zk=4pVQVN}^ z>vE%OY*1MnT1GGU5j_v{#ouO@SY@G~75v#3mT$H1e6!HNAv5nS16nm;4xI1^HIhR+ z*JKtiBDY9#DJ3c*WDgc!xS3@d?SSQqCX+9S{A=plL;Js%$3n}kYVX($AJ79QfmAo-mW#Hm2(ff3b5*IqQmIIn3U%JofL_oo-7Pu=Z%>E5QzuR%*4$Q_m5oS(WX`I zf!Il1b6LWiAFllwe|DWF5O4IAi^-mo3_64Cp-$Ms0`xU875e9ratDPCZ3f#j=~{Z{!2Z zPxCF==Z&CZ@XM=n&Mxr#tLewxqe_@^CV;f8S`Z_)txukNsf2T#H5{7HEzoI1L4f9* zJ>GAV_+v`=EH;LRczopTLHj@{Z^K`G6g}6@dGm%c+$i8*ezv5KVud=lA`~UTarE_h z?hbYoN_@Y1llZw!W~ztI>Js_v)b`Q)^uDM*ep zmBWKYd=rd9z@StW1it}+_3(mJ&rw) z1E0E&*R2Ha=#2l4r(8|5Ly@*E>Y%A8Wch3&n9<>aQZ}A{d;E@oc-jT%*%U+l-S`02 zI90G3eb)T8hyzr(2wDsEfBni{OTs6-dC>f>My*Sz0X~B3o`M*zjo(;Jb3H8cE%G2 zYdF2D!NIQMg>y8w6GKAsu;`sc$cMRTWNJz#f5(^$$f%sNvZ)#%*DSG${RyNUT!jRsF1hX+! zlz85H=(j zH^J&H5=(k%f`@j>H!_|35X38eH?{DWz!zVXiu&%U;MWn9zcpq*r&t(wmR-- zGOcLIV}gL6Ot)-%)Zv4s`@EMrEmSXyq*-o1*YV7By7c}ZH?-bpY{g=t7z;xpIsuFZ?1T+ zCsUx>)WzqN-!=nzufeMmZxbnXp?&S|Y|eoxJTw;fuwEby6+c@j$QJQPgi^ zi02RTbcRza!}UovS$_v*>^ycT_U5i2Y#lmXRUgBFr_2ry2(GK)-t5A?9b*o--K0ul zog9LkeLO!-T(v}#$MA$|I1p~>FOhOSk_FbD;O=rSfEqFq@kB;lSSl$g|FTCC9cN@X z&#wsJmSe)Q-)CbK%~v)_VY0*NE_!9*H@0}XWsfEQpe)`Eyh&eBU_$*3F^eYHSB@SMMt71aDK5$Th9(xi(hztcA&X(hOgRXjuU~-K0z$DA&TYm{YT9J*ncu$Wgt%-+#=477S9S}{*zD^ z`r{t>L-VB3`Af#=`n71m_IE6Ndo~o)n?vkFY>(bMdM^g~yIU0<_nE_ryO79TN@I8) zG}cy-VFboM9$U3ci{Z%=lWsGg58}b+S~1`Gz42|pvlEHa`uIpzPWfk85@<*`T2DU; zg3r5gHP@#Ta9a1>{Q*9GSV~%{%$72O_w`DilH3Z=Tu{yba~~=8`F=<|NA$s&NNtqZ ztDK0?J}ib_BK+D+Ld1j`0+V0j_TW2rj9_$sac?p<$RC=$)L8`L)gfwg(6 z`6_>K`WF9A>8v5{6gz3mUzJAtr+1o|;^gp{rS)X|tP`@odDp$H6iu8bITrNi9FYI5 z&?AO}Q6M{~|A6$p9)vf<-IT4>g#~ik@4T!waQ2sF(vjbin7$!h6x1n1Yw5j@aa3G ze)#i-MC#paT~NUOWs?`2cyx=pPUxB!p56U-^nSAje6}_}b&@9=j*)K-{keVwQZDn& zM($){Z`s=1J0E?x-Dx#b(yI!Bx30^6vf`yE~KZ$?#K*v8dAsmN>&WCD}>

|IV+XB}Zj3ds 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 JPZv{MceaX?L=+JA7LHdCUy?vNA_H=b^_7*~LF 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 ttkNCji37fK5lLLsrb#0rU0l}?HlmqS2 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

?r2my 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 V7XDA;kG~11QT= 0) - template_dir = os.path.dirname(templates[0]) - templates = find_templates(template_dir) - self.assertTrue(len(templates) > 0) - - template_dir = os.path.dirname(templates[0]) - templates = find_templates(template_dir) - self.assertTrue(len(templates) > 0) - - templates = find_templates(self.testTemplateDir) - self.assertEqual(len(templates), len(self.default_templates)) - for filename in templates: - self.assertIn(os.path.basename(filename), self.default_templates) - - templates = find_templates(self.testTemplateDir+'/alternate_templates.txt') - self.assertEqual(len(templates), len(self.alternate_templates)) - for filename in templates: - self.assertIn(os.path.basename(filename), self.alternate_templates) - - with self.assertRaises(ValueError): - templates = find_templates(self.testTemplateDir+'/blat.txt') - - with self.assertRaises(ValueError): - templates = find_templates('blat.txt') - - with self.assertRaises(ValueError): - templates = find_templates('blat.foo') - - - def test_load_templates(self): - templates = load_templates() - self.assertTrue(len(templates) > 0) - - template_files = find_templates() - templates = load_templates(template_files[0:2]) - self.assertEqual(len(templates), 2) - - - ### @unittest.skipIf('RR_TEMPLATE_DIR' not in os.environ, '$RR_TEMPLATE_DIR not set') - def test_load_dist_templates(self): - dtarg = util.fake_targets() - dwave = dtarg.wavegrids() - for dtp in load_dist_templates(dwave): - self.assertIn('wave', dtp.template.__dict__) - self.assertIn('flux', dtp.template.__dict__) - wave = dtp.template.wave - flux = dtp.template.flux - self.assertEqual(wave.shape[0], flux.shape[1]) - self.assertEqual(wave.ndim, 1) - self.assertEqual(flux.ndim, 2) - def test_zscan_io(self): dtarg = util.fake_targets() @@ -139,6 +54,8 @@ def test_zscan_io(self): zscan1, zfit1 = zfind(dtarg, [ dtemp ]) + zfit1.remove_column('fitmethod') + write_zscan(self.testfile, zscan1, zfit1) write_zscan(self.testfile, zscan1, zfit1, clobber=True) zscan2, zfit2 = read_zscan(self.testfile) @@ -154,4 +71,17 @@ def test_zscan_io(self): d2 = zscan2[targetid][spectype][key] self.assertTrue(np.all(d1==d2), 'data mismatch {}/{}/{}'.format(targetid, spectype, key)) + def test_read_zscan(self): + """Additional read_zscan testing with pre-generated data""" + import importlib + zscanfile = importlib.resources.files('redrock.test').joinpath('data/rrdetails-test.h5') + zscan, zfit = read_zscan(zscanfile) + + for targetid in np.unique(zfit['targetid']): + for fulltype in zscan[targetid].keys(): + zz = zscan[targetid][fulltype] + self.assertEqual(len(zz['redshifts']), len(zz['zchi2'])) + self.assertGreater(len(zz['zfit']), 0, f'Empty zfit Table for {targetid=} {fulltype=}') + + diff --git a/py/redrock/test/test_templates.py b/py/redrock/test/test_templates.py new file mode 100644 index 00000000..b92f6029 --- /dev/null +++ b/py/redrock/test/test_templates.py @@ -0,0 +1,190 @@ +from __future__ import division, print_function + +import os, tempfile +from shutil import rmtree +import unittest +from uuid import uuid1 +import numpy as np + +from .. import utils as rrutils +from ..templates import DistTemplate, find_templates, load_templates, load_dist_templates + +from . import util as testutil + +class TestTemplates(unittest.TestCase): + + #- Create unique test filename in a subdirectory + @classmethod + def setUpClass(cls): + cls.testDir = tempfile.mkdtemp() + cls.testfile = os.path.join(cls.testDir, 'test-{uuid}.h5'.format(uuid=uuid1())) + cls.starting_cwd = os.getcwd() + + # create dummy template files in a separate dir + cls.testTemplateDir = tempfile.mkdtemp() + cls.default_templates = ( + 'rrtemplate-galaxy-v2.fits', + 'rrtemplate-qso-v1.fits', + ) + cls.alternate_templates = ( + 'rrtemplate-galaxy-v1.fits', + 'rrtemplate-blat-v1.fits', + ) + + for filename in cls.default_templates + cls.alternate_templates: + with open(f'{cls.testTemplateDir}/{filename}', 'w'): + pass + + with open(cls.testTemplateDir + '/templates-default.txt', 'w') as fx: + fx.write('# Header comment\n') + fx.write('\n') + for filename in cls.default_templates: + fx.write(f'{filename}\n') + + with open(cls.testTemplateDir + '/templates-alternate.txt', 'w') as fx: + fx.write('# Header comment\n') + fx.write('\n') + for filename in cls.alternate_templates: + fx.write(f'{filename}\n') + + #- Cleanup test files if they exist + @classmethod + def tearDownClass(cls): + if os.path.exists(cls.testfile): + os.remove(cls.testfile) + + if os.path.isdir(cls.testDir): + rmtree(cls.testDir) + + def setUp(self): + #- remove testfile if leftover from a previous test + if os.path.exists(self.testfile): + os.remove(self.testfile) + + #- make sure we are in starting directory every time + os.chdir(self.starting_cwd) + + ### @unittest.skipIf('RR_TEMPLATE_DIR' not in os.environ, '$RR_TEMPLATE_DIR not set') + def test_find_templates(self): + templates = find_templates() + self.assertTrue(len(templates) > 0) + template_dir = os.path.dirname(templates[0]) + templates = find_templates(template_dir) + self.assertTrue(len(templates) > 0) + + template_dir = os.path.dirname(templates[0]) + templates = find_templates(template_dir) + self.assertTrue(len(templates) > 0) + + templates = find_templates(self.testTemplateDir) + self.assertEqual(len(templates), len(self.default_templates)) + for filename in templates: + self.assertIn(os.path.basename(filename), self.default_templates) + + templates = find_templates(self.testTemplateDir+'/templates-alternate.txt') + + # works without a path prefix + os.chdir(self.testTemplateDir) + templates = find_templates('templates-alternate.txt') + os.chdir(self.starting_cwd) + + self.assertEqual(len(templates), len(self.alternate_templates)) + for filename in templates: + self.assertIn(os.path.basename(filename), self.alternate_templates) + + with self.assertRaises(ValueError): + templates = find_templates(self.testTemplateDir+'/blat.txt') + + with self.assertRaises(ValueError): + templates = find_templates('blat.txt') + + with self.assertRaises(ValueError): + templates = find_templates('blat.foo') + + def test_load_templates(self): + templates = load_templates() + self.assertTrue(len(templates) > 0) + + template_files = find_templates() + templates = load_templates(template_files[0:2]) + self.assertEqual(len(templates), 2) + + self.assertEqual(templates[0].filename, template_files[0]) + self.assertEqual(templates[1].filename, template_files[1]) + + + ### @unittest.skipIf('RR_TEMPLATE_DIR' not in os.environ, '$RR_TEMPLATE_DIR not set') + def test_load_dist_templates(self): + dtarg = testutil.fake_targets() + dwave = dtarg.wavegrids() + for dtp in load_dist_templates(dwave): + self.assertIn('wave', dtp.template.__dict__) + self.assertIn('flux', dtp.template.__dict__) + wave = dtp.template.wave + flux = dtp.template.flux + self.assertEqual(wave.shape[0], flux.shape[1]) + self.assertEqual(wave.ndim, 1) + self.assertEqual(flux.ndim, 2) + + def test_header2templatefiles(self): + """Test templates.header2templatefiles""" + from ..templates import header2templatefiles + + #- Derive filenames from TEMNAM/TEMVER, with whitespace + #- STAR version unknown defaults to 0.1 + hdr = dict( + TEMNAM00='GALAXY ', TEMVER00='2.6 ', + TEMNAM01='QSO:::HIZ', TEMVER01='1.0 ', + TEMNAM02='STAR:::M', TEMVER02='unknown ', + ) + filenames = header2templatefiles(hdr, template_dir=self.testTemplateDir) + self.assertTrue(filenames[0].endswith('rrtemplate-GALAXY-None-v2.6.fits'), f'Wrong {filenames[0]}') + self.assertTrue(filenames[1].endswith('rrtemplate-QSO-HIZ-v1.0.fits'), f'Wrong {filenames[1]}') + self.assertTrue(filenames[2].endswith('rrtemplate-STAR-M-v0.1.fits'), f'Wrong {filenames[2]}') + + #- Derive filenames from TEMNAM/TEMVER, no whitespace + #- star version used if not "unknown" + hdr = dict( + TEMNAM00='GALAXY', TEMVER00='2.6', + TEMNAM01='QSO:::HIZ', TEMVER01='1.0', + TEMNAM02='STAR:::M', TEMVER02='3.14', + ) + filenames = header2templatefiles(hdr, template_dir=self.testTemplateDir) + self.assertTrue(filenames[0].endswith('rrtemplate-GALAXY-None-v2.6.fits'), f'Wrong {filenames[0]}') + self.assertTrue(filenames[1].endswith('rrtemplate-QSO-HIZ-v1.0.fits'), f'Wrong {filenames[1]}') + self.assertTrue(filenames[2].endswith('rrtemplate-STAR-M-v3.14.fits'), f'Wrong {filenames[2]}') + + #- TEMFIL overrides TEMNAM/TEMVER if it exists + hdr = dict( + TEMNAM00='GALAXY', TEMVER00='2.6', TEMFIL00='blat.fits', + TEMNAM01='QSO:::HIZ', TEMVER01='1.0', TEMFIL01='foo.fits', + TEMNAM02='STAR:::M', TEMVER02='3.14', TEMFIL02='bar.fits' + ) + filenames = header2templatefiles(hdr, template_dir=self.testTemplateDir) + self.assertTrue(filenames[0].endswith('blat.fits'), f'Wrong {filenames[0]}') + self.assertTrue(filenames[1].endswith('foo.fits'), f'Wrong {filenames[1]}') + self.assertTrue(filenames[2].endswith('bar.fits'), f'Wrong {filenames[2]}') + + #- Testing future possibilities for GALAXY suptypes + #- Also test dict entries "out of order" + hdr = dict( + TEMNAM00='GALAXY:::BGS', TEMVER00='3.0', + TEMNAM02='GALAXY:::LRG', TEMVER02='3.0', + TEMNAM01='GALAXY:::ELG', TEMVER01='3.0', + ) + filenames = header2templatefiles(hdr, template_dir=self.testTemplateDir) + self.assertTrue(filenames[0].endswith('rrtemplate-GALAXY-BGS-v3.0.fits'), f'Wrong {filenames[0]}') + self.assertTrue(filenames[1].endswith('rrtemplate-GALAXY-ELG-v3.0.fits'), f'Wrong {filenames[1]}') + self.assertTrue(filenames[2].endswith('rrtemplate-GALAXY-LRG-v3.0.fits'), f'Wrong {filenames[2]}') + + def test_fulltype_parsing(self): + from ..templates import parse_fulltype, make_fulltype + self.assertEqual(parse_fulltype('GALAXY'), ('GALAXY', '')) + self.assertEqual(parse_fulltype('QSO:::HIZ'), ('QSO', 'HIZ')) + + self.assertEqual(make_fulltype('GALAXY', ''), 'GALAXY') + self.assertEqual(make_fulltype('GALAXY', None), 'GALAXY') + self.assertEqual(make_fulltype('QSO', 'HIZ'), 'QSO:::HIZ') + + + diff --git a/py/redrock/test/test_utils.py b/py/redrock/test/test_utils.py index 5039b00d..dc15bbd7 100644 --- a/py/redrock/test/test_utils.py +++ b/py/redrock/test/test_utils.py @@ -38,6 +38,27 @@ def test_distribute_work(self): dist = utils.distribute_work(nproc, ids, capacities=capacities) self.assertEqual(list(map(len, dist)), [1, 3]) + def test_reduced_wavelength(self): + x = utils.reduced_wavelength(np.arange(10)) + self.assertEqual(x[0], -1.0) + self.assertEqual(x[-1], 1.0) + x = utils.reduced_wavelength(np.linspace(3600, 5800, 10)) + self.assertEqual(x[0], -1.0) + self.assertEqual(x[-1], 1.0) + + #- even out-of-order non-linear ok + x = utils.reduced_wavelength(np.random.uniform(-5, 20, size=100)) + self.assertEqual(np.min(x), -1.0) + self.assertEqual(np.max(x), 1.0) + + #- also works on cupy if installed, + #- and answer remains on GPU as a cupy array + if cp_available: + x = utils.reduced_wavelength(cp.linspace(3600, 5800, 10)) + self.assertEqual(x[0], -1.0) + self.assertEqual(x[-1], 1.0) + self.assertTrue(isinstance(x, cp.ndarray)) + def test_suite(): """Allows testing of only this module with the command:: diff --git a/py/redrock/utils.py b/py/redrock/utils.py index 253981a3..9ad6898c 100644 --- a/py/redrock/utils.py +++ b/py/redrock/utils.py @@ -163,9 +163,17 @@ def mp_array(original): Returns; ndarray: the wrapped data. + If the input array has size=0, the original is returned without + wrapping it in a size=0 multiprocessing.RawArray (which generates + warnings) """ import multiprocessing as mp + # A zero-length array generates the warning documented in + # https://github.com/desihub/redrock/issues/250; capture it. + if original.size == 0: + return original + typecode = original.dtype.char shape = original.shape @@ -248,3 +256,16 @@ def getGPUCountMPI(comm): if comm.rank == 0: print("WARNING: Found {:d} GPUs".format(len(pci_id_list))) return len(pci_id_list) + +def reduced_wavelength(wave): + """function to calculate reduced wavelength arrya for + legendre polynomial in archetype mode, + legendre polynomials are orthogonal in [-1,1] + Args: + wave (array): wavelength for which reduced wavelengths to be estimated + Return: + reduced wavelength in [-1,1] range + """ + wavemax = wave.max() + wavemin = wave.min() + return 2*(wave - wavemin) / (wavemax - wavemin) - 1 diff --git a/py/redrock/zfind.py b/py/redrock/zfind.py index bb330828..913186b1 100644 --- a/py/redrock/zfind.py +++ b/py/redrock/zfind.py @@ -21,6 +21,8 @@ from .targets import distribute_targets +from .templates import parse_fulltype + from .archetypes import All_archetypes from .priors import Priors @@ -208,7 +210,8 @@ def sort_zfit_dict(zfit): sort_dict_by_cols(zfit, ('__badfit__', 'chi2'), sort_first_column_first=True) zfit.pop('__badfit__') -def zfind(targets, templates, mp_procs=1, nminima=3, archetypes=None, priors=None, chi2_scan=None, use_gpu=False, zminfit_npoints=15, per_camera=None, deg_legendre=None, n_nearest=None, prior_sigma=None, ncamera=None): +def zfind(targets, templates, mp_procs=1, nminima=3, archetypes=None, priors=None, chi2_scan=None, use_gpu=False, + zminfit_npoints=15, per_camera=None, deg_legendre=None, n_nearest=None, prior_sigma=None, ncamera=None): """Compute all redshift fits for the local set of targets and collect. Given targets and templates distributed across a set of MPI processes, @@ -228,7 +231,7 @@ def zfind(targets, templates, mp_procs=1, nminima=3, archetypes=None, priors=Non multiprocessing processes to use. nminima (int, optional): number of chi^2 minima to consider. Passed to fitz(). - archetypes (str, optional): file or directory containing archetypes + archetypes (list optional): list of Archetype objects to use for final fitz choice of best chi2 vs. z minimum. priors (str, optional): file containing redshift priors chi2_scan (str, optional): file containing already computed chi2 scan @@ -249,7 +252,6 @@ def zfind(targets, templates, mp_procs=1, nminima=3, archetypes=None, priors=Non """ if archetypes: - archetypes = All_archetypes(archetypes_dir=archetypes).archetypes archetype_spectype = list(archetypes.keys()) # to account for the case if only one archetype is provided if not priors is None: @@ -320,9 +322,8 @@ def zfind(targets, templates, mp_procs=1, nminima=3, archetypes=None, priors=Non #creating list of template spectype to make use in case archetypes would be used all_spectype = [] for spec in templates: - temp_spectype = spec.template._rrtype.split(':::') - if temp_spectype not in all_spectype: - all_spectype.append(temp_spectype) + if spec.template.template_type not in all_spectype: + all_spectype.append(spec.template.template_type) for t in np.array(list(templates))[sort]: ft = t.template.full_type @@ -423,23 +424,27 @@ def zfind(targets, templates, mp_procs=1, nminima=3, archetypes=None, priors=Non continue tmp = allresults[tid][fulltype]['zfit'] - #- TODO: reconsider fragile parsing of fulltype if archetypes is None: - if fulltype.count(':::') > 0: - spectype, subtype = fulltype.split(':::') - else: - spectype, subtype = (fulltype, '') - + spectype, subtype = parse_fulltype(fulltype) else: if 'fulltype' in tmp.keys():#to take care of case when archetype is applied only for one template - spectype = [ el[0].split(':::')[0] for el in tmp['fulltype'] ] #el is a list with one element (corresponding to each minima) - subtype = [ el[0].split(':::')[1] for el in tmp['fulltype'] ] + spectype = list() + subtype = list() + #l el is a list with one element (corresponding to each minimum) + for el in tmp['fulltype']: + this_spectype, this_subtype = parse_fulltype(el[0]) + spectype.append(this_spectype) + subtype.append(this_subtype) del tmp['fulltype'] #it's a dictionary else: - if fulltype.count(':::') > 0: - spectype, subtype = fulltype.split(':::') - else: - spectype, subtype = (fulltype, '') + spectype, subtype = parse_fulltype(fulltype) + + # set max_velo_diff differently for STARs, but watch out + # for archtypes which have spectype as list instead of scalar + if (np.isscalar(spectype) and spectype.upper() == 'STAR') or spectype[0].upper() == 'STAR': + max_velo_diff = constants.max_velo_diff_star + else: + max_velo_diff = constants.max_velo_diff #Have to create arrays of correct length since using dict of #np arrays instead of astropy Table @@ -527,8 +532,8 @@ def zfind(targets, templates, mp_procs=1, nminima=3, archetypes=None, priors=Non tzfit['znum'] = np.arange(l) #- calc deltachi2 and set ZW.SMALL_DELTA_CHI2 flag - deltachi2, setzwarn = calc_deltachi2( - tzfit['chi2'], tzfit['z'], tzfit['zwarn']) + deltachi2, setzwarn = calc_deltachi2(tzfit['chi2'], tzfit['z'], tzfit['zwarn'], + dvlimit=max_velo_diff) tzfit['deltachi2'] = deltachi2 tzfit['zwarn'][setzwarn] |= ZW.SMALL_DELTA_CHI2 diff --git a/py/redrock/zscan.py b/py/redrock/zscan.py index d54fc941..10a0c8d5 100644 --- a/py/redrock/zscan.py +++ b/py/redrock/zscan.py @@ -273,7 +273,6 @@ def prior_on_coeffs(n_nbh, deg_legendre, sigma, ncamera, add_negative_legendre_t return prior def per_camera_coeff_with_least_square_batch(target, binned, weights, flux, wflux, nleg, narch, method=None, n_nbh=None, prior_sigma=None, use_gpu=False, bands=None): - """This function calculates coefficients for archetype mode in each camera using normal linear algebra matrix solver or BVLS (bounded value least square) method BVLS described in : https://www.stat.berkeley.edu/~stark/Preprints/bvls.pdf @@ -293,7 +292,6 @@ def per_camera_coeff_with_least_square_batch(target, binned, weights, flux, wflu prior (array): prior matrix added to the Legendre coefficients (1/sigma^2) use_gpu (bool): use GPU or not bands (list): list of wavelength bands - ncam (int): number of cameras for given instrument Returns: coefficients and chi2 @@ -708,7 +706,8 @@ def calc_batch_dot_product_3d3d_gpu(a, b, transpose_a=False, fullprecision=True) ### are very obviously analagous though and should be highly ### maintainable. The main difference is the extra loop on the CPU version -def calc_zchi2_batch(spectra, tdata, weights, flux, wflux, nz, nbasis, solve_matrices_algorithm=None, solver_args=None, use_gpu=False, fullprecision=True, prior=None): +def calc_zchi2_batch(spectra, tdata, weights, flux, wflux, nz, nbasis, solve_matrices_algorithm=None, + solver_args=None, use_gpu=False, fullprecision=True, prior=None): """Calculate a batch of chi2. For many redshifts and a set of spectral data, compute the chi2 for @@ -864,6 +863,24 @@ def calc_zchi2_batch(spectra, tdata, weights, flux, wflux, nz, nbasis, solve_mat zchi2[i] = np.dot( (flux - model)**2, weights ) return (zchi2, zcoeff) +def calc_negOII_penalty(OIItemplate, coeff): + """return penalty term for model having negative [OII] flux + + Args: + OIItemplate[nwave, nbasis]: portion of template around [OII] doublet + coeff[nz, nbasis]: coefficients from full template fit to data + + Returns: + penalty[nz]: penalty per redshift bin + """ + #- evaluate template and sum over [OII] doublet + OIIflux = np.sum(coeff @ OIItemplate, axis=1) + + #- Linear penalty with negative [OII]; no mathematical basis but + #- pragmatically works ok + penalty = -OIIflux * (OIIflux < 0) + + return penalty ###!!! NOTE - this is the main method for the v3 algorithm ### In this version, everything is done in batch on the GPU but the @@ -912,12 +929,6 @@ def calc_zchi2(target_ids, target_data, dtemplate, progress=None, use_gpu=False) zchi2penalty = np.zeros( (ntargets, nz) ) zcoeff = np.zeros( (ntargets, nz, nbasis) ) - # Redshifts near [OII]; used only for galaxy templates - if dtemplate.template.template_type == 'GALAXY': - isOII = (3724 <= dtemplate.template.wave) & \ - (dtemplate.template.wave <= 3733) - OIItemplate = dtemplate.template.flux[:,isOII].T - ## Redshifted templates are now already in format needed - dict of 3d # arrays (CUPY or numpy). tdata = dtemplate.local.data @@ -946,12 +957,14 @@ def calc_zchi2(target_ids, target_data, dtemplate, progress=None, use_gpu=False) # for all templates for all three spectra for this target # For coarse z scan, use fullprecision = False to maximize speed - (zchi2[j,:], zcoeff[j,:,:]) = calc_zchi2_batch(target_data[j].spectra, tdata, weights, flux, wflux, nz, nbasis, dtemplate.template.solve_matrices_algorithm, use_gpu=use_gpu, fullprecision=False) - - #- Penalize chi2 for negative [OII] flux; ad-hoc - if dtemplate.template.template_type == 'GALAXY': - OIIflux = np.sum(zcoeff[j] @ OIItemplate.T, axis=1) - zchi2penalty[j][OIIflux < 0] = -OIIflux[OIIflux < 0] + (zchi2[j,:], zcoeff[j,:,:]) = calc_zchi2_batch( + target_data[j].spectra, tdata, weights, flux, wflux, nz, nbasis, + dtemplate.template.solve_matrices_algorithm, use_gpu=use_gpu, + fullprecision=False) + + #- Galaxy templates penalize chi2 for negative [OII] flux; ad-hoc + if hasattr(dtemplate.template, 'OIItemplate'): + zchi2penalty[j] = calc_negOII_penalty(dtemplate.template.OIItemplate, zcoeff[j]) if dtemplate.comm is None and progress is not None: progress.put(1)

M2%25bc=ui4|AOcVG%qg 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