Mercurial > dive4elements > river
diff artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/common/AbstractSInfoProcessor.java @ 9204:4f411c6ee3ae
Individual facets/themes for single years i the S-Info collisions output
author | mschaefer |
---|---|
date | Mon, 02 Jul 2018 17:40:39 +0200 |
parents | 9831f6c60473 |
children | 3dae6b78e1da |
line wrap: on
line diff
--- a/artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/common/AbstractSInfoProcessor.java Mon Jul 02 13:00:59 2018 +0200 +++ b/artifacts/src/main/java/org/dive4elements/river/artifacts/sinfo/common/AbstractSInfoProcessor.java Mon Jul 02 17:40:39 2018 +0200 @@ -104,6 +104,38 @@ return metaData.get("Y"); } + protected final String buildSeriesForType1(final DiagramGenerator generator, final ArtifactAndFacet bundle, final ThemeDocument theme, + final boolean visible, + final IResultType resultType, final Double gapDistance) { + final CallContext context = generator.getContext(); + final Map<String, String> metaData = bundle.getFacet().getMetaData(); + + final Artifact artifact = bundle.getArtifact(); + + final StyledXYSeries series = new StyledXYSeries(bundle.getFacetDescription(), theme); + series.putMetaData(metaData, artifact, context); + + final String facetName = bundle.getFacetName(); + + final AbstractCalculationResult data = (AbstractCalculationResult) bundle.getData(context); + if (data == null) { + // Check has been here before so we keep it for security reasons + // this should never happen though. + throw new IllegalStateException("Data is null for facet: " + facetName); + } + + final double[][] points = generatePoints(context, artifact, data, facetName, resultType, bundle.getFacet().getIndex()); + + if (gapDistance == null) + StyledSeriesBuilder.addPoints(series, points, true); + else + StyledSeriesBuilder.addPoints(series, points, true, gapDistance); + + generator.addAxisSeries(series, getAxisName(), visible); + + return metaData.get("Y"); + } + protected final String buildSeriesForTkh(final DiagramGenerator generator, final ArtifactAndFacet bundle, final ThemeDocument theme, final boolean visible) { final CallContext context = generator.getContext(); @@ -162,6 +194,18 @@ return points; } + private double[][] generatePoints(final CallContext context, final Artifact artifact, final AbstractCalculationResult data, final String facetName, + final IResultType resultType, final int index) { + + final double[][] points = data.getStationPoints(resultType, index); + if (facetName.endsWith(".filtered")) { + final Double radius = findRadius(context, artifact); + return movingAverage(radius, points); + } + + return points; + } + private double[][] movingAverage(final Double radius, final double[][] points) { if (radius == null)