comparison artifacts/src/main/java/org/dive4elements/river/artifacts/uinfo/inundationduration/InundationDurationCalculation.java @ 9481:787fc085459b

TSV introduced; uinfo.inundationWMS-Config
author gernotbelger
date Wed, 12 Sep 2018 10:55:09 +0200
parents bc9a45d2b1fa
children bf6b63208f34
comparison
equal deleted inserted replaced
9480:7228bd10a8cc 9481:787fc085459b
9 */ 9 */
10 package org.dive4elements.river.artifacts.uinfo.inundationduration; 10 package org.dive4elements.river.artifacts.uinfo.inundationduration;
11 11
12 import java.util.List; 12 import java.util.List;
13 13
14 import org.apache.commons.lang.math.DoubleRange;
15 import org.dive4elements.artifacts.CallContext; 14 import org.dive4elements.artifacts.CallContext;
16 import org.dive4elements.river.artifacts.access.RiverAccess;
17 import org.dive4elements.river.artifacts.model.Calculation; 15 import org.dive4elements.river.artifacts.model.Calculation;
18 import org.dive4elements.river.artifacts.model.CalculationResult; 16 import org.dive4elements.river.artifacts.model.CalculationResult;
19 import org.dive4elements.river.artifacts.resources.Resources;
20 import org.dive4elements.river.artifacts.sinfo.util.CalculationUtils;
21 import org.dive4elements.river.artifacts.sinfo.util.RiverInfo;
22 import org.dive4elements.river.artifacts.uinfo.UINFOArtifact; 17 import org.dive4elements.river.artifacts.uinfo.UINFOArtifact;
18 import org.dive4elements.river.artifacts.uinfo.inundationduration.InundationDurationCalculationResult.WmsLayer;
23 import org.dive4elements.river.artifacts.uinfo.vegetationzones.VegetationZoneServerClientXChange; 19 import org.dive4elements.river.artifacts.uinfo.vegetationzones.VegetationZoneServerClientXChange;
24 import org.dive4elements.river.model.River;
25 20
26 /** 21 /**
27 * @author Domenico Nardi Tironi 22 * @author Domenico Nardi Tironi
28 * 23 *
29 */ 24 */
36 } 31 }
37 32
38 public CalculationResult calculate(final UINFOArtifact uinfo) { 33 public CalculationResult calculate(final UINFOArtifact uinfo) {
39 final Calculation problems = new Calculation(); 34 final Calculation problems = new Calculation();
40 35
41 final String calcModeLabel = Resources.getMsg(this.context.getMeta(), uinfo.getCalculationMode().name()); 36 final InundationDurationAccess indurax = new InundationDurationAccess(uinfo);
42 final String user = CalculationUtils.findArtifactUser(this.context, uinfo);
43 37
44 final RiverAccess access = new RiverAccess(uinfo);
45
46 final InundationDurationAccess indurax = new InundationDurationAccess(uinfo);
47 final River river = indurax.getRiver();
48 final RiverInfo riverInfo = new RiverInfo(river);
49 final DoubleRange calcRange = indurax.getRange();
50 final String url = indurax.getWMSUrl();
51 final Integer year = indurax.getYear(); // null bei year -> Integer
52 final String zonesRaw = indurax.getVegZones(); 38 final String zonesRaw = indurax.getVegZones();
53 final List<VegetationZoneServerClientXChange> zones = VegetationZoneServerClientXChange.parse(zonesRaw); 39 final List<VegetationZoneServerClientXChange> zones = VegetationZoneServerClientXChange.parse(zonesRaw);
54 final String scenarioUrl = indurax.getWMSScenarioUrl(); 40
55 final String scenarioStr = String.valueOf(indurax.getDwspl()); 41 final boolean isUseScenario = indurax.getIsUseScenario();
42
43 final InundationDurationCalculationResult result = new InundationDurationCalculationResult();
44
45 final WmsLayer inundationDurationLayer = indurax.createWMSLayer(this.context.getMeta(), "uinfo.export.url.inundationduration.inundationduration");
46 result.addLayer(inundationDurationLayer);
56 47
57 // TODO: add vegetationzone-values as parameter to url and use this url as veg'zone'url 48 // TODO: add vegetationzone-values as parameter to url and use this url as veg'zone'url
49 final WmsLayer vegetationLayer = indurax.createWMSLayer(this.context.getMeta(), "uinfo.export.url.inundationduration.vegetation");
50 result.addLayer(vegetationLayer);
58 51
59 final boolean isUseScenario = indurax.getIsUseScenario();
60 final Integer[] mittelStartEndYears = indurax.mittelStartEndYears();
61 final InundationDurationCalculationResult result = new InundationDurationCalculationResult();
62
63 final String rangeDuration = year != null ? String.valueOf(year)
64 : new StringBuilder().append(String.valueOf(mittelStartEndYears[0])).append("-").append(mittelStartEndYears[1]).toString();
65
66 result.addLayer(Resources.getMsg(this.context.getMeta(), "uinfo.export.url.inundationduration.inundationduration", new Object[] { rangeDuration }), url,
67 true);
68 // TODO: add vegetationzone-values as parameter to url and use this url as veg'zone'url
69 result.addLayer(Resources.getMsg(this.context.getMeta(), "uinfo.export.url.inundationduration.vegetation", new Object[] { rangeDuration }), url, false);
70 if (isUseScenario) { 52 if (isUseScenario) {
71 result.addLayer( 53 // TODO: wieder einkommentieren, sobald die URL-Definition für Szenarien geklärt ist (und hoffentlich analog zu "mittel"
72 Resources.getMsg(this.context.getMeta(), "uinfo.export.url.inundationduration.scenario", new Object[] { rangeDuration, scenarioStr }), 54 // und "jahre" funktioniert)
73 scenarioUrl, true); 55 // final WmsLayer scenarioInundationDurationLayer = indurax.createScenarioWMSLayer(this.context.getMeta(),
74 // TODO: add vegetationzone-values as parameter to url and use this url as veg'zone'url 56 // "uinfo.export.url.inundationduration.scenario");
75 result.addLayer(Resources.getMsg(this.context.getMeta(), "uinfo.export.url.inundationduration.vegetation_scenario", 57 // result.addLayer(scenarioInundationDurationLayer);
76 new Object[] { rangeDuration, scenarioStr }), scenarioUrl, false); 58 //
59 // // TODO: add vegetationzone-values as styles to layer
60 // final WmsLayer scenarioVegetationLayer = indurax.createScenarioWMSLayer(this.context.getMeta(),
61 // "uinfo.export.url.inundationduration.vegetation_scenario");
62 // result.addLayer(scenarioVegetationLayer);
77 } 63 }
78 64
79 return new CalculationResult(result, problems); 65 return new CalculationResult(result, problems);
80 } 66 }
81 } 67 }

http://dive4elements.wald.intevation.org