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 }

http://dive4elements.wald.intevation.org