[PATCH 2 of 3] Further work on SINFO-FlowDepth
Wald Commits
scm-commit at wald.intevation.org
Fri Feb 9 18:07:30 CET 2018
# HG changeset patch
# User gernotbelger
# Date 1518189107 -3600
# Node ID f762fadc5313ec4d61f6f08a1533e8c45f3856b1
# Parent 6b93a2498e06f598cf3fa52e1867a9744712fbd2
Further work on SINFO-FlowDepth
diff -r 6b93a2498e06 -r f762fadc5313 artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/flowdepth/BedHeightInfo.java
--- a/artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/flowdepth/BedHeightInfo.java Fri Feb 09 16:11:34 2018 +0100
+++ b/artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/flowdepth/BedHeightInfo.java Fri Feb 09 16:11:47 2018 +0100
@@ -24,27 +24,25 @@
private final String type;
+ private final String evaluationBy;
+
private final String locationSystem;
private final String curElevationModelUnit;
private final String oldElevationModelUnit;
+
public static BedHeightInfo from(final BedHeight bedHeight) {
return new BedHeightInfo(bedHeight);
}
private BedHeightInfo(final BedHeight bedHeight) {
-
this.year = bedHeight.getYear();
-
- // private String evaluationBy;
this.description = bedHeight.getDescription();
-
this.type = bedHeight.getType().getName();
-
+ this.evaluationBy = bedHeight.getEvaluationBy();
this.locationSystem = bedHeight.getLocationSystem().getName();
-
this.curElevationModelUnit = bedHeight.getCurElevationModel().getUnit().getName();
this.oldElevationModelUnit = bedHeight.getCurElevationModel().getUnit().getName();
}
@@ -61,6 +59,10 @@
return this.type;
}
+ public String getEvaluationBy() {
+ return this.evaluationBy;
+ }
+
public String getLocationSystem() {
return this.locationSystem;
}
diff -r 6b93a2498e06 -r f762fadc5313 artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/flowdepth/FlowDepthCalculation.java
--- a/artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/flowdepth/FlowDepthCalculation.java Fri Feb 09 16:11:34 2018 +0100
+++ b/artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/flowdepth/FlowDepthCalculation.java Fri Feb 09 16:11:47 2018 +0100
@@ -23,7 +23,8 @@
import org.dive4elements.river.artifacts.resources.Resources;
import org.dive4elements.river.artifacts.sinfo.SINFOArtifact;
import org.dive4elements.river.artifacts.sinfo.flowdepth.FlowDepthAccess.DifferencesPair;
-import org.dive4elements.river.artifacts.states.WDifferencesState;
+import org.dive4elements.river.artifacts.states.WaterlevelData;
+import org.dive4elements.river.artifacts.states.WaterlevelFetcher;
import org.dive4elements.river.model.BedHeight;
import org.dive4elements.river.model.Gauge;
import org.dive4elements.river.model.River;
@@ -36,7 +37,7 @@
private final CallContext context;
- public FlowDepthCalculation( final CallContext context ) {
+ public FlowDepthCalculation(final CallContext context) {
this.context = context;
}
@@ -66,81 +67,86 @@
final List<Gauge> gauges = river.determineGauges(from, to);
final GaugeIndex gaugeIndex = new GaugeIndex(gauges);
- final String calcModeLabel = Resources.getMsg(this.context.getMeta(),sinfo.getCalculationMode().name() );
+ final String calcModeLabel = Resources.getMsg(this.context.getMeta(), sinfo.getCalculationMode().name());
- final FlowDepthCalculationResults results = new FlowDepthCalculationResults(calcModeLabel, user, river, from, to, useTkh);
+ final FlowDepthCalculationResults results = new FlowDepthCalculationResults(calcModeLabel, user, river, from,
+ to, useTkh);
for (final DifferencesPair diffPair : diffPairs) {
- final FlowDepthCalculationResult result = calculateResult( river, from, to, diffPair, problems, gaugeIndex );
- if( result != null )
+ final FlowDepthCalculationResult result = calculateResult(river, from, to, diffPair, problems, gaugeIndex);
+ if (result != null)
results.addResult(result);
}
- return new CalculationResult(results,problems);
+ return new CalculationResult(results, problems);
}
- private FlowDepthCalculationResult calculateResult(final River river, final double from, final double to, final DifferencesPair diffPair, final Calculation problems, final GaugeIndex gaugeIndex) {
+ private FlowDepthCalculationResult calculateResult(final River river, final double from, final double to,
+ final DifferencesPair diffPair, final Calculation problems, final GaugeIndex gaugeIndex) {
/* access real input data from database */
final String soundingId = diffPair.getSoundingId();
final String wstId = diffPair.getWstId();
- final BedHeight bedHeight = loadBedHeight( soundingId, from, to );
- if( bedHeight == null )
- {
- final String message = Resources.format(this.context.getMeta(), "Failed to access sounding with id '{0}'", soundingId);
+ final BedHeight bedHeight = loadBedHeight(soundingId, from, to);
+ if (bedHeight == null) {
+ final String message = Resources.format(this.context.getMeta(), "Failed to access sounding with id '{0}'",
+ soundingId);
problems.addProblem(message);
return null;
}
- final WKms wstKms = new WDifferencesState().getWKms(wstId, this.context, from, to);
- if( wstKms == null )
- {
- final String message = Resources.format(this.context.getMeta(), "Failed to access waterlevel with id '{0}'", wstId);
+ /* REMARK: fetch ALL wst kms, because we want to determine the original reference gauge */
+ final WaterlevelData waterlevel = new WaterlevelFetcher().findWaterlevel(this.context, wstId, Double.NaN,
+ Double.NaN);
+ if (waterlevel == null) {
+ final String message = Resources.format(this.context.getMeta(), "Failed to access waterlevel with id '{0}'",
+ wstId);
problems.addProblem(message);
return null;
}
+ final WKms wstKms = waterlevel.getWkms();
+
+ checkWaterlevelDiscretisation(wstKms, problems);
// FIXME: woher bekommen?
final int wspYear = 0;
- // FIXME: angeblich metadatum bestimmter wsps?
- // Könnte 'source' an 'wst_columns' sein
- final String wspSource = "FIXME";
- // FIXME: Umsetzung IDENTISCH zu allen möglichen Arten wie ein WSPL berechnet wird....
- final String wspGauge = "FIXME";
+
+ /* re-determine the reference gauge, in the same way as the WaterlevelArtifact would do it */
+ final String notinrange = Resources.getMsg(this.context.getMeta(), CSV_NOT_IN_GAUGE_RANGE,
+ CSV_NOT_IN_GAUGE_RANGE);
+
+ final Gauge refGauge = waterlevel.findReferenceGauge(river);
+ final String refGaugeName = refGauge == null ? notinrange : refGauge.getName();
final String wspLabel = wstKms.getName();
final String soundingLabel = bedHeight.getDescription();
final String label = String.format("%s - %s", wspLabel, soundingLabel);
final BedHeightInfo sounding = BedHeightInfo.from(bedHeight);
- final WstInfo wstInfo = new WstInfo(wspLabel, wspYear, wspSource, wspGauge);
+ final WstInfo wstInfo = new WstInfo(wspLabel, wspYear, refGaugeName);
final FlowDepthCalculationResult resultData = new FlowDepthCalculationResult(label, wstInfo, sounding);
- final String notinrange = Resources.getMsg(this.context.getMeta(), CSV_NOT_IN_GAUGE_RANGE, CSV_NOT_IN_GAUGE_RANGE);
-
- // TODO: prüfe diskretisierung wsp --> > 1000m --> Fehlermeldung
-
// TODO: Berechnung der Transportkörperhöhen
- // - woher kommen die zusätzlichen eingangsdaten? sind das fixe daten pro gewässer? --> falls ja, warum nicht einmal berechnen und in db ablegen?
+ // - woher kommen die zusätzlichen eingangsdaten? sind das fixe daten pro gewässer? --> falls ja, warum nicht
+ // einmal berechnen und in db ablegen?
// Benötigte Daten
// - Abfluss / Station
- // - kein Abfluss --> Fehler
- if( !(wstKms instanceof QKms))
- {
- final String message = Resources.format(this.context.getMeta(), "{0}: keine Abflussdaten vorhanden, Transportkörperhöhenberechnung nicht möglich", label);
+ // - kein Abfluss --> Fehler
+ if (!(wstKms instanceof QKms)) {
+ final String message = Resources.getMsg(this.context.getMeta(), "sinfo_calc_flow_depth.warning.missingQ",
+ null, label);
problems.addProblem(message);
// TODO: keine Berechnung TKH
}
// - Sohlbeschaffenheit (D50 Korndurchmesser aus Seddb)
- // - Abhängig von Peiljahr
- // - kein D50 vorhanden --> Fehler
+ // - Abhängig von Peiljahr
+ // - kein D50 vorhanden --> Fehler
// - Art der Gewässersohle (starr/mobil)
-
final String bedHeightLabel = bedHeight.getDescription();
final String wstLabel = wstKms.getName();
@@ -164,36 +170,74 @@
final String location = LocationProvider.getLocation(river.getName(), km);
// REMARK: access the gauge once only during calculation
- // FIXME: copy specific handling from original wst
- final Gauge gauge = gaugeIndex.findGauge(km);
+ final Gauge gauge = findGauge(waterlevel, refGauge, gaugeIndex, km);
+
final String gaugeLabel = gauge == null ? notinrange : gauge.getName();
- resultData.addRow( km, flowDepth, flowDepthTkh, tkh, wst, discharge, wstLabel, gaugeLabel, meanBedHeight, bedHeightLabel, location );
+ resultData.addRow(km, flowDepth, flowDepthTkh, tkh, wst, discharge, wstLabel, gaugeLabel, meanBedHeight,
+ bedHeightLabel, location);
}
return resultData;
}
+ private Gauge findGauge(final WaterlevelData waterlevel, final Gauge refGauge, final GaugeIndex gaugeIndex,
+ final double km) {
+
+ // REMARK: using same logic as in WaterlevelExporter here
+
+ final boolean showAllGauges = waterlevel.isShowAllGauges();
+
+ if (showAllGauges)
+ return gaugeIndex.findGauge(km);
+
+ if (refGauge.getRange().contains(km))
+ return refGauge;
+
+ return null;
+ }
+
+ /* Checks if the discretisation of the waterlevel exceeds 1000m */
+ private void checkWaterlevelDiscretisation(final WKms wstKms, final Calculation problems) {
+ final int size = wstKms.size();
+ for (int i = 0; i < size - 2; i++) {
+ final double kmPrev = wstKms.getKm(i);
+ final double kmNext = wstKms.getKm(i + 1);
+
+ if (Math.abs(kmPrev - kmNext) > 1) {
+ final String label = wstKms.getName();
+
+ final String message = Resources.getMsg(this.context.getMeta(),
+ "sinfo_calc_flow_depth.warning.waterlevel_discretisation", null, label);
+ problems.addProblem(kmPrev, message);
+ }
+ }
+ }
+
private BedHeight loadBedHeight(final String soundingId, final double from, final double to) {
// FIXME: absolutely unbelievable....
- // The way how bed-heights (and other data too) is accessed is different for nearly ever calculation-type throughout flys.
+ // The way how bed-heights (and other data too) is accessed is different for nearly ever calculation-type
+ // throughout flys.
// The knowledge on how to parse the datacage-ids is spread through the complete code-base...
- // We use here the way on how bed-heights are accessed by the BedDifferenceAccess/BedDifferenceCalculation, but this is plain random
+ // We use here the way on how bed-heights are accessed by the BedDifferenceAccess/BedDifferenceCalculation, but
+ // this is plain random
final String[] parts = soundingId.split(";");
final BedHeightsArtifact artifact = (BedHeightsArtifact) RiverUtils.getArtifact(parts[0], this.context);
final Integer bedheightId = artifact.getDataAsInteger("height_id");
- // FIXME: this only works with type 'single'; unclear on how to distinguish from epoch data (or whatever the other type means)
+ // FIXME: this only works with type 'single'; unclear on how to distinguish from epoch data (or whatever the
+ // other type means)
// Luckily, the requirement is to only access 'single' data here.
// final String bedheightType = artifact.getDataAsString("type");
// FIXME: BedDifferences uses this, but we also need the metadata of the BedHeight
- // FIXME: second absolutely awful thing: BedHeight is a hibernate binding class, accessing the database via hibernate stuff
+ // FIXME: second absolutely awful thing: BedHeight is a hibernate binding class, accessing the database via
+ // hibernate stuff
// BedHeightFactory uses its own (direct) way of accessing the data, with its own implemented data classes.
- //return BedHeightFactory.getHeight(bedheightType, bedheightId, from, to);
+ // return BedHeightFactory.getHeight(bedheightType, bedheightId, from, to);
return BedHeight.getBedHeightById(bedheightId);
}
diff -r 6b93a2498e06 -r f762fadc5313 artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/flowdepth/FlowDepthCalculationResults.java
--- a/artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/flowdepth/FlowDepthCalculationResults.java Fri Feb 09 16:11:34 2018 +0100
+++ b/artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/flowdepth/FlowDepthCalculationResults.java Fri Feb 09 16:11:47 2018 +0100
@@ -1,6 +1,6 @@
/** Copyright (C) 2017 by Bundesanstalt für Gewässerkunde
- * Software engineering by
- * Björnsen Beratende Ingenieure GmbH
+ * 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)
@@ -17,61 +17,61 @@
/**
* @author Gernot Belger
- *
*/
-public final class FlowDepthCalculationResults{
- private final List<FlowDepthCalculationResult> results = new ArrayList<>();
+public final class FlowDepthCalculationResults {
+ private final List<FlowDepthCalculationResult> results = new ArrayList<>();
- private final River river;
-
- private final double from;
-
- private final double to;
-
- private final boolean useTkh;
+ private final River river;
+
+ private final double from;
+
+ private final double to;
+
+ private final boolean useTkh;
private final String calcModeLabel;
private final String user;
- public FlowDepthCalculationResults(final String calcModeLabel, final String user, final River river, final double from, final double to, final boolean useTkh) {
- this.calcModeLabel = calcModeLabel;
+ public FlowDepthCalculationResults(final String calcModeLabel, final String user, final River river,
+ final double from, final double to, final boolean useTkh) {
+ this.calcModeLabel = calcModeLabel;
this.user = user;
this.river = river;
- this.from = from;
- this.to = to;
- this.useTkh = useTkh;
- }
-
- public String getCalcModeLabel() {
+ this.from = from;
+ this.to = to;
+ this.useTkh = useTkh;
+ }
+
+ public String getCalcModeLabel() {
return this.calcModeLabel;
}
-
- public String getUser() {
+
+ public String getUser() {
return this.user;
}
-
- public River getRiver() {
- return this.river;
- }
- public double getFrom() {
- return this.from;
- }
+ public River getRiver() {
+ return this.river;
+ }
- public double getTo() {
- return this.to;
- }
+ public double getFrom() {
+ return this.from;
+ }
- public boolean isUseTkh() {
- return this.useTkh;
- }
-
- void addResult(final FlowDepthCalculationResult result) {
- results.add(result);
- }
-
- public List<FlowDepthCalculationResult> getResults() {
- return Collections.unmodifiableList(results);
- }
+ public double getTo() {
+ return this.to;
+ }
+
+ public boolean isUseTkh() {
+ return this.useTkh;
+ }
+
+ void addResult(final FlowDepthCalculationResult result) {
+ this.results.add(result);
+ }
+
+ public List<FlowDepthCalculationResult> getResults() {
+ return Collections.unmodifiableList(this.results);
+ }
}
diff -r 6b93a2498e06 -r f762fadc5313 artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/flowdepth/FlowDepthExporter.java
--- a/artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/flowdepth/FlowDepthExporter.java Fri Feb 09 16:11:34 2018 +0100
+++ b/artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/flowdepth/FlowDepthExporter.java Fri Feb 09 16:11:47 2018 +0100
@@ -28,6 +28,7 @@
import org.dive4elements.river.exports.AbstractExporter;
import org.dive4elements.river.model.River;
import org.dive4elements.river.model.Unit;
+import org.dive4elements.river.utils.RiverUtils;
import au.com.bytecode.opencsv.CSVWriter;
import net.sf.jasperreports.engine.JRDataSource;
@@ -87,6 +88,8 @@
private static final String CSV_META_HEADER_SOUNDING_TYPE = "sinfo.export.flow_depth.csv.meta.header.sounding.type";
+ private static final String CSV_META_HEADER_SOUNDING_EVALUATOR = "sinfo.export.flow_depth.csv.meta.header.sounding.evaluator";
+
private static final String CSV_META_HEADER_SOUNDING_PRJ = "sinfo.export.flow_depth.csv.meta.header.sounding.prj";
private static final String CSV_META_HEADER_SOUNDING_ELEVATIOIN_MODEL = "sinfo.export.flow_depth.csv.meta.header.sounding.elevationmodel";
@@ -97,7 +100,6 @@
private static final String CSV_META_HEADER_WATERLEVEL_NAME = "sinfo.export.flow_depth.csv.meta.header.waterlevel.name";
- private static final String CSV_META_HEADER_WATERLEVEL_EVALUATOR = "sinfo.export.flow_depth.csv.meta.header.waterlevel.evaluator";
private static final String CSV_META_HEADER_WATERLEVEL_GAUGE = "sinfo.export.flow_depth.csv.meta.header.waterlevel.gauge";
@@ -175,6 +177,8 @@
writeCSVMetaEntry(writer, CSV_META_HEADER_SOUNDING_YEAR, Integer.toString(sounding.getYear()));
// "# Aufnahmeart: "
writeCSVMetaEntry(writer, CSV_META_HEADER_SOUNDING_TYPE, sounding.getType());
+ // "# Auswerter: "
+ writeCSVMetaEntry(writer, CSV_META_HEADER_SOUNDING_EVALUATOR, sounding.getEvaluationBy());
// "# Lagesystem: "
writeCSVMetaEntry(writer, CSV_META_HEADER_SOUNDING_PRJ, sounding.getLocationSystem());
// "# Höhensystem: "
@@ -187,8 +191,6 @@
writeCSVMetaEntry(writer, CSV_META_HEADER_WATERLEVEL);
// "# Bezeichnung der Wasserspiegellage: "
writeCSVMetaEntry(writer, CSV_META_HEADER_WATERLEVEL_NAME, wst.getLabel());
- // "# Auswerter: "
- writeCSVMetaEntry(writer, CSV_META_HEADER_WATERLEVEL_EVALUATOR, wst.getSource());
// "# Bezugspegel: "
writeCSVMetaEntry(writer, CSV_META_HEADER_WATERLEVEL_GAUGE, wst.getGauge());
// "# Jahr/Zeitraum der Wasserspiegellage: "
@@ -303,7 +305,10 @@
if( Double.isNaN(discharge))
lines.add(StringUtils.EMPTY);
else
- lines.add(getQFormatter().format(discharge));
+ {
+ final double roundedDischarge = RiverUtils.roundQ(discharge);
+ lines.add(getQFormatter().format(roundedDischarge));
+ }
// Bezeichnung
lines.add(row.getWaterlevelLabel());
diff -r 6b93a2498e06 -r f762fadc5313 artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/flowdepth/WstInfo.java
--- a/artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/flowdepth/WstInfo.java Fri Feb 09 16:11:34 2018 +0100
+++ b/artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/flowdepth/WstInfo.java Fri Feb 09 16:11:47 2018 +0100
@@ -16,13 +16,11 @@
private final String label;
private final int year;
- private final String source;
private final String gauge;
- public WstInfo(final String label, final int year, final String source, final String gauge) {
+ public WstInfo(final String label, final int year, final String gauge) {
this.label = label;
this.year = year;
- this.source = source;
this.gauge = gauge;
}
@@ -34,10 +32,6 @@
return this.year;
}
- public String getSource() {
- return this.source;
- }
-
public String getGauge() {
return this.gauge;
}
diff -r 6b93a2498e06 -r f762fadc5313 artifacts/src/main/resources/messages.properties
--- a/artifacts/src/main/resources/messages.properties Fri Feb 09 16:11:34 2018 +0100
+++ b/artifacts/src/main/resources/messages.properties Fri Feb 09 16:11:47 2018 +0100
@@ -770,6 +770,9 @@
state.sinfo.calculation_mode=Calculation Mode
sinfo_calc_flow_depth=Flie\u00dftiefen
+sinfo_calc_flow_depth.warning.missingQ = {0}: keine Abflussdaten vorhanden, Transportk\u00f6rperh\u00f6henberechnung nicht m\u00f6glich
+sinfo_calc_flow_depth.warning.waterlevel_discretisation = Wasserspiegel {0}: r\u00e4umliche Aufl\u00f6sung betr\u00e4gt mehr als 1000m
+
sinfo_calc_flow_depth_development=Flie\u00dftiefenentwicklung
sinfo_calc_flow_depth_minmax=Minimale und Maximale Flie\u00dftiefe
sinfo_calc_grounding=Grundber\u00fchrungen
@@ -806,12 +809,12 @@
sinfo.export.flow_depth.csv.meta.header.sounding = ##METADATEN PEILUNG
sinfo.export.flow_depth.csv.meta.header.sounding.year = # Jahr der Peilung: {0}
sinfo.export.flow_depth.csv.meta.header.sounding.type = # Aufnahmeart: {0}
+sinfo.export.flow_depth.csv.meta.header.sounding.evaluator = # Auswerter: {0}
sinfo.export.flow_depth.csv.meta.header.sounding.prj = # Lagesystem: {0}
sinfo.export.flow_depth.csv.meta.header.sounding.elevationmodel = # H\u00f6hensystem: {0}
sinfo.export.flow_depth.csv.meta.header.sounding.elevationmodel.original = # urspr\u00fcngliches H\u00f6hensystem: {0}
sinfo.export.flow_depth.csv.meta.header.waterlevel = ##METADATEN WASSERSPIEGELLAGE
sinfo.export.flow_depth.csv.meta.header.waterlevel.name = # Bezeichnung der Wasserspiegellage: {0}
-sinfo.export.flow_depth.csv.meta.header.waterlevel.evaluator = # Auswerter: {0}
sinfo.export.flow_depth.csv.meta.header.waterlevel.gauge = # Bezugspegel: {0}
sinfo.export.flow_depth.csv.meta.header.waterlevel.year = # Jahr/Zeitraum der Wasserspiegellage: {0}
sinfo.export.flow_depth.csv.meta.range = # {0}: {1} - {2}
diff -r 6b93a2498e06 -r f762fadc5313 artifacts/src/main/resources/messages_de.properties
--- a/artifacts/src/main/resources/messages_de.properties Fri Feb 09 16:11:34 2018 +0100
+++ b/artifacts/src/main/resources/messages_de.properties Fri Feb 09 16:11:47 2018 +0100
@@ -776,6 +776,9 @@
state.sinfo.calculation_mode=Berechnungsart
sinfo_calc_flow_depth=Flie\u00dftiefen
+sinfo_calc_flow_depth.warning.missingQ = {0}: keine Abflussdaten vorhanden, Transportk\u00f6rperh\u00f6henberechnung nicht m\u00f6glich
+sinfo_calc_flow_depth.warning.waterlevel_discretisation = Wasserspiegel {0}: r\u00e4umliche Aufl\u00f6sung betr\u00e4gt mehr als 1000m
+
sinfo_calc_flow_depth_development=Flie\u00dftiefenentwicklung
sinfo_calc_flow_depth_minmax=Minimale und Maximale Flie\u00dftiefe
sinfo_calc_grounding=Grundber\u00fchrungen
@@ -812,12 +815,12 @@
sinfo.export.flow_depth.csv.meta.header.sounding = ##METADATEN PEILUNG
sinfo.export.flow_depth.csv.meta.header.sounding.year = # Jahr der Peilung: {0}
sinfo.export.flow_depth.csv.meta.header.sounding.type = # Aufnahmeart: {0}
+sinfo.export.flow_depth.csv.meta.header.sounding.evaluator = # Auswerter: {0}
sinfo.export.flow_depth.csv.meta.header.sounding.prj = # Lagesystem: {0}
sinfo.export.flow_depth.csv.meta.header.sounding.elevationmodel = # H\u00f6hensystem: {0}
sinfo.export.flow_depth.csv.meta.header.sounding.elevationmodel.original = # urspr\u00fcngliches H\u00f6hensystem: {0}
sinfo.export.flow_depth.csv.meta.header.waterlevel = ##METADATEN WASSERSPIEGELLAGE
sinfo.export.flow_depth.csv.meta.header.waterlevel.name = # Bezeichnung der Wasserspiegellage: {0}
-sinfo.export.flow_depth.csv.meta.header.waterlevel.evaluator = # Auswerter: {0}
sinfo.export.flow_depth.csv.meta.header.waterlevel.gauge = # Bezugspegel: {0}
sinfo.export.flow_depth.csv.meta.header.waterlevel.year = # Jahr/Zeitraum der Wasserspiegellage: {0}
sinfo.export.flow_depth.csv.meta.range = # {0}: {1} - {2}
diff -r 6b93a2498e06 -r f762fadc5313 artifacts/src/main/resources/messages_de_DE.properties
--- a/artifacts/src/main/resources/messages_de_DE.properties Fri Feb 09 16:11:34 2018 +0100
+++ b/artifacts/src/main/resources/messages_de_DE.properties Fri Feb 09 16:11:47 2018 +0100
@@ -772,6 +772,9 @@
state.sinfo.calculation_mode=Berechnungsart
sinfo_calc_flow_depth=Flie\u00dftiefen
+sinfo_calc_flow_depth.warning.missingQ = {0}: keine Abflussdaten vorhanden, Transportk\u00f6rperh\u00f6henberechnung nicht m\u00f6glich
+sinfo_calc_flow_depth.warning.waterlevel_discretisation = Wasserspiegel {0}: r\u00e4umliche Aufl\u00f6sung betr\u00e4gt mehr als 1000m
+
sinfo_calc_flow_depth_development=Flie\u00dftiefenentwicklung
sinfo_calc_flow_depth_minmax=Minimale und Maximale Flie\u00dftiefe
sinfo_calc_grounding=Grundber\u00fchrungen
@@ -808,12 +811,12 @@
sinfo.export.flow_depth.csv.meta.header.sounding = ##METADATEN PEILUNG
sinfo.export.flow_depth.csv.meta.header.sounding.year = # Jahr der Peilung: {0}
sinfo.export.flow_depth.csv.meta.header.sounding.type = # Aufnahmeart: {0}
+sinfo.export.flow_depth.csv.meta.header.sounding.evaluator = # Auswerter: {0}
sinfo.export.flow_depth.csv.meta.header.sounding.prj = # Lagesystem: {0}
sinfo.export.flow_depth.csv.meta.header.sounding.elevationmodel = # H\u00f6hensystem: {0}
sinfo.export.flow_depth.csv.meta.header.sounding.elevationmodel.original = # urspr\u00fcngliches H\u00f6hensystem: {0}
sinfo.export.flow_depth.csv.meta.header.waterlevel = ##METADATEN WASSERSPIEGELLAGE
sinfo.export.flow_depth.csv.meta.header.waterlevel.name = # Bezeichnung der Wasserspiegellage: {0}
-sinfo.export.flow_depth.csv.meta.header.waterlevel.evaluator = # Auswerter: {0}
sinfo.export.flow_depth.csv.meta.header.waterlevel.gauge = # Bezugspegel: {0}
sinfo.export.flow_depth.csv.meta.header.waterlevel.year = # Jahr/Zeitraum der Wasserspiegellage: {0}
sinfo.export.flow_depth.csv.meta.range = # {0}: {1} - {2}
diff -r 6b93a2498e06 -r f762fadc5313 artifacts/src/main/resources/messages_en.properties
--- a/artifacts/src/main/resources/messages_en.properties Fri Feb 09 16:11:34 2018 +0100
+++ b/artifacts/src/main/resources/messages_en.properties Fri Feb 09 16:11:47 2018 +0100
@@ -771,6 +771,9 @@
state.sinfo.calculation_mode=Calculation Mode
sinfo_calc_flow_depth=Flie\u00dftiefen
+sinfo_calc_flow_depth.warning.missingQ = {0}: keine Abflussdaten vorhanden, Transportk\u00f6rperh\u00f6henberechnung nicht m\u00f6glich
+sinfo_calc_flow_depth.warning.waterlevel_discretisation = Wasserspiegel {0}: r\u00e4umliche Aufl\u00f6sung betr\u00e4gt mehr als 1000m
+
sinfo_calc_flow_depth_development=Flie\u00dftiefenentwicklung
sinfo_calc_flow_depth_minmax=Minimale und Maximale Flie\u00dftiefe
sinfo_calc_grounding=Grundber\u00fchrungen
@@ -807,12 +810,12 @@
sinfo.export.flow_depth.csv.meta.header.sounding = ##METADATEN PEILUNG
sinfo.export.flow_depth.csv.meta.header.sounding.year = # Jahr der Peilung: {0}
sinfo.export.flow_depth.csv.meta.header.sounding.type = # Aufnahmeart: {0}
+sinfo.export.flow_depth.csv.meta.header.sounding.evaluator = # Auswerter: {0}
sinfo.export.flow_depth.csv.meta.header.sounding.prj = # Lagesystem: {0}
sinfo.export.flow_depth.csv.meta.header.sounding.elevationmodel = # H\u00f6hensystem: {0}
sinfo.export.flow_depth.csv.meta.header.sounding.elevationmodel.original = # urspr\u00fcngliches H\u00f6hensystem: {0}
sinfo.export.flow_depth.csv.meta.header.waterlevel = ##METADATEN WASSERSPIEGELLAGE
sinfo.export.flow_depth.csv.meta.header.waterlevel.name = # Bezeichnung der Wasserspiegellage: {0}
-sinfo.export.flow_depth.csv.meta.header.waterlevel.evaluator = # Auswerter: {0}
sinfo.export.flow_depth.csv.meta.header.waterlevel.gauge = # Bezugspegel: {0}
sinfo.export.flow_depth.csv.meta.header.waterlevel.year = # Jahr/Zeitraum der Wasserspiegellage: {0}
sinfo.export.flow_depth.csv.meta.range = # {0}: {1} - {2}
More information about the Dive4Elements-commits
mailing list