# 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 @@ - + 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 @@ - + + + + + + @@ -338,6 +343,12 @@ + + + + + + @@ -448,6 +459,12 @@ + + + + + + Discharge curves 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 @@ - - 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 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 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 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 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)