public Double value(int i, Statistic stat) { return sampleStats[i].getStatisticValue(stat); }
public Set<Statistic> getStats() { return sampleStats[0].getStatistics(); }
public Long count(int i) { return sampleStats[i].getNumAccepted(firstStat); }
/** * Called by {@link #compileZonalStatistics()} to lazily create a * {@link StreamingSampleStats} object for each zone as it is encountered * in the zone image. The new object is added to the provided {@code resultsPerBand} * {@code Map}. * * @param resultsPerBand {@code Map} of results by zone id * @param zone integer zone id * * @return a new {@code StreamingSampleStats} object */ protected StreamingSampleStats setupZoneStats(Map<Integer, StreamingSampleStats> resultsPerBand, Integer zone) { StreamingSampleStats sampleStats = new StreamingSampleStats(Range.Type.EXCLUDE); for (Range<Double> r : ranges) { sampleStats.addRange(r); } for (Range<Double> r : noDataRanges) { sampleStats.addNoDataRange(r); } sampleStats.setStatistics(stats); resultsPerBand.put(zone, sampleStats); return sampleStats; }
/** * Store the results for the given zone. Package-private method used by * {@code ZonalStatsOpImage}. */ void setResults(int band, int zone, StreamingSampleStats stats, List<Range> includedRanges) { for (Statistic s : stats.getStatistics()) { Result r = new Result(band, zone, s, includedRanges, stats.getStatisticValue(s), stats.getNumOffered(s), stats.getNumAccepted(s), stats.getNumNaN(s), stats.getNumNoData(s)); results.add(r); } }
i == rc.getSize() - 1)); StreamingSampleStats s = new StreamingSampleStats(Range.Type.INCLUDE); s.setStatistics(stats.toArray(new Statistic[stats.size()])); s.addNoDataValue(noData); sampleStats[slot].offer(dubVal);
/** * Gets the values of all statistics calculated by this sampler. * * @return calculated values */ public Map<Statistic, Double> getStatisticValues() { Map<Statistic, Double> results = CollectionFactory.orderedMap(); for (Statistic s : getStatistics()) { results.put(s, getStatisticValue(s)); } return results; } }
/** * Offers an array of sample values. * * @param samples the sample values */ public void offer(Double[] samples) { for (int i = 0; i < samples.length; i++) { offer(samples[i]); } }
/** * Adds a single value to be considered as NoData. * * @param noData the value to be treated as NoData * * @see #addNoDataRange(Range) */ public void addNoDataValue(Double noData) { if (noData != null && !noData.isNaN()) { addNoDataRange(new Range<Double>(noData)); } }
final StreamingSampleStats sampleStats = new StreamingSampleStats(rangesType); for (Range<Double> r : ranges) { sampleStats.addRange(r); sampleStats.addNoDataRange(r); sampleStats.setStatistics(stats); sampleStatsPerBand[index] = sampleStats; for (int k = 0; k < srcBands.length; k++) { double value = dataIter.getSample(srcBands[k]).doubleValue(); sampleStatsPerBand[k].offer(value);
final StreamingSampleStats sampleStats = new StreamingSampleStats(rangesType); sampleStats.addRange(range); for (Range<Double> noDataRange : noDataRanges) { sampleStats.addNoDataRange(noDataRange); sampleStats.setStatistics(stats); sampleStatsPerBand[index] = sampleStats; for (int k = 0; k < srcBands.length; k++) { final double value = dataIter.getSample(srcBands[k]).doubleValue(); sampleStatsPerBand[k].offer(value);
public Results(List<Range<Double>> ranges, StreamingSampleStats[] sampleStats) { this.ranges = ranges; this.sampleStats = sampleStats; this.firstStat = sampleStats[0].getStatistics().iterator().next(); }
public void print() { for (int i = 0; i < size(); i++) { LOG.info(String.valueOf(range(i))); for (Statistic stat : sampleStats[0].getStatistics()) { LOG.info(stat + " = " + value(i, stat)); } } } }