Mercurial > dive4elements > river
changeset 8179:705f8b92fd66
Complete CSV-export and correct headers.
author | Tom Gottfried <tom@intevation.de> |
---|---|
date | Wed, 03 Sep 2014 16:46:09 +0200 |
parents | 5bab2e57e965 |
children | 00066d3add94 |
files | artifacts/src/main/java/org/dive4elements/river/exports/AbstractExporter.java artifacts/src/main/java/org/dive4elements/river/exports/minfo/SedimentLoadExporter.java artifacts/src/main/resources/messages.properties artifacts/src/main/resources/messages_de.properties artifacts/src/main/resources/messages_de_DE.properties artifacts/src/main/resources/messages_en.properties |
diffstat | 6 files changed, 102 insertions(+), 78 deletions(-) [+] |
line wrap: on
line diff
--- a/artifacts/src/main/java/org/dive4elements/river/exports/AbstractExporter.java Wed Sep 03 10:24:39 2014 +0200 +++ b/artifacts/src/main/java/org/dive4elements/river/exports/AbstractExporter.java Wed Sep 03 16:46:09 2014 +0200 @@ -292,6 +292,10 @@ return Resources.getMsg(context.getMeta(), key, def); } + protected String msg(String key, Object[] args) { + return Resources.getMsg(context.getMeta(), key, key, args); + } + protected String msg(String key, String def, Object[] args) { return Resources.getMsg(context.getMeta(), key, def, args); }
--- a/artifacts/src/main/java/org/dive4elements/river/exports/minfo/SedimentLoadExporter.java Wed Sep 03 10:24:39 2014 +0200 +++ b/artifacts/src/main/java/org/dive4elements/river/exports/minfo/SedimentLoadExporter.java Wed Sep 03 16:46:09 2014 +0200 @@ -44,34 +44,38 @@ // i18n keys. public static final String CSV_KM = - "export.sedimentload_ls.csv.header.km"; + "export.csv.header.km"; public static final String CSV_YEAR = - "export.sedimentload_ls.csv.header.year"; + "export.csv.header.year"; public static final String CSV_COARSE = - "export.sedimentload_ls.csv.header.coarse"; + "export.sedimentload.csv.header.coarse"; public static final String CSV_FINEMIDDLE = - "export.sedimentload_ls.csv.header.finemiddle"; + "export.sedimentload.csv.header.fine_middle"; public static final String CSV_SAND = - "export.sedimentload_ls.csv.header.sand"; + "export.sedimentload.csv.header.sand"; public static final String CSV_SUSP_SAND = - "export.sedimentload_ls.csv.header.suspsand"; + "export.sedimentload.csv.header.susp_sand"; public static final String CSV_SUSP_SAND_BB = - "export.sedimentload_ls.csv.header.suspsandbb"; + "export.sedimentload.csv.header.susp_sand_bed"; public static final String CSV_SUSP_SEDIMENT = - "export.sedimentload_ls.csv.header.suspsediment"; + "export.sedimentload.csv.header.suspended_sediment"; + + public static final String CSV_BED_LOAD = + "export.sedimentload.csv.header.bed_load"; + + public static final String CSV_BED_LOAD_SUSP_SAND = + "export.sedimentload.csv.header.bed_load_susp_sand"; public static final String CSV_TOTAL = - "export.sedimentload_ls.csv.header.total"; + "export.sedimentload.csv.header.total"; - /* Header is: suspended_sediment, susp_sand, susp_sand_bed, sand, - * fine_middle, coarse, total */ private static final String[] FRACTION_ORDER = { "suspended_sediment", "susp_sand", @@ -79,6 +83,8 @@ "sand", "fine_middle", "coarse", + "bed_load", + "bed_load_susp_sand", "total" }; @@ -153,14 +159,6 @@ return valf.format(val); } - /** Return space when val is NaN or zero, apply NumberFormat otherwise. */ - private String nonZeroToString(NumberFormat valf, double val) { - if (Double.isNaN(val) || val == 0d) { - return " "; - } - return valf.format(val); - } - /** Write a line. */ private void writeRecord( CSVWriter writer, @@ -168,20 +166,17 @@ String years, Double[] fractions ) { - // year, total, susp sed, susp sandbed suspsand, sand, finemiddle, coarse NumberFormat kmf = Formatter.getCalculationKm(context.getMeta()); NumberFormat valf = Formatter.getFormatter(context.getMeta(), 0, 2); - writer.writeNext(new String[] { - kmf.format(km), - years, - numberToString(valf, fractions[0]), - numberToString(valf, fractions[1]), - numberToString(valf, fractions[2]), - numberToString(valf, fractions[3]), - numberToString(valf, fractions[4]), - numberToString(valf, fractions[5]), - nonZeroToString(valf, fractions[6]) - }); + + String[] record = new String[fractions.length+2]; + record[0] = kmf.format(km); + record[1] = years; + for (int i = 0; i < fractions.length; ++i) { + record[i+2] = numberToString(valf, fractions[i]); + } + + writer.writeNext(record); } /** Writes i18ned header for csv file/stream. */ @@ -192,18 +187,23 @@ SedimentLoadAccess access = new SedimentLoadAccess((D4EArtifact) master); - String unit = " [" + msg("state.minfo." + - access.getUnit(), "translation missing") + "]"; + String unit = msg("state.minfo." + access.getUnit()); - header.add(msg(CSV_KM, "km")); - header.add(msg(CSV_YEAR, "Jahr")); - header.add(msg(CSV_SUSP_SEDIMENT, "Schwebst.") + unit); - header.add(msg(CSV_SUSP_SAND, "Susp.Sand") + unit); - header.add(msg(CSV_SUSP_SAND_BB, "Susp.Sand(BB)") + unit); - header.add(msg(CSV_SAND, "Sand") + unit); - header.add(msg(CSV_FINEMIDDLE, "Kies(f+m)") + unit); - header.add(msg(CSV_COARSE, "Kies(g)") + unit); - header.add(msg(CSV_TOTAL, "Gesamt") + unit); + header.add(msg(CSV_KM)); + header.add(msg(CSV_YEAR)); + for (String head: new String[] { + CSV_SUSP_SEDIMENT, + CSV_SUSP_SAND, + CSV_SUSP_SAND_BB, + CSV_SAND, + CSV_FINEMIDDLE, + CSV_COARSE, + CSV_BED_LOAD, + CSV_BED_LOAD_SUSP_SAND, + CSV_TOTAL + }) { + header.add(msg(head, new Object[] { unit })); + } writer.writeNext(header.toArray(new String[header.size()])); }
--- a/artifacts/src/main/resources/messages.properties Wed Sep 03 10:24:39 2014 +0200 +++ b/artifacts/src/main/resources/messages.properties Wed Sep 03 16:46:09 2014 +0200 @@ -356,6 +356,9 @@ chart.beddifference.yaxis.label.heights = Absolute Height [{0}] chart.subtitle.radius = Width of sample window for moving average: {0} km +export.csv.header.km = km +export.csv.header.year = year + export.waterlevel.csv.header.km = River-Km export.waterlevel.csv.header.w = W [{0}] export.waterlevel.csv.header.q = Q [m\u00b3/s] @@ -433,15 +436,17 @@ export.bedheight_middle.csv.header.location.system = Location system export.bedheight_middle.csv.header.evalby = Evaluated by export.bedheight_middle.csv.header.river.elevation = River elevation model -export.sedimentload_ls.csv.header.km = km -export.sedimentload_ls.csv.header.year = year -export.sedimentload_ls.csv.header.coarse = coarse -export.sedimentload_ls.csv.header.finemiddle = finemiddle -export.sedimentload_ls.csv.header.sand = sand -export.sedimentload_ls.csv.header.suspsand = susp. sand -export.sedimentload_ls.csv.header.suspsediment = susp. sediment -export.sedimentload_ls.csv.header.suspsandbb = susp. sand (BB) -export.sedimentload_ls.csv.header.total = total + +export.sedimentload.csv.header.coarse = Coarse gravel [{0}] +export.sedimentload.csv.header.fine_middle = Fine/Mid. gravel [{0}] +export.sedimentload.csv.header.sand = Sand [{0}] +export.sedimentload.csv.header.susp_sand = Suspended sand [{0}] +export.sedimentload.csv.header.susp_sand_bed = Bed. part suspended sand [{0}] +export.sedimentload.csv.header.suspended_sediment = Suspended sediment [{0}] +export.sedimentload.csv.header.total = Total load [{0}] +export.sedimentload.csv.header.bed_load = Bed load [{0}] +export.sedimentload.csv.header.suspended_load = Suspended load [{0}] + export.sqrelation.csv.info.coeff.a = a: coefficient of transport curve export.sqrelation.csv.info.coeff.b = b: exponent of transport curve export.sqrelation.csv.info.qmax = Q max, measured: maximum measured discharge [m\u00b3/s]
--- a/artifacts/src/main/resources/messages_de.properties Wed Sep 03 10:24:39 2014 +0200 +++ b/artifacts/src/main/resources/messages_de.properties Wed Sep 03 16:46:09 2014 +0200 @@ -357,6 +357,9 @@ chart.beddifference.yaxis.label.heights = Absolute H\u00f6he [m] chart.subtitle.radius = Fensterbreite f\u00fcr gleitenden Mittelwert: {0} km +export.csv.header.km = km +export.csv.header.year = Jahr + export.waterlevel.csv.header.km = Fluss-Km export.waterlevel.csv.header.w = W [{0}] export.waterlevel.csv.header.q = Q [m\u00b3/s] @@ -435,15 +438,17 @@ export.bedheight_middle.csv.header.range = Strecke export.bedheight_middle.csv.header.location.system = Lagesystem export.bedheight_middle.csv.header.evalby = Auswerter -export.sedimentload_ls.csv.header.km = km -export.sedimentload_ls.csv.header.year = Jahr -export.sedimentload_ls.csv.header.coarse = Kies(g) -export.sedimentload_ls.csv.header.finemiddle = Kies(f+m) -export.sedimentload_ls.csv.header.sand = Sand -export.sedimentload_ls.csv.header.suspsand = susp.Sand -export.sedimentload_ls.csv.header.suspsandbb = susp.Sand(BB) -export.sedimentload_ls.csv.header.suspsediment = Schwebst. -export.sedimentload_ls.csv.header.total = Gesamt + +export.sedimentload.csv.header.coarse = Grober Kies/Steine [{0}] +export.sedimentload.csv.header.fine_middle = Fein/Mittlerer Kies [{0}] +export.sedimentload.csv.header.sand = Sand [{0}] +export.sedimentload.csv.header.susp_sand = suspendierter Sand [{0}] +export.sedimentload.csv.header.susp_sand_bed = bettbildender Anteil suspendierter Sand [{0}] +export.sedimentload.csv.header.suspended_sediment = Schwebstoff [{0}] +export.sedimentload.csv.header.total = Gesamtfracht [{0}] +export.sedimentload.csv.header.bed_load = Geschiebefracht [{0}] +export.sedimentload.csv.header.bed_load_susp_sand = bettbildende Fracht [{0}] + export.sqrelation.csv.info.coeff.a = a: Transportkurvenkoeffizient export.sqrelation.csv.info.coeff.b = b: Transportkurvenexponent export.sqrelation.csv.info.qmax = Q max, gemessen: maximal gemessener Abfluss [m\u00b3/s]
--- a/artifacts/src/main/resources/messages_de_DE.properties Wed Sep 03 10:24:39 2014 +0200 +++ b/artifacts/src/main/resources/messages_de_DE.properties Wed Sep 03 16:46:09 2014 +0200 @@ -354,6 +354,9 @@ chart.beddifference.yaxis.label.heights = Absolute H\u00f6he [{0}] chart.subtitle.radius = Fensterbreite f\u00fcr gleitenden Mittelwert: {0} km +export.csv.header.km = km +export.csv.header.year = Jahr + export.waterlevel.csv.header.km = Fluss-Km export.waterlevel.csv.header.w = W [{0}] export.waterlevel.csv.header.q = Q [m\u00b3/s] @@ -431,15 +434,17 @@ export.bedheight_middle.csv.header.location.system = Lagesystem export.bedheight_middle.csv.header.evalby = Auswerter export.bedheight_middle.csv.header.river.elevation = H\u00f6hensystem des Flusses -export.sedimentload_ls.csv.header.km = km -export.sedimentload_ls.csv.header.year = Jahr -export.sedimentload_ls.csv.header.coarse = Kies(g) -export.sedimentload_ls.csv.header.finemiddle = Kies(f+m) -export.sedimentload_ls.csv.header.sand = Sand -export.sedimentload_ls.csv.header.suspsand = susp.Sand -export.sedimentload_ls.csv.header.suspsandbb = susp.Sand(BB) -export.sedimentload_ls.csv.header.suspsediment = Schwebst. -export.sedimentload_ls.csv.header.total = Gesamt + +export.sedimentload.csv.header.coarse = Grober Kies/Steine [{0}] +export.sedimentload.csv.header.fine_middle = Fein/Mittlerer Kies [{0}] +export.sedimentload.csv.header.sand = Sand [{0}] +export.sedimentload.csv.header.susp_sand = suspendierter Sand [{0}] +export.sedimentload.csv.header.susp_sand_bed = bettbildender Anteil suspendierter Sand [{0}] +export.sedimentload.csv.header.suspended_sediment = Schwebstoff [{0}] +export.sedimentload.csv.header.total = Gesamtfracht [{0}] +export.sedimentload.csv.header.bed_load = Geschiebefracht [{0}] +export.sedimentload.csv.header.bed_load_susp_sand = bettbildende Fracht [{0}] + export.sqrelation.csv.info.coeff.a = a: Transportkurvenkoeffizient export.sqrelation.csv.info.coeff.b = b: Transportkurvenexponent export.sqrelation.csv.info.qmax = Q max, gemessen: maximal gemessener Abfluss [m\u00b3/s]
--- a/artifacts/src/main/resources/messages_en.properties Wed Sep 03 10:24:39 2014 +0200 +++ b/artifacts/src/main/resources/messages_en.properties Wed Sep 03 16:46:09 2014 +0200 @@ -359,6 +359,9 @@ chart.beddifference.yaxis.label.heights = Absolute Height [m] chart.subtitle.radius = Radius for weighted Average: {0} km +export.csv.header.km = km +export.csv.header.year = year + export.waterlevel.csv.header.km = River-Km export.waterlevel.csv.header.w = W [{0}] export.waterlevel.csv.header.q = Q [m\u00b3/s] @@ -436,15 +439,17 @@ export.bedheight_middle.csv.header.location.system = Location system export.bedheight_middle.csv.header.evalby = Evaluated by export.bedheight_middle.csv.header.river.elevation = River elevation model -export.sedimentload_ls.csv.header.km = km -export.sedimentload_ls.csv.header.year = year -export.sedimentload_ls.csv.header.coarse = coarse -export.sedimentload_ls.csv.header.finemiddle = finemiddle -export.sedimentload_ls.csv.header.sand = sand -export.sedimentload_ls.csv.header.suspsandbb = susp. sand (BB) -export.sedimentload_ls.csv.header.suspsand = susp. sand -export.sedimentload_ls.csv.header.suspsediment = susp. sediment -export.sedimentload_ls.csv.header.total = total + +export.sedimentload.csv.header.coarse = Coarse gravel [{0}] +export.sedimentload.csv.header.fine_middle = Fine/Mid. gravel [{0}] +export.sedimentload.csv.header.sand = Sand [{0}] +export.sedimentload.csv.header.susp_sand = Suspended sand [{0}] +export.sedimentload.csv.header.susp_sand_bed = Bed. part suspended sand [{0}] +export.sedimentload.csv.header.suspended_sediment = Suspended sediment [{0}] +export.sedimentload.csv.header.total = Total load [{0}] +export.sedimentload.csv.header.bed_load = Bed load [{0}] +export.sedimentload.csv.header.suspended_load = Suspended load [{0}] + export.sqrelation.csv.info.coeff.a = a: coefficient of transport curve export.sqrelation.csv.info.coeff.b = b: exponent of transport curve export.sqrelation.csv.info.qmax = Q max, measured: maximum measured discharge [m\u00b3/s]