From 612e27554788d5108a2bee0297e399f6f2964bd3 Mon Sep 17 00:00:00 2001 From: Joyce Lin <84490877+joycelin1123@users.noreply.github.com> Date: Tue, 18 Jul 2023 15:35:09 -0400 Subject: [PATCH 1/3] Update starwave.py --- starwave/starwave.py | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/starwave/starwave.py b/starwave/starwave.py index 1fbc1ac..46ff826 100644 --- a/starwave/starwave.py +++ b/starwave/starwave.py @@ -170,6 +170,8 @@ def get_cmd(self, nstars, gr_dict, pdict): nans = (np.isnan(input_mags) + (input_mags < self.trgb)).any(axis = 1) input_mags = input_mags[~nans] + + BM_in = nans if len(input_mags) == 0: return input_mags, input_mags @@ -185,8 +187,11 @@ def get_cmd(self, nstars, gr_dict, pdict): output_mags = output_mags[~nans] + BM_out = nans + + sdict = {'masses': masses, 'binqs': binqs, 'sfhs': sfhs, 'dms': dms, 'exts': exts, 'BM_in': BM_in, 'BM_out': BM_out} - return input_mags, output_mags + return input_mags, output_mags, sdict def make_cmd(self, mags): """ @@ -381,12 +386,12 @@ def sample_cmd(self, params, model): intensity = 10**pdict['log_int'] nstars = int(stats.poisson.rvs(intensity)) - mags_in, mags_out = self.get_cmd(nstars, gr_dict, pdict) + mags_in, mags_out, sdict = self.get_cmd(nstars, gr_dict, pdict) cmd_in = self.make_cmd(mags_in) cmd_out = self.make_cmd(mags_out) - return cmd_in, cmd_out + return cmd_in, cmd_out, sdict def sample_norm_cmd(self, params, model): """ @@ -402,7 +407,7 @@ def sample_norm_cmd(self, params, model): list list of two arrays, one for the noiseless CMD and one for the noisy CMD, unit-scaled """ - in_cmd, out_cmd = self.sample_cmd(params, model) + in_cmd, out_cmd, sdict = self.sample_cmd(params, model) if len(in_cmd) == 0 or len(out_cmd) == 0: print('empty cmd!') return self.dummy_cmd, self.dummy_cmd From f5e4803de4219563af7c7c870dbb901dfb7477c1 Mon Sep 17 00:00:00 2001 From: Joyce Lin <84490877+joycelin1123@users.noreply.github.com> Date: Fri, 28 Jul 2023 12:56:44 -0400 Subject: [PATCH 2/3] Update starwave.py Add in sig_av in get_cmd and sample_cmd as a new parameter for starwave to use. --- starwave/starwave.py | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/starwave/starwave.py b/starwave/starwave.py index 46ff826..ecc6e34 100644 --- a/starwave/starwave.py +++ b/starwave/starwave.py @@ -147,10 +147,14 @@ def get_cmd(self, nstars, gr_dict, pdict): input_mags = np.empty((nstars, len(self.bands))) input_mags[:] = np.nan + exts = np.empty((nstars, len(self.bands))) + exts[:] = np.nan + masses = gr_dict['logM'].sample(nstars) binqs = gr_dict['BinQ'].sample(nstars) sfhs = gr_dict['SFH'].sample(nstars) dms = gr_dict['DM'].sample(nstars) + avs = gr_dict['av'].sample(nstars) for ii in range(nstars): @@ -159,6 +163,7 @@ def get_cmd(self, nstars, gr_dict, pdict): binq = binqs[ii] age, feh = sfhs[ii] dm = dms[ii] + av = avs[ii] if mass < self.lim_logmass or np.isnan(age) or np.isnan(feh): continue @@ -167,16 +172,20 @@ def get_cmd(self, nstars, gr_dict, pdict): input_mags[ii, :] = input_mag + dm + exts[ii,:] = np.array([extinction.ccm89(np.array([band_lambda]),av,self.Rv)[0] for band_lambda in self.band_lambdas]) + + nans = (np.isnan(input_mags) + (input_mags < self.trgb)).any(axis = 1) input_mags = input_mags[~nans] + + exts = exts[~nans] BM_in = nans if len(input_mags) == 0: return input_mags, input_mags - exts = np.array([extinction.ccm89(np.array([band_lambda]),pdict['av'],self.Rv)[0] for band_lambda in self.band_lambdas]) input_mags += exts idxs = self.kdtree.query(input_mags)[1][:, 0] @@ -382,7 +391,8 @@ def sample_cmd(self, params, model): gr_dict['BinQ'] = set_GR_unif(pdict['bf']) gr_dict['SFH'] = self.set_sfh_dist(pdict, self.sfh_type) gr_dict['DM'] = SWDist(stats.norm(loc = pdict['dm'], scale = pdict['sig_dm'])) - + gr_dict['av'] = SWDist(stats.norm(loc = pdict['av'], scale = pdict['sig_av'])) + intensity = 10**pdict['log_int'] nstars = int(stats.poisson.rvs(intensity)) From ef67984b99797fed38ee90a762b72eb3ec17609b Mon Sep 17 00:00:00 2001 From: Joyce Lin <84490877+joycelin1123@users.noreply.github.com> Date: Fri, 28 Jul 2023 12:58:05 -0400 Subject: [PATCH 3/3] Update parameters.py Add in sig_av as a parameter in the make_params function --- starwave/parameters.py | 1 + 1 file changed, 1 insertion(+) diff --git a/starwave/parameters.py b/starwave/parameters.py index 64048aa..685b6bc 100755 --- a/starwave/parameters.py +++ b/starwave/parameters.py @@ -145,6 +145,7 @@ def make_params(imf_type, sfh_type, kwargs = None): # add SFH TYPE ## ADD EXTINCTION WITH EXTINCT PACKAGE parameters['av'] = SWParameter('av', 0, [0, 1], fixed = True) + parameters['sig_av'] = SWParameter('sig_av', 0.015, [0, 1], fixed = True) if imf_type == 'spl':