Mercurial > dive4elements > river
diff flys-artifacts/src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java @ 637:f0c1250d1e7b
Make "Berechnungsart 4" work independent of flow direction. Commented out back jump correction temporarily.
flys-artifacts/trunk@2013 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Sascha L. Teichmann <sascha.teichmann@intevation.de> |
---|---|
date | Thu, 26 May 2011 16:54:16 +0000 |
parents | acf3b49ec31f |
children | 6695e03e9b82 |
line wrap: on
line diff
--- a/flys-artifacts/src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java Thu May 26 15:55:48 2011 +0000 +++ b/flys-artifacts/src/main/java/de/intevation/flys/artifacts/FLYSArtifact.java Thu May 26 16:54:16 2011 +0000 @@ -1,5 +1,6 @@ package de.intevation.flys.artifacts; +import java.util.ArrayList; import java.util.Collection; import java.util.HashMap; import java.util.List; @@ -773,6 +774,41 @@ return qs; } + protected double [][] getRanges() { + logger.debug("getRanges"); + + StateData data = getData("wq_values"); + + if (data == null) { + logger.warn("Missing wq values!"); + return new double [0][0]; + } + + String dataString = (String)data.getValue(); + String [] ranges = dataString.split(":"); + + ArrayList<double []> rs = new ArrayList<double []>(); + + for (String range: ranges) { + String [] parts = range.split(";"); + + if (parts.length < 2) { + logger.warn("invalid number of parts in range line"); + continue; + } + try { + double from = Double.parseDouble(parts[0]); + double to = Double.parseDouble(parts[1]); + rs.add(new double [] { from, to }); + } + catch (NumberFormatException nfe) { + logger.warn("invalid double values in range line"); + } + } + + return rs.toArray(new double [rs.size()][]); + } + /** * This method returns the given W or Q values for a specific range