Mercurial > dive4elements > river
diff backend/src/main/java/org/dive4elements/river/importer/ImportWstColumn.java @ 7193:7fabae60428b double-precision
Merged changes from default into double-precision branch.
author | Tom Gottfried <tom@intevation.de> |
---|---|
date | Fri, 27 Sep 2013 17:36:50 +0200 |
parents | 3d83a4cf33ba 0fe00824bd96 |
children | 2ce7bacc940f |
line wrap: on
line diff
--- a/backend/src/main/java/org/dive4elements/river/importer/ImportWstColumn.java Fri Sep 13 18:29:01 2013 +0200 +++ b/backend/src/main/java/org/dive4elements/river/importer/ImportWstColumn.java Fri Sep 27 17:36:50 2013 +0200 @@ -18,6 +18,7 @@ import java.util.List; import java.util.ArrayList; +import java.util.Random; import java.math.BigDecimal; @@ -129,7 +130,7 @@ public void storeDependencies(River river) { log.info("store column '" + name + "'"); - WstColumn column = getPeer(river); + getPeer(river); for (ImportWstColumnQRange columnQRange: columnQRanges) { columnQRange.getPeer(river); @@ -148,6 +149,36 @@ this.timeInterval = timeInterval; } + public boolean guessWaterLevelIncreasing() { + + int N = columnValues.size(); + + if (N < 2) { + return true; + } + + Random r = new Random(); + int up = 0; + + int S = N < 50 ? N : (int)(0.1f * N)+1; + for (int s = 0; s < S; ++s) { + int i1, i2; + do { + i1 = r.nextInt(N-1); + i2 = r.nextInt(N-1); + } while (i1 == i2); + ImportWstColumnValue b = columnValues.get(i1); + ImportWstColumnValue a = columnValues.get(i2); + if (b.getPosition().compareTo(a.getPosition()) < 0) { + ImportWstColumnValue t = a; a = b; b = t; + } + + if (a.getW().compareTo(b.getW()) < 0) ++up; + } + + return up > S - up; + } + /** Get corresponding mapped wst-column (from database). */ public WstColumn getPeer(River river) { if (peer == null) { @@ -169,7 +200,7 @@ List<WstColumn> columns = query.list(); if (columns.isEmpty()) { - log.debug("source: " + source); + log.debug("source: " + source); peer = new WstColumn( w, name, description, source, position, ti); session.save(peer);