comparison flys-artifacts/src/main/java/de/intevation/flys/exports/DischargeCurveGenerator.java @ 381:52b6de9d0ab4

The DischargeCurveGenerator uses public methods of FLYSArtifact to retrieve all necessary information of the current settings. flys-artifacts/trunk@1797 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Ingo Weinzierl <ingo.weinzierl@intevation.de>
date Mon, 02 May 2011 16:44:02 +0000
parents 60f63539d004
children fc3ac59c3c8b
comparison
equal deleted inserted replaced
380:5f55047a17e8 381:52b6de9d0ab4
13 import org.jfree.data.xy.DefaultXYDataset; 13 import org.jfree.data.xy.DefaultXYDataset;
14 14
15 import de.intevation.artifacts.Artifact; 15 import de.intevation.artifacts.Artifact;
16 16
17 import de.intevation.flys.model.Gauge; 17 import de.intevation.flys.model.Gauge;
18 import de.intevation.flys.model.River;
18 19
19 import de.intevation.flys.artifacts.FLYSArtifact; 20 import de.intevation.flys.artifacts.FLYSArtifact;
20 import de.intevation.flys.artifacts.model.DischargeTables; 21 import de.intevation.flys.artifacts.model.DischargeTables;
21 import de.intevation.flys.artifacts.model.GaugesFactory; 22 import de.intevation.flys.artifacts.model.GaugesFactory;
22 23
73 return; 74 return;
74 } 75 }
75 76
76 FLYSArtifact flysArtifact = (FLYSArtifact) artifact; 77 FLYSArtifact flysArtifact = (FLYSArtifact) artifact;
77 78
78 String river = (String) flysArtifact.getData("river").getValue(); 79 River river = flysArtifact.getRiver();
79 String from = (String) flysArtifact.getData("ld_from").getValue(); 80 double[] distance = flysArtifact.getDistance();
80 String to = (String) flysArtifact.getData("ld_to").getValue();
81
82 double f = Double.parseDouble(from);
83 double t = Double.parseDouble(to);
84 81
85 List<double[]> ranges = new ArrayList<double[]>(); 82 List<double[]> ranges = new ArrayList<double[]>();
86 ranges.add(new double [] { f, t }); 83 ranges.add(distance);
87 84
88 List<Gauge> gauges = GaugesFactory.getGauges(river); 85 List<Gauge> gauges = GaugesFactory.getGauges(river);
89 List<Gauge> filtered = GaugesFactory.filterRanges(gauges, ranges); 86 List<Gauge> filtered = GaugesFactory.filterRanges(gauges, ranges);
90 87
91 if (logger.isDebugEnabled()) { 88 if (logger.isDebugEnabled()) {
92 int numGauges = gauges != null ? gauges.size() : 0; 89 int numGauges = gauges != null ? gauges.size() : 0;
93 int numFiltered = filtered != null ? filtered.size() : 0; 90 int numFiltered = filtered != null ? filtered.size() : 0;
94 91
95 logger.debug("++++++++++++++++++++"); 92 logger.debug("++++++++++++++++++++");
96 logger.debug("Search gauges for river: " + river); 93 logger.debug("Search gauges for river: " + river.getName());
97 logger.debug("-> ... from range: " + from); 94 logger.debug("-> ... from range: " + distance[0]);
98 logger.debug("-> ... to range: " + to); 95 logger.debug("-> ... to range: " + distance[1]);
99 logger.debug("-> Found " + numGauges + " gauges in total."); 96 logger.debug("-> Found " + numGauges + " gauges in total.");
100 logger.debug("-> Found " + numFiltered + " gauges after filtering."); 97 logger.debug("-> Found " + numFiltered + " gauges after filtering.");
101 logger.debug("++++++++++++++++++++"); 98 logger.debug("++++++++++++++++++++");
102 } 99 }
103 100
105 int idx = 0; 102 int idx = 0;
106 for (Gauge gauge: filtered) { 103 for (Gauge gauge: filtered) {
107 gaugeNames[idx++] = gauge.getName(); 104 gaugeNames[idx++] = gauge.getName();
108 } 105 }
109 106
110 DischargeTables dt = new DischargeTables(river, gaugeNames); 107 DischargeTables dt = new DischargeTables(river.getName(), gaugeNames);
111 Map<String, double[][]> gaugeValues = dt.getValues(100d); 108 Map<String, double[][]> gaugeValues = dt.getValues(100d);
112 109
113 for (String gauge: gaugeNames) { 110 for (String gauge: gaugeNames) {
114 double[][] values = gaugeValues.get(gauge); 111 double[][] values = gaugeValues.get(gauge);
115 dataset.addSeries(gauge, values); 112 dataset.addSeries(gauge, values);

http://dive4elements.wald.intevation.org