# HG changeset patch # User Felix Wolfsteller # Date 1321455019 0 # Node ID 61baa34af1d41da799a97ccc1e865caa77181f3d # Parent 4b64692b2d1eb05a415f3375fc602d3dabc4fb3e Use single column wst interpolators from wqkmsinterpolartifact. flys-artifacts/trunk@3270 c6561f87-3c4e-4783-a992-168aeb5c3f6f diff -r 4b64692b2d1e -r 61baa34af1d4 flys-artifacts/ChangeLog --- a/flys-artifacts/ChangeLog Wed Nov 16 14:47:02 2011 +0000 +++ b/flys-artifacts/ChangeLog Wed Nov 16 14:50:19 2011 +0000 @@ -1,3 +1,9 @@ +2011-11-16 Felix Wolfsteller + + * src/main/java/de/intevation/flys/artifacts/WQKmsInterpolArtifact.java: + Added functionality to artifact to use single column wst + interpolators. + 2011-11-16 Felix Wolfsteller * src/main/java/de/intevation/flys/artifacts/model/WstValueTableFactory.java: diff -r 4b64692b2d1e -r 61baa34af1d4 flys-artifacts/src/main/java/de/intevation/flys/artifacts/WQKmsInterpolArtifact.java --- a/flys-artifacts/src/main/java/de/intevation/flys/artifacts/WQKmsInterpolArtifact.java Wed Nov 16 14:47:02 2011 +0000 +++ b/flys-artifacts/src/main/java/de/intevation/flys/artifacts/WQKmsInterpolArtifact.java Wed Nov 16 14:50:19 2011 +0000 @@ -91,12 +91,20 @@ if (parts.length >= 4) { int wst = Integer.valueOf(parts[3]); - /* @TODO For certain datasets it might be necessary to - * restrict on a single column of wsts. */ - // int col = Integer.valueOf(parts[2]); - //addStringData("col_pos", parts[2]); + int col = -1; + String colpos = parts[2]; + // Are we interested in a single column or in all columns? + if (colpos.equals("A")) { + ; // Take all. + } + else { + col = Integer.valueOf(colpos); + addStringData("col_pos", parts[2]); + } addStringData("wst_id", parts[3]); - String wkmsName = WKmsFactory.getWKmsName(wst); + String wkmsName = (col > 0) + ? WKmsFactory.getWKmsName(col, wst) + : WKmsFactory.getWKmsName(wst); Facet facet = new WQFacet( Resources.getMsg( callMeta, @@ -167,11 +175,17 @@ * Get WQ at a given km. */ public double [][] getWQAtKm(double km) { + + WstValueTable interpolator = null; // Get WstValueTable - WstValueTable interpolator = WstValueTableFactory.getTable( - getDataAsInt("wst_id")); - // @TODO we might have to give column position for certain datasets. - // getDataAsInt("col_pos")); + if (getDataAsString("col_pos") != null) { + interpolator = WstValueTableFactory.getWstColumnTable( + getDataAsInt("wst_id"), getDataAsInt("col_pos")); + } + else { + interpolator = WstValueTableFactory.getTable( + getDataAsInt("wst_id")); + } double [][] vs = interpolator.interpolateWQColumnwise( getDataAsDouble("ld_locations"));