# #| export
# def blockPrint():
# sys._jupyter_stdout = sys.stdout
# sys.stdout = open(os.devnull, 'w')
# def enablePrint():
# sys._jupyter_stdout = sys.stdout
# sys.stdout = sys.__stdout__emu
Includes all the emulator functions
enablePrint
def enablePrint():Call self as a function.
blockPrint
def blockPrint():Call self as a function.
# #| hide
# def emulate_old(sepia_model:SepiaModel=None, # Input data in SEPIA format
# input_params:np.array=None, #Input parameter array
# ) -> tuple: # 2 np.array of mean and (0.05,0.95) quantile in prediction
# if len(input_params.shape) == 1:
# ip = np.expand_dims(input_params, axis=0)
# else:
# ip = input_params
# pred_samples= sepia_model.get_samples(numsamples=20)
# pred = SepiaEmulatorPrediction(t_pred=ip, samples=pred_samples, model=sepia_model, storeMuSigma=True)
# pred_samps = pred.get_y()
# pred_mean = np.mean(pred_samps, axis=0).T
# pred_quant = np.quantile(pred_samps, [0.05, 0.95], axis=0).T
# return np.array(pred_mean), np.array(pred_quant)# #| hide
# def emulate(sepia_model:SepiaModel=None, # Input data in SEPIA format
# input_params:np.array=None, #Input parameter array
# ) -> tuple : # 2 np.array of mean and (0.05,0.95) quantile in prediction
# if len(input_params.shape) == 1:
# ip = np.expand_dims(input_params, axis=0)
# else:
# ip = input_params
# pred_samples= sepia_model.get_samples(numsamples=20)
# pred = SepiaEmulatorPrediction(t_pred=ip, samples=pred_samples, model=sepia_model, storeMuSigma=True)
# pred_samps = pred.get_y()
# pred_mean = np.mean(pred_samps, axis=0).T
# pred_err = np.quantile(pred_samps, [0.05, 0.95], axis=0).T
# # pred_mean_arr, pred_err_arr = pred.get_mu_sigma()
# # pred_mean = np.mean(pred_mean_arr, axis=0).T
# # pred_err = np.std(pred_err_arr, axis=0).T
# '''
# pred_mean_arr = pred.mu #(#samples, #x_pred)
# pred_err_arr = pred.sigma #(#samples, #x_pred, #x_pred)
# pred_mean = np.mean(pred_mean_arr, axis=0).T
# pred_err = np.mean(pred_err_arr, axis=0).T ## pred.diag?
# print(pred_mean_arr.shape)
# print(pred_err_arr.shape)
# '''
# return np.array(pred_mean), np.array(pred_err)
# # return np.array(pred_mean), np.array(pred_err)emulate
def emulate(
sepia_model:SepiaModel=None, # Input model in SEPIA format
sepia_data:SepiaData=None, # Input data in SEPIA format
input_params:array=None, # Input parameter array
)->tuple: # 2 np.array of mean and stdCall self as a function.
# #| export
# def load_model_multiple(model_dir:str=None, # Pickle directory path
# p_train_all:np.array=None, # Parameter array
# y_vals_all:np.array=None, # Target y-values array
# y_ind_all:np.array=None, # x-values
# z_index_range:np.array=None, # Snapshot indices for training
# ) -> None:
# blockPrint()
# model_list = []
# data_list = []
# for z_index in z_index_range:
# sepia_data = sepia_data_format(p_train_all, y_vals_all[:, z_index, :], y_ind_all)
# sepia_model_pca_i = do_pca(sepia_data, exp_variance=0.999)
# model_filename = model_dir + 'multivariate_model_z_index' + str(z_index)
# sepia_model_z = gp_load(sepia_model_pca_i, model_filename)
# model_list.append(sepia_model_z)
# data_list.append(sepia_data)
# enablePrint()
# print('Number of models loaded: ' + str(len(model_list)) + ' from: ' + model_dir )
# '''
# # def sepia_data_by_redshift(redshift):
# ## Data prep
# Bk_all, k_all, z_all = load_boost_data()
# p_all = load_params()
# z_index = np.argmin(np.abs(z_all - redshift))
# print('Redshift index: ' + str(z_index))
# # Load validation data
# train_indices = [i for i in np.arange(49)] # if i not in test_indices]
# p_all_train = p_all[train_indices]
# y_vals_train = Bk_all[:, z_index, :][train_indices]
# print('Redshift: ' + str(z_all[z_index]))
# sepia_data_z = sepia_data_format(p_all_train, y_vals_train, k_all)
# do_pca(sepia_data_z, exp_variance=0.999)
# return sepia_data_z
# '''
# return model_list, data_listload_model_multiple
def load_model_multiple(
model_dir:str=None, # Pickle directory path
p_train_all:array=None, # Parameter array
y_vals_all:array=None, # Target y-values array
y_ind_all:array=None, # x-values
z_index_range:array=None, # Snapshot indices for training
)->None:Call self as a function.
emu_redshift
def emu_redshift(
input_params_and_redshift:array=None, # Input parameters (along with redshift)
sepia_model_list:list=None, sepia_data_list:list=None, z_all:array=None, # All the trained models
):Call self as a function.