Is there a way to set the points in an equadratures polynomial object?
I did a bunch of model runs (I’m using the COAWST model) using the points output from equadratures:
order_parameters = 2
wave_height = eq.Parameter(distribution=‘uniform’, lower=0.001, upper=0.5, order=order_parameters)
wave_steepness = eq.Parameter(distribution=‘uniform’, lower=0.025, upper=0.055, order=order_parameters)
veg_density_powerscale = eq.Parameter(distribution=‘uniform’, lower=-0.3, upper=0.3, order=order_parameters)
veg_ht_powerscale = eq.Parameter(distribution=‘uniform’, lower=-0.3, upper=0.3, order=order_parameters)
veg_stem_powerscale = eq.Parameter(distribution=‘uniform’, lower=-0.3, upper=0.3, order=order_parameters)
start_location = eq.Parameter(distribution=‘uniform’, lower=-0.3, upper=0.3, order=order_parameters)
sediment_ws_power = eq.Parameter(distribution=‘uniform’, lower=-1.30103, upper=0.69897, order=order_parameters)
sediment_M_power = eq.Parameter(distribution=‘uniform’, lower=-5, upper=-4, order=order_parameters)
sediment_taucrit = eq.Parameter(distribution=‘uniform’, lower=0.01, upper=0.2, order=order_parameters)
sediment_supply_powerscale = eq.Parameter(distribution=‘uniform’, lower=-1, upper=1, order=order_parameters)
parameters = [wave_height,wave_steepness,veg_density_powerscale,veg_ht_powerscale,veg_stem_powerscale,start_location,sediment_ws_power,sediment_M_power,sediment_taucrit,sediment_supply_powerscale]
mybasis = eq.Basis(‘total-order’)
mypoly = eq.Poly(parameters, mybasis, method=‘least-squares’,
sampling_args={‘mesh’:‘tensor-grid’, ‘subsampling-algorithm’:‘qr’, ‘sampling-ratio’:1.0})
pts = mypoly.get_points()
(Note: mypoly.basis.cardinality is 66)
And now I want to find the Sobol’ indices of the model outputs. I load in some outputs of the model runs, eg. dissip_veg_5tc_marshflooded_allveg, and then:
mypoly.set_model(dissip_veg_5tc_marshflooded_allveg)
mean, var = mypoly.get_mean_and_variance()
mypoly.get_summary(‘SobolOut_DissipVeg.txt’)
But, I’ve been re-running the code listed above before I start the Sobol index analysis (starting with order_parameters = 2), and I’m getting parameter values to use in a different order than the order I got and used for the model runs. This results in computing large Sobol indices for parameters that don’t matter!
Is there a way to either load parameter values in to a poly, or to make sure that i’m generating a poly in the same order as before?
Thank you!