From 30e7e98ab271fbf6698b0dc5dc9161513e979f58 Mon Sep 17 00:00:00 2001 From: Tom Parker Date: Fri, 1 Nov 2019 11:25:43 -0800 Subject: [PATCH] add colormap option --- dependency-reduced-pom.xml | 379 ++++++++++++++++++ pom.xml | 41 +- .../usgs/volcanoes/swarmPlotter/.gitignore | 1 + .../swarmPlotter/ColorMapParser.java | 33 ++ .../volcanoes/swarmPlotter/ColorMapType.java | 45 +++ .../swarmPlotter/SwarmPlotterArgs.java | 9 +- .../usgs/volcanoes/swarmPlotter/Version.java | 8 +- .../volcanoes/swarmPlotter/plotter/.gitignore | 5 + .../swarmPlotter/plotter/HeliPlotter.java | 6 +- .../swarmPlotter/plotter/SpectraPlotter.java | 8 +- .../plotter/SpectrogramPlotter.java | 11 +- .../swarmPlotter/plotter/WavePlotter.java | 12 +- 12 files changed, 499 insertions(+), 59 deletions(-) create mode 100644 dependency-reduced-pom.xml create mode 100644 src/main/java/gov/usgs/volcanoes/swarmPlotter/ColorMapParser.java create mode 100644 src/main/java/gov/usgs/volcanoes/swarmPlotter/ColorMapType.java create mode 100644 src/main/java/gov/usgs/volcanoes/swarmPlotter/plotter/.gitignore diff --git a/dependency-reduced-pom.xml b/dependency-reduced-pom.xml new file mode 100644 index 0000000..8b1e1f7 --- /dev/null +++ b/dependency-reduced-pom.xml @@ -0,0 +1,379 @@ + + + 4.0.0 + gov.usgs.volcanoes + swarmPlotter + Swarm + 1.0.0-SNAPSHOT + http://volcanoes.usgs.gov/software/swarm + + GitHub + https://github.com/tparker-usgs/swarmPlotter/issues + + + Travis + https://travis-ci.org/tparker-usgs/swarmPlotter/ + + + + tparker + Tom Parker + tparker@usgs.gov + U.S. Geological Survey, Alaska Volcano Observatory + + true + + + + cervelli + Peter Cervelli + pcervelli@usgs.gov + U.S. Geological Survey, Volcano Science Center + + true + + + + lantolik + Loren Antolik + lantolik@usgs.gov + U.S. Geological Survey, Hawaiian Volcano Observatory + + true + + + + dcervelli + Dan Cervelli + + false + + + + + + Kevin Frechette (ISTI) + + + Anthony Lomax + + + Dave Ketchum + + + Chirag Patel + + + Ivan Henson + + + + + CC0 1.0 Universal + http://creativecommons.org/publicdomain/zero/1.0 /> + repo + + + + scm:git:git@github.com:usgs/swarmPlotter.git + scm:git:git@github.com:usgs/swarmPlotter.git + git@github.com:tparker-usgs/swarmPlotter.git + + + + + org.apache.maven.wagon + wagon-ssh-external + 1.0-beta-6 + + + + + + org.eclipse.m2e + lifecycle-mapping + 1.0.0 + + + + + + com.google.code.maven-replacer-plugin + maven-replacer-plugin + 1.4.0 + + replace + + + + + + source: + + + + + + + + + + maven-shade-plugin + 2.4.1 + + + package + + shade + + + true + + + org.apache:log4j + + org/apache/log4j/** + + + + org.freemarker:freemarker + + freemarker/** + + + + com.jgoodies:jgoodies-common + + ** + + + + com.jgoodies:jgoodies-forms + + ** + + + + com.jgoodies:jgoodies-looks + + ** + + + + opensymphony:oscache + + ** + + + + + + gov.usgs.volcanoes:usgs + gov.usgs.volcanoes:volcano-core + gov.usgs.volcanoes:winston + gov.usgs.volcanoes:swarm + org.freemarker:freemarker + com.jgoodies:* + com.martiansoftware:jsap + net.sourceforge.jtransforms:jtransforms + org.slf4j:* + org.apache:log4j + net.alomax:* + edu.sc.seis:* + colt:colt + edu.iris:JavaSeedLite + opensymphony:oscache + + + + + + + + maven-jar-plugin + 2.6 + + + + true + gov.usgs.volcanoes.swarmPlotter.SwarmPlotter + + + + + + com.google.code.maven-replacer-plugin + maven-replacer-plugin + 1.4.0 + + + process-sources + + replace + + + + + ${version.template.file} + ${version.file} + + + @buildnumber@ + ${svn.revision} + + + @buildtime@ + ${maven.build.timestamp} + + + @pomversion@ + ${project.version} + + + + + + org.codehaus.mojo + cobertura-maven-plugin + 2.7 + + xml + 256m + true + + + + org.eluder.coveralls + coveralls-maven-plugin + 3.2.0 + + ${env.coveralls_repo_token} + + + + maven-site-plugin + 3.4 + + + org.apache.maven.wagon + wagon-scm + 2.9 + + + org.apache.maven.scm + maven-scm-manager-plexus + 1.9.4 + + + org.apache.maven.scm + maven-scm-provider-gitexe + 1.9.4 + + + org.apache.maven.scm + maven-scm-api + 1.9.4 + + + + + maven-assembly-plugin + 2.6 + + + make-assembly + package + + single + + + + + + src/assembly/swarmBin.xml + + + + + + + + + volcanoes + http://volcanoes.usgs.gov/software/maven2/ + + + + + + maven-pmd-plugin + 3.5 + + + /rulesets/java/braces.xml + /rulesets/java/naming.xml + .ruleset + + + + + org.codehaus.mojo + findbugs-maven-plugin + 3.0.0 + + Max + Low + true + + + + maven-jxr-plugin + 2.5 + + + maven-javadoc-plugin + 2.10.3 + + false + + + + org.codehaus.mojo + cobertura-maven-plugin + 2.7 + + + html + xml + + + + + org.codehaus.mojo + javancss-maven-plugin + 2.1 + + utf-8 + false + + + + + + + volcanoes.web + Volcanoes website + scpexe://vulcan4.wr.usgs.gov/webdata/volcanoes.usgs.gov/htdocs/software/maven2 + + + github.pages + scm:git:https://git@github.com/tparker-usgs/swarmPlotter.git + + + + src/main/resources/Version.java.template + src/main/java/gov/usgs/volcanoes/swarmPlotter/Version.java + UTF-8 + + + diff --git a/pom.xml b/pom.xml index c6cd829..b37669e 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ gov.usgs.volcanoes swarmPlotter - 1.0.0-SNAPSHOT + 1.1.0 jar Swarm @@ -180,7 +180,7 @@ org.apache.maven.plugins maven-shade-plugin - 2.4.1 + 3.2.1 package @@ -191,41 +191,11 @@ true - org.apache:log4j + log4j:log4j org/apache/log4j/** - - org.freemarker:freemarker - - freemarker/** - - - - com.jgoodies:jgoodies-common - - ** - - - - com.jgoodies:jgoodies-forms - - ** - - - - com.jgoodies:jgoodies-looks - - ** - - - - opensymphony:oscache - - ** - - @@ -234,7 +204,6 @@ gov.usgs.volcanoes:winston gov.usgs.volcanoes:swarm org.freemarker:freemarker - com.jgoodies:* com.martiansoftware:jsap net.sourceforge.jtransforms:jtransforms org.slf4j:* @@ -426,7 +395,7 @@ 1.7.1 - org.apache + log4j log4j 1.2.13 @@ -443,7 +412,7 @@ gov.usgs.volcanoes swarm - [1.5,) + 2.8.13 gov.usgs.volcanoes diff --git a/src/main/java/gov/usgs/volcanoes/swarmPlotter/.gitignore b/src/main/java/gov/usgs/volcanoes/swarmPlotter/.gitignore index 1f0f4bc..97398d9 100644 --- a/src/main/java/gov/usgs/volcanoes/swarmPlotter/.gitignore +++ b/src/main/java/gov/usgs/volcanoes/swarmPlotter/.gitignore @@ -3,3 +3,4 @@ /SwarmPlotter.class /SwarmPlotterArgs.class /Version.class +/SeismicDataSourceParser.class diff --git a/src/main/java/gov/usgs/volcanoes/swarmPlotter/ColorMapParser.java b/src/main/java/gov/usgs/volcanoes/swarmPlotter/ColorMapParser.java new file mode 100644 index 0000000..13deaa4 --- /dev/null +++ b/src/main/java/gov/usgs/volcanoes/swarmPlotter/ColorMapParser.java @@ -0,0 +1,33 @@ +/** + * I waive copyright and related rights in the this work worldwide through the CC0 1.0 Universal + * public domain dedication. https://creativecommons.org/publicdomain/zero/1.0/legalcode + */ + +package gov.usgs.volcanoes.swarmPlotter; + +import com.martiansoftware.jsap.ParseException; +import com.martiansoftware.jsap.StringParser; + +import gov.usgs.volcanoes.core.legacy.plot.color.Spectrum; + +/** + * Parse a date from a command line argument. + * + * @author Tom Parker + */ +public class ColorMapParser extends StringParser { + + @Override + public Object parse(String arg) throws ParseException { + Spectrum result = null; + try { + result = ColorMapType.valueOf(arg.toUpperCase()).getColormap(); + } catch (IllegalArgumentException e) { + e.printStackTrace(); + throw new ParseException( + "I don't know the '" + arg + "' colormap. Try one of: " + ColorMapType.types()); + } + + return result; + } +} diff --git a/src/main/java/gov/usgs/volcanoes/swarmPlotter/ColorMapType.java b/src/main/java/gov/usgs/volcanoes/swarmPlotter/ColorMapType.java new file mode 100644 index 0000000..f6f06a3 --- /dev/null +++ b/src/main/java/gov/usgs/volcanoes/swarmPlotter/ColorMapType.java @@ -0,0 +1,45 @@ +package gov.usgs.volcanoes.swarmPlotter; + +import java.util.Arrays; + +import gov.usgs.volcanoes.core.legacy.plot.color.Inferno; +import gov.usgs.volcanoes.core.legacy.plot.color.Jet; +import gov.usgs.volcanoes.core.legacy.plot.color.Spectrum; +import gov.usgs.volcanoes.swarmPlotter.plotter.Plotter; + +/** + * Enumerate known plot types. + * + * @author Tom Parker + */ +public enum ColorMapType { + JET(Jet.getInstance()), + INFERNO(Inferno.getInstance()); + + private Spectrum colormap; + + ColorMapType(Spectrum colormap) { + this.colormap = colormap; + } + + public static String types() { + StringBuffer sb = new StringBuffer(); + for (ColorMapType type : Arrays.asList(values())) { + sb.append(type.toString().toLowerCase() + ", "); + } + return sb.substring(0, sb.length() - 2); + } + + @Override + public String toString() { + return this.name().toLowerCase(); + } + + public Spectrum getColormap() throws IllegalArgumentException { + try { + return colormap; + } catch (Exception e) { + throw new IllegalArgumentException(e); + } + } +} diff --git a/src/main/java/gov/usgs/volcanoes/swarmPlotter/SwarmPlotterArgs.java b/src/main/java/gov/usgs/volcanoes/swarmPlotter/SwarmPlotterArgs.java index 05ce85e..38f861d 100644 --- a/src/main/java/gov/usgs/volcanoes/swarmPlotter/SwarmPlotterArgs.java +++ b/src/main/java/gov/usgs/volcanoes/swarmPlotter/SwarmPlotterArgs.java @@ -27,6 +27,7 @@ import gov.usgs.volcanoes.core.args.decorator.TimeSpanArg; import gov.usgs.volcanoes.core.args.decorator.TimeZoneArg; import gov.usgs.volcanoes.core.args.decorator.VerboseArg; +import gov.usgs.volcanoes.core.legacy.plot.color.Spectrum; import gov.usgs.volcanoes.core.time.TimeSpan; import gov.usgs.volcanoes.swarm.data.SeismicDataSource; @@ -46,6 +47,7 @@ public class SwarmPlotterArgs { public static final String DEFAULT_HELI_ROW_SPAN = "30"; public static final Map DEFAULT_DIMENSION; + public static final String DEFAULT_COLOR_MAP = "jet"; private static final String dimensionDefaults; static { @@ -96,6 +98,7 @@ public class SwarmPlotterArgs { public final SeismicDataSource seismicDataSource; + public final Spectrum colorMap; public final String outputFile; @@ -111,7 +114,7 @@ public SwarmPlotterArgs(final String[] commandLineArgs) throws ArgumentException args = new TimeSpanArg(INPUT_TIME_FORMAT, true, args); args = new VerboseArg(args); args = new TimeZoneArg(args); - args = new DimensionArg(dimensionDefaults, args); + args = new DimensionArg(args); args.registerParameter(new FlaggedOption("plotType", new PlotTypeParser(), JSAP.NO_DEFAULT, JSAP.REQUIRED, 'p', "plotType", String.format("One of: %s\n", PlotType.types()))); args.registerParameter(new FlaggedOption("channel", JSAP.STRING_PARSER, JSAP.NO_DEFAULT, @@ -128,6 +131,8 @@ public SwarmPlotterArgs(final String[] commandLineArgs) throws ArgumentException args.registerParameter(new Switch("plotLabel", 'l', "plotLabel", "Label helicorder plot.")); args.registerParameter(new Switch("spectrogramWave", JSAP.NO_SHORTFLAG, "spectrogramWave", "Plot waveform above spectrogram.")); + args.registerParameter(new FlaggedOption("colormap", new ColorMapParser(), DEFAULT_COLOR_MAP, + JSAP.NOT_REQUIRED, JSAP.NO_SHORTFLAG, "colormap", String.format("One of: %s\n", ColorMapType.types()))); args.registerParameter( new UnflaggedOption("outputFile", JSAP.STRING_PARSER, JSAP.REQUIRED, "Output file name\n")); @@ -168,6 +173,8 @@ public SwarmPlotterArgs(final String[] commandLineArgs) throws ArgumentException seismicDataSource = (SeismicDataSource) jsapResult.getObject("dataSource"); LOGGER.debug("Setting: seismicDataSource={}", seismicDataSource); + colorMap = (Spectrum) jsapResult.getObject("colormap"); + LOGGER.debug("Setting: colormap={}", colorMap); outputFile = jsapResult.getString("outputFile"); LOGGER.debug("Setting: outputFile={}", outputFile); diff --git a/src/main/java/gov/usgs/volcanoes/swarmPlotter/Version.java b/src/main/java/gov/usgs/volcanoes/swarmPlotter/Version.java index 0b186f0..768d617 100644 --- a/src/main/java/gov/usgs/volcanoes/swarmPlotter/Version.java +++ b/src/main/java/gov/usgs/volcanoes/swarmPlotter/Version.java @@ -2,9 +2,9 @@ public final class Version { - public static final String BUILD_TIME = "2016-12-19T20:48:15Z"; + public static final String BUILD_TIME="2019-11-01T18:52:40Z"; - public static final String POM_VERSION = "1.0.0-SNAPSHOT"; + public static final String POM_VERSION="1.1.0"; - public static final String VERSION_STRING = "Version: " + POM_VERSION + " Built: " + BUILD_TIME; -} + public static final String VERSION_STRING = "Version: " + POM_VERSION + " Built: " + BUILD_TIME; +} \ No newline at end of file diff --git a/src/main/java/gov/usgs/volcanoes/swarmPlotter/plotter/.gitignore b/src/main/java/gov/usgs/volcanoes/swarmPlotter/plotter/.gitignore new file mode 100644 index 0000000..56c6929 --- /dev/null +++ b/src/main/java/gov/usgs/volcanoes/swarmPlotter/plotter/.gitignore @@ -0,0 +1,5 @@ +/HeliPlotter.class +/Plotter.class +/SpectraPlotter.class +/SpectrogramPlotter.class +/WavePlotter.class diff --git a/src/main/java/gov/usgs/volcanoes/swarmPlotter/plotter/HeliPlotter.java b/src/main/java/gov/usgs/volcanoes/swarmPlotter/plotter/HeliPlotter.java index bc1563f..7bf916b 100644 --- a/src/main/java/gov/usgs/volcanoes/swarmPlotter/plotter/HeliPlotter.java +++ b/src/main/java/gov/usgs/volcanoes/swarmPlotter/plotter/HeliPlotter.java @@ -7,9 +7,9 @@ import org.apache.log4j.Logger; -import gov.usgs.plot.HelicorderSettings; -import gov.usgs.plot.PlotException; -import gov.usgs.plot.data.HelicorderData; +import gov.usgs.volcanoes.core.data.HelicorderData; +import gov.usgs.volcanoes.core.legacy.plot.HelicorderSettings; +import gov.usgs.volcanoes.core.legacy.plot.PlotException; import gov.usgs.volcanoes.core.time.J2kSec; import gov.usgs.volcanoes.core.util.UtilException; import gov.usgs.volcanoes.swarmPlotter.SwarmPlotterArgs; diff --git a/src/main/java/gov/usgs/volcanoes/swarmPlotter/plotter/SpectraPlotter.java b/src/main/java/gov/usgs/volcanoes/swarmPlotter/plotter/SpectraPlotter.java index 3bdc946..325c7a8 100644 --- a/src/main/java/gov/usgs/volcanoes/swarmPlotter/plotter/SpectraPlotter.java +++ b/src/main/java/gov/usgs/volcanoes/swarmPlotter/plotter/SpectraPlotter.java @@ -2,10 +2,10 @@ import java.awt.Color; -import gov.usgs.plot.Plot; -import gov.usgs.plot.PlotException; -import gov.usgs.plot.data.SliceWave; -import gov.usgs.plot.render.wave.SpectraRenderer; +import gov.usgs.volcanoes.core.data.SliceWave; +import gov.usgs.volcanoes.core.legacy.plot.Plot; +import gov.usgs.volcanoes.core.legacy.plot.PlotException; +import gov.usgs.volcanoes.core.legacy.plot.render.wave.SpectraRenderer; import gov.usgs.volcanoes.core.util.UtilException; import gov.usgs.volcanoes.swarmPlotter.SwarmPlotterArgs; diff --git a/src/main/java/gov/usgs/volcanoes/swarmPlotter/plotter/SpectrogramPlotter.java b/src/main/java/gov/usgs/volcanoes/swarmPlotter/plotter/SpectrogramPlotter.java index 017515f..be6f79b 100644 --- a/src/main/java/gov/usgs/volcanoes/swarmPlotter/plotter/SpectrogramPlotter.java +++ b/src/main/java/gov/usgs/volcanoes/swarmPlotter/plotter/SpectrogramPlotter.java @@ -2,11 +2,11 @@ import java.awt.Color; -import gov.usgs.plot.Plot; -import gov.usgs.plot.PlotException; -import gov.usgs.plot.data.SliceWave; -import gov.usgs.plot.render.wave.SliceWaveRenderer; -import gov.usgs.plot.render.wave.SpectrogramRenderer; +import gov.usgs.volcanoes.core.data.SliceWave; +import gov.usgs.volcanoes.core.legacy.plot.Plot; +import gov.usgs.volcanoes.core.legacy.plot.PlotException; +import gov.usgs.volcanoes.core.legacy.plot.render.wave.SliceWaveRenderer; +import gov.usgs.volcanoes.core.legacy.plot.render.wave.SpectrogramRenderer; import gov.usgs.volcanoes.core.util.UtilException; import gov.usgs.volcanoes.swarmPlotter.SwarmPlotterArgs; @@ -55,6 +55,7 @@ public void plot() throws UtilException { sr.setOverlap(0.859375); sr.setMaxPower(120); sr.setMinPower(20); + sr.setSpectrum(config.colorMap); sr.setViewTimes(); sr.setTimeZone(config.timeZone.getDisplayName()); diff --git a/src/main/java/gov/usgs/volcanoes/swarmPlotter/plotter/WavePlotter.java b/src/main/java/gov/usgs/volcanoes/swarmPlotter/plotter/WavePlotter.java index c7fc95b..b6c1416 100644 --- a/src/main/java/gov/usgs/volcanoes/swarmPlotter/plotter/WavePlotter.java +++ b/src/main/java/gov/usgs/volcanoes/swarmPlotter/plotter/WavePlotter.java @@ -4,11 +4,11 @@ import org.apache.log4j.Logger; -import gov.usgs.plot.Plot; -import gov.usgs.plot.PlotException; -import gov.usgs.plot.data.SliceWave; -import gov.usgs.plot.data.Wave; -import gov.usgs.plot.render.wave.SliceWaveRenderer; +import gov.usgs.volcanoes.core.data.SliceWave; +import gov.usgs.volcanoes.core.data.Wave; +import gov.usgs.volcanoes.core.legacy.plot.Plot; +import gov.usgs.volcanoes.core.legacy.plot.PlotException; +import gov.usgs.volcanoes.core.legacy.plot.render.wave.SliceWaveRenderer; import gov.usgs.volcanoes.core.time.J2kSec; import gov.usgs.volcanoes.core.util.UtilException; import gov.usgs.volcanoes.swarmPlotter.SwarmPlotterArgs; @@ -31,7 +31,7 @@ protected void getData() { final double endTime = J2kSec.fromEpoch(config.timeSpan.endTime); LOGGER.debug("getting data"); - config.seismicDataSource.establish(); +// config.seismicDataSource.establish(); waveData = config.seismicDataSource.getWave(channel, startTime, endTime); long st = J2kSec.asEpoch(startTime);