diff flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/minfo/QualityMeasurementFactory.java @ 3769:728ecd2afa20

Implemented bed quality calculation in minfo module. flys-artifacts/trunk@5474 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Raimund Renkert <raimund.renkert@intevation.de>
date Fri, 14 Sep 2012 14:20:42 +0000
parents 75bc96dd9d82
children a5f65e8983be
line wrap: on
line diff
--- a/flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/minfo/QualityMeasurementFactory.java	Fri Sep 14 14:14:46 2012 +0000
+++ b/flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/minfo/QualityMeasurementFactory.java	Fri Sep 14 14:20:42 2012 +0000
@@ -4,6 +4,7 @@
 import java.util.HashMap;
 import java.util.Map;
 
+import org.apache.log4j.Logger;
 import org.hibernate.SQLQuery;
 import org.hibernate.Session;
 import org.hibernate.transform.BasicTransformerAdapter;
@@ -14,11 +15,13 @@
 
 public class QualityMeasurementFactory {
 
+    private static Logger logger = Logger.getLogger(QualityMeasurementFactory.class);
+
     private static final String SQL_BED_MEASUREMENT =
         "SELECT st.km       as km," +
-        "       st.datum    as date," +
-        "       sp.tiefevon as depth1" +
-        "       sp.tiefebis as depth2" +
+        "       st.datum    as datum," +
+        "       sp.tiefevon as depth1," +
+        "       sp.tiefebis as depth2," +
         "       sa.d10      as d10," +
         "       sa.d16      as d16," +
         "       sa.d20      as d20," +
@@ -34,19 +37,21 @@
         "       sa.d90      as d90," +
         "       sa.dmin     as dmin," +
         "       sa.dmax     as dmax " +
-        "FROM sohltest st" +
-        "    JOIN station sn ON sn.stationid = st.stationid" +
-        "    JOIN gewaesser gw ON gw.gewaesserid = sn.gewaesserid" +
-        "    JOIN sohlprobe sp ON sp.sohltestid = st.sohltestid" +
+        "FROM sohltest st " +
+        "    JOIN station sn ON sn.stationid = st.stationid " +
+        "    JOIN gewaesser gw ON gw.gewaesserid = sn.gewaesserid " +
+        "    JOIN sohlprobe sp ON sp.sohltestid = st.sohltestid " +
         "    JOIN siebanalyse sa ON sa.sohlprobeid = sp.sohlprobeid " +
         "WHERE gw.name = :name AND " +
         "      st.km IS NOT NULL AND " +
-        "      st.km BETWEEN :from - 0.001 AND :to + 0.001 AND" +
+        "      sp.tiefevon IS NOT NULL AND " +
+        "      sp.tiefebis IS NOT NULL AND " +
+        "      st.km BETWEEN :from - 0.001 AND :to + 0.001 AND " +
         "      st.datum BETWEEN :start AND :end";
 
     private static final String SQL_BEDLOAD_MEASUREMENT =
         "SELECT m.km    as km," +
-        "       m.datum as date," +
+        "       m.datum as datum," +
         "       m.d10   as d10," +
         "       m.d16   as d16," +
         "       m.d20   as d20," +
@@ -83,14 +88,14 @@
             Map<String, Double> map = new HashMap<String, Double>();
             double km = 0;
             Date d = null;
-            double depth1 = 0;
-            double depth2 = 0;
+            double depth1 = Double.NaN;
+            double depth2 = Double.NaN;
             for (int i = 0; i < tuple.length; ++i) {
                 if (tuple[i] != null) {
                     if (aliases[i].equals("km")) {
                         km = ((Number) tuple[i]).doubleValue();
                     }
-                    else if (aliases[i].equals("date")) {
+                    else if (aliases[i].equals("datum")) {
                         d = (Date) tuple[i];
                     }
                     else if (aliases[i].equals("depth1")) {
@@ -100,7 +105,7 @@
                         depth2 = ((Number) tuple[i]).doubleValue();
                     }
                     else {
-                        map.put(aliases[i], (Double) tuple[i]);
+                        map.put(aliases[i], ((Double) tuple[i])/1000);
                     }
                 }
             }
@@ -122,7 +127,7 @@
     ) {
         SQLQuery query = session.createSQLQuery(statement)
             .addScalar("km", StandardBasicTypes.DOUBLE)
-            .addScalar("date", StandardBasicTypes.DATE)
+            .addScalar("datum", StandardBasicTypes.DATE)
             .addScalar("d10", StandardBasicTypes.DOUBLE)
             .addScalar("d16", StandardBasicTypes.DOUBLE)
             .addScalar("d20", StandardBasicTypes.DOUBLE)
@@ -168,7 +173,7 @@
             SQL_BED_MEASUREMENT);
         }
         finally {
-            session.close();
+            //session.close();
         }
     }
 

http://dive4elements.wald.intevation.org