diff --git a/src/main/java/gov/usgs/earthquake/nshmp/www/gmm/GmmService.java b/src/main/java/gov/usgs/earthquake/nshmp/www/gmm/GmmService.java index f9c9790405b19a92cb08ec184c3b08692a64b261..e1b737a2ef2dda0c087fe57fa7c283036ec77e23 100644 --- a/src/main/java/gov/usgs/earthquake/nshmp/www/gmm/GmmService.java +++ b/src/main/java/gov/usgs/earthquake/nshmp/www/gmm/GmmService.java @@ -59,11 +59,15 @@ class GmmService { XyDataGroup means; XyDataGroup sigmas; - private Response(Id service) { + private Response(Id service, Optional<Imt> imt) { + String yLabelMedian = imt.isPresent() + ? String.format("%s (%s)", service.yLabelMedian, imt.get().units()) + : service.yLabelMedian; + means = XyDataGroup.create( service.groupNameMean, service.xLabel, - service.yLabelMedian); + yLabelMedian); sigmas = XyDataGroup.create( service.groupNameSigma, @@ -73,9 +77,10 @@ class GmmService { static Response create( Id service, - Map<Gmm, GmmData> result) { + Map<Gmm, GmmData> result, + Optional<Imt> imt) { - Response response = new Response(service); + Response response = new Response(service, imt); for (Entry<Gmm, GmmData> entry : result.entrySet()) { Gmm gmm = entry.getKey(); @@ -90,7 +95,6 @@ class GmmService { // If we have a GMM with a single GroundMotion branch, // then the DataGroup branch list is empty if (!data.tree.isEmpty()) { - boolean hasSigmaBranches = data.tree.get(0).id.contains(" : "); μEpi = data.tree.stream() @@ -109,6 +113,7 @@ class GmmService { response.means.add(gmm.name(), gmm.toString(), μTotal, μEpi); response.sigmas.add(gmm.name(), gmm.toString(), σTotal, sigmaEpi); } + return response; } } @@ -117,7 +122,7 @@ class GmmService { static HttpResponse<String> process(Request request) { Map<Gmm, GmmData> spectra = GmmCalc.spectra(request, false); - Response response = Response.create(request.serviceId, spectra); + Response response = Response.create(request.serviceId, spectra, Optional.empty()); var body = ResponseBody.success() .name(request.serviceId.name) .url(request.http.getUri().getPath()) @@ -142,7 +147,7 @@ class GmmService { double[] rArray = distanceArray(request); Map<Gmm, GmmData> gmvr = GmmCalc.distance(request, rArray); - Response response = Response.create(request.serviceId, gmvr); + Response response = Response.create(request.serviceId, gmvr, Optional.of(request.imt)); var body = ResponseBody.success() .name(request.serviceId.name) .url(request.http.getUri().getPath()) @@ -199,7 +204,7 @@ class GmmService { request.mMin, request.mMax, request.step); Map<Gmm, GmmData> gmvm = GmmCalc.magnitude(request, mArray, request.distance); - Response response = Response.create(request.serviceId, gmvm); + Response response = Response.create(request.serviceId, gmvm, Optional.of(request.imt)); var body = ResponseBody.success() .name(request.serviceId.name) .url(request.http.getUri().getPath()) @@ -293,7 +298,7 @@ class GmmService { "Means", "Sigmas", "Distance (km)", - "Median ground motion (g)", + "Median ground motion", "Standard deviation"), HW_FW( @@ -303,7 +308,7 @@ class GmmService { "Means", "Sigmas", "Distance (km)", - "Median ground motion (g)", + "Median ground motion", "Standard deviation"), MAGNITUDE( @@ -313,7 +318,7 @@ class GmmService { "Means", "Sigmas", "Magnitude", - "Median ground motion (g)", + "Median ground motion", "Standard deviation"), SPECTRA(