Mercurial > dive4elements > river
comparison artifacts/src/main/java/org/dive4elements/river/artifacts/uinfo/inundationduration/InundationDurationCalculation.java @ 9537:bf6b63208f34
Work on uinfo inundation duration calculation.
Using proxy-wms to induce additional style information (work in progress).
author | gernotbelger |
---|---|
date | Wed, 17 Oct 2018 11:23:17 +0200 |
parents | 787fc085459b |
children | 709a73badd48 |
comparison
equal
deleted
inserted
replaced
9536:aa23225fd85f | 9537:bf6b63208f34 |
---|---|
7 * and comes with ABSOLUTELY NO WARRANTY! Check out the | 7 * and comes with ABSOLUTELY NO WARRANTY! Check out the |
8 * documentation coming with Dive4Elements River for details. | 8 * documentation coming with Dive4Elements River for details. |
9 */ | 9 */ |
10 package org.dive4elements.river.artifacts.uinfo.inundationduration; | 10 package org.dive4elements.river.artifacts.uinfo.inundationduration; |
11 | 11 |
12 import java.io.IOException; | |
12 import java.util.List; | 13 import java.util.List; |
13 | 14 |
14 import org.dive4elements.artifacts.CallContext; | 15 import org.dive4elements.artifacts.CallContext; |
15 import org.dive4elements.river.artifacts.model.Calculation; | 16 import org.dive4elements.river.artifacts.model.Calculation; |
16 import org.dive4elements.river.artifacts.model.CalculationResult; | 17 import org.dive4elements.river.artifacts.model.CalculationResult; |
18 import org.dive4elements.river.artifacts.sinfo.tkhstate.TsvHelper.TsvReaderException; | |
17 import org.dive4elements.river.artifacts.uinfo.UINFOArtifact; | 19 import org.dive4elements.river.artifacts.uinfo.UINFOArtifact; |
20 import org.dive4elements.river.artifacts.uinfo.inundationduration.InundationDurationAccess.WmsClassification; | |
18 import org.dive4elements.river.artifacts.uinfo.inundationduration.InundationDurationCalculationResult.WmsLayer; | 21 import org.dive4elements.river.artifacts.uinfo.inundationduration.InundationDurationCalculationResult.WmsLayer; |
19 import org.dive4elements.river.artifacts.uinfo.vegetationzones.VegetationZoneServerClientXChange; | 22 import org.dive4elements.river.artifacts.uinfo.vegetationzones.VegetationZoneServerClientXChange; |
20 | 23 |
21 /** | 24 /** |
22 * @author Domenico Nardi Tironi | 25 * @author Domenico Nardi Tironi |
31 } | 34 } |
32 | 35 |
33 public CalculationResult calculate(final UINFOArtifact uinfo) { | 36 public CalculationResult calculate(final UINFOArtifact uinfo) { |
34 final Calculation problems = new Calculation(); | 37 final Calculation problems = new Calculation(); |
35 | 38 |
36 final InundationDurationAccess indurax = new InundationDurationAccess(uinfo); | 39 try { |
40 final InundationDurationAccess indurax = new InundationDurationAccess(uinfo); | |
37 | 41 |
38 final String zonesRaw = indurax.getVegZones(); | 42 final String zonesRaw = indurax.getVegZones(); |
39 final List<VegetationZoneServerClientXChange> zones = VegetationZoneServerClientXChange.parse(zonesRaw); | 43 final List<VegetationZoneServerClientXChange> zones = VegetationZoneServerClientXChange.parse(zonesRaw); |
44 // FIXME: instead find out a-uuid of referenced vegetations | |
45 // FIXME: | |
46 final String vegZoneId = "unknown"; | |
40 | 47 |
41 final boolean isUseScenario = indurax.getIsUseScenario(); | 48 final boolean isUseScenario = indurax.getIsUseScenario(); |
42 | 49 |
43 final InundationDurationCalculationResult result = new InundationDurationCalculationResult(); | 50 final InundationDurationCalculationResult result = new InundationDurationCalculationResult(); |
44 | 51 |
45 final WmsLayer inundationDurationLayer = indurax.createWMSLayer(this.context.getMeta(), "uinfo.export.url.inundationduration.inundationduration"); | 52 final WmsLayer inundationDurationLayer = indurax.createWMSLayer(this.context, "uinfo.export.url.inundationduration.inundationduration", |
46 result.addLayer(inundationDurationLayer); | 53 WmsClassification.asIs, vegZoneId); |
54 result.addLayer(inundationDurationLayer); | |
47 | 55 |
48 // TODO: add vegetationzone-values as parameter to url and use this url as veg'zone'url | 56 final WmsLayer vegetationLayer = indurax.createWMSLayer(this.context, "uinfo.export.url.inundationduration.vegetation", |
49 final WmsLayer vegetationLayer = indurax.createWMSLayer(this.context.getMeta(), "uinfo.export.url.inundationduration.vegetation"); | 57 WmsClassification.vegetationZone, vegZoneId); |
50 result.addLayer(vegetationLayer); | 58 result.addLayer(vegetationLayer); |
51 | 59 |
52 if (isUseScenario) { | 60 if (isUseScenario) { |
53 // TODO: wieder einkommentieren, sobald die URL-Definition für Szenarien geklärt ist (und hoffentlich analog zu "mittel" | 61 // TODO: wieder einkommentieren, sobald die URL-Definition für Szenarien geklärt ist (und hoffentlich analog zu "mittel" |
54 // und "jahre" funktioniert) | 62 // und "jahre" funktioniert) |
55 // final WmsLayer scenarioInundationDurationLayer = indurax.createScenarioWMSLayer(this.context.getMeta(), | 63 // final WmsLayer scenarioInundationDurationLayer = indurax.createScenarioWMSLayer(this.context.getMeta(), |
56 // "uinfo.export.url.inundationduration.scenario"); | 64 // "uinfo.export.url.inundationduration.scenario"); |
57 // result.addLayer(scenarioInundationDurationLayer); | 65 // result.addLayer(scenarioInundationDurationLayer); |
58 // | 66 // |
59 // // TODO: add vegetationzone-values as styles to layer | 67 // // TODO: add vegetationzone-values as styles to layer |
60 // final WmsLayer scenarioVegetationLayer = indurax.createScenarioWMSLayer(this.context.getMeta(), | 68 // final WmsLayer scenarioVegetationLayer = indurax.createScenarioWMSLayer(this.context.getMeta(), |
61 // "uinfo.export.url.inundationduration.vegetation_scenario"); | 69 // "uinfo.export.url.inundationduration.vegetation_scenario"); |
62 // result.addLayer(scenarioVegetationLayer); | 70 // result.addLayer(scenarioVegetationLayer); |
71 } | |
72 | |
73 return new CalculationResult(result, problems); | |
63 } | 74 } |
64 | 75 catch (IOException | TsvReaderException e) { |
65 return new CalculationResult(result, problems); | 76 e.printStackTrace(); |
77 problems.addProblem("Invalid server configuration: " + e.getLocalizedMessage()); | |
78 return new CalculationResult(null, problems); | |
79 } | |
66 } | 80 } |
67 } | 81 } |