StandardDeviationVisitor sdVisit = new StandardDeviationVisitor(getParameters().get(0)); return null; CalcResult calcResult = sdVisit.getResult(); if (calcResult == null) { return null; if (standardDeviation == 0) { return new RangedClassifier( new Comparable[] {sdVisit.getMean()}, new Comparable[] {sdVisit.getMean()}); Double max[] = new Double[classNum]; for (int i = 0; i < classNum; i++) { min[i] = getMin(i, classNum, sdVisit.getMean(), standardDeviation); max[i] = getMax(i, classNum, sdVisit.getMean(), standardDeviation);
public void visit(SimpleFeature feature) { visit((org.opengis.feature.Feature) feature); }
public void testStandardDeviation() throws Exception { FilterFactory factory = CommonFactoryFinder.getFilterFactory(null); Expression expr = factory.property(ft3.getDescriptor(0).getLocalName()); // first do it the old fashioned way to ensure backwards compatibility AverageVisitor visit1 = new AverageVisitor(expr); fc3.accepts(visit1, null); CalcResult result = visit1.getResult(); double average = result.toDouble(); StandardDeviationVisitor visit2 = new StandardDeviationVisitor(expr, average); fc3.accepts(visit2, null); assertEquals(28.86, visit2.getResult().toDouble(), 0.01); // then do it single pass StandardDeviationVisitor visit3 = new StandardDeviationVisitor(expr); fc3.accepts(visit3, null); assertEquals(28.86, visit3.getResult().toDouble(), 0.01); // test empty collection StandardDeviationVisitor emptyVisitor = new StandardDeviationVisitor(expr, average); empty.accepts(emptyVisitor, null); assertEquals(CalcResult.NULL_RESULT, emptyVisitor.getResult()); // test merge assertSame(result, emptyVisitor.getResult().merge(result)); assertSame(result, result.merge(emptyVisitor.getResult())); }
@Override public FeatureCalc create(Expression expr) { return new StandardDeviationVisitor(expr); }
double average = calcResult.toDouble(); StandardDeviationVisitor sdVisit = new StandardDeviationVisitor(getExpression(), average); featureCollection.accepts(sdVisit, progress); if (progress.isCanceled()) return null; calcResult = sdVisit.getResult(); if (calcResult == null) return null; double standardDeviation = calcResult.toDouble();
} else if (function == AggregationFunction.StdDev) { calc = new StandardDeviationVisitor( CommonFactoryFinder.getFilterFactory(null).property(aggAttribute)); } else if (function == AggregationFunction.Sum) {
private Object calculate(SimpleFeatureCollection featureCollection) { try { int classNum = getClasses(); // find the standard deviation StandardDeviationVisitor sdVisit = new StandardDeviationVisitor(getExpression()); featureCollection.accepts(sdVisit, progress); if (progress != null && progress.isCanceled()) { return null; } CalcResult calcResult = sdVisit.getResult(); if (calcResult == null) { return null; } double standardDeviation = calcResult.toDouble(); //figure out the min and max values Double min[] = new Double[classNum]; Double max[] = new Double[classNum]; for (int i = 0; i < classNum; i++) { min[i] = getMin(i, classNum, sdVisit.getMean(), standardDeviation); max[i] = getMax(i, classNum, sdVisit.getMean(), standardDeviation); } return new RangedClassifier(min, max); } catch (IOException e) { LOGGER.log(Level.SEVERE, "StandardDeviationFunction calculate failed", e); return null; } }
calc = new MinVisitor(attIndex, features.getSchema()); } else if (function == AggregationFunction.StdDev) { calc = new StandardDeviationVisitor(CommonFactoryFinder.getFilterFactory(null).property(aggAttribute)); } else if (function == AggregationFunction.Sum) { calc = new SumVisitor(attIndex, features.getSchema());
public void visit(SimpleFeature feature) { visit((org.opengis.feature.Feature)feature); } public void visit(org.opengis.feature.Feature feature) {