diff artifacts/src/main/java/org/dive4elements/river/artifacts/bundu/bezugswst/BezugswstCalculation.java @ 9528:55c187a0a31e

Fixed: consistent gauge assignment with downstream gauge as reference gauge for calc range starting at a gauge range limit
author mschaefer
date Tue, 02 Oct 2018 16:39:51 +0200
parents 3f230fe8eb19
children 3fa8551c3d1b
line wrap: on
line diff
--- a/artifacts/src/main/java/org/dive4elements/river/artifacts/bundu/bezugswst/BezugswstCalculation.java	Tue Oct 02 13:25:52 2018 +0200
+++ b/artifacts/src/main/java/org/dive4elements/river/artifacts/bundu/bezugswst/BezugswstCalculation.java	Tue Oct 02 16:39:51 2018 +0200
@@ -35,6 +35,7 @@
 import org.dive4elements.river.artifacts.sinfo.util.CalculationUtils;
 import org.dive4elements.river.artifacts.sinfo.util.RiverInfo;
 import org.dive4elements.river.artifacts.sinfo.util.WstInfo;
+import org.dive4elements.river.artifacts.states.WaterlevelData;
 import org.dive4elements.river.exports.WaterlevelDescriptionBuilder;
 import org.dive4elements.river.model.BedHeightValueType;
 import org.dive4elements.river.model.River;
@@ -93,13 +94,19 @@
         // Calculate the wspl for the selected river range as in fixa awspl
         bunduartifact.addStringData("wq_isq", "true");
         final WinfoArtifactWrapper winfo = new WinfoArtifactWrapper(bunduartifact);
-        final RiverInfoProvider riverInfoProvider = RiverInfoProvider.forRange(this.context, river, access.getRange(), true);
+        final RiverInfoProvider riverInfoProvider = RiverInfoProvider.forRange(this.context, river, access.getRange());
         final FixRealizingResult fixResult = calculateWspl(bunduartifact, problems);
         if (fixResult == null)
             return new CalculationResult(results, problems);
 
         final WQKms wqkms = fixResult.getWQKms()[0];
-        final WstInfo wstInfo = new WstInfo(wqkms.getName(), 0, riverInfoProvider.getReferenceGauge(), true);
+        // We have no wst year as the wst is created by a calculation; we do not need it though
+        final int wspYear = -1;
+        // Remark: showAllGauges true for Fixierungsanalyse, false for WInfo, so true here as well
+        final boolean showAllGauges = true;
+        final WaterlevelData waterlevel = new WaterlevelData(wqkms, wspYear, showAllGauges, true);
+        final RiverInfoProvider riverInfoProvider2 = riverInfoProvider.forWaterlevel(waterlevel);
+        final WstInfo wstInfo = new WstInfo(wqkms.getName(), 0, riverInfoProvider2.getReferenceGauge(), true);
 
         // Fetch the bed heights of the selected sounding
         final Integer bedHeightId = access.getBedHeightID();
@@ -113,7 +120,7 @@
 
         // Compute the result rows
         for (int i = 0; i <= wqkms.size() - 1; i++) {
-            this.rows.add(createRow(wqkms.getKm(i), wqkms.getW(i), wqkms.getQ(i), bedHeightsFinder, channelFinder, riverInfoProvider, wstInfo));
+            this.rows.add(createRow(wqkms.getKm(i), wqkms.getW(i), wqkms.getQ(i), bedHeightsFinder, channelFinder, riverInfoProvider2, wstInfo));
         }
 
         // Compute the missing volumes

http://dive4elements.wald.intevation.org