Mercurial > dive4elements > river
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 } |