/* does it */ public void doit() throws Exception { ParameterPoint pp = (ParameterPoint) pullInput(0); ExampleTable varET = (ExampleTable) pullInput(1); ParameterSpace ps = (new VariogramParamSpace()).getDefaultSpace(); // not including the last param, PowerExponent int numParams = 9; // whether the parameter at index i is // coefficient (true) vs range (false) boolean[] cvr = new boolean[numParams]; cvr[0] = true; cvr[1] = true; cvr[2] = false; cvr[3] = true; cvr[4] = false; cvr[5] = true; cvr[6] = false; cvr[7] = true; cvr[8] = true; double[] range = TableUtilities.getMinMax(varET, varET.getInputFeatures()[0]); double rMax = range[1]; range = TableUtilities.getMinMax(varET, varET.getOutputFeatures()[0]); double cMax = range[1]; if (debug) { System.out.println(this.getAlias() + ": Range Max:" + rMax + ", Coefficient Max:" + cMax); } double val = Double.NEGATIVE_INFINITY; double max = val; for (int i = 0; i < numParams; i++) { val = pp.getValue(i); if (cvr[i]) { max = cMax; } else { max = rMax; } if (Double.isNaN(val)) { ps.setMinValue(i, 0.0); ps.setMaxValue(i, max); ps.setResolution(i, this.allParametersResolution); } else { ps.setMinValue(i, val); ps.setMaxValue(i, val); ps.setResolution(i, 1); } } // the special case for the exponent if (Double.isNaN(val)) { int expIdx = 8; // leave the min at zero, change the max to 3 ps.setMaxValue(expIdx, 3); ps.setResolution(expIdx, 30); } pushOutput(ps, 0); }