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);

http://dive4elements.wald.intevation.org