[PATCH] Replaced own W and Q facets in bundu bzws by subclass of FixWaterlevelFacet, added annotations and datacage
Wald Commits
scm-commit at wald.intevation.org
Mon Aug 20 16:05:26 CEST 2018
# HG changeset patch
# User mschaefer
# Date 1534773906 -7200
# Node ID d2f5375ede26d4b1d573e563fbc817954d64966d
# Parent 751a3eff624429ac5458453911fe912c504bd04f
Replaced own W and Q facets in bundu bzws by subclass of FixWaterlevelFacet, added annotations and datacage
diff -r 751a3eff6244 -r d2f5375ede26 artifacts/doc/conf/artifacts/bundu.xml
--- a/artifacts/doc/conf/artifacts/bundu.xml Mon Aug 20 15:53:33 2018 +0200
+++ b/artifacts/doc/conf/artifacts/bundu.xml Mon Aug 20 16:05:06 2018 +0200
@@ -507,7 +507,7 @@
<outputmodes>
<outputmode name="bundu_wspl_longitudinal_section" description="output.bundu_wspl_longitudinal_section" mime-type="image/png" type="chart">
<facets>
- <facet name="bundu_facet_w" description="bundu_facet_w"/>
+ <facet name="longitudinal_section.w" description="longitudinal_section.w"/>
<facet name="bundu_facet_channelmin" description="bundu_facet_channelmin"/>
<facet name="bundu_facet_bedheight" description="bundu_facet_bedheight"/>
<facet name="longitudinal_section.q" description="longitudinal_section.q"/>
diff -r 751a3eff6244 -r d2f5375ede26 artifacts/doc/conf/meta-data.xml
--- a/artifacts/doc/conf/meta-data.xml Mon Aug 20 15:53:33 2018 +0200
+++ b/artifacts/doc/conf/meta-data.xml Mon Aug 20 16:05:06 2018 +0200
@@ -146,10 +146,15 @@
<!--dc:when test="$out = 'sinfo_floodduration_curve'">
<dc:call-macro name="mainvalues" />
</dc:when-->
-
<dc:when test="$out = 'uinfo_salix_line'">
<dc:call-macro name="annotations" />
</dc:when>
+ <dc:when test="$out = 'bundu_wspl_longitudinal_section'">
+ <dc:call-macro name="annotations" />
+ </dc:when>
+ <dc:when test="$out = 'bundu_depth_longitudinal_section'">
+ <dc:call-macro name="annotations" />
+ </dc:when>
</dc:choose>
</dc:iterate>
</dc:when>
@@ -338,6 +343,12 @@
<dc:variable name="vegzonedata" expr="dc:defaultvegetationzone()"></dc:variable>
<defaultVegetationZone factory="dummy" target_out="{$out}" data="{$vegzonedata}"></defaultVegetationZone>
</dc:when>
+ <dc:when test="$out = 'bundu_wspl_longitudinal_section'">
+ <dc:call-macro name="longitudinal-section-prototype" />
+ </dc:when>
+ <dc:when test="$out = 'bundu_depth_longitudinal_section'">
+ <dc:call-macro name="longitudinal-section-prototype" />
+ </dc:when>
</dc:choose>
</dc:iterate>
</dc:otherwise>
@@ -448,6 +459,12 @@
<dc:when test="$out = 'uinfo.inundation_duration.vegzoneselect'">
<dc:call-macro name="vegetationzones" />
</dc:when>
+ <dc:when test="$out = 'bundu_wspl_longitudinal_section'">
+ <dc:call-macro name="longitudinal-section-user-prototype" />
+ </dc:when>
+ <dc:when test="$out = 'bundu_depth_longitudinal_section'">
+ <dc:call-macro name="longitudinal-section-user-prototype" />
+ </dc:when>
<dc:comment> Discharge curves </dc:comment>
<dc:when test="$out = 'computed_discharge_curve'">
<dc:call-macro name="discharge-curve-user-prototype" />
diff -r 751a3eff6244 -r d2f5375ede26 artifacts/doc/conf/themes.xml
--- a/artifacts/doc/conf/themes.xml Mon Aug 20 15:53:33 2018 +0200
+++ b/artifacts/doc/conf/themes.xml Mon Aug 20 16:05:06 2018 +0200
@@ -494,10 +494,8 @@
<mapping from="uinfo_salix_line.manualpoints" to="ManualPoints"/>
- <mapping from="bundu_facet_w" to="LongitudinalSectionW"/>
<mapping from="bundu_facet_channelmin" to="BunduChannel"/>
<mapping from="bundu_facet_bedheight" to="BunduBed"/>
- <mapping from="bundu_facet_q" to="LongitudinalSection"/>
<mapping from="bundu_facet_flowdepth.filtered" to="BunduBed"/>
<mapping from="bundu_facet_channeldepth" to="BunduChannel"/>
</mappings>
diff -r 751a3eff6244 -r d2f5375ede26 artifacts/src/main/java/org/dive4elements/river/artifacts/bundu/bezugswst/BezugswstCalculation.java
--- a/artifacts/src/main/java/org/dive4elements/river/artifacts/bundu/bezugswst/BezugswstCalculation.java Mon Aug 20 15:53:33 2018 +0200
+++ b/artifacts/src/main/java/org/dive4elements/river/artifacts/bundu/bezugswst/BezugswstCalculation.java Mon Aug 20 16:05:06 2018 +0200
@@ -43,10 +43,12 @@
private final CallContext context;
+
public BezugswstCalculation(final CallContext context) {
this.context = context;
}
+
/**
* Calculates the result rows of a bundu bzws workflow
*/
@@ -73,9 +75,11 @@
bunduartifact.addStringData("wq_isq", "true"); // macht doch Sinn hier, sorry!
final WinfoArtifactWrapper winfo = new WinfoArtifactWrapper(bunduartifact);
final RiverInfoProvider riverInfoProvider = RiverInfoProvider.forRange(this.context, river, access.getRange(), true);
- final WQKms wqkms = calculateWspl(bunduartifact, problems);
- if (wqkms == null)
+ 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);
// Fetch the bed heights of the selected sounding
@@ -99,7 +103,7 @@
final WaterlevelDescriptionBuilder descBuilder = new WaterlevelDescriptionBuilder(winfo, this.context);
final String qtext = descBuilder.getMetadataQ();
final BezugswstMainCalculationResult result = new BezugswstMainCalculationResult("bundu-bzws", rows, bedHeightsFinder.getInfo(), wstInfo,
- access.getFunction(), preprocessing, startYear, endYear, ud, qtext, missingVolFrom, missingVolTo);
+ access.getFunction(), preprocessing, startYear, endYear, ud, qtext, wqkms, missingVolFrom, missingVolTo);
results.addResult(result, problems);
// // missing volume calculation
@@ -177,7 +181,7 @@
/**
* Calculates a w-q-longitudinal section for a river range and Q specified in an artifact
*/
- private WQKms calculateWspl(final BUNDUArtifact bundu, final Calculation problems) {
+ private FixRealizingResult calculateWspl(final BUNDUArtifact bundu, final Calculation problems) {
final FixRealizingAccess access = new FixRealizingAccess(bundu);
final FixRealizingCalculation calc = new FixRealizingCalculation(access);
@@ -185,7 +189,6 @@
final CalculationResult res = calc.calculate();
final FixRealizingResult fixRes = (FixRealizingResult) res.getData();
- final WQKms[] wqkms = (fixRes != null) ? fixRes.getWQKms() : new WQKms[0];
final List<Problem> problems2 = res.getReport().getProblems();
if (problems2 != null) {
@@ -193,9 +196,7 @@
problems.addProblem(problem);
}
}
- if (wqkms.length >= 1)
- return wqkms[0];
- return null;
+ return fixRes;
}
/**
diff -r 751a3eff6244 -r d2f5375ede26 artifacts/src/main/java/org/dive4elements/river/artifacts/bundu/bezugswst/BezugswstFixationFacet.java
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/artifacts/src/main/java/org/dive4elements/river/artifacts/bundu/bezugswst/BezugswstFixationFacet.java Mon Aug 20 16:05:06 2018 +0200
@@ -0,0 +1,42 @@
+/** Copyright (C) 2017 by Bundesanstalt für Gewässerkunde
+ * Software engineering by
+ * Björnsen Beratende Ingenieure GmbH
+ * Dr. Schumacher Ingenieurbüro für Wasser und Umwelt
+ *
+ * This file is Free Software under the GNU AGPL (>=v3)
+ * and comes with ABSOLUTELY NO WARRANTY! Check out the
+ * documentation coming with Dive4Elements River for details.
+ */
+package org.dive4elements.river.artifacts.bundu.bezugswst;
+
+import java.util.List;
+
+import org.dive4elements.river.artifacts.common.AbstractCalculationExportableResult;
+import org.dive4elements.river.artifacts.model.CalculationResult;
+import org.dive4elements.river.artifacts.model.WQKms;
+import org.dive4elements.river.artifacts.model.fixings.FixWaterlevelFacet;
+import org.dive4elements.river.artifacts.states.DefaultState.ComputeType;
+
+public class BezugswstFixationFacet extends FixWaterlevelFacet {
+
+ public BezugswstFixationFacet() {
+ }
+
+ public BezugswstFixationFacet(final int index, final String name, final String description, final ComputeType type, final String hash,
+ final String stateID) {
+ super(index, name, description, type, hash, stateID);
+ }
+
+ @Override
+ protected WQKms[] getWQKms(final CalculationResult res) {
+
+ final BezugswstCalculationResults results = (BezugswstCalculationResults) res.getData();
+
+ final List<AbstractCalculationExportableResult> resultList = results.getResults();
+
+ if (!resultList.isEmpty())
+ return new WQKms[] { ((BezugswstMainCalculationResult) resultList.get(0)).getWQKms() };
+ return null;
+ }
+
+}
diff -r 751a3eff6244 -r d2f5375ede26 artifacts/src/main/java/org/dive4elements/river/artifacts/bundu/bezugswst/BezugswstHeightProcessor.java
--- a/artifacts/src/main/java/org/dive4elements/river/artifacts/bundu/bezugswst/BezugswstHeightProcessor.java Mon Aug 20 15:53:33 2018 +0200
+++ b/artifacts/src/main/java/org/dive4elements/river/artifacts/bundu/bezugswst/BezugswstHeightProcessor.java Mon Aug 20 16:05:06 2018 +0200
@@ -19,7 +19,6 @@
import org.dive4elements.river.artifacts.bundu.BunduResultType;
import org.dive4elements.river.artifacts.common.AbstractProcessor;
import org.dive4elements.river.artifacts.common.AbstractResultType;
-import org.dive4elements.river.artifacts.common.GeneralResultType;
import org.dive4elements.river.artifacts.resources.Resources;
import org.dive4elements.river.artifacts.sinfo.common.SInfoResultType;
import org.dive4elements.river.exports.DiagramGenerator;
@@ -34,9 +33,6 @@
*/
public final class BezugswstHeightProcessor extends AbstractProcessor {
- private static final String FACET_W = "bundu_facet_w";
-
- private static final String FACET_W_DESCRIPTION = "bundu_facet_w.description";
private static final String FACET_CHANNELMIN = "bundu_facet_channelmin";
@@ -46,34 +42,19 @@
private static final String FACET_BEDHEIGHT_DESCRIPTION = "bundu_facet_bedheight.description";
- public static final String FACET_Q = "bundu_facet_q";
-
- private static final String FACET_Q_DESCRIPTION = "bundu_facet_q.description";
-
private static final String AXIS_LABEL = LongitudinalSectionGenerator.I18N_YAXIS_LABEL;
- private static final String Q_AXIS_LABEL = LongitudinalSectionGenerator.I18N_2YAXIS_LABEL;
-
private static final Set<String> HANDLED_FACET_TYPES = new HashSet<>();
static {
- HANDLED_FACET_TYPES.add(FACET_W);
HANDLED_FACET_TYPES.add(FACET_CHANNELMIN);
HANDLED_FACET_TYPES.add(FACET_BEDHEIGHT);
- HANDLED_FACET_TYPES.add(FACET_Q);
}
public BezugswstHeightProcessor() {
super(AXIS_LABEL, HANDLED_FACET_TYPES);
}
- public static Facet createWFacet(final CallContext context, final String hash, final String id, final int facetIndex,
- final int resultIndex, final String seriesName) {
-
- final String description = Resources.getMsg(context.getMeta(), FACET_W_DESCRIPTION, FACET_W_DESCRIPTION, seriesName);
- return new BezugswstResultFacet(facetIndex, resultIndex, FACET_W, description, AXIS_LABEL, id, hash);
- }
-
public static Facet createChannelminFacet(final CallContext context, final String hash, final String id, final int facetIndex,
final int resultIndex) {
@@ -96,14 +77,10 @@
protected AbstractResultType doGetType(final String facetName) {
- if (FACET_W.contentEquals(facetName))
- return BunduResultType.bezugswst;
if (FACET_CHANNELMIN.contentEquals(facetName))
return BunduResultType.channelLowerEdge;
if (FACET_BEDHEIGHT.contentEquals(facetName))
return SInfoResultType.meanBedHeight;
- if (FACET_Q.contentEquals(facetName))
- return GeneralResultType.dischargeQwithUnit;
final String error = String.format("Unknown facet name: %s", facetName);
throw new UnsupportedOperationException(error);
diff -r 751a3eff6244 -r d2f5375ede26 artifacts/src/main/java/org/dive4elements/river/artifacts/bundu/bezugswst/BezugswstMainCalculationResult.java
--- a/artifacts/src/main/java/org/dive4elements/river/artifacts/bundu/bezugswst/BezugswstMainCalculationResult.java Mon Aug 20 15:53:33 2018 +0200
+++ b/artifacts/src/main/java/org/dive4elements/river/artifacts/bundu/bezugswst/BezugswstMainCalculationResult.java Mon Aug 20 16:05:06 2018 +0200
@@ -20,6 +20,7 @@
import org.dive4elements.river.artifacts.common.IExportContext;
import org.dive4elements.river.artifacts.common.MetaAndTableJRDataSource;
import org.dive4elements.river.artifacts.common.ResultRow;
+import org.dive4elements.river.artifacts.model.WQKms;
import org.dive4elements.river.artifacts.sinfo.util.BedHeightInfo;
import org.dive4elements.river.artifacts.sinfo.util.RiverInfo;
import org.dive4elements.river.artifacts.sinfo.util.WstInfo;
@@ -46,9 +47,11 @@
private final Integer ud;
private final String qOfGauges;
+ private final WQKms wqkms;
+
public BezugswstMainCalculationResult(final String label, final Collection<ResultRow> rows, final BedHeightInfo sounding, final WstInfo wst,
final String function, final boolean preprocessing, final int startYear, final int endYear, final Integer ud, final String qOfGauges,
- final Double missingVolumeFrom, final Double missingVolumeTo) {
+ final WQKms wqkms, final Double missingVolumeFrom, final Double missingVolumeTo) {
super(label, rows);
this.wst = wst;
this.sounding = sounding;
@@ -60,6 +63,11 @@
this.missingVolumeFrom = missingVolumeFrom;
this.ud = ud;
this.qOfGauges = qOfGauges;
+ this.wqkms = wqkms;
+ }
+
+ public WQKms getWQKms() {
+ return this.wqkms;
}
public String getWstLabel() {
diff -r 751a3eff6244 -r d2f5375ede26 artifacts/src/main/java/org/dive4elements/river/artifacts/bundu/bezugswst/BezugswstState.java
--- a/artifacts/src/main/java/org/dive4elements/river/artifacts/bundu/bezugswst/BezugswstState.java Mon Aug 20 15:53:33 2018 +0200
+++ b/artifacts/src/main/java/org/dive4elements/river/artifacts/bundu/bezugswst/BezugswstState.java Mon Aug 20 16:05:06 2018 +0200
@@ -25,7 +25,6 @@
import org.dive4elements.river.artifacts.model.EmptyFacet;
import org.dive4elements.river.artifacts.model.FacetTypes;
import org.dive4elements.river.artifacts.model.ReportFacet;
-import org.dive4elements.river.artifacts.model.WaterlevelFacet;
import org.dive4elements.river.artifacts.states.DefaultState;
/**
@@ -89,10 +88,12 @@
if (!resultList.isEmpty()) {
final BezugswstMainCalculationResult result = (BezugswstMainCalculationResult) resultList.get(0);
- facets.add(BezugswstHeightProcessor.createWFacet(context, hash, this.id, facetIndex++, 0, result.getWstLabel()));
facets.add(BezugswstHeightProcessor.createChannelminFacet(context, hash, this.id, facetIndex++, 0));
facets.add(BezugswstHeightProcessor.createBedheightFacet(context, hash, this.id, facetIndex++, 0, result.getBedHeightLabel()));
- facets.add(new WaterlevelFacet(facetIndex++, FacetTypes.LONGITUDINAL_Q, result.getWstLabel(), ComputeType.ADVANCE, this.id, hash));
+ final String nameQ = result.getWstLabel();
+ final String nameW = "W(" + nameQ + ")";
+ facets.add(new BezugswstFixationFacet(0, LONGITUDINAL_W, nameW, ComputeType.ADVANCE, hash, this.id));
+ facets.add(new BezugswstFixationFacet(0, LONGITUDINAL_Q, nameQ, ComputeType.ADVANCE, hash, this.id));
facets.add(BezugswstDepthProcessor.createFlowdepthFilteredFacet(context, hash, this.id, facetIndex++, 0, result.getBedHeightLabel()));
facets.add(BezugswstDepthProcessor.createChanneldepthFacet(context, hash, this.id, facetIndex++, 0));
diff -r 751a3eff6244 -r d2f5375ede26 artifacts/src/main/java/org/dive4elements/river/artifacts/model/FacetTypes.java
--- a/artifacts/src/main/java/org/dive4elements/river/artifacts/model/FacetTypes.java Mon Aug 20 15:53:33 2018 +0200
+++ b/artifacts/src/main/java/org/dive4elements/river/artifacts/model/FacetTypes.java Mon Aug 20 16:05:06 2018 +0200
@@ -149,7 +149,9 @@
STKH("sinfo_tkk"), //
SFW("sinfo_flood_height"), //
SFDC("sinfo_floodduration_curve"), //
- USL("uinfo_salix_line");
+ USL("uinfo_salix_line"), //
+ BUUBZWS_W("bundu_wspl_longitudinal_section"), //
+ BUUBZWS_H("bundu_depth_longitudinal_section");
private final String chartTypeString;
diff -r 751a3eff6244 -r d2f5375ede26 artifacts/src/main/resources/messages.properties
--- a/artifacts/src/main/resources/messages.properties Mon Aug 20 15:53:33 2018 +0200
+++ b/artifacts/src/main/resources/messages.properties Mon Aug 20 16:05:06 2018 +0200
@@ -1309,11 +1309,8 @@
bundu.wst.gauge_timeranges_disjoint = Der Bezugszeitraum konnte nicht auf die vorhandenen Abflusswerte eingeschr\u00e4nkt werden.
bundu.chart.wspl.section.title = BZWS-L\u00e4ngsschnitt
-bundu_facet_w.description = Bezugswasserstand ({0})
bundu_facet_bedheight.description = Mittlere Sohlh\u00f6he ({0})
bundu_facet_channelmin.description = Sohle (Sollzustand)
-bundu_facet_q = Q [m\u00b3/s]
-bundu_facet_q.description = Q [m\u00b3/s]
bundu.chart.depth.section.title = h-L\u00e4ngsschnitt
bundu_facet_flowdepth.filtered.description = h (BZWS, {0})
bundu_facet_channeldepth.description = h (Solltiefe)
diff -r 751a3eff6244 -r d2f5375ede26 artifacts/src/main/resources/messages_de.properties
--- a/artifacts/src/main/resources/messages_de.properties Mon Aug 20 15:53:33 2018 +0200
+++ b/artifacts/src/main/resources/messages_de.properties Mon Aug 20 16:05:06 2018 +0200
@@ -1309,11 +1309,8 @@
bundu.wst.gauge_timeranges_disjoint = Der Bezugszeitraum konnte nicht auf die vorhandenen Abflusswerte eingeschr\u00e4nkt werden.
bundu.chart.wspl.section.title = BZWS-L\u00e4ngsschnitt
-bundu_facet_w.description = Bezugswasserstand ({0})
bundu_facet_bedheight.description = Mittlere Sohlh\u00f6he ({0})
bundu_facet_channelmin.description = Sohle (Sollzustand)
-bundu_facet_q = Q [m\u00b3/s]
-bundu_facet_q.description = Q [m\u00b3/s]
bundu.chart.depth.section.title = h-L\u00e4ngsschnitt
bundu_facet_flowdepth.filtered.description = h (BZWS, {0})
bundu_facet_channeldepth.description = h (Solltiefe)
More information about the Dive4Elements-commits
mailing list