diff --git a/.gitignore b/.gitignore index 9cbbe5b5883e1856a942be118a737a9b86874e58..dab00aa60f6758ecef4da1d4b823146b4b16c659 100644 --- a/.gitignore +++ b/.gitignore @@ -21,3 +21,5 @@ webapp/config.json config.properties swagger-files libs +.factorypath +.apt_* diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 871d4f194ab19e8646f305e226632c8a2a11e1f9..971caf9423534d86ef99c6bcd841ebe5bd09ced3 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -25,13 +25,8 @@ stages: #### .templates: install-aws: &install-aws |- - apk -v --update add --no-cache python py-pip groff; + apk -v --update add --no-cache python3 py-pip groff; pip install awscli; - nshmp-lib: &nshmp-lib |- - cd ..; - rm -rf ${NSHMP_LIB}; - git clone ${NSHMP_LIB_GIT}; - cd ${CI_PROJECT_NAME}; static-data: &static-data |- STATIC_DATA=" ${DATA_CONUS_2018A} @@ -147,7 +142,7 @@ Unit Tests: image: gradle:jdk11 extends: .dev-tags only: - - branch + - branches - master@ghsc/nshmp/nshmp-netcdf - tags@ghsc/nshmp/nshmp-netcdf coverage: '/Total.*?([0-9]{1,3})%/' diff --git a/build.gradle b/build.gradle index 0e5d706b97dd7e0ba9d7b2d7a1e28ec245de9aae..4afb7b48952a215e2896070a5f3b989961abbf0e 100644 --- a/build.gradle +++ b/build.gradle @@ -1,13 +1,13 @@ plugins { id "application" - id "com.diffplug.gradle.spotless" version "3.27.1" - id "com.github.johnrengelman.shadow" version "5.2.0" - id "com.github.spotbugs" version "3.0.0" - id "com.star-zero.gradle.githook" version "1.2.0" + id "com.diffplug.gradle.spotless" version "${spotlessVersion}" + id "com.github.johnrengelman.shadow" version "${shadowVersion}" + id "com.github.spotbugs" version "${spotbugsVersion}" + id "com.star-zero.gradle.githook" version "${githooksVersion}" id "eclipse-wtp" id "jacoco" id "java" - id "net.ltgt.apt-eclipse" version "0.21" + id "net.ltgt.apt-eclipse" version "${aptEclipseVersion}" } sourceCompatibility = JavaVersion.VERSION_11 @@ -26,7 +26,7 @@ repositories { git { implementation("https://code.usgs.gov/ghsc/nshmp/nshmp-lib.git", { name "nshmp-netcdf-dep--nshmp-lib" - tag "v0.0.5" + tag "v0.1.1" }) } @@ -106,11 +106,12 @@ tasks.withType(JavaExec) { } /* Add HTML reports to SpotBugs */ -tasks.withType(com.github.spotbugs.SpotBugsTask) { - ignoreFailures = false // TODO remove when nshmp-lib is updated +tasks.withType(com.github.spotbugs.snom.SpotBugsTask) { reports { - xml.enabled = false - html.enabled = true + html { + enabled true + stylesheet = 'fancy-hist.xsl' + } } } diff --git a/gradle.properties b/gradle.properties index 17f0e3514c60deaffdf5c3d95699838c9d2e5c59..068b7622f8e15ba7f7c5ab339f417dc153c60778 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,9 +1,14 @@ +aptEclipseVersion = 0.21 cdmVersion = 5.1.0 +githooksVersion = 1.2.0 jacksonVersion = 2.9.0 junitVersion = 5.5.2 logbackVersion = 1.2.3 +mnOpenAPIVersion = 1.4.0 mnVersion = 1.3.2 netcdfVersion = 5.1.0 +shadowVersion = 5.2.0 slfVersion = 1.7.30 +spotbugsVersion = 4.2.4 +spotlessVersion = 4.1.0 swaggerVersion = 2.1.1 -mnOpenAPIVersion = 1.4.0 diff --git a/src/main/java/gov/usgs/earthquake/nshmp/netcdf/SiteClass.java b/src/main/java/gov/usgs/earthquake/nshmp/netcdf/SiteClass.java index d6a2d54ad164727e153757a9b8160e3f13109904..96eb4d3cf7060c6e61b1da01a8df9a7567595349 100644 --- a/src/main/java/gov/usgs/earthquake/nshmp/netcdf/SiteClass.java +++ b/src/main/java/gov/usgs/earthquake/nshmp/netcdf/SiteClass.java @@ -5,10 +5,10 @@ import java.util.Arrays; /** * This should be imported. For now, it is copied from * nshmp-haz-v2/src/gov.usgs.earthquake.nshmp.site.NehrpSiteClass.java - * + * * Placeholder enum for likely move to Nehrp site class identifier instead of * Vs30. - * + * * <p>These site class identifiers map to NEHRP site clases, but the intent is * that they can be used more generally for models in other parts of the world * where the GMMs are not necessarily parameterized in terms of vs30 to define @@ -19,24 +19,24 @@ import java.util.Arrays; * are supported (in 2018) across the entire U.S., there have been changes * proposed for balloting by the BSSC to make the Vs30 definitions of site * classes consistent in how they are calculated. - * + * * @author Peter Powers */ public enum SiteClass { /* * Notes on calculation of Vs30 for site class: - * + * * Question: Why is it that the soil shear wave velocity shown in the Unified * Hazard Tool is not equal to the average of the values shown in ASCE 7-10 * table 20.3-1? - * + * * For instance: 259 m/s (Site Class D), from the Unified Hazard Tool, is not * equal to (600 ft/s + 1200 ft/s)/2 * .3048 = 274 m/s - * + * * Answer (Sanaz): we take the geometric mean: sqrt(1200*600)*0.3048 = * 258.6314 , which rounds to 259m/s. - * + * * */ @@ -86,7 +86,7 @@ public enum SiteClass { /** * Returns a {@code SiteClass} associated with the vs30. - * + * * @param vs30 The vs30 of the site class */ public static SiteClass ofValue(int vs30) { diff --git a/src/main/java/gov/usgs/earthquake/nshmp/netcdf/reader/BoundingHazardsReader.java b/src/main/java/gov/usgs/earthquake/nshmp/netcdf/reader/BoundingHazardsReader.java index 338f0664003be437eeac47f3a64062bd9e95bd8d..cdf0c9d4a0c5e189a4692fb525cd8a34614c79cf 100644 --- a/src/main/java/gov/usgs/earthquake/nshmp/netcdf/reader/BoundingHazardsReader.java +++ b/src/main/java/gov/usgs/earthquake/nshmp/netcdf/reader/BoundingHazardsReader.java @@ -18,7 +18,7 @@ import ucar.nc2.dataset.NetcdfDataset; /** * Container for gridded hazard curves at four closest grid points to target - * + * * @author U.S. Geological Survey */ public class BoundingHazardsReader { @@ -202,7 +202,7 @@ public class BoundingHazardsReader { final int[] origin; BoundingLocation(double longitude, double latitude, int longitudeIndex, int latitudeIndex) { - location = Location.create(latitude, longitude); + location = Location.create(longitude, latitude); origin = new int[] { 0, 0, latitudeIndex, longitudeIndex, 0 }; } } diff --git a/src/main/java/gov/usgs/earthquake/nshmp/netcdf/reader/NetcdfUtils.java b/src/main/java/gov/usgs/earthquake/nshmp/netcdf/reader/NetcdfUtils.java index dfd4f874f7117dca03d0f22a3383826bc1d3dd2a..503b8f742abd39a27d27d9f30e4d2144909b0541 100644 --- a/src/main/java/gov/usgs/earthquake/nshmp/netcdf/reader/NetcdfUtils.java +++ b/src/main/java/gov/usgs/earthquake/nshmp/netcdf/reader/NetcdfUtils.java @@ -23,7 +23,7 @@ public class NetcdfUtils { /** * Creates a border going clockwise of the given longitudes and latitudes. - * + * * @param longitudes The longitudes * @param latitudes The latitudes * @return @@ -32,20 +32,20 @@ public class NetcdfUtils { var builder = LocationList.builder(); for (var lat : latitudes) { - builder.add(lat, longitudes[0]); + builder.add(longitudes[0], lat); } // omit duplicate points at corners for (var i = 1; i < longitudes.length; i++) { - builder.add(latitudes[latitudes.length - 1], longitudes[i]); + builder.add(longitudes[i], latitudes[latitudes.length - 1]); } for (var i = latitudes.length - 2; i >= 0; i--) { - builder.add(latitudes[i], longitudes[longitudes.length - 1]); + builder.add(longitudes[longitudes.length - 1], latitudes[i]); } for (var i = longitudes.length - 2; i >= 0; i--) { - builder.add(latitudes[0], longitudes[i]); + builder.add(longitudes[i], latitudes[0]); } return builder.build(); @@ -53,7 +53,7 @@ public class NetcdfUtils { /** * Returns a {@code double[]} from a netCDF group - * + * * @param group The netCDF group * @param key The key to read from the group * @throws IOException @@ -64,7 +64,7 @@ public class NetcdfUtils { /** * Returns a {@code int[]} from a netCDF group - * + * * @param group The netCDF group * @param key The key to read from the group * @throws IOException @@ -75,7 +75,7 @@ public class NetcdfUtils { /** * Get a 1D array from a netCDF group. - * + * * @param group The netCDF group * @param key The key to read from the group * @param dataType The data type to read @@ -186,8 +186,8 @@ public class NetcdfUtils { /** * Checks bounding hazard maps contain the same: Site classes, IMTs per each * site class, and ground motions per each IMT - * - * + * + * * @param boundingHazards The bounding hazards */ static void checkBoundingHazards( @@ -204,7 +204,7 @@ public class NetcdfUtils { /** * Check whether bounding hazards contain the same: Site classes, IMTs per * each site class, and ground motions per each IMT - * + * * @param a Bounding hazard map A * @param b Bounding hazard map B */ @@ -219,7 +219,7 @@ public class NetcdfUtils { /** * Check whether hazards contain the same: IMTs and ground motions per each * IMT - * + * * @param a Hazard A * @param b Hazard B */ @@ -231,7 +231,7 @@ public class NetcdfUtils { /** * Check that the X values are identical. - * + * * @param a Sequence A * @param b Sequence B */ diff --git a/src/main/java/gov/usgs/earthquake/nshmp/netcdf/swagger/UpdateSwagger.java b/src/main/java/gov/usgs/earthquake/nshmp/netcdf/swagger/UpdateSwagger.java index 9f70441a2e2b89bab4c85ffe6a1dad919b0caec6..8da40c2fd24c09f5a5fc974eb020f87c0a804d6f 100644 --- a/src/main/java/gov/usgs/earthquake/nshmp/netcdf/swagger/UpdateSwagger.java +++ b/src/main/java/gov/usgs/earthquake/nshmp/netcdf/swagger/UpdateSwagger.java @@ -19,7 +19,7 @@ import io.swagger.v3.oas.models.PathItem; /** * Create Swagger files for each model and update context path. - * + * * @author U.S. Geological Survey */ class UpdateSwagger { diff --git a/src/main/java/gov/usgs/earthquake/nshmp/netcdf/www/NetcdfController.java b/src/main/java/gov/usgs/earthquake/nshmp/netcdf/www/NetcdfController.java index b438e8574df7b66dbfcd9b3b951ed4cdd802e748..c5625d1f7b25e9aba44df840bb97f7d5b85c23f9 100644 --- a/src/main/java/gov/usgs/earthquake/nshmp/netcdf/www/NetcdfController.java +++ b/src/main/java/gov/usgs/earthquake/nshmp/netcdf/www/NetcdfController.java @@ -28,9 +28,9 @@ import io.swagger.v3.oas.annotations.tags.Tag; /** * Micronaut controller for getting static hazards for a specific * {@code NshmGroup} from a NetCDF file. - * + * * @see NetcdfService - * + * * @author U.S. Geological Survey */ @Tag(name = "Hazard Data") @@ -48,7 +48,7 @@ public class NetcdfController { /** * GET method to return the usage information on the NetCDF web service. - * + * * @param request The HTTP request */ @Operation( @@ -67,7 +67,7 @@ public class NetcdfController { /** * GET method to return a hazard curve using URL query. - * + * * @param request The HTTP request * @param longitude The longitude of the site * @param latitude Latitude of the site @@ -98,7 +98,7 @@ public class NetcdfController { /** * GET method to return a hazard curve using slash delimited. - * + * * @param request The HTTP request * @param longitude The longitude of the site * @param latitude Latitude of the site @@ -127,7 +127,7 @@ public class NetcdfController { /** * GET method to return hazard curves using slash delimited. - * + * * @param request The HTTP request * @param longitude The longitude of the site * @param latitude Latitude of the site @@ -154,7 +154,7 @@ public class NetcdfController { /** * GET method to return hazard curves using slash delimited. - * + * * @param request The HTTP request * @param longitude The longitude of the site * @param latitude Latitude of the site @@ -179,7 +179,7 @@ public class NetcdfController { /** * Returns the border as a GeoJSON feature collections. - * + * * @param request The HTTP request */ @Operation( @@ -199,7 +199,7 @@ public class NetcdfController { /** * GET method to return the bounding hazards using URL query. - * + * * @param request The HTTP request * @param longitude The longitude * @param latitude The latitude @@ -217,7 +217,7 @@ public class NetcdfController { /** * GET method to return the bounding hazards using slash delimited. - * + * * @param request The HTTP request * @param longitude The longitude * @param latitude The latitude diff --git a/src/main/java/gov/usgs/earthquake/nshmp/netcdf/www/NetcdfService.java b/src/main/java/gov/usgs/earthquake/nshmp/netcdf/www/NetcdfService.java index 003f2c3d07204b05218f97cabd7b769fd0f802ef..72102fcfc77967f151592d3ec6da11738cd273fb 100644 --- a/src/main/java/gov/usgs/earthquake/nshmp/netcdf/www/NetcdfService.java +++ b/src/main/java/gov/usgs/earthquake/nshmp/netcdf/www/NetcdfService.java @@ -31,9 +31,9 @@ import io.micronaut.http.HttpResponse; /** * Service handler for {@code NetcdfController}. - * + * * @see NetcdfController - * + * * @author U.S. Geological Survey */ public class NetcdfService { @@ -254,7 +254,7 @@ public class NetcdfService { Location site; RequestData(double longitude, double latitude) { - site = Location.create(latitude, longitude); + site = Location.create(longitude, latitude); } } diff --git a/src/main/resources/logback.xml b/src/main/resources/logback.xml index f7f49d44d2952daea8299b55ab83db65c8952f46..f74e41693090ae1b24cabe0642f4ec814564c4a1 100644 --- a/src/main/resources/logback.xml +++ b/src/main/resources/logback.xml @@ -3,7 +3,7 @@ <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <withJansi>true</withJansi> - <!-- encoders are assigned the type ch.qos.logback.classic.encoder.PatternLayoutEncoder + <!-- encoders are assigned the type ch.qos.logback.classic.encoder.PatternLayoutEncoder by default --> <encoder> <pattern>%cyan(%d{HH:mm:ss.SSS}) %gray([%thread]) diff --git a/src/test/java/gov/usgs/earthquake/nshmp/netcdf/NshmNetcdfReaderTests.java b/src/test/java/gov/usgs/earthquake/nshmp/netcdf/NshmNetcdfReaderTests.java index 157504f786b00aeb5e8cb960ffbf7d332651b691..1f07aafe4570bd9a08ea166a0e15aae4260bf401 100644 --- a/src/test/java/gov/usgs/earthquake/nshmp/netcdf/NshmNetcdfReaderTests.java +++ b/src/test/java/gov/usgs/earthquake/nshmp/netcdf/NshmNetcdfReaderTests.java @@ -41,17 +41,17 @@ public class NshmNetcdfReaderTests { public static final double IML_TOL = 1e-6; static final double HAZ_TOL = 1e-8; - static final Location TARGET_LOCATION = Location.create(39.213, -105.234); + static final Location TARGET_LOCATION = Location.create(-105.234, 39.213); public static final double[] EXPECTED_LONGITUDES = new double[] { -105.3, -105.25, -105.2, -105.15 }; public static final double[] EXPECTED_LATITUDES = new double[] { 39.15, 39.2, 39.25, 39.3 }; static final LocationList BOUNDING_LOCATIONS = LocationList.builder() - .add(EXPECTED_LATITUDES[1], EXPECTED_LONGITUDES[1]) - .add(EXPECTED_LATITUDES[2], EXPECTED_LONGITUDES[1]) - .add(EXPECTED_LATITUDES[2], EXPECTED_LONGITUDES[2]) - .add(EXPECTED_LATITUDES[1], EXPECTED_LONGITUDES[2]) + .add(EXPECTED_LONGITUDES[1], EXPECTED_LATITUDES[1]) + .add(EXPECTED_LONGITUDES[1], EXPECTED_LATITUDES[2]) + .add(EXPECTED_LONGITUDES[2], EXPECTED_LATITUDES[2]) + .add(EXPECTED_LONGITUDES[2], EXPECTED_LATITUDES[1]) .build(); static final LocationList LOCATIONS = LocationList.builder() diff --git a/src/test/java/gov/usgs/earthquake/nshmp/netcdf/reader/NetcdfUtilsTests.java b/src/test/java/gov/usgs/earthquake/nshmp/netcdf/reader/NetcdfUtilsTests.java index 9e0f818a5856aac68584779c430ed4d6dbb57100..1a21d02b6829e6390993b71edd647f257633f0d0 100644 --- a/src/test/java/gov/usgs/earthquake/nshmp/netcdf/reader/NetcdfUtilsTests.java +++ b/src/test/java/gov/usgs/earthquake/nshmp/netcdf/reader/NetcdfUtilsTests.java @@ -45,11 +45,11 @@ class NetcdfUtilsTests { static { BORDER_LOCATIONS = LocationList.builder() - .add(BORDER_LATITUDES[0], BORDER_LONGITUDES[0]) - .add(BORDER_LATITUDES[1], BORDER_LONGITUDES[0]) - .add(BORDER_LATITUDES[1], BORDER_LONGITUDES[1]) - .add(BORDER_LATITUDES[0], BORDER_LONGITUDES[1]) - .add(BORDER_LATITUDES[0], BORDER_LONGITUDES[0]) + .add(BORDER_LONGITUDES[0], BORDER_LATITUDES[0]) + .add(BORDER_LONGITUDES[0], BORDER_LATITUDES[1]) + .add(BORDER_LONGITUDES[1], BORDER_LATITUDES[1]) + .add(BORDER_LONGITUDES[1], BORDER_LATITUDES[0]) + .add(BORDER_LONGITUDES[0], BORDER_LATITUDES[0]) .build(); var siteClasses = List.of(SiteClass.B, SiteClass.C, SiteClass.D);