mult_inf_range = np.arange(1.15, 1.35, 0.02) ntemp_range = np.arange(1, 5, 1) total_analysis_rmse = np.zeros((len(mult_inf_range), len(ntemp_range))) total_analysis_sprd = np.zeros((len(mult_inf_range), len(ntemp_range))) total_forecast_rmse = np.zeros((len(mult_inf_range), len(ntemp_range))) total_forecast_sprd = np.zeros((len(mult_inf_range), len(ntemp_range))) for iinf, mult_inf in enumerate(mult_inf_range): for intemp, ntemp in enumerate(ntemp_range): conf.DAConf['InfCoefs'] = np.array([mult_inf, 0.0, 0.0, 0.0, 0.0]) conf.DAConf['NTemp'] = int(ntemp) results.append(ahm.assimilation_gm_run(conf)) print('Multiplicative Inflation', mult_inf) print('Tempering iteraations', ntemp) print('Analisis RMSE: ', np.mean(results[-1]['XASRmse'])) print('Forecast RMSE: ', np.mean(results[-1]['XFSRmse'])) print('Analisis SPRD: ', np.mean(results[-1]['XASSprd'])) print('Forecast SPRD: ', np.mean(results[-1]['XFSSprd'])) total_analysis_rmse[iinf, intemp] = np.mean(results[-1]['XASRmse']) total_forecast_rmse[iinf, intemp] = np.mean(results[-1]['XFSRmse']) total_analysis_sprd[iinf, intemp] = np.mean(results[-1]['XASSprd']) total_forecast_sprd[iinf, intemp] = np.mean(results[-1]['XFSSprd']) f = open(out_filename, 'wb') pickle.dump([
'ResamplingType'] = 2 #Resampling: 1-Liu 2016, 2-Acevedo et al. 2016, 3-NETPF without rotation, 4-NETPF with rotation. #Introduce a model error in the model used for the assimilation experiment. conf.DAConf[ 'Twin'] = True #When True, model configuration will be replaced by the model configuration in the nature run. conf.ModelConf['Coef'] = np.array( [8.0] ) #Coefficient of parametrized forcing (polynom coefficients starting from coef[0]*x^0 + coef[1]*x ... ) conf.DAConf[ 'AddaptiveTemp'] = True #Enable addaptive tempering time step in pseudo time. conf.DAConf['NTemp'] = 1 #Number of temper iterations conf.DAConf['InfCoefs'] = np.array([1.6, 0.0, 0.0, 0.0, 0.0]) conf.DAConf[ 'RejuvParam'] = 0.0 #Global particle rejuvenestion (For the ETPF only) results = gmm.assimilation_gm_run(conf) print('Multiplicative Inflation', conf.DAConf['InfCoefs'][0]) print('Tempering iteraations', conf.DAConf['NTemp']) print('Analisis RMSE: ', np.mean(results['XASRmse'])) print('Forecast RMSE: ', np.mean(results['XFSRmse'])) print('Analisis SPRD: ', np.mean(results['XASSprd'])) print('Forecast SPRD: ', np.mean(results['XFSSprd'])) conf.DAConf['InfCoefs'] = np.array([1.06, 0.0, 0.0, 0.0, 0.0]) conf.DAConf[ 'BridgeParam'] = 0.4 #Global particle rejuvenestion (For the ETPF only) results = hym.assimilation_hybrid_run(conf) print('Multiplicative Inflation', conf.DAConf['InfCoefs'][0]) print('Tempering iteraations', conf.DAConf['NTemp'])