comparison artifacts/src/main/java/org/dive4elements/river/artifacts/uinfo/inundationduration/InundationDurationCalculation.java @ 9559:ba0561906f81

Uinfo inundation duration workflow (vegetation zones, scenario), wms-config changed
author gernotbelger
date Wed, 24 Oct 2018 18:40:38 +0200
parents 709a73badd48
children
comparison
equal deleted inserted replaced
9558:709a73badd48 9559:ba0561906f81
14 import org.dive4elements.artifacts.CallContext; 14 import org.dive4elements.artifacts.CallContext;
15 import org.dive4elements.river.artifacts.model.Calculation; 15 import org.dive4elements.river.artifacts.model.Calculation;
16 import org.dive4elements.river.artifacts.model.CalculationResult; 16 import org.dive4elements.river.artifacts.model.CalculationResult;
17 import org.dive4elements.river.artifacts.sinfo.tkhstate.TsvHelper.TsvReaderException; 17 import org.dive4elements.river.artifacts.sinfo.tkhstate.TsvHelper.TsvReaderException;
18 import org.dive4elements.river.artifacts.uinfo.UINFOArtifact; 18 import org.dive4elements.river.artifacts.uinfo.UINFOArtifact;
19 import org.dive4elements.river.artifacts.uinfo.inundationduration.InundationDurationAccess.WmsClassification;
20 import org.dive4elements.river.artifacts.uinfo.inundationduration.InundationDurationCalculationResult.WmsLayer; 19 import org.dive4elements.river.artifacts.uinfo.inundationduration.InundationDurationCalculationResult.WmsLayer;
20 import org.dive4elements.river.artifacts.uinfo.inundationduration.UedauernConfiguration.YearType;
21 21
22 /** 22 /**
23 * @author Domenico Nardi Tironi 23 * @author Domenico Nardi Tironi
24 * 24 *
25 */ 25 */
40 // VegetationZones have been removed - these two lines should be deleted 40 // VegetationZones have been removed - these two lines should be deleted
41 // final String zonesRaw = indurax.getVegZones(); 41 // final String zonesRaw = indurax.getVegZones();
42 // final List<VegetationZoneServerClientXChange> zones = VegetationZoneServerClientXChange.parse(zonesRaw); 42 // final List<VegetationZoneServerClientXChange> zones = VegetationZoneServerClientXChange.parse(zonesRaw);
43 // FIXME: instead find out a-uuid of referenced vegetations 43 // FIXME: instead find out a-uuid of referenced vegetations
44 // FIXME: 44 // FIXME:
45 final String vegZoneId = "unknown"; 45 // final String vegZoneId = "unknown";
46 46
47 final boolean isUseScenario = indurax.getIsUseScenario(); 47 final boolean isUseScenario = indurax.getIsUseScenario();
48 48
49 final InundationDurationCalculationResult result = new InundationDurationCalculationResult(); 49 final InundationDurationCalculationResult result = new InundationDurationCalculationResult();
50 50
51 final WmsLayer inundationDurationLayer = indurax.createWMSLayer(this.context, "uinfo.export.url.inundationduration.inundationduration", 51 final String selectedItem = indurax.getSelectedLabel();
52 WmsClassification.asIs, vegZoneId); 52 final YearType type = indurax.isUseYear() ? YearType.jahre : YearType.mittel;
53 result.addLayer(inundationDurationLayer); 53 final UedauernConfiguration config = UedauernConfiguration.getInstance(indurax.getRiverName(), type);
54 54
55 final WmsLayer vegetationLayer = indurax.createWMSLayer(this.context, "uinfo.export.url.inundationduration.vegetation", 55 addLayer(indurax, "uinfo.export.url.inundationduration.inundationduration", selectedItem, config.getDefaultWmsConfig(selectedItem), result, true);
56 WmsClassification.vegetationZone, vegZoneId); 56 addLayer(indurax, "uinfo.export.url.inundationduration.vegetation", selectedItem, config.getVegWmsConfig(selectedItem), result, false);
57 result.addLayer(vegetationLayer);
58 57
59 if (isUseScenario) { 58 if (isUseScenario) {
60 // TODO: wieder einkommentieren, sobald die URL-Definition für Szenarien geklärt ist (und hoffentlich analog zu "mittel" 59
61 // und "jahre" funktioniert) 60 final UedauernConfiguration configSzenario = UedauernConfiguration.getInstance(indurax.getRiverName(), YearType.szenario);
62 // final WmsLayer scenarioInundationDurationLayer = indurax.createScenarioWMSLayer(this.context.getMeta(), 61
63 // "uinfo.export.url.inundationduration.scenario"); 62 final String selectedScenario = indurax.getSelectedSzenario();
64 // result.addLayer(scenarioInundationDurationLayer); 63
65 // 64 addLayer(indurax, "uinfo.export.url.inundationduration.scenario", selectedScenario, configSzenario.getDefaultWmsConfig(selectedScenario),
65 result, true);
66
67 addLayer(indurax, "uinfo.export.url.inundationduration.vegetation_scenario", selectedScenario, configSzenario.getVegWmsConfig(selectedScenario),
68 result, false);
69
66 // // TODO: add vegetationzone-values as styles to layer 70 // // TODO: add vegetationzone-values as styles to layer
67 // final WmsLayer scenarioVegetationLayer = indurax.createScenarioWMSLayer(this.context.getMeta(), 71 // final WmsLayer scenarioVegetationLayer = indurax.createScenarioWMSLayer(this.context.getMeta(),
68 // "uinfo.export.url.inundationduration.vegetation_scenario"); 72 // "uinfo.export.url.inundationduration.vegetation_scenario");
69 // result.addLayer(scenarioVegetationLayer); 73 // result.addLayer(scenarioVegetationLayer);
70 } 74 }
75 e.printStackTrace(); 79 e.printStackTrace();
76 problems.addProblem("Invalid server configuration: " + e.getLocalizedMessage()); 80 problems.addProblem("Invalid server configuration: " + e.getLocalizedMessage());
77 return new CalculationResult(null, problems); 81 return new CalculationResult(null, problems);
78 } 82 }
79 } 83 }
84
85 private void addLayer(final InundationDurationAccess indurax, final String label, final String selectedItem, final UedauernConfiguration.WmsConfig config,
86 final InundationDurationCalculationResult result, final boolean show) throws IOException, TsvReaderException {
87 if (config != null) {
88 final WmsLayer layer = indurax.createWMSLayer(this.context, label, selectedItem, config, show);
89 if (layer != null)
90 result.addLayer(layer);
91 }
92 }
80 } 93 }

http://dive4elements.wald.intevation.org