# HG changeset patch # User gernotbelger # Date 1532690974 -7200 # Node ID 86d2cbfe7f7f65f83eaed26b26cc1016838a276f # Parent a49fe0ebb2972cd42e7c6e8168a7a0b708b45e08 bundu bezugswst excel metadaten diff -r a49fe0ebb297 -r 86d2cbfe7f7f 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 Fri Jul 27 11:13:57 2018 +0200 +++ b/artifacts/src/main/java/org/dive4elements/river/artifacts/bundu/bezugswst/BezugswstCalculation.java Fri Jul 27 13:29:34 2018 +0200 @@ -19,8 +19,10 @@ import org.dive4elements.river.artifacts.common.ResultRow; import org.dive4elements.river.artifacts.model.CalculationResult; import org.dive4elements.river.artifacts.resources.Resources; +import org.dive4elements.river.artifacts.sinfo.util.BedHeightInfo; 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.model.River; class BezugswstCalculation { @@ -45,6 +47,19 @@ final String calcModeLabel = Resources.getMsg(this.context.getMeta(), "bundu_bezugswst"); final BezugswstCalculationResults results = new BezugswstCalculationResults(calcModeLabel, user, riverInfo, access.getRange()); + // TODO: get wst, sounding for river + final WstInfo wstInfo = null; + final BedHeightInfo sounding = null; + // final int wspYear = waterlevel.getYear(); + // final WstInfo wstInfo = new WstInfo(wspLabel, wspYear, riverInfo.getReferenceGauge()); + final String function = access.getFunction(); + final boolean preprocessing = access.getPreprocessing();// nullpointer dürfen nicht entstehen; Fehler läge woanders + final int startYear = access.getStartYear(); + final int endYear = access.getBezugsJahr(); + final Integer ud = access.getUd(); + final double[] qs = access.getQs(); + final Double missingVolFrom = access.getMissingVolFrom(); + final Double missingVolTo = access.getMissingVolTo(); final List list = new ArrayList<>(); final ResultRow row = ResultRow.create(); row.putValue(GeneralResultType.station, 666.666); @@ -55,7 +70,8 @@ row.putValue(GeneralResultType.location, "keine Lage"); list.add(row); - final BezugswstCalculationResult result = new BezugswstCalculationResult("label? was fürn label?", list); + final BezugswstCalculationResult result = new BezugswstCalculationResult("label? was fürn label?", list, sounding, wstInfo, function, preprocessing, + startYear, endYear, ud, qs, missingVolFrom, missingVolTo); results.addResult(result, null); return new CalculationResult(results, null);// problems); } diff -r a49fe0ebb297 -r 86d2cbfe7f7f artifacts/src/main/java/org/dive4elements/river/artifacts/bundu/bezugswst/BezugswstCalculationResult.java --- a/artifacts/src/main/java/org/dive4elements/river/artifacts/bundu/bezugswst/BezugswstCalculationResult.java Fri Jul 27 11:13:57 2018 +0200 +++ b/artifacts/src/main/java/org/dive4elements/river/artifacts/bundu/bezugswst/BezugswstCalculationResult.java Fri Jul 27 13:29:34 2018 +0200 @@ -35,24 +35,54 @@ private static final String JASPER_FILE = "/jasper/templates/bundu.bezugswst.jrxml"; - private final WstInfo wst = null; - private final BedHeightInfo sounding = null; + private final WstInfo wst; + private final BedHeightInfo sounding; + private final String function; + private final boolean preprocessing; + private final int startYear; + private final int endYear; + private final Double missingVolumeFrom; + private final Double missingVolumeTo; + private final Integer ud; + private final double[] qOfGauges; - public BezugswstCalculationResult(final String label, final Collection rows // , final BedHeightInfo sounding // ,final WstInfo wst - ) { + public BezugswstCalculationResult(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 double[] qOfGauges, + final Double missingVolumeFrom, final Double missingVolumeTo) { super(label, rows); - // this.wst = this.wst; //TODO get Peilung and Wasserstand - // this.sounding = sounding; + this.wst = wst; + this.sounding = sounding; + this.function = function; + this.preprocessing = preprocessing; + this.startYear = startYear; + this.endYear = endYear; + this.missingVolumeTo = missingVolumeTo; + this.missingVolumeFrom = missingVolumeFrom; + this.ud = ud; + this.qOfGauges = qOfGauges; } @Override protected void writeCSVResultMetadata(final ExportContextCSV exportContextCSV) { // TODO: wenn wst und peilung vorhanden sind, sollte dieser Teil wieder einkommentiert werden - // exportContextCSV.writeCSVSoundingMetadata(this.sounding, " "); - // exportContextCSV.writeBlankLine(); // exportContextCSV.writeCSVWaterlevelMetadata(wst); // exportContextCSV.writeBlankLine(); + // exportContextCSV.writeCSVSoundingMetadata(this.sounding, " "); + + // Reihenfolge in der LV anders; ich finde sie aber so sinnvoller + exportContextCSV.writeCSVMetaEntry("bundu.export.bezugswst.csv.meta.function", this.function); + exportContextCSV.writeCSVMetaEntry("bundu.export.bezugswst.csv.meta.preprocessing", String.valueOf(this.preprocessing)); + exportContextCSV.writeCSVMetaEntry("bundu.export.bezugswst.csv.meta.q_period", String.valueOf(this.startYear), String.valueOf(this.endYear)); + if (this.ud != null) + exportContextCSV.writeCSVMetaEntry("bundu.export.bezugswst.csv.meta.ud", this.ud); + else if (this.qOfGauges != null) + exportContextCSV.writeCSVMetaEntry("common.export.waterlevel.csv.meta.q", this.qOfGauges); // was auch immer dieser String beinhalten mag + + exportContextCSV.writeCSVMetaEntry("bundu.export.bezugswst.csv.meta.function", this.function); + exportContextCSV.writeCSVMetaEntry("bundu.export.bezugswst.csv.meta.missing_volume_range", this.missingVolumeFrom, this.missingVolumeTo); + + exportContextCSV.writeBlankLine(); } @Override diff -r a49fe0ebb297 -r 86d2cbfe7f7f artifacts/src/main/java/org/dive4elements/river/artifacts/bundu/bezugswst/BunduAccess.java --- a/artifacts/src/main/java/org/dive4elements/river/artifacts/bundu/bezugswst/BunduAccess.java Fri Jul 27 11:13:57 2018 +0200 +++ b/artifacts/src/main/java/org/dive4elements/river/artifacts/bundu/bezugswst/BunduAccess.java Fri Jul 27 13:29:34 2018 +0200 @@ -47,6 +47,48 @@ return this.artifact.getDataAsInteger("year_input_q_series"); } + public int getStartYear() { + return this.getBezugsJahr() - this.getQSeriesLength(); + + } + + public Integer getUd() { + if (getUd_Q_mode().equals("UD")) + return getInteger("bundu.wst.ud_value"); + else + return null; + } + + @Override + public double[] getQs() { + if (getUd_Q_mode().equals("Q")) + return super.getQs(); + else + return null; + } + + private String getUd_Q_mode() { + return getString("bundu.wst.mode"); + } + + public Double getMissingVolFrom() { + if (isCalculateMissingValue()) + return getDouble("ld_from_part"); + else + return null; + } + + public Double getMissingVolTo() { + if (isCalculateMissingValue()) + return getDouble("ld_to_part"); + else + return null; + } + + private boolean isCalculateMissingValue() { // probably public + return getBoolean("missing_volume"); + } + // /** Access the reference date period, return null in case of 'errors'. */ // public DateRange getReferencePeriod() { // if (this.referencePeriod == null) { diff -r a49fe0ebb297 -r 86d2cbfe7f7f artifacts/src/main/java/org/dive4elements/river/exports/WaterlevelDescriptionBuilder.java --- a/artifacts/src/main/java/org/dive4elements/river/exports/WaterlevelDescriptionBuilder.java Fri Jul 27 11:13:57 2018 +0200 +++ b/artifacts/src/main/java/org/dive4elements/river/exports/WaterlevelDescriptionBuilder.java Fri Jul 27 13:29:34 2018 +0200 @@ -29,7 +29,7 @@ */ public final class WaterlevelDescriptionBuilder { - private static final String CSV_META_Q = "export.waterlevel.csv.meta.q"; + private static final String CSV_META_Q = "common.export.waterlevel.csv.meta.q"; // FIXME: unit 'NN + m' is wrong: // - use river-elevation system in case of absolute heights diff -r a49fe0ebb297 -r 86d2cbfe7f7f artifacts/src/main/java/org/dive4elements/river/exports/WaterlevelExporter.java --- a/artifacts/src/main/java/org/dive4elements/river/exports/WaterlevelExporter.java Fri Jul 27 11:13:57 2018 +0200 +++ b/artifacts/src/main/java/org/dive4elements/river/exports/WaterlevelExporter.java Fri Jul 27 13:29:34 2018 +0200 @@ -103,7 +103,7 @@ public static final String CSV_META_GAUGE = "export.waterlevel.csv.meta.gauge"; - public static final String CSV_META_Q = "export.waterlevel.csv.meta.q"; + public static final String CSV_META_Q = "common.export.waterlevel.csv.meta.q"; public static final String CSV_META_W = "export.waterlevel.csv.meta.w"; diff -r a49fe0ebb297 -r 86d2cbfe7f7f artifacts/src/main/resources/messages.properties --- a/artifacts/src/main/resources/messages.properties Fri Jul 27 11:13:57 2018 +0200 +++ b/artifacts/src/main/resources/messages.properties Fri Jul 27 13:29:34 2018 +0200 @@ -407,7 +407,7 @@ export.waterlevel.csv.meta.river = # River: {0} export.waterlevel.csv.meta.range = # Location/Range (km): {0} - {1} export.waterlevel.csv.meta.gauge = # Gauge: {0} -export.waterlevel.csv.meta.q = # Q (m\u00b3/s): {0} +common.export.waterlevel.csv.meta.q = # Q (m\u00b3/s): {0} export.waterlevel.csv.meta.w = # W (NN + m): {0} - {1} export.waterlevel.csv.not.in.gauge.range = Outside selected gauge export.computed.discharge.curve.csv.header.w = W [{0}] @@ -899,6 +899,11 @@ sinfo.export.flow_depth.pdf.meta.calculation.label = Angewandte Gleichung sinfo.export.flow_depth.pdf.meta.calculation.name = Gill (1971) sinfo.export.flow_depth.csv.meta.height_unit.river = # H\u00f6hensystem des Flusses: {0} +bundu.export.bezugswst.csv.meta.function = # Ausgleichsfunktion: {0} +bundu.export.bezugswst.csv.meta.preprocessing = # Ausrei\u00dfertest: {0} +bundu.export.bezugswst.csv.meta.q_period = # Zeitraum der Abflusszeitreihe: {0} - {1} +bundu.export.bezugswst.csv.meta.ud = # UD (d/a): {0} +bundu.export.bezugswst.csv.meta.missing_volume_range = # Bereich der Fehltiefenermittlung: {0} - {1} export.flow_depth.csv.header.km = Fluss-km sinfo.export.flow_depth.csv.header.flowdepth = Flie\u00dftiefe diff -r a49fe0ebb297 -r 86d2cbfe7f7f artifacts/src/main/resources/messages_de.properties --- a/artifacts/src/main/resources/messages_de.properties Fri Jul 27 11:13:57 2018 +0200 +++ b/artifacts/src/main/resources/messages_de.properties Fri Jul 27 13:29:34 2018 +0200 @@ -407,7 +407,7 @@ export.waterlevel.csv.meta.river = # Gew\u00e4sser: {0} export.waterlevel.csv.meta.range = # Ort/Bereich (km): {0} - {1} export.waterlevel.csv.meta.gauge = # Bezugspegel: {0} -export.waterlevel.csv.meta.q = # Q (m\u00b3/s): {0} +common.export.waterlevel.csv.meta.q = # Q (m\u00b3/s): {0} export.waterlevel.csv.meta.w = # W (NN + m): {0} - {1} export.waterlevel.csv.not.in.gauge.range = au\u00dferh. d. Bez.pegels export.computed.discharge.curve.csv.header.w = W [{0}] @@ -899,6 +899,11 @@ sinfo.export.flow_depth.pdf.meta.calculation.label = Angewandte Gleichung sinfo.export.flow_depth.pdf.meta.calculation.name = Gill (1971) sinfo.export.flow_depth.csv.meta.height_unit.river = # H\u00f6hensystem des Flusses: {0} +bundu.export.bezugswst.csv.meta.function = # Ausgleichsfunktion: {0} +bundu.export.bezugswst.csv.meta.preprocessing = # Ausrei\u00dfertest: {0} +bundu.export.bezugswst.csv.meta.q_period = # Zeitraum der Abflusszeitreihe: {0} - {1} +bundu.export.bezugswst.csv.meta.ud = # UD (d/a): {0} +bundu.export.bezugswst.csv.meta.missing_volume_range = # Bereich der Fehltiefenermittlung: {0} - {1} export.flow_depth.csv.header.km = Fluss-km sinfo.export.flow_depth.csv.header.flowdepth = Flie\u00dftiefe