From 58ce33b622184d3976c325a1cd17a8733355014b Mon Sep 17 00:00:00 2001 From: Justin Barno Date: Tue, 23 Oct 2018 14:22:23 -0700 Subject: [PATCH] Fix for hibernate indices being mismatched and preventing inserts on the frequency band params tables. --- README.md | 6 +- calibration-gui/pom.xml | 6 +- .../gui/controllers/LoadingGui.java | 121 ------------------ .../gui/controllers/PathController.java | 17 ++- .../main/resources/fxml/WaveformLoading.fxml | 39 ------ calibration-service/application/pom.xml | 2 +- .../application/src/main/resources/data.sql | 38 +++--- calibration-service/integration/pom.xml | 2 +- calibration-service/model/pom.xml | 2 +- calibration-service/pom.xml | 2 +- calibration-service/repository/pom.xml | 2 +- calibration-service/service-api/pom.xml | 2 +- calibration-service/service-impl/pom.xml | 2 +- .../service/impl/Joint1DPathCorrection.java | 37 ++++-- .../processing/MaxVelocityCalculator.java | 4 +- .../impl/processing/ShapeCalculator.java | 2 +- calibration-standalone/pom.xml | 6 +- externals/pom.xml | 2 +- logo.gif | Bin 9229 -> 0 bytes pom.xml | 4 +- 20 files changed, 81 insertions(+), 215 deletions(-) delete mode 100644 calibration-gui/src/main/java/gov/llnl/gnem/apps/coda/calibration/gui/controllers/LoadingGui.java delete mode 100644 calibration-gui/src/main/resources/fxml/WaveformLoading.fxml delete mode 100644 logo.gif diff --git a/README.md b/README.md index f6e86d5d..bbdd5dda 100644 --- a/README.md +++ b/README.md @@ -42,18 +42,18 @@ We don't presently deploy versioned artifacts into a public repository like the #### **As a single runnable JAR** ```shell -java -jar coda-calibration/calibration-standalone/target/calibration-standalone-1.0.2-runnable.jar +java -jar coda-calibration/calibration-standalone/target/calibration-standalone-1.0.3-runnable.jar ``` #### **GUI alone** ```shell -java -jar coda-calibration/calibration-gui/target/calibration-gui-1.0.2-runnable.jar +java -jar coda-calibration/calibration-gui/target/calibration-gui-1.0.3-runnable.jar ``` #### **Calibration REST service alone** ```shell -java -jar coda-calibration/calibration-service/application/target/application-1.0.2-runnable.jar +java -jar coda-calibration/calibration-service/application/target/application-1.0.3-runnable.jar ``` #### A note about HTTPS diff --git a/calibration-gui/pom.xml b/calibration-gui/pom.xml index 88d13279..32d5f2fb 100644 --- a/calibration-gui/pom.xml +++ b/calibration-gui/pom.xml @@ -5,7 +5,7 @@ gov.llnl.gnem.apps.coda.calibration calibration-gui - 1.0.2 + 1.0.3 jar calibration-gui @@ -65,12 +65,12 @@ gov.llnl.gnem.apps.coda.calibration externals - 1.0.2 + 1.0.3 gov.llnl.gnem.apps.coda.calibration model - 1.0.2 + 1.0.3 org.eclipse.persistence diff --git a/calibration-gui/src/main/java/gov/llnl/gnem/apps/coda/calibration/gui/controllers/LoadingGui.java b/calibration-gui/src/main/java/gov/llnl/gnem/apps/coda/calibration/gui/controllers/LoadingGui.java deleted file mode 100644 index 478181e6..00000000 --- a/calibration-gui/src/main/java/gov/llnl/gnem/apps/coda/calibration/gui/controllers/LoadingGui.java +++ /dev/null @@ -1,121 +0,0 @@ -/* -* Copyright (c) 2017, Lawrence Livermore National Security, LLC. Produced at the Lawrence Livermore National Laboratory -* CODE-743439. -* All rights reserved. -* This file is part of CCT. For details, see https://github.com/LLNL/coda-calibration-tool. -* -* Licensed under the Apache License, Version 2.0 (the “Licensee”); you may not use this file except in compliance with the License. You may obtain a copy of the License at: -* http://www.apache.org/licenses/LICENSE-2.0 -* Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an “AS IS” BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and limitations under the license. -* -* This work was performed under the auspices of the U.S. Department of Energy -* by Lawrence Livermore National Laboratory under Contract DE-AC52-07NA27344. -*/ -package gov.llnl.gnem.apps.coda.calibration.gui.controllers; - -import java.io.IOException; - -import gov.llnl.gnem.apps.coda.calibration.gui.util.ProgressMonitor; -import javafx.application.Platform; -import javafx.beans.binding.Bindings; -import javafx.collections.FXCollections; -import javafx.collections.ObservableList; -import javafx.fxml.FXML; -import javafx.fxml.FXMLLoader; -import javafx.scene.Node; -import javafx.scene.Parent; -import javafx.scene.Scene; -import javafx.scene.control.TableCell; -import javafx.scene.control.TableColumn; -import javafx.scene.control.TableView; -import javafx.scene.text.Font; -import javafx.stage.Stage; -import javafx.stage.StageStyle; -import javafx.util.Callback; - -/** - * @throws IllegalStateException - * if the FXML sub-system is unable to initialize the display - */ -public class LoadingGui { - - @FXML - private TableView progressTable; - - @FXML - private TableColumn progressColumn; - - @FXML - private TableColumn taskColumn; - - private Stage stage; - private ObservableList monitors = FXCollections.observableArrayList(); - - public LoadingGui() { - Platform.runLater(() -> { - FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("/fxml/WaveformLoading.fxml")); - fxmlLoader.setController(this); - stage = new Stage(StageStyle.UTILITY); - Font.loadFont(getClass().getResource("/fxml/MaterialIcons-Regular.ttf").toExternalForm(), 18); - Parent root; - try { - root = fxmlLoader.load(); - Scene scene = new Scene(root); - stage.setScene(scene); - - taskColumn.setCellValueFactory(value -> Bindings.createStringBinding(() -> value.getValue().getDisplayableName())); - - progressColumn.setCellValueFactory(value -> Bindings.createObjectBinding(() -> value.getValue())); - progressColumn.setCellFactory(new Callback, TableCell>() { - - @Override - public TableCell call(TableColumn param) { - return new TableCell() { - @Override - protected void updateItem(Node item, boolean empty) { - if (item == getItem()) - return; - super.updateItem(item, empty); - - if (item == null) { - super.setText(null); - super.setGraphic(null); - } else if (item instanceof Node) { - super.setText(null); - super.setGraphic((Node) item); - } - } - }; - } - }); - progressTable.setItems(monitors); - } catch (IOException e) { - throw new IllegalStateException(e); - } - }); - } - - public void addProgressMonitor(ProgressMonitor monitor) { - monitors.add(monitor); - Platform.runLater(() -> { - stage.show(); - }); - } - - public void removeProgressMonitor(ProgressMonitor monitor) { - monitors.remove(monitor); - } - - public void hide() { - Platform.runLater(() -> { - stage.hide(); - }); - } - - public void show() { - Platform.runLater(() -> { - stage.show(); - }); - } -} diff --git a/calibration-gui/src/main/java/gov/llnl/gnem/apps/coda/calibration/gui/controllers/PathController.java b/calibration-gui/src/main/java/gov/llnl/gnem/apps/coda/calibration/gui/controllers/PathController.java index aca45039..cf6fcf15 100644 --- a/calibration-gui/src/main/java/gov/llnl/gnem/apps/coda/calibration/gui/controllers/PathController.java +++ b/calibration-gui/src/main/java/gov/llnl/gnem/apps/coda/calibration/gui/controllers/PathController.java @@ -372,6 +372,8 @@ private void plotSd() { if (xmax == null) { xmax = plotObj.getXcenter(); + } + if (xmin == null) { xmin = plotObj.getXcenter(); } if (plotObj.getXcenter() > xmax) { @@ -402,10 +404,14 @@ private void plotSd() { } plot.AddPlotObject(plotObj2, 10); } + String labelText; if (xmax != null) { plot.SetAxisLimits(xmin - (xmin * .1) - .1, xmax + (xmax * .1) + .1, ymin - (ymin * .1) - .1, ymax + (ymax * .1) + .1); + labelText = "StdDev(Before) = " + dfmt2.format(overallBeforeStats.getStandardDeviation()) + " StdDev(After) = " + dfmt2.format(overallAfterStats.getStandardDeviation()); + } + else { + labelText = ""; } - String labelText = "StdDev(Before) = " + dfmt2.format(overallBeforeStats.getStandardDeviation()) + " StdDev(After) = " + dfmt2.format(overallAfterStats.getStandardDeviation()); sdPlot.getXaxis().setVisible(false); sdPlot.getXaxis().setLabelText(labelText); sdPlot.getXaxis().setVisible(true); @@ -473,6 +479,8 @@ private void plotBeforeAfter() { if (xmax == null) { xmax = plotObj.getXcenter(); + } + if (xmin == null) { xmin = plotObj.getXcenter(); } if (plotObj.getXcenter() > xmax) { @@ -507,7 +515,12 @@ private void plotBeforeAfter() { } } - + if (xmax == null) { + xmax = 1.0; + } + if (xmin == null) { + xmin = 0.0; + } double paddedXmin = xmin - (xmin * .1); double paddedXmax = xmax + (xmax * .1); if (xmax != null) { diff --git a/calibration-gui/src/main/resources/fxml/WaveformLoading.fxml b/calibration-gui/src/main/resources/fxml/WaveformLoading.fxml deleted file mode 100644 index b81ec37a..00000000 --- a/calibration-gui/src/main/resources/fxml/WaveformLoading.fxml +++ /dev/null @@ -1,39 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/calibration-service/application/pom.xml b/calibration-service/application/pom.xml index 465e7882..8e8cf6a2 100644 --- a/calibration-service/application/pom.xml +++ b/calibration-service/application/pom.xml @@ -4,7 +4,7 @@ gov.llnl.gnem.apps.coda.calibration calibration-service - 1.0.2 + 1.0.3 4.0.0 application diff --git a/calibration-service/application/src/main/resources/data.sql b/calibration-service/application/src/main/resources/data.sql index dffdd6ce..94dd0b04 100644 --- a/calibration-service/application/src/main/resources/data.sql +++ b/calibration-service/application/src/main/resources/data.sql @@ -1,21 +1,21 @@ -INSERT INTO "MDACPS" (ID, DEL_ETA, DEL_GAMMA0, DELQ0, DIST_CRIT, ETA, GAMMA0, PHASE, Q0, SNR, U0, VERSION) VALUES ('1', '0', '0', '0', '0.001', '1.1', '0.65', 'Pn', '210', '2', '7900', '0') -INSERT INTO "MDACPS" (ID, DEL_ETA, DEL_GAMMA0, DELQ0, DIST_CRIT, ETA, GAMMA0, PHASE, Q0, SNR, U0, VERSION) VALUES ('2', '0', '0', '0', '100', '0.5', '0.45', 'Pg', '190', '2', '6000', '0') -INSERT INTO "MDACPS" (ID, DEL_ETA, DEL_GAMMA0, DELQ0, DIST_CRIT, ETA, GAMMA0, PHASE, Q0, SNR, U0, VERSION) VALUES ('3', '0', '0', '0', '0.001', '1.1', '0.55', 'Sn', '590', '2', '4500', '0') -INSERT INTO "MDACPS" (ID, DEL_ETA, DEL_GAMMA0, DELQ0, DIST_CRIT, ETA, GAMMA0, PHASE, Q0, SNR, U0, VERSION) VALUES ('4', '0', '0', '0', '100', '0.5', '0.54', 'Lg', '200', '2', '3500', '0') +INSERT INTO "MDACPS" (ID, DEL_ETA, DEL_GAMMA0, DELQ0, DIST_CRIT, ETA, GAMMA0, PHASE, Q0, SNR, U0, VERSION) VALUES ('-1', '0', '0', '0', '0.001', '1.1', '0.65', 'Pn', '210', '2', '7900', '0') +INSERT INTO "MDACPS" (ID, DEL_ETA, DEL_GAMMA0, DELQ0, DIST_CRIT, ETA, GAMMA0, PHASE, Q0, SNR, U0, VERSION) VALUES ('-2', '0', '0', '0', '100', '0.5', '0.45', 'Pg', '190', '2', '6000', '0') +INSERT INTO "MDACPS" (ID, DEL_ETA, DEL_GAMMA0, DELQ0, DIST_CRIT, ETA, GAMMA0, PHASE, Q0, SNR, U0, VERSION) VALUES ('-3', '0', '0', '0', '0.001', '1.1', '0.55', 'Sn', '590', '2', '4500', '0') +INSERT INTO "MDACPS" (ID, DEL_ETA, DEL_GAMMA0, DELQ0, DIST_CRIT, ETA, GAMMA0, PHASE, Q0, SNR, U0, VERSION) VALUES ('-4', '0', '0', '0', '100', '0.5', '0.54', 'Lg', '200', '2', '3500', '0') -INSERT INTO "MDACFI" (ID, ALPHAR, ALPHAS, BETAS, BETAR, DEL_PSI, DEL_SIGMA, M0REF, PSI, RAD_PATP, RAD_PATS, RHOR, RHOS, SIGMA, VERSION, ZETA) VALUES ('1', '5000', '6000', '3500', '2900', '0', '0', '10000000000000000', '0.25', '0.44', '0.6', '2500', '2700', '0.3', '0', '1') +INSERT INTO "MDACFI" (ID, ALPHAR, ALPHAS, BETAS, BETAR, DEL_PSI, DEL_SIGMA, M0REF, PSI, RAD_PATP, RAD_PATS, RHOR, RHOS, SIGMA, VERSION, ZETA) VALUES ('-1', '5000', '6000', '3500', '2900', '0', '0', '10000000000000000', '0.25', '0.44', '0.6', '2500', '2700', '0.3', '0', '1') -INSERT INTO "SHARED_FB_PARAMS" (ID, BETA0, BETA1, BETA2, GAMMA0, GAMMA1, GAMMA2, LOW_FREQUENCY, HIGH_FREQUENCY,MIN_SNR, Q, S1, S2, VELOCITY0, VELOCITY1, VELOCITY2, VERSION, XC, XT, MIN_LENGTH, MAX_LENGTH, MEASURE_TIME) VALUES ('1', '0', '0', '0', '0', '0', '0', '0.0200', '0.0300', '0.5', '0', '0', '0', '0', '0', '0', '0', '0', '0', '300', '1000','100') -INSERT INTO "SHARED_FB_PARAMS" (ID, BETA0, BETA1, BETA2, GAMMA0, GAMMA1, GAMMA2, LOW_FREQUENCY, HIGH_FREQUENCY,MIN_SNR, Q, S1, S2, VELOCITY0, VELOCITY1, VELOCITY2, VERSION, XC, XT, MIN_LENGTH, MAX_LENGTH, MEASURE_TIME) VALUES ('2', '0', '0', '0', '0', '0', '0', '0.0300', '0.0500', '0.5', '0', '0', '0', '0', '0', '0', '0', '0', '0', '300', '800', '100') -INSERT INTO "SHARED_FB_PARAMS" (ID, BETA0, BETA1, BETA2, GAMMA0, GAMMA1, GAMMA2, LOW_FREQUENCY, HIGH_FREQUENCY,MIN_SNR, Q, S1, S2, VELOCITY0, VELOCITY1, VELOCITY2, VERSION, XC, XT, MIN_LENGTH, MAX_LENGTH, MEASURE_TIME) VALUES ('3', '0', '0', '0', '0', '0', '0', '0.0500', '0.1000', '0.5', '0', '0', '0', '0', '0', '0', '0', '0', '0', '250', '600', '100') -INSERT INTO "SHARED_FB_PARAMS" (ID, BETA0, BETA1, BETA2, GAMMA0, GAMMA1, GAMMA2, LOW_FREQUENCY, HIGH_FREQUENCY,MIN_SNR, Q, S1, S2, VELOCITY0, VELOCITY1, VELOCITY2, VERSION, XC, XT, MIN_LENGTH, MAX_LENGTH, MEASURE_TIME) VALUES ('4', '0', '0', '0', '0', '0', '0', '0.1000', '0.2000', '0.5', '0', '0', '0', '0', '0', '0', '0', '0', '0', '250', '550', '100') -INSERT INTO "SHARED_FB_PARAMS" (ID, BETA0, BETA1, BETA2, GAMMA0, GAMMA1, GAMMA2, LOW_FREQUENCY, HIGH_FREQUENCY,MIN_SNR, Q, S1, S2, VELOCITY0, VELOCITY1, VELOCITY2, VERSION, XC, XT, MIN_LENGTH, MAX_LENGTH, MEASURE_TIME) VALUES ('5', '0', '0', '0', '0', '0', '0', '0.2000', '0.3000', '0.5', '0', '0', '0', '0', '0', '0', '0', '0', '0', '150', '550', '100') -INSERT INTO "SHARED_FB_PARAMS" (ID, BETA0, BETA1, BETA2, GAMMA0, GAMMA1, GAMMA2, LOW_FREQUENCY, HIGH_FREQUENCY,MIN_SNR, Q, S1, S2, VELOCITY0, VELOCITY1, VELOCITY2, VERSION, XC, XT, MIN_LENGTH, MAX_LENGTH, MEASURE_TIME) VALUES ('6', '0', '0', '0', '0', '0', '0', '0.3000', '0.5000', '0.5', '0', '0', '0', '0', '0', '0', '0', '0', '0', '150', '500', '100') -INSERT INTO "SHARED_FB_PARAMS" (ID, BETA0, BETA1, BETA2, GAMMA0, GAMMA1, GAMMA2, LOW_FREQUENCY, HIGH_FREQUENCY,MIN_SNR, Q, S1, S2, VELOCITY0, VELOCITY1, VELOCITY2, VERSION, XC, XT, MIN_LENGTH, MAX_LENGTH, MEASURE_TIME) VALUES ('7', '0', '0', '0', '0', '0', '0', '0.5000', '0.7000', '0.5', '0', '0', '0', '0', '0', '0', '0', '0', '0', '150', '500', '100') -INSERT INTO "SHARED_FB_PARAMS" (ID, BETA0, BETA1, BETA2, GAMMA0, GAMMA1, GAMMA2, LOW_FREQUENCY, HIGH_FREQUENCY,MIN_SNR, Q, S1, S2, VELOCITY0, VELOCITY1, VELOCITY2, VERSION, XC, XT, MIN_LENGTH, MAX_LENGTH, MEASURE_TIME) VALUES ('8', '0', '0', '0', '0', '0', '0', '0.7000', '1.0000', '0.5', '0', '0', '0', '0', '0', '0', '0', '0', '0', '120', '450', '100') -INSERT INTO "SHARED_FB_PARAMS" (ID, BETA0, BETA1, BETA2, GAMMA0, GAMMA1, GAMMA2, LOW_FREQUENCY, HIGH_FREQUENCY,MIN_SNR, Q, S1, S2, VELOCITY0, VELOCITY1, VELOCITY2, VERSION, XC, XT, MIN_LENGTH, MAX_LENGTH, MEASURE_TIME) VALUES ('9', '0', '0', '0', '0', '0', '0', '1.0000', '1.5000', '0.6', '0', '0', '0', '0', '0', '0', '0', '0', '0', '90', '450', '100') -INSERT INTO "SHARED_FB_PARAMS" (ID, BETA0, BETA1, BETA2, GAMMA0, GAMMA1, GAMMA2, LOW_FREQUENCY, HIGH_FREQUENCY,MIN_SNR, Q, S1, S2, VELOCITY0, VELOCITY1, VELOCITY2, VERSION, XC, XT, MIN_LENGTH, MAX_LENGTH, MEASURE_TIME) VALUES ('10', '0', '0', '0', '0', '0', '0', '1.5000', '2.0000', '0.75', '0', '0', '0', '0', '0', '0', '0', '0', '0', '80', '400', '100') -INSERT INTO "SHARED_FB_PARAMS" (ID, BETA0, BETA1, BETA2, GAMMA0, GAMMA1, GAMMA2, LOW_FREQUENCY, HIGH_FREQUENCY,MIN_SNR, Q, S1, S2, VELOCITY0, VELOCITY1, VELOCITY2, VERSION, XC, XT, MIN_LENGTH, MAX_LENGTH, MEASURE_TIME) VALUES ('11', '0', '0', '0', '0', '0', '0', '2.0000', '3.0000', '0.75', '0', '0', '0', '0', '0', '0', '0', '0', '0', '60', '400', '100') -INSERT INTO "SHARED_FB_PARAMS" (ID, BETA0, BETA1, BETA2, GAMMA0, GAMMA1, GAMMA2, LOW_FREQUENCY, HIGH_FREQUENCY,MIN_SNR, Q, S1, S2, VELOCITY0, VELOCITY1, VELOCITY2, VERSION, XC, XT, MIN_LENGTH, MAX_LENGTH, MEASURE_TIME) VALUES ('12', '0', '0', '0', '0', '0', '0', '3.0000', '4.0000', '0.75', '0', '0', '0', '0', '0', '0', '0', '0', '0', '60', '400', '100') -INSERT INTO "SHARED_FB_PARAMS" (ID, BETA0, BETA1, BETA2, GAMMA0, GAMMA1, GAMMA2, LOW_FREQUENCY, HIGH_FREQUENCY,MIN_SNR, Q, S1, S2, VELOCITY0, VELOCITY1, VELOCITY2, VERSION, XC, XT, MIN_LENGTH, MAX_LENGTH, MEASURE_TIME) VALUES ('13', '0', '0', '0', '0', '0', '0', '4.0000', '6.0000', '1.0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '60', '400', '100') -INSERT INTO "SHARED_FB_PARAMS" (ID, BETA0, BETA1, BETA2, GAMMA0, GAMMA1, GAMMA2, LOW_FREQUENCY, HIGH_FREQUENCY,MIN_SNR, Q, S1, S2, VELOCITY0, VELOCITY1, VELOCITY2, VERSION, XC, XT, MIN_LENGTH, MAX_LENGTH, MEASURE_TIME) VALUES ('14', '0', '0', '0', '0', '0', '0', '6.0000', '8.0000', '1.0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '40', '350', '100') \ No newline at end of file +INSERT INTO "SHARED_FB_PARAMS" (ID, BETA0, BETA1, BETA2, GAMMA0, GAMMA1, GAMMA2, LOW_FREQUENCY, HIGH_FREQUENCY,MIN_SNR, Q, S1, S2, VELOCITY0, VELOCITY1, VELOCITY2, VERSION, XC, XT, MIN_LENGTH, MAX_LENGTH, MEASURE_TIME) VALUES ('-1', '0', '0', '0', '0', '0', '0', '0.0200', '0.0300', '1.5', '0', '0', '0', '0', '0', '0', '0', '0', '0', '300', '1000','100') +INSERT INTO "SHARED_FB_PARAMS" (ID, BETA0, BETA1, BETA2, GAMMA0, GAMMA1, GAMMA2, LOW_FREQUENCY, HIGH_FREQUENCY,MIN_SNR, Q, S1, S2, VELOCITY0, VELOCITY1, VELOCITY2, VERSION, XC, XT, MIN_LENGTH, MAX_LENGTH, MEASURE_TIME) VALUES ('-2', '0', '0', '0', '0', '0', '0', '0.0300', '0.0500', '1.5', '0', '0', '0', '0', '0', '0', '0', '0', '0', '300', '800', '100') +INSERT INTO "SHARED_FB_PARAMS" (ID, BETA0, BETA1, BETA2, GAMMA0, GAMMA1, GAMMA2, LOW_FREQUENCY, HIGH_FREQUENCY,MIN_SNR, Q, S1, S2, VELOCITY0, VELOCITY1, VELOCITY2, VERSION, XC, XT, MIN_LENGTH, MAX_LENGTH, MEASURE_TIME) VALUES ('-3', '0', '0', '0', '0', '0', '0', '0.0500', '0.1000', '1.5', '0', '0', '0', '0', '0', '0', '0', '0', '0', '250', '600', '100') +INSERT INTO "SHARED_FB_PARAMS" (ID, BETA0, BETA1, BETA2, GAMMA0, GAMMA1, GAMMA2, LOW_FREQUENCY, HIGH_FREQUENCY,MIN_SNR, Q, S1, S2, VELOCITY0, VELOCITY1, VELOCITY2, VERSION, XC, XT, MIN_LENGTH, MAX_LENGTH, MEASURE_TIME) VALUES ('-4', '0', '0', '0', '0', '0', '0', '0.1000', '0.2000', '1.5', '0', '0', '0', '0', '0', '0', '0', '0', '0', '250', '550', '100') +INSERT INTO "SHARED_FB_PARAMS" (ID, BETA0, BETA1, BETA2, GAMMA0, GAMMA1, GAMMA2, LOW_FREQUENCY, HIGH_FREQUENCY,MIN_SNR, Q, S1, S2, VELOCITY0, VELOCITY1, VELOCITY2, VERSION, XC, XT, MIN_LENGTH, MAX_LENGTH, MEASURE_TIME) VALUES ('-5', '0', '0', '0', '0', '0', '0', '0.2000', '0.3000', '1.5', '0', '0', '0', '0', '0', '0', '0', '0', '0', '150', '550', '100') +INSERT INTO "SHARED_FB_PARAMS" (ID, BETA0, BETA1, BETA2, GAMMA0, GAMMA1, GAMMA2, LOW_FREQUENCY, HIGH_FREQUENCY,MIN_SNR, Q, S1, S2, VELOCITY0, VELOCITY1, VELOCITY2, VERSION, XC, XT, MIN_LENGTH, MAX_LENGTH, MEASURE_TIME) VALUES ('-6', '0', '0', '0', '0', '0', '0', '0.3000', '0.5000', '1.5', '0', '0', '0', '0', '0', '0', '0', '0', '0', '150', '500', '100') +INSERT INTO "SHARED_FB_PARAMS" (ID, BETA0, BETA1, BETA2, GAMMA0, GAMMA1, GAMMA2, LOW_FREQUENCY, HIGH_FREQUENCY,MIN_SNR, Q, S1, S2, VELOCITY0, VELOCITY1, VELOCITY2, VERSION, XC, XT, MIN_LENGTH, MAX_LENGTH, MEASURE_TIME) VALUES ('-7', '0', '0', '0', '0', '0', '0', '0.5000', '0.7000', '1.5', '0', '0', '0', '0', '0', '0', '0', '0', '0', '150', '500', '100') +INSERT INTO "SHARED_FB_PARAMS" (ID, BETA0, BETA1, BETA2, GAMMA0, GAMMA1, GAMMA2, LOW_FREQUENCY, HIGH_FREQUENCY,MIN_SNR, Q, S1, S2, VELOCITY0, VELOCITY1, VELOCITY2, VERSION, XC, XT, MIN_LENGTH, MAX_LENGTH, MEASURE_TIME) VALUES ('-8', '0', '0', '0', '0', '0', '0', '0.7000', '1.0000', '1.5', '0', '0', '0', '0', '0', '0', '0', '0', '0', '120', '450', '100') +INSERT INTO "SHARED_FB_PARAMS" (ID, BETA0, BETA1, BETA2, GAMMA0, GAMMA1, GAMMA2, LOW_FREQUENCY, HIGH_FREQUENCY,MIN_SNR, Q, S1, S2, VELOCITY0, VELOCITY1, VELOCITY2, VERSION, XC, XT, MIN_LENGTH, MAX_LENGTH, MEASURE_TIME) VALUES ('-9', '0', '0', '0', '0', '0', '0', '1.0000', '1.5000', '1.5', '0', '0', '0', '0', '0', '0', '0', '0', '0', '90', '450', '100') +INSERT INTO "SHARED_FB_PARAMS" (ID, BETA0, BETA1, BETA2, GAMMA0, GAMMA1, GAMMA2, LOW_FREQUENCY, HIGH_FREQUENCY,MIN_SNR, Q, S1, S2, VELOCITY0, VELOCITY1, VELOCITY2, VERSION, XC, XT, MIN_LENGTH, MAX_LENGTH, MEASURE_TIME) VALUES ('-10', '0', '0', '0', '0', '0', '0', '1.5000', '2.0000', '1.5', '0', '0', '0', '0', '0', '0', '0', '0', '0', '80', '400', '100') +INSERT INTO "SHARED_FB_PARAMS" (ID, BETA0, BETA1, BETA2, GAMMA0, GAMMA1, GAMMA2, LOW_FREQUENCY, HIGH_FREQUENCY,MIN_SNR, Q, S1, S2, VELOCITY0, VELOCITY1, VELOCITY2, VERSION, XC, XT, MIN_LENGTH, MAX_LENGTH, MEASURE_TIME) VALUES ('-11', '0', '0', '0', '0', '0', '0', '2.0000', '3.0000', '1.5', '0', '0', '0', '0', '0', '0', '0', '0', '0', '60', '400', '100') +INSERT INTO "SHARED_FB_PARAMS" (ID, BETA0, BETA1, BETA2, GAMMA0, GAMMA1, GAMMA2, LOW_FREQUENCY, HIGH_FREQUENCY,MIN_SNR, Q, S1, S2, VELOCITY0, VELOCITY1, VELOCITY2, VERSION, XC, XT, MIN_LENGTH, MAX_LENGTH, MEASURE_TIME) VALUES ('-12', '0', '0', '0', '0', '0', '0', '3.0000', '4.0000', '1.5', '0', '0', '0', '0', '0', '0', '0', '0', '0', '60', '400', '100') +INSERT INTO "SHARED_FB_PARAMS" (ID, BETA0, BETA1, BETA2, GAMMA0, GAMMA1, GAMMA2, LOW_FREQUENCY, HIGH_FREQUENCY,MIN_SNR, Q, S1, S2, VELOCITY0, VELOCITY1, VELOCITY2, VERSION, XC, XT, MIN_LENGTH, MAX_LENGTH, MEASURE_TIME) VALUES ('-13', '0', '0', '0', '0', '0', '0', '4.0000', '6.0000', '1.5', '0', '0', '0', '0', '0', '0', '0', '0', '0', '60', '400', '100') +INSERT INTO "SHARED_FB_PARAMS" (ID, BETA0, BETA1, BETA2, GAMMA0, GAMMA1, GAMMA2, LOW_FREQUENCY, HIGH_FREQUENCY,MIN_SNR, Q, S1, S2, VELOCITY0, VELOCITY1, VELOCITY2, VERSION, XC, XT, MIN_LENGTH, MAX_LENGTH, MEASURE_TIME) VALUES ('-14', '0', '0', '0', '0', '0', '0', '6.0000', '8.0000', '1.5', '0', '0', '0', '0', '0', '0', '0', '0', '0', '40', '350', '100') \ No newline at end of file diff --git a/calibration-service/integration/pom.xml b/calibration-service/integration/pom.xml index b575b146..95a67eb6 100644 --- a/calibration-service/integration/pom.xml +++ b/calibration-service/integration/pom.xml @@ -4,7 +4,7 @@ gov.llnl.gnem.apps.coda.calibration calibration-service - 1.0.2 + 1.0.3 4.0.0 integration diff --git a/calibration-service/model/pom.xml b/calibration-service/model/pom.xml index 664faa56..2ec908e0 100644 --- a/calibration-service/model/pom.xml +++ b/calibration-service/model/pom.xml @@ -4,7 +4,7 @@ gov.llnl.gnem.apps.coda.calibration calibration-service - 1.0.2 + 1.0.3 4.0.0 model diff --git a/calibration-service/pom.xml b/calibration-service/pom.xml index a1722732..28225592 100644 --- a/calibration-service/pom.xml +++ b/calibration-service/pom.xml @@ -9,7 +9,7 @@ gov.llnl.gnem.apps.coda.calibration coda-calibration - 1.0.2 + 1.0.3 diff --git a/calibration-service/repository/pom.xml b/calibration-service/repository/pom.xml index b0dc05f6..008a9353 100644 --- a/calibration-service/repository/pom.xml +++ b/calibration-service/repository/pom.xml @@ -4,7 +4,7 @@ gov.llnl.gnem.apps.coda.calibration calibration-service - 1.0.2 + 1.0.3 4.0.0 repository diff --git a/calibration-service/service-api/pom.xml b/calibration-service/service-api/pom.xml index a8c046f5..d22c3aed 100644 --- a/calibration-service/service-api/pom.xml +++ b/calibration-service/service-api/pom.xml @@ -4,7 +4,7 @@ gov.llnl.gnem.apps.coda.calibration calibration-service - 1.0.2 + 1.0.3 4.0.0 service.api diff --git a/calibration-service/service-impl/pom.xml b/calibration-service/service-impl/pom.xml index 89c0e5d3..db5d0fca 100644 --- a/calibration-service/service-impl/pom.xml +++ b/calibration-service/service-impl/pom.xml @@ -4,7 +4,7 @@ gov.llnl.gnem.apps.coda.calibration calibration-service - 1.0.2 + 1.0.3 4.0.0 service.impl diff --git a/calibration-service/service-impl/src/main/java/gov/llnl/gnem/apps/coda/calibration/service/impl/Joint1DPathCorrection.java b/calibration-service/service-impl/src/main/java/gov/llnl/gnem/apps/coda/calibration/service/impl/Joint1DPathCorrection.java index eb8f2f20..f92ba522 100644 --- a/calibration-service/service-impl/src/main/java/gov/llnl/gnem/apps/coda/calibration/service/impl/Joint1DPathCorrection.java +++ b/calibration-service/service-impl/src/main/java/gov/llnl/gnem/apps/coda/calibration/service/impl/Joint1DPathCorrection.java @@ -32,15 +32,17 @@ import org.apache.commons.math3.optim.InitialGuess; import org.apache.commons.math3.optim.MaxEval; import org.apache.commons.math3.optim.PointValuePair; +import org.apache.commons.math3.optim.SimpleBounds; import org.apache.commons.math3.optim.SimpleValueChecker; import org.apache.commons.math3.optim.nonlinear.scalar.GoalType; import org.apache.commons.math3.optim.nonlinear.scalar.ObjectiveFunction; -import org.apache.commons.math3.optim.nonlinear.scalar.noderiv.PowellOptimizer; +import org.apache.commons.math3.optim.nonlinear.scalar.noderiv.CMAESOptimizer; import org.apache.commons.math3.optim.univariate.BrentOptimizer; import org.apache.commons.math3.optim.univariate.SearchInterval; import org.apache.commons.math3.optim.univariate.UnivariateObjectiveFunction; import org.apache.commons.math3.optim.univariate.UnivariateOptimizer; import org.apache.commons.math3.optim.univariate.UnivariatePointValuePair; +import org.apache.commons.math3.random.MersenneTwister; import org.apache.commons.math3.stat.StatUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -93,6 +95,8 @@ public class Joint1DPathCorrection implements PathCalibrationService { private static final double SITE_MAX = 10.0; private static final double SITE_MIN = -10.0; + private static final int POP_SIZE = 10; + // Evids actually potentially need meta-data about p1,p2,q,xt,xc,etc per // evid in the future but for now they are common values for 1D. private double p1 = Math.log10(0.0001); @@ -216,20 +220,29 @@ public Map measurePathCorrections( optimizationLowBounds[i] = SITE_MIN; optimizationHighBounds[i] = SITE_MAX; } + + double[] sigmaArray = new double[optimizationParams.length]; + for (int i = 0; i < sigmaArray.length; i++) { + sigmaArray[i] = 1.; + } - // starting L1.2 residual - Double initialResidual = Math.pow(costFunction(freqBandData, dataMap, distanceMap, stationIdxMap, frequencyBand, optimizationParams) / totalDataCount, (1.0 / 1.2)); + // starting residual + Double initialResidual = Math.pow(costFunction(freqBandData, dataMap, distanceMap, stationIdxMap, frequencyBand, optimizationParams) / totalDataCount, (1.0 / 2.0)); PointValuePair optimizedResult = IntStream.range(0, STARTING_POINTS).parallel().mapToObj(i -> { ConvergenceChecker convergenceChecker = new SimpleValueChecker(TOLERANCE, TOLERANCE); - PowellOptimizer optimizer = new PowellOptimizer(TOLERANCE, TOLERANCE, convergenceChecker); + CMAESOptimizer optimizer = new CMAESOptimizer(1000000, TOLERANCE, true, 0, 10, new MersenneTwister(), true, convergenceChecker); + MultivariateFunction prediction = new ESHPathMultivariate(freqBandData, dataMap, distanceMap, stationIdxMap, frequencyBand); PointValuePair opt = null; try { - opt = optimizer.optimize(new MaxEval(2000000), + opt = optimizer.optimize(new MaxEval(1000000), new ObjectiveFunction(prediction), GoalType.MINIMIZE, - new InitialGuess(perturbParams(optimizationLowBounds, optimizationHighBounds))); + new SimpleBounds(optimizationLowBounds, optimizationHighBounds), + new InitialGuess(perturbParams(optimizationLowBounds, optimizationHighBounds)), + new CMAESOptimizer.PopulationSize(POP_SIZE), + new CMAESOptimizer.Sigma(sigmaArray)); } catch (TooManyEvaluationsException e) { } return opt; @@ -242,9 +255,9 @@ public Map measurePathCorrections( optimizationParams = optimizedResult.getPoint(); } - // final L1.2 residual + // final residual PathCostFunctionResult finalResults = costFunctionFull(freqBandData, dataMap, distanceMap, stationIdxMap, frequencyBand, optimizationParams); - Double finalResidual = Math.pow(finalResults.getCost() / totalDataCount, (1.0 / 1.2)); + Double finalResidual = Math.pow(finalResults.getCost() / totalDataCount, (1.0 / 2.0)); PathCalibrationMeasurement measurement = new PathCalibrationMeasurement(); measurement.setInitialResidual(initialResidual); @@ -331,7 +344,7 @@ private Map>> removeS } /** - * L1.2 cost function for use in optimization code. Extended Street-Herrmann + * cost function for use in optimization code. Extended Street-Herrmann * spreading model, no Q. */ public double costFunction(Map> evidStaData, Map> dataMap, Map> distanceMap, @@ -378,7 +391,7 @@ public PathCostFunctionResult costFunctionFull(Map 1) { double dmed = lpMean(ArrayUtils.toPrimitive(dataVec.toArray(new Double[0]))); for (Entry entry : stationMapData.entrySet()) { - rsum = rsum + Math.pow(Math.abs(localDataMap.get(evid).get(entry.getKey()) - dmed), 1.2); + rsum = rsum + Math.pow(Math.abs(localDataMap.get(evid).get(entry.getKey()) - dmed), 2.0); if (!residuals.containsKey(evid)) { residuals.put(evid, new HashMap()); } @@ -455,7 +468,7 @@ private double lpMean(final double[] values) { } else { UnivariateOptimizer optimizer = new BrentOptimizer(1e-10, 1e-14); UnivariatePointValuePair result = optimizer.optimize(new UnivariateObjectiveFunction(x -> xlpSum(values, x)), - new MaxEval(1000000), + new MaxEval(10000), GoalType.MINIMIZE, new SearchInterval(xmin, xmax, xstart)); mean = result.getPoint(); @@ -466,7 +479,7 @@ private double lpMean(final double[] values) { private double xlpSum(double[] x, double x0) { double sum = 0.0; for (int i = 0; i < x.length; i++) { - sum = sum + Math.pow(Math.abs(x[i] - x0), 1.2); + sum = sum + Math.pow(Math.abs(x[i] - x0), 2.0); } return sum; } diff --git a/calibration-service/service-impl/src/main/java/gov/llnl/gnem/apps/coda/calibration/service/impl/processing/MaxVelocityCalculator.java b/calibration-service/service-impl/src/main/java/gov/llnl/gnem/apps/coda/calibration/service/impl/processing/MaxVelocityCalculator.java index c428c655..a7f5c411 100644 --- a/calibration-service/service-impl/src/main/java/gov/llnl/gnem/apps/coda/calibration/service/impl/processing/MaxVelocityCalculator.java +++ b/calibration-service/service-impl/src/main/java/gov/llnl/gnem/apps/coda/calibration/service/impl/processing/MaxVelocityCalculator.java @@ -71,9 +71,9 @@ public Collection computeMaximumVelocity(List // cut the coda window portion of the seismograms waveform.cut(starttime, endtime); - double min_length = 50.; + double min_length = 25.; if (endtime.subtract(starttime).getEpochTime() < min_length) { - log.trace("Coda window length too short: {}", endtime.subtract(starttime).getEpochTime()); + log.info("Coda window length too short: {}", endtime.subtract(starttime).getEpochTime()); } // peakS[0] time in seconds for diff --git a/calibration-service/service-impl/src/main/java/gov/llnl/gnem/apps/coda/calibration/service/impl/processing/ShapeCalculator.java b/calibration-service/service-impl/src/main/java/gov/llnl/gnem/apps/coda/calibration/service/impl/processing/ShapeCalculator.java index 420399cf..f72cf6b9 100644 --- a/calibration-service/service-impl/src/main/java/gov/llnl/gnem/apps/coda/calibration/service/impl/processing/ShapeCalculator.java +++ b/calibration-service/service-impl/src/main/java/gov/llnl/gnem/apps/coda/calibration/service/impl/processing/ShapeCalculator.java @@ -71,7 +71,7 @@ public List fitShapelineToMeasuredEnvelopes(Collection gov.llnl.gnem.apps.coda.calibration coda-calibration - 1.0.2 + 1.0.3 4.0.0 @@ -72,12 +72,12 @@ gov.llnl.gnem.apps.coda.calibration calibration-gui - 1.0.2 + 1.0.3 gov.llnl.gnem.apps.coda.calibration application - 1.0.2 + 1.0.3 diff --git a/externals/pom.xml b/externals/pom.xml index 2e68ed3e..bffd9b9c 100644 --- a/externals/pom.xml +++ b/externals/pom.xml @@ -5,7 +5,7 @@ gov.llnl.gnem.apps.coda.calibration externals - 1.0.2 + 1.0.3 jar externals diff --git a/logo.gif b/logo.gif deleted file mode 100644 index 5fde177ad77b4ba29cc1489a3e44e87cffa92c35..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9229 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 diff --git a/pom.xml b/pom.xml index d3de36d7..1c7b54ee 100644 --- a/pom.xml +++ b/pom.xml @@ -5,7 +5,7 @@ 4.0.0 gov.llnl.gnem.apps.coda.calibration coda-calibration - 1.0.2 + 1.0.3 coda-calibration pom @@ -49,7 +49,7 @@ gov.llnl.gnem.apps.coda.calibration externals - 1.0.2 + 1.0.3 org.springframework.boot