Closed chrisdicaprio closed 6 months ago
When running an inversion with VARIABLE_EXPONENTIAL_SCALE
perturbation, we need to pass an array, variablePerturbationBasis
to each SimulatedAnnealing instance using setVariablePerturbationBasis()
. The array needs to be as long as the initial state array.
We don't do this anywhere.
Sending a large double array to the NZSHM220_PythonGateway
is not practical. Also, it would make displaying meta data in toshi
more complicated.
We already have a mechanism to choose an existing solution file as the initial solution. We could use the same mechanism an use the rates.csv
file of an existing solution as the variablePerturbationBasis
.
Options:
The bottom two options will need changes to runzi
and to toshi
to display links etc. Slack Thread
Chris Rollins found this piece of code in opensha which we will also use:
if (perturb.isVariable()) {
double[] basis = variablePerturbationBasis;
if (basis == null)
basis = Inversions.getDefaultVariablePerturbationBasis(inputs.getRuptureSet());
sa.setVariablePerturbationBasis(basis);
}
When running an inversion and setting the perturbation function to
VARIABLE_EXPONENTIAL_SCALE
we get a null pointer exception:Inversion parameters were setup using the following python script: