@Override public void clear() { data.clear(); }
@Override public void clear() { data.clear(); }
public void prepareToNormalize(RecordType record, int indexOfRecord) { mean = 0; stdev = 0; int count = 0; delegate.prepareToNormalize(record, indexOfRecord); values.clear(); for (int i = 0; i < numberOfFeatures(); i++) { final float v = delegate.produceFeature(record, i); values.add(v); mean += v; count += 1; } mean /= count; double variance = 0; for (double value : values) { final double difference = value - mean; variance += difference * difference; } stdev = Math.sqrt(variance); delegate.prepareToNormalize(record, indexOfRecord); normalizedCalled = true; }
private void execute(){ Spectrum spec; FloatArrayList pixelsValues = new FloatArrayList(); FloatArrayList meanValues = new FloatArrayList(); for (String sourceBand : this.sourceBands) { pixelsValues.clear(); Band band = this.sourceProduct.getBand(sourceBand); for (int intIndex = 0; intIndex < this.spectrumClassReferencePixels.getXPixelPositions().size(); intIndex++) { int x = this.spectrumClassReferencePixels.getXPixelPositions().getInt(intIndex); int y = this.spectrumClassReferencePixels.getYPixelPositions().getInt(intIndex); pixelsValues.add(band.getSampleFloat(x, y)); } double sum = 0; for (float value : pixelsValues) { sum += value; } meanValues.add((float) sum / pixelsValues.size()); } spec = new Spectrum(spectrumClassReferencePixels.getClassName(), meanValues.toFloatArray(new float[meanValues.size()])); this.spectrumContainer.addElements(spec); }