From 54d60a1cd448e5d070ec1cbbb8c370999c60d89e Mon Sep 17 00:00:00 2001 From: Brandon Clayton <bclayton@usgs.gov> Date: Thu, 17 Feb 2022 14:04:58 -0700 Subject: [PATCH] Match to dynamic response --- .../nshmp/netcdf/www/NetcdfService.java | 41 ++++++++++++++----- 1 file changed, 31 insertions(+), 10 deletions(-) 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 f8cdb7a..718b08a 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 @@ -2,17 +2,18 @@ package gov.usgs.earthquake.nshmp.netcdf.www; import static gov.usgs.earthquake.nshmp.netcdf.www.NetcdfWsUtils.GSON; -import java.util.List; +import java.util.Map; import java.util.logging.Logger; +import gov.usgs.earthquake.nshmp.Maths; import gov.usgs.earthquake.nshmp.data.XySequence; -import gov.usgs.earthquake.nshmp.geo.Bounds; import gov.usgs.earthquake.nshmp.geo.Location; import gov.usgs.earthquake.nshmp.gmm.NehrpSiteClass; import gov.usgs.earthquake.nshmp.netcdf.Netcdf; import gov.usgs.earthquake.nshmp.netcdf.data.ScienceBaseMetadata; import gov.usgs.earthquake.nshmp.netcdf.www.NetcdfController.Query; import gov.usgs.earthquake.nshmp.netcdf.www.NetcdfController.Service; +import gov.usgs.earthquake.nshmp.netcdf.www.meta.DoubleParameter; import gov.usgs.earthquake.nshmp.www.Response; import io.micronaut.http.HttpRequest; @@ -126,7 +127,7 @@ public abstract class NetcdfService { final String description; final String[] syntax; final String netcdfFile; - final Parameters parameters; + final Parameters model; final ScienceBaseMetadata scienceBaseMetadata; Metadata(HttpRequest<?> request, String description) { @@ -134,25 +135,45 @@ public abstract class NetcdfService { url = url.endsWith("/") ? url.substring(0, url.length() - 1) : url; this.description = description; scienceBaseMetadata = netcdf().netcdfData().scienceBaseMetadata(); - netcdfFile = netcdf().netcdfPath().toString(); + netcdfFile = netcdf().netcdfPath().getFileName().toString(); syntax = new String[] { url + "/{longitude:number}/{latitude:number}", url + "?longitude={number}&latitude={number}", url + "/{longitude:number}/{latitude:number}/{siteClass:NehrpSiteClass}", url + "?longitude={number}&latitude={number}&siteClass={NehrpSiteClass}", }; - parameters = new Parameters(); + model = new Parameters(); } } class Parameters { - final Bounds bounds; - final List<NehrpSiteClass> siteClasses; + final String name; + final DoubleParameter longitude; + final DoubleParameter latitude; + final Map<NehrpSiteClass, Double> siteClasses; + final DoubleParameter vs30; Parameters() { - var coordinates = netcdf().netcdfData(); - bounds = coordinates.bounds(); - siteClasses = coordinates.siteClasses(); + var netcdfData = netcdf().netcdfData(); + var bounds = netcdfData.bounds(); + + name = netcdfData.scienceBaseMetadata().label; + longitude = new DoubleParameter( + "Longitude", + "°", + Maths.round(bounds.min.longitude, 3), + Maths.round(bounds.max.longitude, 3)); + latitude = new DoubleParameter( + "Latitude", + "°", + Maths.round(bounds.min.latitude, 3), + Maths.round(bounds.max.latitude, 3)); + siteClasses = netcdfData.vs30Map(); + vs30 = new DoubleParameter( + "Vs30", + "m/s", + 150, + 1500); } } -- GitLab