From 836c82d790a271e6c986966c48d02f76063ae854 Mon Sep 17 00:00:00 2001 From: Peter Powers <pmpowers@usgs.gov> Date: Mon, 14 Nov 2022 14:24:24 -0700 Subject: [PATCH 01/17] increment lib --- gradle.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle.properties b/gradle.properties index 935b741d..c2233801 100644 --- a/gradle.properties +++ b/gradle.properties @@ -11,7 +11,7 @@ micronautVersion = 3.2.3 micronautRxVersion = 2.1.1 nodePluginVersion = 3.0.1 nodeVersion = 16.3.0 -nshmpLibVersion = 1.2.2 +nshmpLibVersion = 1.2.6 nshmpWsUtilsVersion = 0.3.11 openApiVersion = 4.0.0 shadowVersion = 7.1.2 -- GitLab From 3a1667b308b91b187d17c038993d13bfd8346c92 Mon Sep 17 00:00:00 2001 From: Peter Powers <pmpowers@usgs.gov> Date: Mon, 14 Nov 2022 14:25:59 -0700 Subject: [PATCH 02/17] matlab and doc edits --- docs/pages/Site-Specification.md | 5 ++--- etc/matlab/gmmExample.m | 1 - etc/matlab/response_spectra.m | 8 +++----- .../gov/usgs/earthquake/nshmp/DisaggCalc.java | 19 +++++++++---------- .../earthquake/nshmp/www/meta/MetaUtil.java | 1 - 5 files changed, 14 insertions(+), 20 deletions(-) diff --git a/docs/pages/Site-Specification.md b/docs/pages/Site-Specification.md index 2032f237..544130a5 100644 --- a/docs/pages/Site-Specification.md +++ b/docs/pages/Site-Specification.md @@ -15,9 +15,9 @@ defaults are used: ```text name: Unnamed vs30: 760.0 - vsInf: true z1p0: null (GMM will use default basin depth model) z2p5: null (GMM will use default basin depth model) + zSed: null ``` For basin depth parameters `z1p0` and `z2p5`, a `null` value indicates that a GMM should use @@ -27,7 +27,7 @@ it's 'default' basin depth scale factor, which is usually included in it's Vs30 * Header row must identify columns. * Valid and [optional] column names are: - `[name,] lon, lat [, vs30] [, vsInf] [, z1p0] [, z2p5]` + `[name,] lon, lat [, vs30] [, z1p0] [, z2p5]` * At a minimum, `lon` and `lat` must be defined. * Columns can be in any order and any missing fields will be populated with the default values listed above. @@ -57,7 +57,6 @@ A site list is expected as a `FeatureCollection` of `Point` features. For exampl "properties": { "title": "Oakland CA", "vs30": 760.0, - "vsInf": true, "z1p0": 0.048, "z2p5": 0.607 } diff --git a/etc/matlab/gmmExample.m b/etc/matlab/gmmExample.m index 22cbd363..ef643803 100644 --- a/etc/matlab/gmmExample.m +++ b/etc/matlab/gmmExample.m @@ -49,7 +49,6 @@ input.zTop = 1.0; % in km input.zHyp = 6.0; % in km input.rake = 0.0; % in degrees input.vs30 = 760.0; % in m/s -input.vsInf = true; % boolean input.z2p5 = NaN; % in km; NaN triggers default basin depth model input.z1p0 = NaN; % in km; NaN triggers default basin depth model diff --git a/etc/matlab/response_spectra.m b/etc/matlab/response_spectra.m index a0943694..bb9bc73c 100644 --- a/etc/matlab/response_spectra.m +++ b/etc/matlab/response_spectra.m @@ -31,13 +31,12 @@ rJB = 10; rRup = 10.012; rX = 10; vs30 = 760; -vsInf = true; zHyp = 7.5; zTop = 0.5; url = createUrl( ... urlbase, gmms, ... - Mw, dip, rake, width, rJB, rRup, rX, vs30, vsInf, zHyp, zTop); + Mw, dip, rake, width, rJB, rRup, rX, vs30, zHyp, zTop); %% Call web service % Open a browser window with the web service URL to show the JSON response @@ -116,7 +115,7 @@ set(l, 'Interpreter', 'none') function url = createUrl( ... urlbase, gmms, ... - Mw, dip, rake, width, rJB, rRup, rX, vs30, vsInf, zHyp, zTop) + Mw, dip, rake, width, rJB, rRup, rX, vs30, zHyp, zTop) url = urlbase; for i = 1:size(gmms, 2) @@ -135,7 +134,6 @@ function url = createUrl( ... "&rRup=" + num2str(rRup) + ... "&rX=" + num2str(rX) + ... "&vs30=" + num2str(vs30) + ... - "&vsInf=" + string(vsInf) + ... "&zHyp=" + num2str(zHyp) + ... "&zTop=" + num2str(zTop); -end \ No newline at end of file +end diff --git a/src/main/java/gov/usgs/earthquake/nshmp/DisaggCalc.java b/src/main/java/gov/usgs/earthquake/nshmp/DisaggCalc.java index c98ce870..0c726e19 100644 --- a/src/main/java/gov/usgs/earthquake/nshmp/DisaggCalc.java +++ b/src/main/java/gov/usgs/earthquake/nshmp/DisaggCalc.java @@ -70,34 +70,34 @@ public class DisaggCalc { /** * Entry point for the disaggregation of probabilisitic seismic hazard. * - * <p>Two approaches to disaggregation of seimic hazard are possible with this - * application. In the first approach, the 'sites' file is the same as it + * <p> Two approaches to disaggregation of seimic hazard are possible with + * this application. In the first approach, the 'sites' file is the same as it * would be for a hazard calculation, and disaggregation is performed for all * configured intensity measures at the 'returnPeriod' (in years) of interest * specified in the config file (default = 2475 years, equivalent to 2% in 50 * years). * - * <p>In the second approach, the sites file includes columns for each + * <p> In the second approach, the sites file includes columns for each * spectral period or other intensity measure and the target ground motion * level to disaggregate for each. For example, the target values could be a * risk-targeted spectral accelerations, or they could be ground motion levels * precomputed for a specific return period. * - * <p>Note that the first approach will do the full hazard calculation and + * <p> Note that the first approach will do the full hazard calculation and * compute hazard curves from which the target disaggregation ground motion * level will be determined. In the second approach, the ground motion targets * are known and the time consuming hazard curve calculation can be avoided. * - * <p>Please refer to the nshmp-haz <a + * <p> Please refer to the nshmp-haz <a * href="https://code.usgs.gov/ghsc/nshmp/nshmp-haz/-/tree/main/docs"> * docs</a> for comprehensive descriptions of source models, configuration * files, site files, and hazard calculations. * - * @see <a - * href="https://code.usgs.gov/ghsc/nshmp/nshmp-haz/-/blob/main/docs/pages/Building-&-Running.md"> + * @see <a href= + * "https://code.usgs.gov/ghsc/nshmp/nshmp-haz/-/blob/main/docs/pages/Building-&-Running.md"> * nshmp-haz Building & Running</a> - * @see <a - * href="https://code.usgs.gov/ghsc/nshmp/nshmp-haz/-/tree/main/etc/examples"> + * @see <a href= + * "https://code.usgs.gov/ghsc/nshmp/nshmp-haz/-/tree/main/etc/examples"> * example calculations</a> */ public static void main(String[] args) { @@ -224,7 +224,6 @@ public class DisaggCalc { Site.Key.LAT, Site.Key.LON, Site.Key.VS30, - Site.Key.VS_INF, Site.Key.Z1P0, Site.Key.Z2P5); diff --git a/src/main/java/gov/usgs/earthquake/nshmp/www/meta/MetaUtil.java b/src/main/java/gov/usgs/earthquake/nshmp/www/meta/MetaUtil.java index a1a2c068..9c653fbe 100644 --- a/src/main/java/gov/usgs/earthquake/nshmp/www/meta/MetaUtil.java +++ b/src/main/java/gov/usgs/earthquake/nshmp/www/meta/MetaUtil.java @@ -39,7 +39,6 @@ public final class MetaUtil { JsonObject json = new JsonObject(); json.add("location", loc); json.addProperty("vs30", site.vs30()); - json.addProperty("vsInferred", site.vsInferred()); json.addProperty("z1p0", Double.isNaN(site.z1p0()) ? null : site.z1p0()); json.addProperty("z2p5", Double.isNaN(site.z2p5()) ? null : site.z2p5()); -- GitLab From 2f8f9cb7cf60b9b0fd819fea5e61bafabf4dc9a0 Mon Sep 17 00:00:00 2001 From: Peter Powers <pmpowers@usgs.gov> Date: Mon, 14 Nov 2022 15:26:17 -0700 Subject: [PATCH 03/17] updated peer test site files and gmm trees --- .../Set2-Case2a-fast/active-crust/gmm-tree.json | 2 +- etc/peer/models/Set2-Case2a-fast/sites.csv | 14 +++++++------- .../models/Set2-Case2a/active-crust/gmm-tree.json | 2 +- etc/peer/models/Set2-Case2a/sites.csv | 14 +++++++------- etc/peer/models/Set2-Case2b-fast/sites.csv | 14 +++++++------- etc/peer/models/Set2-Case2b/sites.csv | 14 +++++++------- etc/peer/models/Set2-Case2c-fast/sites.csv | 14 +++++++------- etc/peer/models/Set2-Case2c/sites.csv | 14 +++++++------- .../Set2-Case2d-fast/active-crust/gmm-tree.json | 2 +- etc/peer/models/Set2-Case2d-fast/sites.csv | 14 +++++++------- etc/peer/models/Set2-Case2d/sites.csv | 14 +++++++------- etc/peer/models/Set2-Case3a-fast/sites.csv | 14 +++++++------- etc/peer/models/Set2-Case3a/sites.csv | 14 +++++++------- etc/peer/models/Set2-Case3b-fast/sites.csv | 14 +++++++------- etc/peer/models/Set2-Case3b/sites.csv | 14 +++++++------- etc/peer/models/Set2-Case3c-fast/sites.csv | 14 +++++++------- etc/peer/models/Set2-Case3c/sites.csv | 14 +++++++------- etc/peer/models/Set2-Case3d-fast/sites.csv | 14 +++++++------- etc/peer/models/Set2-Case3d/sites.csv | 14 +++++++------- etc/peer/models/Set2-Case4a-fast/sites.csv | 4 ++-- etc/peer/models/Set2-Case4a/sites.csv | 4 ++-- etc/peer/models/Set2-Case4b-fast/sites.csv | 4 ++-- etc/peer/models/Set2-Case4b/sites.csv | 4 ++-- etc/peer/models/Set2-Case5a/sites.csv | 4 ++-- etc/peer/models/Set2-Case5b/sites.csv | 4 ++-- 25 files changed, 127 insertions(+), 127 deletions(-) diff --git a/etc/peer/models/Set2-Case2a-fast/active-crust/gmm-tree.json b/etc/peer/models/Set2-Case2a-fast/active-crust/gmm-tree.json index 3425f0a5..f04c7190 100644 --- a/etc/peer/models/Set2-Case2a-fast/active-crust/gmm-tree.json +++ b/etc/peer/models/Set2-Case2a-fast/active-crust/gmm-tree.json @@ -1,3 +1,3 @@ [ - { "id": "ASK_14_BASE", "weight": 1.0 } + { "id": "ASK_14_VS30_MEASURED", "weight": 1.0 } ] diff --git a/etc/peer/models/Set2-Case2a-fast/sites.csv b/etc/peer/models/Set2-Case2a-fast/sites.csv index f87b4f6c..4fec5398 100644 --- a/etc/peer/models/Set2-Case2a-fast/sites.csv +++ b/etc/peer/models/Set2-Case2a-fast/sites.csv @@ -1,7 +1,7 @@ -name,lon,lat,vs30,vsInf,z1p0,z2p5 -PEER S2-Fault3-Site1,-64.91005, 0.00000,760,false,0.048,0.607 -PEER S2-Fault3-Site2,-65.04497, 0.00000,760,false,0.048,0.607 -PEER S2-Fault3-Site3,-65.08995, 0.00000,760,false,0.048,0.607 -PEER S2-Fault3-Site4,-65.13490, 0.00000,760,false,0.048,0.607 -PEER S2-Fault3-Site5,-65.22483, 0.00000,760,false,0.048,0.607 -PEER S2-Fault3-Site6,-65.00900,-0.42718,760,false,0.048,0.607 +name,lon,lat,vs30,z1p0,z2p5 +PEER S2-Fault3-Site1,-64.91005, 0.00000,760,0.048,0.607 +PEER S2-Fault3-Site2,-65.04497, 0.00000,760,0.048,0.607 +PEER S2-Fault3-Site3,-65.08995, 0.00000,760,0.048,0.607 +PEER S2-Fault3-Site4,-65.13490, 0.00000,760,0.048,0.607 +PEER S2-Fault3-Site5,-65.22483, 0.00000,760,0.048,0.607 +PEER S2-Fault3-Site6,-65.00900,-0.42718,760,0.048,0.607 diff --git a/etc/peer/models/Set2-Case2a/active-crust/gmm-tree.json b/etc/peer/models/Set2-Case2a/active-crust/gmm-tree.json index 3425f0a5..f04c7190 100644 --- a/etc/peer/models/Set2-Case2a/active-crust/gmm-tree.json +++ b/etc/peer/models/Set2-Case2a/active-crust/gmm-tree.json @@ -1,3 +1,3 @@ [ - { "id": "ASK_14_BASE", "weight": 1.0 } + { "id": "ASK_14_VS30_MEASURED", "weight": 1.0 } ] diff --git a/etc/peer/models/Set2-Case2a/sites.csv b/etc/peer/models/Set2-Case2a/sites.csv index f87b4f6c..4fec5398 100644 --- a/etc/peer/models/Set2-Case2a/sites.csv +++ b/etc/peer/models/Set2-Case2a/sites.csv @@ -1,7 +1,7 @@ -name,lon,lat,vs30,vsInf,z1p0,z2p5 -PEER S2-Fault3-Site1,-64.91005, 0.00000,760,false,0.048,0.607 -PEER S2-Fault3-Site2,-65.04497, 0.00000,760,false,0.048,0.607 -PEER S2-Fault3-Site3,-65.08995, 0.00000,760,false,0.048,0.607 -PEER S2-Fault3-Site4,-65.13490, 0.00000,760,false,0.048,0.607 -PEER S2-Fault3-Site5,-65.22483, 0.00000,760,false,0.048,0.607 -PEER S2-Fault3-Site6,-65.00900,-0.42718,760,false,0.048,0.607 +name,lon,lat,vs30,z1p0,z2p5 +PEER S2-Fault3-Site1,-64.91005, 0.00000,760,0.048,0.607 +PEER S2-Fault3-Site2,-65.04497, 0.00000,760,0.048,0.607 +PEER S2-Fault3-Site3,-65.08995, 0.00000,760,0.048,0.607 +PEER S2-Fault3-Site4,-65.13490, 0.00000,760,0.048,0.607 +PEER S2-Fault3-Site5,-65.22483, 0.00000,760,0.048,0.607 +PEER S2-Fault3-Site6,-65.00900,-0.42718,760,0.048,0.607 diff --git a/etc/peer/models/Set2-Case2b-fast/sites.csv b/etc/peer/models/Set2-Case2b-fast/sites.csv index f87b4f6c..4fec5398 100644 --- a/etc/peer/models/Set2-Case2b-fast/sites.csv +++ b/etc/peer/models/Set2-Case2b-fast/sites.csv @@ -1,7 +1,7 @@ -name,lon,lat,vs30,vsInf,z1p0,z2p5 -PEER S2-Fault3-Site1,-64.91005, 0.00000,760,false,0.048,0.607 -PEER S2-Fault3-Site2,-65.04497, 0.00000,760,false,0.048,0.607 -PEER S2-Fault3-Site3,-65.08995, 0.00000,760,false,0.048,0.607 -PEER S2-Fault3-Site4,-65.13490, 0.00000,760,false,0.048,0.607 -PEER S2-Fault3-Site5,-65.22483, 0.00000,760,false,0.048,0.607 -PEER S2-Fault3-Site6,-65.00900,-0.42718,760,false,0.048,0.607 +name,lon,lat,vs30,z1p0,z2p5 +PEER S2-Fault3-Site1,-64.91005, 0.00000,760,0.048,0.607 +PEER S2-Fault3-Site2,-65.04497, 0.00000,760,0.048,0.607 +PEER S2-Fault3-Site3,-65.08995, 0.00000,760,0.048,0.607 +PEER S2-Fault3-Site4,-65.13490, 0.00000,760,0.048,0.607 +PEER S2-Fault3-Site5,-65.22483, 0.00000,760,0.048,0.607 +PEER S2-Fault3-Site6,-65.00900,-0.42718,760,0.048,0.607 diff --git a/etc/peer/models/Set2-Case2b/sites.csv b/etc/peer/models/Set2-Case2b/sites.csv index f87b4f6c..4fec5398 100644 --- a/etc/peer/models/Set2-Case2b/sites.csv +++ b/etc/peer/models/Set2-Case2b/sites.csv @@ -1,7 +1,7 @@ -name,lon,lat,vs30,vsInf,z1p0,z2p5 -PEER S2-Fault3-Site1,-64.91005, 0.00000,760,false,0.048,0.607 -PEER S2-Fault3-Site2,-65.04497, 0.00000,760,false,0.048,0.607 -PEER S2-Fault3-Site3,-65.08995, 0.00000,760,false,0.048,0.607 -PEER S2-Fault3-Site4,-65.13490, 0.00000,760,false,0.048,0.607 -PEER S2-Fault3-Site5,-65.22483, 0.00000,760,false,0.048,0.607 -PEER S2-Fault3-Site6,-65.00900,-0.42718,760,false,0.048,0.607 +name,lon,lat,vs30,z1p0,z2p5 +PEER S2-Fault3-Site1,-64.91005, 0.00000,760,0.048,0.607 +PEER S2-Fault3-Site2,-65.04497, 0.00000,760,0.048,0.607 +PEER S2-Fault3-Site3,-65.08995, 0.00000,760,0.048,0.607 +PEER S2-Fault3-Site4,-65.13490, 0.00000,760,0.048,0.607 +PEER S2-Fault3-Site5,-65.22483, 0.00000,760,0.048,0.607 +PEER S2-Fault3-Site6,-65.00900,-0.42718,760,0.048,0.607 diff --git a/etc/peer/models/Set2-Case2c-fast/sites.csv b/etc/peer/models/Set2-Case2c-fast/sites.csv index f87b4f6c..4fec5398 100644 --- a/etc/peer/models/Set2-Case2c-fast/sites.csv +++ b/etc/peer/models/Set2-Case2c-fast/sites.csv @@ -1,7 +1,7 @@ -name,lon,lat,vs30,vsInf,z1p0,z2p5 -PEER S2-Fault3-Site1,-64.91005, 0.00000,760,false,0.048,0.607 -PEER S2-Fault3-Site2,-65.04497, 0.00000,760,false,0.048,0.607 -PEER S2-Fault3-Site3,-65.08995, 0.00000,760,false,0.048,0.607 -PEER S2-Fault3-Site4,-65.13490, 0.00000,760,false,0.048,0.607 -PEER S2-Fault3-Site5,-65.22483, 0.00000,760,false,0.048,0.607 -PEER S2-Fault3-Site6,-65.00900,-0.42718,760,false,0.048,0.607 +name,lon,lat,vs30,z1p0,z2p5 +PEER S2-Fault3-Site1,-64.91005, 0.00000,760,0.048,0.607 +PEER S2-Fault3-Site2,-65.04497, 0.00000,760,0.048,0.607 +PEER S2-Fault3-Site3,-65.08995, 0.00000,760,0.048,0.607 +PEER S2-Fault3-Site4,-65.13490, 0.00000,760,0.048,0.607 +PEER S2-Fault3-Site5,-65.22483, 0.00000,760,0.048,0.607 +PEER S2-Fault3-Site6,-65.00900,-0.42718,760,0.048,0.607 diff --git a/etc/peer/models/Set2-Case2c/sites.csv b/etc/peer/models/Set2-Case2c/sites.csv index f87b4f6c..4fec5398 100644 --- a/etc/peer/models/Set2-Case2c/sites.csv +++ b/etc/peer/models/Set2-Case2c/sites.csv @@ -1,7 +1,7 @@ -name,lon,lat,vs30,vsInf,z1p0,z2p5 -PEER S2-Fault3-Site1,-64.91005, 0.00000,760,false,0.048,0.607 -PEER S2-Fault3-Site2,-65.04497, 0.00000,760,false,0.048,0.607 -PEER S2-Fault3-Site3,-65.08995, 0.00000,760,false,0.048,0.607 -PEER S2-Fault3-Site4,-65.13490, 0.00000,760,false,0.048,0.607 -PEER S2-Fault3-Site5,-65.22483, 0.00000,760,false,0.048,0.607 -PEER S2-Fault3-Site6,-65.00900,-0.42718,760,false,0.048,0.607 +name,lon,lat,vs30,z1p0,z2p5 +PEER S2-Fault3-Site1,-64.91005, 0.00000,760,0.048,0.607 +PEER S2-Fault3-Site2,-65.04497, 0.00000,760,0.048,0.607 +PEER S2-Fault3-Site3,-65.08995, 0.00000,760,0.048,0.607 +PEER S2-Fault3-Site4,-65.13490, 0.00000,760,0.048,0.607 +PEER S2-Fault3-Site5,-65.22483, 0.00000,760,0.048,0.607 +PEER S2-Fault3-Site6,-65.00900,-0.42718,760,0.048,0.607 diff --git a/etc/peer/models/Set2-Case2d-fast/active-crust/gmm-tree.json b/etc/peer/models/Set2-Case2d-fast/active-crust/gmm-tree.json index 621c1ab1..b6df2556 100644 --- a/etc/peer/models/Set2-Case2d-fast/active-crust/gmm-tree.json +++ b/etc/peer/models/Set2-Case2d-fast/active-crust/gmm-tree.json @@ -1,3 +1,3 @@ [ - { "id": "CY_14_BASE", "weight": 1.0 } + { "id": "CY_14_VS30_MEASURED", "weight": 1.0 } ] diff --git a/etc/peer/models/Set2-Case2d-fast/sites.csv b/etc/peer/models/Set2-Case2d-fast/sites.csv index f87b4f6c..4fec5398 100644 --- a/etc/peer/models/Set2-Case2d-fast/sites.csv +++ b/etc/peer/models/Set2-Case2d-fast/sites.csv @@ -1,7 +1,7 @@ -name,lon,lat,vs30,vsInf,z1p0,z2p5 -PEER S2-Fault3-Site1,-64.91005, 0.00000,760,false,0.048,0.607 -PEER S2-Fault3-Site2,-65.04497, 0.00000,760,false,0.048,0.607 -PEER S2-Fault3-Site3,-65.08995, 0.00000,760,false,0.048,0.607 -PEER S2-Fault3-Site4,-65.13490, 0.00000,760,false,0.048,0.607 -PEER S2-Fault3-Site5,-65.22483, 0.00000,760,false,0.048,0.607 -PEER S2-Fault3-Site6,-65.00900,-0.42718,760,false,0.048,0.607 +name,lon,lat,vs30,z1p0,z2p5 +PEER S2-Fault3-Site1,-64.91005, 0.00000,760,0.048,0.607 +PEER S2-Fault3-Site2,-65.04497, 0.00000,760,0.048,0.607 +PEER S2-Fault3-Site3,-65.08995, 0.00000,760,0.048,0.607 +PEER S2-Fault3-Site4,-65.13490, 0.00000,760,0.048,0.607 +PEER S2-Fault3-Site5,-65.22483, 0.00000,760,0.048,0.607 +PEER S2-Fault3-Site6,-65.00900,-0.42718,760,0.048,0.607 diff --git a/etc/peer/models/Set2-Case2d/sites.csv b/etc/peer/models/Set2-Case2d/sites.csv index f87b4f6c..4fec5398 100644 --- a/etc/peer/models/Set2-Case2d/sites.csv +++ b/etc/peer/models/Set2-Case2d/sites.csv @@ -1,7 +1,7 @@ -name,lon,lat,vs30,vsInf,z1p0,z2p5 -PEER S2-Fault3-Site1,-64.91005, 0.00000,760,false,0.048,0.607 -PEER S2-Fault3-Site2,-65.04497, 0.00000,760,false,0.048,0.607 -PEER S2-Fault3-Site3,-65.08995, 0.00000,760,false,0.048,0.607 -PEER S2-Fault3-Site4,-65.13490, 0.00000,760,false,0.048,0.607 -PEER S2-Fault3-Site5,-65.22483, 0.00000,760,false,0.048,0.607 -PEER S2-Fault3-Site6,-65.00900,-0.42718,760,false,0.048,0.607 +name,lon,lat,vs30,z1p0,z2p5 +PEER S2-Fault3-Site1,-64.91005, 0.00000,760,0.048,0.607 +PEER S2-Fault3-Site2,-65.04497, 0.00000,760,0.048,0.607 +PEER S2-Fault3-Site3,-65.08995, 0.00000,760,0.048,0.607 +PEER S2-Fault3-Site4,-65.13490, 0.00000,760,0.048,0.607 +PEER S2-Fault3-Site5,-65.22483, 0.00000,760,0.048,0.607 +PEER S2-Fault3-Site6,-65.00900,-0.42718,760,0.048,0.607 diff --git a/etc/peer/models/Set2-Case3a-fast/sites.csv b/etc/peer/models/Set2-Case3a-fast/sites.csv index f87b4f6c..4fec5398 100644 --- a/etc/peer/models/Set2-Case3a-fast/sites.csv +++ b/etc/peer/models/Set2-Case3a-fast/sites.csv @@ -1,7 +1,7 @@ -name,lon,lat,vs30,vsInf,z1p0,z2p5 -PEER S2-Fault3-Site1,-64.91005, 0.00000,760,false,0.048,0.607 -PEER S2-Fault3-Site2,-65.04497, 0.00000,760,false,0.048,0.607 -PEER S2-Fault3-Site3,-65.08995, 0.00000,760,false,0.048,0.607 -PEER S2-Fault3-Site4,-65.13490, 0.00000,760,false,0.048,0.607 -PEER S2-Fault3-Site5,-65.22483, 0.00000,760,false,0.048,0.607 -PEER S2-Fault3-Site6,-65.00900,-0.42718,760,false,0.048,0.607 +name,lon,lat,vs30,z1p0,z2p5 +PEER S2-Fault3-Site1,-64.91005, 0.00000,760,0.048,0.607 +PEER S2-Fault3-Site2,-65.04497, 0.00000,760,0.048,0.607 +PEER S2-Fault3-Site3,-65.08995, 0.00000,760,0.048,0.607 +PEER S2-Fault3-Site4,-65.13490, 0.00000,760,0.048,0.607 +PEER S2-Fault3-Site5,-65.22483, 0.00000,760,0.048,0.607 +PEER S2-Fault3-Site6,-65.00900,-0.42718,760,0.048,0.607 diff --git a/etc/peer/models/Set2-Case3a/sites.csv b/etc/peer/models/Set2-Case3a/sites.csv index f87b4f6c..4fec5398 100644 --- a/etc/peer/models/Set2-Case3a/sites.csv +++ b/etc/peer/models/Set2-Case3a/sites.csv @@ -1,7 +1,7 @@ -name,lon,lat,vs30,vsInf,z1p0,z2p5 -PEER S2-Fault3-Site1,-64.91005, 0.00000,760,false,0.048,0.607 -PEER S2-Fault3-Site2,-65.04497, 0.00000,760,false,0.048,0.607 -PEER S2-Fault3-Site3,-65.08995, 0.00000,760,false,0.048,0.607 -PEER S2-Fault3-Site4,-65.13490, 0.00000,760,false,0.048,0.607 -PEER S2-Fault3-Site5,-65.22483, 0.00000,760,false,0.048,0.607 -PEER S2-Fault3-Site6,-65.00900,-0.42718,760,false,0.048,0.607 +name,lon,lat,vs30,z1p0,z2p5 +PEER S2-Fault3-Site1,-64.91005, 0.00000,760,0.048,0.607 +PEER S2-Fault3-Site2,-65.04497, 0.00000,760,0.048,0.607 +PEER S2-Fault3-Site3,-65.08995, 0.00000,760,0.048,0.607 +PEER S2-Fault3-Site4,-65.13490, 0.00000,760,0.048,0.607 +PEER S2-Fault3-Site5,-65.22483, 0.00000,760,0.048,0.607 +PEER S2-Fault3-Site6,-65.00900,-0.42718,760,0.048,0.607 diff --git a/etc/peer/models/Set2-Case3b-fast/sites.csv b/etc/peer/models/Set2-Case3b-fast/sites.csv index f87b4f6c..4fec5398 100644 --- a/etc/peer/models/Set2-Case3b-fast/sites.csv +++ b/etc/peer/models/Set2-Case3b-fast/sites.csv @@ -1,7 +1,7 @@ -name,lon,lat,vs30,vsInf,z1p0,z2p5 -PEER S2-Fault3-Site1,-64.91005, 0.00000,760,false,0.048,0.607 -PEER S2-Fault3-Site2,-65.04497, 0.00000,760,false,0.048,0.607 -PEER S2-Fault3-Site3,-65.08995, 0.00000,760,false,0.048,0.607 -PEER S2-Fault3-Site4,-65.13490, 0.00000,760,false,0.048,0.607 -PEER S2-Fault3-Site5,-65.22483, 0.00000,760,false,0.048,0.607 -PEER S2-Fault3-Site6,-65.00900,-0.42718,760,false,0.048,0.607 +name,lon,lat,vs30,z1p0,z2p5 +PEER S2-Fault3-Site1,-64.91005, 0.00000,760,0.048,0.607 +PEER S2-Fault3-Site2,-65.04497, 0.00000,760,0.048,0.607 +PEER S2-Fault3-Site3,-65.08995, 0.00000,760,0.048,0.607 +PEER S2-Fault3-Site4,-65.13490, 0.00000,760,0.048,0.607 +PEER S2-Fault3-Site5,-65.22483, 0.00000,760,0.048,0.607 +PEER S2-Fault3-Site6,-65.00900,-0.42718,760,0.048,0.607 diff --git a/etc/peer/models/Set2-Case3b/sites.csv b/etc/peer/models/Set2-Case3b/sites.csv index f87b4f6c..4fec5398 100644 --- a/etc/peer/models/Set2-Case3b/sites.csv +++ b/etc/peer/models/Set2-Case3b/sites.csv @@ -1,7 +1,7 @@ -name,lon,lat,vs30,vsInf,z1p0,z2p5 -PEER S2-Fault3-Site1,-64.91005, 0.00000,760,false,0.048,0.607 -PEER S2-Fault3-Site2,-65.04497, 0.00000,760,false,0.048,0.607 -PEER S2-Fault3-Site3,-65.08995, 0.00000,760,false,0.048,0.607 -PEER S2-Fault3-Site4,-65.13490, 0.00000,760,false,0.048,0.607 -PEER S2-Fault3-Site5,-65.22483, 0.00000,760,false,0.048,0.607 -PEER S2-Fault3-Site6,-65.00900,-0.42718,760,false,0.048,0.607 +name,lon,lat,vs30,z1p0,z2p5 +PEER S2-Fault3-Site1,-64.91005, 0.00000,760,0.048,0.607 +PEER S2-Fault3-Site2,-65.04497, 0.00000,760,0.048,0.607 +PEER S2-Fault3-Site3,-65.08995, 0.00000,760,0.048,0.607 +PEER S2-Fault3-Site4,-65.13490, 0.00000,760,0.048,0.607 +PEER S2-Fault3-Site5,-65.22483, 0.00000,760,0.048,0.607 +PEER S2-Fault3-Site6,-65.00900,-0.42718,760,0.048,0.607 diff --git a/etc/peer/models/Set2-Case3c-fast/sites.csv b/etc/peer/models/Set2-Case3c-fast/sites.csv index f87b4f6c..4fec5398 100644 --- a/etc/peer/models/Set2-Case3c-fast/sites.csv +++ b/etc/peer/models/Set2-Case3c-fast/sites.csv @@ -1,7 +1,7 @@ -name,lon,lat,vs30,vsInf,z1p0,z2p5 -PEER S2-Fault3-Site1,-64.91005, 0.00000,760,false,0.048,0.607 -PEER S2-Fault3-Site2,-65.04497, 0.00000,760,false,0.048,0.607 -PEER S2-Fault3-Site3,-65.08995, 0.00000,760,false,0.048,0.607 -PEER S2-Fault3-Site4,-65.13490, 0.00000,760,false,0.048,0.607 -PEER S2-Fault3-Site5,-65.22483, 0.00000,760,false,0.048,0.607 -PEER S2-Fault3-Site6,-65.00900,-0.42718,760,false,0.048,0.607 +name,lon,lat,vs30,z1p0,z2p5 +PEER S2-Fault3-Site1,-64.91005, 0.00000,760,0.048,0.607 +PEER S2-Fault3-Site2,-65.04497, 0.00000,760,0.048,0.607 +PEER S2-Fault3-Site3,-65.08995, 0.00000,760,0.048,0.607 +PEER S2-Fault3-Site4,-65.13490, 0.00000,760,0.048,0.607 +PEER S2-Fault3-Site5,-65.22483, 0.00000,760,0.048,0.607 +PEER S2-Fault3-Site6,-65.00900,-0.42718,760,0.048,0.607 diff --git a/etc/peer/models/Set2-Case3c/sites.csv b/etc/peer/models/Set2-Case3c/sites.csv index f87b4f6c..4fec5398 100644 --- a/etc/peer/models/Set2-Case3c/sites.csv +++ b/etc/peer/models/Set2-Case3c/sites.csv @@ -1,7 +1,7 @@ -name,lon,lat,vs30,vsInf,z1p0,z2p5 -PEER S2-Fault3-Site1,-64.91005, 0.00000,760,false,0.048,0.607 -PEER S2-Fault3-Site2,-65.04497, 0.00000,760,false,0.048,0.607 -PEER S2-Fault3-Site3,-65.08995, 0.00000,760,false,0.048,0.607 -PEER S2-Fault3-Site4,-65.13490, 0.00000,760,false,0.048,0.607 -PEER S2-Fault3-Site5,-65.22483, 0.00000,760,false,0.048,0.607 -PEER S2-Fault3-Site6,-65.00900,-0.42718,760,false,0.048,0.607 +name,lon,lat,vs30,z1p0,z2p5 +PEER S2-Fault3-Site1,-64.91005, 0.00000,760,0.048,0.607 +PEER S2-Fault3-Site2,-65.04497, 0.00000,760,0.048,0.607 +PEER S2-Fault3-Site3,-65.08995, 0.00000,760,0.048,0.607 +PEER S2-Fault3-Site4,-65.13490, 0.00000,760,0.048,0.607 +PEER S2-Fault3-Site5,-65.22483, 0.00000,760,0.048,0.607 +PEER S2-Fault3-Site6,-65.00900,-0.42718,760,0.048,0.607 diff --git a/etc/peer/models/Set2-Case3d-fast/sites.csv b/etc/peer/models/Set2-Case3d-fast/sites.csv index f87b4f6c..4fec5398 100644 --- a/etc/peer/models/Set2-Case3d-fast/sites.csv +++ b/etc/peer/models/Set2-Case3d-fast/sites.csv @@ -1,7 +1,7 @@ -name,lon,lat,vs30,vsInf,z1p0,z2p5 -PEER S2-Fault3-Site1,-64.91005, 0.00000,760,false,0.048,0.607 -PEER S2-Fault3-Site2,-65.04497, 0.00000,760,false,0.048,0.607 -PEER S2-Fault3-Site3,-65.08995, 0.00000,760,false,0.048,0.607 -PEER S2-Fault3-Site4,-65.13490, 0.00000,760,false,0.048,0.607 -PEER S2-Fault3-Site5,-65.22483, 0.00000,760,false,0.048,0.607 -PEER S2-Fault3-Site6,-65.00900,-0.42718,760,false,0.048,0.607 +name,lon,lat,vs30,z1p0,z2p5 +PEER S2-Fault3-Site1,-64.91005, 0.00000,760,0.048,0.607 +PEER S2-Fault3-Site2,-65.04497, 0.00000,760,0.048,0.607 +PEER S2-Fault3-Site3,-65.08995, 0.00000,760,0.048,0.607 +PEER S2-Fault3-Site4,-65.13490, 0.00000,760,0.048,0.607 +PEER S2-Fault3-Site5,-65.22483, 0.00000,760,0.048,0.607 +PEER S2-Fault3-Site6,-65.00900,-0.42718,760,0.048,0.607 diff --git a/etc/peer/models/Set2-Case3d/sites.csv b/etc/peer/models/Set2-Case3d/sites.csv index f87b4f6c..4fec5398 100644 --- a/etc/peer/models/Set2-Case3d/sites.csv +++ b/etc/peer/models/Set2-Case3d/sites.csv @@ -1,7 +1,7 @@ -name,lon,lat,vs30,vsInf,z1p0,z2p5 -PEER S2-Fault3-Site1,-64.91005, 0.00000,760,false,0.048,0.607 -PEER S2-Fault3-Site2,-65.04497, 0.00000,760,false,0.048,0.607 -PEER S2-Fault3-Site3,-65.08995, 0.00000,760,false,0.048,0.607 -PEER S2-Fault3-Site4,-65.13490, 0.00000,760,false,0.048,0.607 -PEER S2-Fault3-Site5,-65.22483, 0.00000,760,false,0.048,0.607 -PEER S2-Fault3-Site6,-65.00900,-0.42718,760,false,0.048,0.607 +name,lon,lat,vs30,z1p0,z2p5 +PEER S2-Fault3-Site1,-64.91005, 0.00000,760,0.048,0.607 +PEER S2-Fault3-Site2,-65.04497, 0.00000,760,0.048,0.607 +PEER S2-Fault3-Site3,-65.08995, 0.00000,760,0.048,0.607 +PEER S2-Fault3-Site4,-65.13490, 0.00000,760,0.048,0.607 +PEER S2-Fault3-Site5,-65.22483, 0.00000,760,0.048,0.607 +PEER S2-Fault3-Site6,-65.00900,-0.42718,760,0.048,0.607 diff --git a/etc/peer/models/Set2-Case4a-fast/sites.csv b/etc/peer/models/Set2-Case4a-fast/sites.csv index 37f17e66..82ec41bb 100644 --- a/etc/peer/models/Set2-Case4a-fast/sites.csv +++ b/etc/peer/models/Set2-Case4a-fast/sites.csv @@ -1,2 +1,2 @@ -name,lon,lat,vs30,vsInf,z1p0,z2p5 -PEER S2-Fault5-Site1,-65.00900, 0.00000,760,false,0.048,0.607 +name,lon,lat,vs30,z1p0,z2p5 +PEER S2-Fault5-Site1,-65.00900, 0.00000,760,0.048,0.607 diff --git a/etc/peer/models/Set2-Case4a/sites.csv b/etc/peer/models/Set2-Case4a/sites.csv index 37f17e66..82ec41bb 100644 --- a/etc/peer/models/Set2-Case4a/sites.csv +++ b/etc/peer/models/Set2-Case4a/sites.csv @@ -1,2 +1,2 @@ -name,lon,lat,vs30,vsInf,z1p0,z2p5 -PEER S2-Fault5-Site1,-65.00900, 0.00000,760,false,0.048,0.607 +name,lon,lat,vs30,z1p0,z2p5 +PEER S2-Fault5-Site1,-65.00900, 0.00000,760,0.048,0.607 diff --git a/etc/peer/models/Set2-Case4b-fast/sites.csv b/etc/peer/models/Set2-Case4b-fast/sites.csv index 37f17e66..82ec41bb 100644 --- a/etc/peer/models/Set2-Case4b-fast/sites.csv +++ b/etc/peer/models/Set2-Case4b-fast/sites.csv @@ -1,2 +1,2 @@ -name,lon,lat,vs30,vsInf,z1p0,z2p5 -PEER S2-Fault5-Site1,-65.00900, 0.00000,760,false,0.048,0.607 +name,lon,lat,vs30,z1p0,z2p5 +PEER S2-Fault5-Site1,-65.00900, 0.00000,760,0.048,0.607 diff --git a/etc/peer/models/Set2-Case4b/sites.csv b/etc/peer/models/Set2-Case4b/sites.csv index 37f17e66..82ec41bb 100644 --- a/etc/peer/models/Set2-Case4b/sites.csv +++ b/etc/peer/models/Set2-Case4b/sites.csv @@ -1,2 +1,2 @@ -name,lon,lat,vs30,vsInf,z1p0,z2p5 -PEER S2-Fault5-Site1,-65.00900, 0.00000,760,false,0.048,0.607 +name,lon,lat,vs30,z1p0,z2p5 +PEER S2-Fault5-Site1,-65.00900, 0.00000,760,0.048,0.607 diff --git a/etc/peer/models/Set2-Case5a/sites.csv b/etc/peer/models/Set2-Case5a/sites.csv index a89656bc..6d1f6f18 100644 --- a/etc/peer/models/Set2-Case5a/sites.csv +++ b/etc/peer/models/Set2-Case5a/sites.csv @@ -1,2 +1,2 @@ -name,lon,lat,vs30,vsInf,z1p0,z2p5 -PEER S2-Fault6-Site1,-65.13490, 0.00000,760,false,0.048,0.607 +name,lon,lat,vs30,z1p0,z2p5 +PEER S2-Fault6-Site1,-65.13490, 0.00000,760,0.048,0.607 diff --git a/etc/peer/models/Set2-Case5b/sites.csv b/etc/peer/models/Set2-Case5b/sites.csv index a89656bc..6d1f6f18 100644 --- a/etc/peer/models/Set2-Case5b/sites.csv +++ b/etc/peer/models/Set2-Case5b/sites.csv @@ -1,2 +1,2 @@ -name,lon,lat,vs30,vsInf,z1p0,z2p5 -PEER S2-Fault6-Site1,-65.13490, 0.00000,760,false,0.048,0.607 +name,lon,lat,vs30,z1p0,z2p5 +PEER S2-Fault6-Site1,-65.13490, 0.00000,760,0.048,0.607 -- GitLab From 17046ff279912dcffc732e196f977af1a39accac Mon Sep 17 00:00:00 2001 From: Brandon Clayton <bclayton@usgs.gov> Date: Mon, 21 Nov 2022 10:24:20 -0700 Subject: [PATCH 04/17] add new test sites service and controller --- .../nshmp/www/source/TestSitesController.java | 87 +++++++++++++++++++ .../nshmp/www/source/TestSitesService.java | 53 +++++++++++ 2 files changed, 140 insertions(+) create mode 100644 src/main/java/gov/usgs/earthquake/nshmp/www/source/TestSitesController.java create mode 100644 src/main/java/gov/usgs/earthquake/nshmp/www/source/TestSitesService.java diff --git a/src/main/java/gov/usgs/earthquake/nshmp/www/source/TestSitesController.java b/src/main/java/gov/usgs/earthquake/nshmp/www/source/TestSitesController.java new file mode 100644 index 00000000..120cc13f --- /dev/null +++ b/src/main/java/gov/usgs/earthquake/nshmp/www/source/TestSitesController.java @@ -0,0 +1,87 @@ +package gov.usgs.earthquake.nshmp.www.source; + +import gov.usgs.earthquake.nshmp.geo.json.FeatureCollection; +import gov.usgs.earthquake.nshmp.www.NshmpMicronautServlet; +import gov.usgs.earthquake.nshmp.www.ResponseBody; +import gov.usgs.earthquake.nshmp.www.ServletUtil; +import gov.usgs.earthquake.nshmp.www.source.TestSitesService.RequestData; + +import io.micronaut.core.annotation.Nullable; +import io.micronaut.http.HttpRequest; +import io.micronaut.http.HttpResponse; +import io.micronaut.http.MediaType; +import io.micronaut.http.annotation.Controller; +import io.micronaut.http.annotation.Get; +import io.micronaut.http.annotation.PathVariable; +import io.micronaut.http.annotation.QueryValue; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.media.Content; +import io.swagger.v3.oas.annotations.media.Schema; +import io.swagger.v3.oas.annotations.responses.ApiResponse; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.inject.Inject; + +/** + * Micronaut web service controller for the GeoJSON test sites associated with + * the current installed model. + * + * <p>See src/main/resources/application.yml nshmp-haz.model-path for installed + * model. + * + * <p>To run the Micronaut jar file with a model: java -jar + * path/to/nshmp-haz.jar --model=<path/to/model> + * + * @author U.S. Geological Survey + */ +@Tag( + name = TestSitesService.NAME, + description = "NSHM test sites") +@Controller("/sites") +public class TestSitesController { + + @Inject + private NshmpMicronautServlet servlet; + + @Operation( + summary = "Get the GeoJSON Feature Collection of test sites", + description = "Returns the feature collection of test sites", + operationId = "test-sites") + @ApiResponse( + description = "NSHM test sites", + responseCode = "200", + content = @Content( + schema = @Schema(implementation = Response.class))) + @Get(uri = "{?raw}", produces = MediaType.APPLICATION_JSON) + public HttpResponse<String> doGet( + HttpRequest<?> http, + @QueryValue(defaultValue = "false") @Nullable Boolean raw) { + try { + return HttpResponse.ok(TestSitesService.handleSites(http, raw)); + } catch (Exception e) { + return ServletUtil.error( + TestSitesService.LOG, + e, + TestSitesService.NAME, + http.getUri().toString()); + } + } + + @Operation( + summary = "Get the GeoJSON Feature Collection of test sites", + description = "Returns the feature collection of test sites", + operationId = "test-sites-slash") + @ApiResponse( + description = "NSHM test sites", + responseCode = "200", + content = @Content( + schema = @Schema(implementation = Response.class))) + @Get(uri = "/{raw}", produces = MediaType.APPLICATION_JSON) + public HttpResponse<String> doGetSlash( + HttpRequest<?> http, + @PathVariable(defaultValue = "false") @Nullable Boolean raw) { + return doGet(http, raw); + } + + // Swagger schema + private static class Response extends ResponseBody<RequestData, FeatureCollection> {}; +} diff --git a/src/main/java/gov/usgs/earthquake/nshmp/www/source/TestSitesService.java b/src/main/java/gov/usgs/earthquake/nshmp/www/source/TestSitesService.java new file mode 100644 index 00000000..643a2b89 --- /dev/null +++ b/src/main/java/gov/usgs/earthquake/nshmp/www/source/TestSitesService.java @@ -0,0 +1,53 @@ +package gov.usgs.earthquake.nshmp.www.source; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import com.google.gson.JsonElement; + +import gov.usgs.earthquake.nshmp.geo.json.FeatureCollection; +import gov.usgs.earthquake.nshmp.www.HazVersion; +import gov.usgs.earthquake.nshmp.www.ResponseBody; +import gov.usgs.earthquake.nshmp.www.ResponseMetadata; +import gov.usgs.earthquake.nshmp.www.ServletUtil; + +import io.micronaut.http.HttpRequest; +import jakarta.inject.Singleton; + +/** + * Test sites handler for {@link TestSitesController}. + * + * @author U.S. Geological Survey + */ +@Singleton +public class TestSitesService { + static final Logger LOG = LoggerFactory.getLogger(TestSitesController.class); + static final String NAME = "Test Sites"; + + static String handleSites(HttpRequest<?> http, Boolean raw) { + RequestData requestData = new RequestData(raw); + FeatureCollection sites = ServletUtil.model().sites().orElseThrow(); + + if (requestData.raw) { + return sites.toJson(); + } else { + var response = ResponseBody.<RequestData, JsonElement> success() + .name(NAME) + .url(http.getUri().toString()) + .metadata(new ResponseMetadata(HazVersion.appVersions())) + .request(requestData) + .response(sites.toJsonTree()) + .build(); + + return ServletUtil.GSON2.toJson(response); + } + } + + static class RequestData { + public boolean raw; + + RequestData(Boolean raw) { + this.raw = raw == null ? false : raw; + } + } +} -- GitLab From 7f4f9e45003e63ae4a904c875fb1328e9cd92930 Mon Sep 17 00:00:00 2001 From: Brandon Clayton <bclayton@usgs.gov> Date: Mon, 21 Nov 2022 10:29:20 -0700 Subject: [PATCH 05/17] remove sites from usage --- .../gov/usgs/earthquake/nshmp/www/source/SourceService.java | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/main/java/gov/usgs/earthquake/nshmp/www/source/SourceService.java b/src/main/java/gov/usgs/earthquake/nshmp/www/source/SourceService.java index dff84118..1be96725 100644 --- a/src/main/java/gov/usgs/earthquake/nshmp/www/source/SourceService.java +++ b/src/main/java/gov/usgs/earthquake/nshmp/www/source/SourceService.java @@ -75,7 +75,6 @@ public class SourceService { final List<Parameter> imts; final List<Double> bounds; final FeatureCollection map; - final FeatureCollection sites; public SourceModel(HazardModel model) { name = model.name(); @@ -90,7 +89,6 @@ public class SourceService { .collect(toList()); bounds = DoubleStream.of(model.bounds().toArray()).boxed().collect(toList()); map = model.map().orElseThrow(); - sites = model.sites().orElseThrow(); } public String getName() { -- GitLab From dbba2bbc1c661da129eaf0d3a2501f6b1d3d3a12 Mon Sep 17 00:00:00 2001 From: Peter Powers <pmpowers@usgs.gov> Date: Tue, 22 Nov 2022 14:33:32 -0700 Subject: [PATCH 06/17] updated lib with ability to get model features --- gradle.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle.properties b/gradle.properties index c2233801..04aad5c2 100644 --- a/gradle.properties +++ b/gradle.properties @@ -11,7 +11,7 @@ micronautVersion = 3.2.3 micronautRxVersion = 2.1.1 nodePluginVersion = 3.0.1 nodeVersion = 16.3.0 -nshmpLibVersion = 1.2.6 +nshmpLibVersion = 1.2.7 nshmpWsUtilsVersion = 0.3.11 openApiVersion = 4.0.0 shadowVersion = 7.1.2 -- GitLab From 7fc08f59e10a81300f17b31e122eaa0a0fd19950 Mon Sep 17 00:00:00 2001 From: Peter Powers <pmpowers@usgs.gov> Date: Tue, 22 Nov 2022 14:33:58 -0700 Subject: [PATCH 07/17] vsInf removal fix for skipped test --- etc/peer/models/Set2-Case2d/active-crust/gmm-tree.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/etc/peer/models/Set2-Case2d/active-crust/gmm-tree.json b/etc/peer/models/Set2-Case2d/active-crust/gmm-tree.json index 621c1ab1..d0c44e6e 100644 --- a/etc/peer/models/Set2-Case2d/active-crust/gmm-tree.json +++ b/etc/peer/models/Set2-Case2d/active-crust/gmm-tree.json @@ -1,3 +1,3 @@ [ - { "id": "CY_14_BASE", "weight": 1.0 } + { "id": "CY_14_BASE_VS30_MEASURED", "weight": 1.0 } ] -- GitLab From d8bcb2896d8da153ed52c635c7c9e6c2cbcdddbf Mon Sep 17 00:00:00 2001 From: Brandon Clayton <bclayton@usgs.gov> Date: Tue, 22 Nov 2022 15:36:52 -0700 Subject: [PATCH 08/17] Remove service --- .../nshmp/www/source/TestSitesService.java | 53 ------------------- 1 file changed, 53 deletions(-) delete mode 100644 src/main/java/gov/usgs/earthquake/nshmp/www/source/TestSitesService.java diff --git a/src/main/java/gov/usgs/earthquake/nshmp/www/source/TestSitesService.java b/src/main/java/gov/usgs/earthquake/nshmp/www/source/TestSitesService.java deleted file mode 100644 index 643a2b89..00000000 --- a/src/main/java/gov/usgs/earthquake/nshmp/www/source/TestSitesService.java +++ /dev/null @@ -1,53 +0,0 @@ -package gov.usgs.earthquake.nshmp.www.source; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import com.google.gson.JsonElement; - -import gov.usgs.earthquake.nshmp.geo.json.FeatureCollection; -import gov.usgs.earthquake.nshmp.www.HazVersion; -import gov.usgs.earthquake.nshmp.www.ResponseBody; -import gov.usgs.earthquake.nshmp.www.ResponseMetadata; -import gov.usgs.earthquake.nshmp.www.ServletUtil; - -import io.micronaut.http.HttpRequest; -import jakarta.inject.Singleton; - -/** - * Test sites handler for {@link TestSitesController}. - * - * @author U.S. Geological Survey - */ -@Singleton -public class TestSitesService { - static final Logger LOG = LoggerFactory.getLogger(TestSitesController.class); - static final String NAME = "Test Sites"; - - static String handleSites(HttpRequest<?> http, Boolean raw) { - RequestData requestData = new RequestData(raw); - FeatureCollection sites = ServletUtil.model().sites().orElseThrow(); - - if (requestData.raw) { - return sites.toJson(); - } else { - var response = ResponseBody.<RequestData, JsonElement> success() - .name(NAME) - .url(http.getUri().toString()) - .metadata(new ResponseMetadata(HazVersion.appVersions())) - .request(requestData) - .response(sites.toJsonTree()) - .build(); - - return ServletUtil.GSON2.toJson(response); - } - } - - static class RequestData { - public boolean raw; - - RequestData(Boolean raw) { - this.raw = raw == null ? false : raw; - } - } -} -- GitLab From 2c9634fa014ed9f87cb57369aa5ecbc10d0387f9 Mon Sep 17 00:00:00 2001 From: Brandon Clayton <bclayton@usgs.gov> Date: Tue, 22 Nov 2022 15:37:01 -0700 Subject: [PATCH 09/17] add common service --- .../www/source/FeatureCollectionService.java | 51 +++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 src/main/java/gov/usgs/earthquake/nshmp/www/source/FeatureCollectionService.java diff --git a/src/main/java/gov/usgs/earthquake/nshmp/www/source/FeatureCollectionService.java b/src/main/java/gov/usgs/earthquake/nshmp/www/source/FeatureCollectionService.java new file mode 100644 index 00000000..eb7bf05e --- /dev/null +++ b/src/main/java/gov/usgs/earthquake/nshmp/www/source/FeatureCollectionService.java @@ -0,0 +1,51 @@ +package gov.usgs.earthquake.nshmp.www.source; + +import com.google.gson.JsonElement; + +import gov.usgs.earthquake.nshmp.geo.json.FeatureCollection; +import gov.usgs.earthquake.nshmp.www.HazVersion; +import gov.usgs.earthquake.nshmp.www.ResponseBody; +import gov.usgs.earthquake.nshmp.www.ResponseMetadata; +import gov.usgs.earthquake.nshmp.www.ServletUtil; + +import io.micronaut.http.HttpRequest; +import jakarta.inject.Singleton; + +/** + * Handle feature collection services. + * + * @author U.S. Geological Survey + */ +@Singleton +public class FeatureCollectionService { + + static String handleFeatureCollection( + HttpRequest<?> http, + String name, + FeatureCollection fc, + Boolean raw) { + RequestData requestData = new RequestData(raw); + + if (requestData.raw) { + return fc.toJson(); + } else { + var response = ResponseBody.<RequestData, JsonElement> success() + .name(name) + .url(http.getUri().toString()) + .metadata(new ResponseMetadata(HazVersion.appVersions())) + .request(requestData) + .response(fc.toJsonTree()) + .build(); + + return ServletUtil.GSON2.toJson(response); + } + } + + static class RequestData { + public boolean raw; + + RequestData(Boolean raw) { + this.raw = raw == null ? false : raw; + } + } +} -- GitLab From 2ffbfd8efa73a92f1f6efc1ea726a290e97b9827 Mon Sep 17 00:00:00 2001 From: Brandon Clayton <bclayton@usgs.gov> Date: Tue, 22 Nov 2022 15:37:09 -0700 Subject: [PATCH 10/17] add map controller --- .../nshmp/www/source/MapController.java | 94 +++++++++++++++++++ 1 file changed, 94 insertions(+) create mode 100644 src/main/java/gov/usgs/earthquake/nshmp/www/source/MapController.java diff --git a/src/main/java/gov/usgs/earthquake/nshmp/www/source/MapController.java b/src/main/java/gov/usgs/earthquake/nshmp/www/source/MapController.java new file mode 100644 index 00000000..2538b89a --- /dev/null +++ b/src/main/java/gov/usgs/earthquake/nshmp/www/source/MapController.java @@ -0,0 +1,94 @@ +package gov.usgs.earthquake.nshmp.www.source; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import gov.usgs.earthquake.nshmp.geo.json.FeatureCollection; +import gov.usgs.earthquake.nshmp.www.NshmpMicronautServlet; +import gov.usgs.earthquake.nshmp.www.ResponseBody; +import gov.usgs.earthquake.nshmp.www.ServletUtil; +import gov.usgs.earthquake.nshmp.www.source.FeatureCollectionService.RequestData; + +import io.micronaut.core.annotation.Nullable; +import io.micronaut.http.HttpRequest; +import io.micronaut.http.HttpResponse; +import io.micronaut.http.MediaType; +import io.micronaut.http.annotation.Controller; +import io.micronaut.http.annotation.Get; +import io.micronaut.http.annotation.PathVariable; +import io.micronaut.http.annotation.QueryValue; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.media.Content; +import io.swagger.v3.oas.annotations.media.Schema; +import io.swagger.v3.oas.annotations.responses.ApiResponse; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.inject.Inject; + +/** + * Micronaut web service controller for the GeoJSON map boundary associated with + * the current installed model. + * + * <p>See src/main/resources/application.yml nshmp-haz.model-path for installed + * model. + * + * <p>To run the Micronaut jar file with a model: java -jar + * path/to/nshmp-haz.jar --model=<path/to/model> + * + * @author U.S. Geological Survey + */ +@Tag( + name = MapController.NAME, + description = "NSHM map boundary") +@Controller("/map") +public class MapController { + static final Logger LOG = LoggerFactory.getLogger(MapController.class); + static final String NAME = "Map boundary"; + + @Inject + private NshmpMicronautServlet servlet; + + @Operation( + summary = "Get the GeoJSON map boundary", + description = "Returns the feature collection of NSHM map boundary", + operationId = "map") + @ApiResponse( + description = "NSHM map boundary", + responseCode = "200", + content = @Content( + schema = @Schema(implementation = Response.class))) + @Get(uri = "{?raw}", produces = MediaType.APPLICATION_JSON) + public HttpResponse<String> doGet( + HttpRequest<?> http, + @QueryValue(defaultValue = "false") @Nullable Boolean raw) { + try { + FeatureCollection map = ServletUtil.model().map().orElseThrow(); + return HttpResponse + .ok(FeatureCollectionService.handleFeatureCollection(http, NAME, map, raw)); + } catch (Exception e) { + return ServletUtil.error( + LOG, + e, + NAME, + http.getUri().toString()); + } + } + + @Operation( + summary = "Get the GeoJSON map boundary", + description = "Returns the feature collection of NSHM map boundary", + operationId = "map-slash") + @ApiResponse( + description = "NSHM map boundary", + responseCode = "200", + content = @Content( + schema = @Schema(implementation = Response.class))) + @Get(uri = "/{raw}", produces = MediaType.APPLICATION_JSON) + public HttpResponse<String> doGetSlash( + HttpRequest<?> http, + @PathVariable(defaultValue = "false") @Nullable Boolean raw) { + return doGet(http, raw); + } + + // Swagger schema + private static class Response extends ResponseBody<RequestData, FeatureCollection> {}; +} -- GitLab From 69200c7d9da7d67376478d321ce52562b4e4185b Mon Sep 17 00:00:00 2001 From: Brandon Clayton <bclayton@usgs.gov> Date: Tue, 22 Nov 2022 15:37:34 -0700 Subject: [PATCH 11/17] Use feature collection service --- .../nshmp/www/source/TestSitesController.java | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/src/main/java/gov/usgs/earthquake/nshmp/www/source/TestSitesController.java b/src/main/java/gov/usgs/earthquake/nshmp/www/source/TestSitesController.java index 120cc13f..45fa30f2 100644 --- a/src/main/java/gov/usgs/earthquake/nshmp/www/source/TestSitesController.java +++ b/src/main/java/gov/usgs/earthquake/nshmp/www/source/TestSitesController.java @@ -1,10 +1,13 @@ package gov.usgs.earthquake.nshmp.www.source; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + import gov.usgs.earthquake.nshmp.geo.json.FeatureCollection; import gov.usgs.earthquake.nshmp.www.NshmpMicronautServlet; import gov.usgs.earthquake.nshmp.www.ResponseBody; import gov.usgs.earthquake.nshmp.www.ServletUtil; -import gov.usgs.earthquake.nshmp.www.source.TestSitesService.RequestData; +import gov.usgs.earthquake.nshmp.www.source.FeatureCollectionService.RequestData; import io.micronaut.core.annotation.Nullable; import io.micronaut.http.HttpRequest; @@ -34,10 +37,12 @@ import jakarta.inject.Inject; * @author U.S. Geological Survey */ @Tag( - name = TestSitesService.NAME, + name = TestSitesController.NAME, description = "NSHM test sites") @Controller("/sites") public class TestSitesController { + static final Logger LOG = LoggerFactory.getLogger(TestSitesController.class); + static final String NAME = "Test Sites"; @Inject private NshmpMicronautServlet servlet; @@ -56,12 +61,14 @@ public class TestSitesController { HttpRequest<?> http, @QueryValue(defaultValue = "false") @Nullable Boolean raw) { try { - return HttpResponse.ok(TestSitesService.handleSites(http, raw)); + FeatureCollection sites = ServletUtil.model().sites().orElseThrow(); + return HttpResponse + .ok(FeatureCollectionService.handleFeatureCollection(http, NAME, sites, raw)); } catch (Exception e) { return ServletUtil.error( - TestSitesService.LOG, + LOG, e, - TestSitesService.NAME, + NAME, http.getUri().toString()); } } -- GitLab From be85c9a662296553e59db4f3f4c3e3ff3e67b860 Mon Sep 17 00:00:00 2001 From: Brandon Clayton <bclayton@usgs.gov> Date: Tue, 22 Nov 2022 15:58:27 -0700 Subject: [PATCH 12/17] Remove map --- .../gov/usgs/earthquake/nshmp/www/source/SourceService.java | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/main/java/gov/usgs/earthquake/nshmp/www/source/SourceService.java b/src/main/java/gov/usgs/earthquake/nshmp/www/source/SourceService.java index 1be96725..6cedce84 100644 --- a/src/main/java/gov/usgs/earthquake/nshmp/www/source/SourceService.java +++ b/src/main/java/gov/usgs/earthquake/nshmp/www/source/SourceService.java @@ -10,7 +10,6 @@ import java.util.stream.DoubleStream; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import gov.usgs.earthquake.nshmp.geo.json.FeatureCollection; import gov.usgs.earthquake.nshmp.gmm.Gmm; import gov.usgs.earthquake.nshmp.gmm.NehrpSiteClass; import gov.usgs.earthquake.nshmp.model.HazardModel; @@ -74,7 +73,6 @@ public class SourceService { final Map<NehrpSiteClass, Double> siteClasses; final List<Parameter> imts; final List<Double> bounds; - final FeatureCollection map; public SourceModel(HazardModel model) { name = model.name(); @@ -88,7 +86,6 @@ public class SourceService { .map(imt -> new Parameter(ServletUtil.imtShortLabel(imt), imt.name())) .collect(toList()); bounds = DoubleStream.of(model.bounds().toArray()).boxed().collect(toList()); - map = model.map().orElseThrow(); } public String getName() { -- GitLab From 0cbd832a85080141a8981a7297009563054bb1df Mon Sep 17 00:00:00 2001 From: Brandon Clayton <bclayton@usgs.gov> Date: Tue, 22 Nov 2022 16:36:45 -0700 Subject: [PATCH 13/17] update name --- .../gov/usgs/earthquake/nshmp/www/source/MapController.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/gov/usgs/earthquake/nshmp/www/source/MapController.java b/src/main/java/gov/usgs/earthquake/nshmp/www/source/MapController.java index 2538b89a..dffe6979 100644 --- a/src/main/java/gov/usgs/earthquake/nshmp/www/source/MapController.java +++ b/src/main/java/gov/usgs/earthquake/nshmp/www/source/MapController.java @@ -42,7 +42,7 @@ import jakarta.inject.Inject; @Controller("/map") public class MapController { static final Logger LOG = LoggerFactory.getLogger(MapController.class); - static final String NAME = "Map boundary"; + static final String NAME = "Map Boundary"; @Inject private NshmpMicronautServlet servlet; -- GitLab From f59bc25cdedf82c31da2f128a884d7e58f8511ef Mon Sep 17 00:00:00 2001 From: Peter Powers <pmpowers@usgs.gov> Date: Wed, 23 Nov 2022 07:52:17 -0700 Subject: [PATCH 14/17] class renaming --- ...Controller.java => FeatureController.java} | 20 +++++++++---------- ...aturesService.java => FeatureService.java} | 6 +++--- ...ntroller.java => LogicTreeController.java} | 20 +++++++++---------- ...reesService.java => LogicTreeService.java} | 6 +++--- 4 files changed, 26 insertions(+), 26 deletions(-) rename src/main/java/gov/usgs/earthquake/nshmp/www/source/{FeaturesController.java => FeatureController.java} (85%) rename src/main/java/gov/usgs/earthquake/nshmp/www/source/{FeaturesService.java => FeatureService.java} (92%) rename src/main/java/gov/usgs/earthquake/nshmp/www/source/{SourceLogicTreesController.java => LogicTreeController.java} (83%) rename src/main/java/gov/usgs/earthquake/nshmp/www/source/{SourceLogicTreesService.java => LogicTreeService.java} (91%) diff --git a/src/main/java/gov/usgs/earthquake/nshmp/www/source/FeaturesController.java b/src/main/java/gov/usgs/earthquake/nshmp/www/source/FeatureController.java similarity index 85% rename from src/main/java/gov/usgs/earthquake/nshmp/www/source/FeaturesController.java rename to src/main/java/gov/usgs/earthquake/nshmp/www/source/FeatureController.java index 9c854547..a473ab1b 100644 --- a/src/main/java/gov/usgs/earthquake/nshmp/www/source/FeaturesController.java +++ b/src/main/java/gov/usgs/earthquake/nshmp/www/source/FeatureController.java @@ -3,8 +3,8 @@ package gov.usgs.earthquake.nshmp.www.source; import gov.usgs.earthquake.nshmp.www.NshmpMicronautServlet; import gov.usgs.earthquake.nshmp.www.ResponseBody; import gov.usgs.earthquake.nshmp.www.ServletUtil; -import gov.usgs.earthquake.nshmp.www.source.FeaturesService.Metadata; -import gov.usgs.earthquake.nshmp.www.source.FeaturesService.RequestData; +import gov.usgs.earthquake.nshmp.www.source.FeatureService.Metadata; +import gov.usgs.earthquake.nshmp.www.source.FeatureService.RequestData; import io.micronaut.http.HttpRequest; import io.micronaut.http.HttpResponse; @@ -31,10 +31,10 @@ import jakarta.inject.Inject; * @author U.S. Geological Survey */ @Tag( - name = FeaturesService.NAME, + name = FeatureService.NAME, description = "USGS NSHM source model features service") @Controller("/features") -public class FeaturesController { +public class FeatureController { @Inject private NshmpMicronautServlet servlet; @@ -52,11 +52,11 @@ public class FeaturesController { @Get public HttpResponse<String> doGetMetadata(HttpRequest<?> http) { try { - return FeaturesService.getMetadata(http); + return FeatureService.getMetadata(http); } catch (Exception e) { return ServletUtil.error( - FeaturesService.LOG, e, - FeaturesService.NAME, + FeatureService.LOG, e, + FeatureService.NAME, http.getUri().toString()); } } @@ -76,11 +76,11 @@ public class FeaturesController { @Get(uri = "/{id}") public HttpResponse<String> doGetTree(HttpRequest<?> http, @PathVariable int id) { try { - return FeaturesService.getTree(http, id); + return FeatureService.getTree(http, id); } catch (Exception e) { return ServletUtil.error( - FeaturesService.LOG, e, - FeaturesService.NAME, + FeatureService.LOG, e, + FeatureService.NAME, http.getUri().toString()); } } diff --git a/src/main/java/gov/usgs/earthquake/nshmp/www/source/FeaturesService.java b/src/main/java/gov/usgs/earthquake/nshmp/www/source/FeatureService.java similarity index 92% rename from src/main/java/gov/usgs/earthquake/nshmp/www/source/FeaturesService.java rename to src/main/java/gov/usgs/earthquake/nshmp/www/source/FeatureService.java index 786bafca..8b9433d9 100644 --- a/src/main/java/gov/usgs/earthquake/nshmp/www/source/FeaturesService.java +++ b/src/main/java/gov/usgs/earthquake/nshmp/www/source/FeatureService.java @@ -16,15 +16,15 @@ import io.micronaut.http.HttpResponse; import jakarta.inject.Singleton; /** - * Source model tree feature handler for {@link FeaturesController} + * Source model tree feature handler for {@link FeatureController} * * @author U.S. Geological Survey */ @Singleton -public class FeaturesService { +public class FeatureService { static final String NAME = "Model Features"; - static final Logger LOG = LoggerFactory.getLogger(FeaturesService.class); + static final Logger LOG = LoggerFactory.getLogger(FeatureService.class); public static HttpResponse<String> getMetadata(HttpRequest<?> request) { var url = request.getUri().toString(); diff --git a/src/main/java/gov/usgs/earthquake/nshmp/www/source/SourceLogicTreesController.java b/src/main/java/gov/usgs/earthquake/nshmp/www/source/LogicTreeController.java similarity index 83% rename from src/main/java/gov/usgs/earthquake/nshmp/www/source/SourceLogicTreesController.java rename to src/main/java/gov/usgs/earthquake/nshmp/www/source/LogicTreeController.java index 971c66e8..ef531443 100644 --- a/src/main/java/gov/usgs/earthquake/nshmp/www/source/SourceLogicTreesController.java +++ b/src/main/java/gov/usgs/earthquake/nshmp/www/source/LogicTreeController.java @@ -3,8 +3,8 @@ package gov.usgs.earthquake.nshmp.www.source; import gov.usgs.earthquake.nshmp.www.NshmpMicronautServlet; import gov.usgs.earthquake.nshmp.www.ResponseBody; import gov.usgs.earthquake.nshmp.www.ServletUtil; -import gov.usgs.earthquake.nshmp.www.source.SourceLogicTreesService.Metadata; -import gov.usgs.earthquake.nshmp.www.source.SourceLogicTreesService.RequestData; +import gov.usgs.earthquake.nshmp.www.source.LogicTreeService.Metadata; +import gov.usgs.earthquake.nshmp.www.source.LogicTreeService.RequestData; import io.micronaut.http.HttpRequest; import io.micronaut.http.HttpResponse; @@ -31,10 +31,10 @@ import jakarta.inject.Inject; * @author U.S. Geological Survey */ @Tag( - name = SourceLogicTreesService.NAME, + name = LogicTreeService.NAME, description = "USGS NSHM source model logic tree service") @Controller("/trees") -public class SourceLogicTreesController { +public class LogicTreeController { @Inject private NshmpMicronautServlet servlet; @@ -52,11 +52,11 @@ public class SourceLogicTreesController { @Get public HttpResponse<String> doGetMetadata(HttpRequest<?> http) { try { - return SourceLogicTreesService.getMetadata(http); + return LogicTreeService.getMetadata(http); } catch (Exception e) { return ServletUtil.error( - SourceLogicTreesService.LOG, e, - SourceLogicTreesService.NAME, + LogicTreeService.LOG, e, + LogicTreeService.NAME, http.getUri().toString()); } } @@ -76,11 +76,11 @@ public class SourceLogicTreesController { @Get(uri = "/{id}") public HttpResponse<String> doGetTree(HttpRequest<?> http, @PathVariable int id) { try { - return SourceLogicTreesService.getTree(http, id); + return LogicTreeService.getTree(http, id); } catch (Exception e) { return ServletUtil.error( - SourceLogicTreesService.LOG, e, - SourceLogicTreesService.NAME, + LogicTreeService.LOG, e, + LogicTreeService.NAME, http.getUri().toString()); } } diff --git a/src/main/java/gov/usgs/earthquake/nshmp/www/source/SourceLogicTreesService.java b/src/main/java/gov/usgs/earthquake/nshmp/www/source/LogicTreeService.java similarity index 91% rename from src/main/java/gov/usgs/earthquake/nshmp/www/source/SourceLogicTreesService.java rename to src/main/java/gov/usgs/earthquake/nshmp/www/source/LogicTreeService.java index 3f0fe654..7de2b5f5 100644 --- a/src/main/java/gov/usgs/earthquake/nshmp/www/source/SourceLogicTreesService.java +++ b/src/main/java/gov/usgs/earthquake/nshmp/www/source/LogicTreeService.java @@ -16,15 +16,15 @@ import io.micronaut.http.HttpResponse; import jakarta.inject.Singleton; /** - * Source model tree handler for {@link SourceLogicTreesController} + * Source model tree handler for {@link LogicTreeController} * * @author U.S. Geological Survey */ @Singleton -public class SourceLogicTreesService { +public class LogicTreeService { static final String NAME = "Model Logic Trees"; - static final Logger LOG = LoggerFactory.getLogger(SourceLogicTreesService.class); + static final Logger LOG = LoggerFactory.getLogger(LogicTreeService.class); public static HttpResponse<String> getMetadata(HttpRequest<?> request) { var url = request.getUri().toString(); -- GitLab From 07000451f8b9b184b0c92b58134f3f1a7c6ebe9b Mon Sep 17 00:00:00 2001 From: Peter Powers <pmpowers@usgs.gov> Date: Wed, 23 Nov 2022 07:54:12 -0700 Subject: [PATCH 15/17] class renaming --- ...ontroller.java => FeaturesController.java} | 20 +++++++++---------- ...atureService.java => FeaturesService.java} | 6 +++--- ...troller.java => LogicTreesController.java} | 20 +++++++++---------- ...reeService.java => LogicTreesService.java} | 6 +++--- 4 files changed, 26 insertions(+), 26 deletions(-) rename src/main/java/gov/usgs/earthquake/nshmp/www/source/{FeatureController.java => FeaturesController.java} (85%) rename src/main/java/gov/usgs/earthquake/nshmp/www/source/{FeatureService.java => FeaturesService.java} (92%) rename src/main/java/gov/usgs/earthquake/nshmp/www/source/{LogicTreeController.java => LogicTreesController.java} (85%) rename src/main/java/gov/usgs/earthquake/nshmp/www/source/{LogicTreeService.java => LogicTreesService.java} (92%) diff --git a/src/main/java/gov/usgs/earthquake/nshmp/www/source/FeatureController.java b/src/main/java/gov/usgs/earthquake/nshmp/www/source/FeaturesController.java similarity index 85% rename from src/main/java/gov/usgs/earthquake/nshmp/www/source/FeatureController.java rename to src/main/java/gov/usgs/earthquake/nshmp/www/source/FeaturesController.java index a473ab1b..9c854547 100644 --- a/src/main/java/gov/usgs/earthquake/nshmp/www/source/FeatureController.java +++ b/src/main/java/gov/usgs/earthquake/nshmp/www/source/FeaturesController.java @@ -3,8 +3,8 @@ package gov.usgs.earthquake.nshmp.www.source; import gov.usgs.earthquake.nshmp.www.NshmpMicronautServlet; import gov.usgs.earthquake.nshmp.www.ResponseBody; import gov.usgs.earthquake.nshmp.www.ServletUtil; -import gov.usgs.earthquake.nshmp.www.source.FeatureService.Metadata; -import gov.usgs.earthquake.nshmp.www.source.FeatureService.RequestData; +import gov.usgs.earthquake.nshmp.www.source.FeaturesService.Metadata; +import gov.usgs.earthquake.nshmp.www.source.FeaturesService.RequestData; import io.micronaut.http.HttpRequest; import io.micronaut.http.HttpResponse; @@ -31,10 +31,10 @@ import jakarta.inject.Inject; * @author U.S. Geological Survey */ @Tag( - name = FeatureService.NAME, + name = FeaturesService.NAME, description = "USGS NSHM source model features service") @Controller("/features") -public class FeatureController { +public class FeaturesController { @Inject private NshmpMicronautServlet servlet; @@ -52,11 +52,11 @@ public class FeatureController { @Get public HttpResponse<String> doGetMetadata(HttpRequest<?> http) { try { - return FeatureService.getMetadata(http); + return FeaturesService.getMetadata(http); } catch (Exception e) { return ServletUtil.error( - FeatureService.LOG, e, - FeatureService.NAME, + FeaturesService.LOG, e, + FeaturesService.NAME, http.getUri().toString()); } } @@ -76,11 +76,11 @@ public class FeatureController { @Get(uri = "/{id}") public HttpResponse<String> doGetTree(HttpRequest<?> http, @PathVariable int id) { try { - return FeatureService.getTree(http, id); + return FeaturesService.getTree(http, id); } catch (Exception e) { return ServletUtil.error( - FeatureService.LOG, e, - FeatureService.NAME, + FeaturesService.LOG, e, + FeaturesService.NAME, http.getUri().toString()); } } diff --git a/src/main/java/gov/usgs/earthquake/nshmp/www/source/FeatureService.java b/src/main/java/gov/usgs/earthquake/nshmp/www/source/FeaturesService.java similarity index 92% rename from src/main/java/gov/usgs/earthquake/nshmp/www/source/FeatureService.java rename to src/main/java/gov/usgs/earthquake/nshmp/www/source/FeaturesService.java index 8b9433d9..786bafca 100644 --- a/src/main/java/gov/usgs/earthquake/nshmp/www/source/FeatureService.java +++ b/src/main/java/gov/usgs/earthquake/nshmp/www/source/FeaturesService.java @@ -16,15 +16,15 @@ import io.micronaut.http.HttpResponse; import jakarta.inject.Singleton; /** - * Source model tree feature handler for {@link FeatureController} + * Source model tree feature handler for {@link FeaturesController} * * @author U.S. Geological Survey */ @Singleton -public class FeatureService { +public class FeaturesService { static final String NAME = "Model Features"; - static final Logger LOG = LoggerFactory.getLogger(FeatureService.class); + static final Logger LOG = LoggerFactory.getLogger(FeaturesService.class); public static HttpResponse<String> getMetadata(HttpRequest<?> request) { var url = request.getUri().toString(); diff --git a/src/main/java/gov/usgs/earthquake/nshmp/www/source/LogicTreeController.java b/src/main/java/gov/usgs/earthquake/nshmp/www/source/LogicTreesController.java similarity index 85% rename from src/main/java/gov/usgs/earthquake/nshmp/www/source/LogicTreeController.java rename to src/main/java/gov/usgs/earthquake/nshmp/www/source/LogicTreesController.java index ef531443..6e7c98b5 100644 --- a/src/main/java/gov/usgs/earthquake/nshmp/www/source/LogicTreeController.java +++ b/src/main/java/gov/usgs/earthquake/nshmp/www/source/LogicTreesController.java @@ -3,8 +3,8 @@ package gov.usgs.earthquake.nshmp.www.source; import gov.usgs.earthquake.nshmp.www.NshmpMicronautServlet; import gov.usgs.earthquake.nshmp.www.ResponseBody; import gov.usgs.earthquake.nshmp.www.ServletUtil; -import gov.usgs.earthquake.nshmp.www.source.LogicTreeService.Metadata; -import gov.usgs.earthquake.nshmp.www.source.LogicTreeService.RequestData; +import gov.usgs.earthquake.nshmp.www.source.LogicTreesService.Metadata; +import gov.usgs.earthquake.nshmp.www.source.LogicTreesService.RequestData; import io.micronaut.http.HttpRequest; import io.micronaut.http.HttpResponse; @@ -31,10 +31,10 @@ import jakarta.inject.Inject; * @author U.S. Geological Survey */ @Tag( - name = LogicTreeService.NAME, + name = LogicTreesService.NAME, description = "USGS NSHM source model logic tree service") @Controller("/trees") -public class LogicTreeController { +public class LogicTreesController { @Inject private NshmpMicronautServlet servlet; @@ -52,11 +52,11 @@ public class LogicTreeController { @Get public HttpResponse<String> doGetMetadata(HttpRequest<?> http) { try { - return LogicTreeService.getMetadata(http); + return LogicTreesService.getMetadata(http); } catch (Exception e) { return ServletUtil.error( - LogicTreeService.LOG, e, - LogicTreeService.NAME, + LogicTreesService.LOG, e, + LogicTreesService.NAME, http.getUri().toString()); } } @@ -76,11 +76,11 @@ public class LogicTreeController { @Get(uri = "/{id}") public HttpResponse<String> doGetTree(HttpRequest<?> http, @PathVariable int id) { try { - return LogicTreeService.getTree(http, id); + return LogicTreesService.getTree(http, id); } catch (Exception e) { return ServletUtil.error( - LogicTreeService.LOG, e, - LogicTreeService.NAME, + LogicTreesService.LOG, e, + LogicTreesService.NAME, http.getUri().toString()); } } diff --git a/src/main/java/gov/usgs/earthquake/nshmp/www/source/LogicTreeService.java b/src/main/java/gov/usgs/earthquake/nshmp/www/source/LogicTreesService.java similarity index 92% rename from src/main/java/gov/usgs/earthquake/nshmp/www/source/LogicTreeService.java rename to src/main/java/gov/usgs/earthquake/nshmp/www/source/LogicTreesService.java index 7de2b5f5..696420b0 100644 --- a/src/main/java/gov/usgs/earthquake/nshmp/www/source/LogicTreeService.java +++ b/src/main/java/gov/usgs/earthquake/nshmp/www/source/LogicTreesService.java @@ -16,15 +16,15 @@ import io.micronaut.http.HttpResponse; import jakarta.inject.Singleton; /** - * Source model tree handler for {@link LogicTreeController} + * Source model tree handler for {@link LogicTreesController} * * @author U.S. Geological Survey */ @Singleton -public class LogicTreeService { +public class LogicTreesService { static final String NAME = "Model Logic Trees"; - static final Logger LOG = LoggerFactory.getLogger(LogicTreeService.class); + static final Logger LOG = LoggerFactory.getLogger(LogicTreesService.class); public static HttpResponse<String> getMetadata(HttpRequest<?> request) { var url = request.getUri().toString(); -- GitLab From b40ffb6542a7025322050da18e7e5b6da634798e Mon Sep 17 00:00:00 2001 From: Peter Powers <pmpowers@usgs.gov> Date: Wed, 23 Nov 2022 09:36:05 -0700 Subject: [PATCH 16/17] merged mfd and feature logic tree services --- .../nshmp/www/source/FeaturesController.java | 14 ++++- .../nshmp/www/source/FeaturesService.java | 3 +- .../www/source/LogicTreesController.java | 61 +++++++++++++++++-- .../nshmp/www/source/LogicTreesService.java | 21 +++++-- 4 files changed, 85 insertions(+), 14 deletions(-) diff --git a/src/main/java/gov/usgs/earthquake/nshmp/www/source/FeaturesController.java b/src/main/java/gov/usgs/earthquake/nshmp/www/source/FeaturesController.java index 9c854547..a15a3262 100644 --- a/src/main/java/gov/usgs/earthquake/nshmp/www/source/FeaturesController.java +++ b/src/main/java/gov/usgs/earthquake/nshmp/www/source/FeaturesController.java @@ -5,7 +5,6 @@ import gov.usgs.earthquake.nshmp.www.ResponseBody; import gov.usgs.earthquake.nshmp.www.ServletUtil; import gov.usgs.earthquake.nshmp.www.source.FeaturesService.Metadata; import gov.usgs.earthquake.nshmp.www.source.FeaturesService.RequestData; - import io.micronaut.http.HttpRequest; import io.micronaut.http.HttpResponse; import io.micronaut.http.annotation.Controller; @@ -19,8 +18,8 @@ import io.swagger.v3.oas.annotations.tags.Tag; import jakarta.inject.Inject; /** - * Micronaut web service controller for the GeoJSON features in the current - * installed model. + * Micronaut web service controller for the GeoJSON features in the installed + * model. * * <p>See src/main/resources/application.yml nshmp-haz.model-path for installed * model. @@ -39,6 +38,13 @@ public class FeaturesController { @Inject private NshmpMicronautServlet servlet; + /* + * Not sure we need metadata for this. Issue #542 describes the various groups + * that could be supported. However instead of 'all' one could consider just + * having no argument such that the root endpoint path would just return all + * features. + */ + @Operation( summary = "Source model logic tree listing", description = "Returns the ID's of logic trees in the model", @@ -50,6 +56,7 @@ public class FeaturesController { schema = @Schema( implementation = MetadataResponse.class))) @Get + @Deprecated public HttpResponse<String> doGetMetadata(HttpRequest<?> http) { try { return FeaturesService.getMetadata(http); @@ -74,6 +81,7 @@ public class FeaturesController { content = @Content( schema = @Schema(implementation = TreeResponse.class))) @Get(uri = "/{id}") + @Deprecated public HttpResponse<String> doGetTree(HttpRequest<?> http, @PathVariable int id) { try { return FeaturesService.getTree(http, id); diff --git a/src/main/java/gov/usgs/earthquake/nshmp/www/source/FeaturesService.java b/src/main/java/gov/usgs/earthquake/nshmp/www/source/FeaturesService.java index 786bafca..258c8b0a 100644 --- a/src/main/java/gov/usgs/earthquake/nshmp/www/source/FeaturesService.java +++ b/src/main/java/gov/usgs/earthquake/nshmp/www/source/FeaturesService.java @@ -10,7 +10,6 @@ import gov.usgs.earthquake.nshmp.www.ResponseBody; import gov.usgs.earthquake.nshmp.www.ResponseMetadata; import gov.usgs.earthquake.nshmp.www.ServletUtil; import gov.usgs.earthquake.nshmp.www.source.SourceService.SourceModel; - import io.micronaut.http.HttpRequest; import io.micronaut.http.HttpResponse; import jakarta.inject.Singleton; @@ -26,6 +25,7 @@ public class FeaturesService { static final String NAME = "Model Features"; static final Logger LOG = LoggerFactory.getLogger(FeaturesService.class); + @Deprecated public static HttpResponse<String> getMetadata(HttpRequest<?> request) { var url = request.getUri().toString(); var metadata = new Metadata(ServletUtil.model()); @@ -39,6 +39,7 @@ public class FeaturesService { return HttpResponse.ok(ServletUtil.GSON2.toJson(response)); } + @Deprecated public static HttpResponse<String> getTree(HttpRequest<?> request, Integer id) { var url = request.getUri().toString(); var features = Models.features(ServletUtil.model(), id); diff --git a/src/main/java/gov/usgs/earthquake/nshmp/www/source/LogicTreesController.java b/src/main/java/gov/usgs/earthquake/nshmp/www/source/LogicTreesController.java index 6e7c98b5..dba2f819 100644 --- a/src/main/java/gov/usgs/earthquake/nshmp/www/source/LogicTreesController.java +++ b/src/main/java/gov/usgs/earthquake/nshmp/www/source/LogicTreesController.java @@ -5,7 +5,6 @@ import gov.usgs.earthquake.nshmp.www.ResponseBody; import gov.usgs.earthquake.nshmp.www.ServletUtil; import gov.usgs.earthquake.nshmp.www.source.LogicTreesService.Metadata; import gov.usgs.earthquake.nshmp.www.source.LogicTreesService.RequestData; - import io.micronaut.http.HttpRequest; import io.micronaut.http.HttpResponse; import io.micronaut.http.annotation.Controller; @@ -19,8 +18,9 @@ import io.swagger.v3.oas.annotations.tags.Tag; import jakarta.inject.Inject; /** - * Micronaut web service controller for the source logic trees in the current - * installed model. + * Micronaut web service controller for the source logic trees in the installed + * model. These endpoints return the GeoJSON features and Magnitude frequency + * distributions associated with the branches in a source logic tree. * * <p>See src/main/resources/application.yml nshmp-haz.model-path for installed * model. @@ -41,7 +41,7 @@ public class LogicTreesController { @Operation( summary = "Source model logic tree listing", - description = "Returns the ID's of logic trees in the model", + description = "Returns the IDs of logic trees in the model", operationId = "source-tree-metadata") @ApiResponse( description = "Source logic tree metadata", @@ -67,16 +67,65 @@ public class LogicTreesController { @Operation( summary = "Get a source model MFD logic tree", description = "Returns the logic tree of MFDs for the supplied ID", - operationId = "source-tree-mfds") + operationId = "source-tree-mfds-old") @ApiResponse( description = "NSHM source logic tree", responseCode = "200", content = @Content( schema = @Schema(implementation = TreeResponse.class))) @Get(uri = "/{id}") + @Deprecated public HttpResponse<String> doGetTree(HttpRequest<?> http, @PathVariable int id) { try { - return LogicTreesService.getTree(http, id); + return LogicTreesService.getMfdTree(http, id); + } catch (Exception e) { + return ServletUtil.error( + LogicTreesService.LOG, e, + LogicTreesService.NAME, + http.getUri().toString()); + } + } + + /** + * @param id Source logic tree id + */ + @Operation( + summary = "Get a source model feature logic tree", + description = "Returns the logic tree of features for the supplied ID", + operationId = "source-tree-features") + @ApiResponse( + description = "NSHM source logic tree", + responseCode = "200", + content = @Content( + schema = @Schema(implementation = TreeResponse.class))) + @Get(uri = "/features/{id}") + public HttpResponse<String> doGetFeatureTree(HttpRequest<?> http, @PathVariable int id) { + try { + return LogicTreesService.getFeatureTree(http, id); + } catch (Exception e) { + return ServletUtil.error( + LogicTreesService.LOG, e, + LogicTreesService.NAME, + http.getUri().toString()); + } + } + + /** + * @param id Source logic tree id + */ + @Operation( + summary = "Get a source model MFD logic tree", + description = "Returns the logic tree of MFDs for the supplied ID", + operationId = "source-tree-mfds") + @ApiResponse( + description = "NSHM source logic tree", + responseCode = "200", + content = @Content( + schema = @Schema(implementation = TreeResponse.class))) + @Get(uri = "/mfds/{id}") + public HttpResponse<String> doGetMfdTree(HttpRequest<?> http, @PathVariable int id) { + try { + return LogicTreesService.getMfdTree(http, id); } catch (Exception e) { return ServletUtil.error( LogicTreesService.LOG, e, diff --git a/src/main/java/gov/usgs/earthquake/nshmp/www/source/LogicTreesService.java b/src/main/java/gov/usgs/earthquake/nshmp/www/source/LogicTreesService.java index 696420b0..0065c82b 100644 --- a/src/main/java/gov/usgs/earthquake/nshmp/www/source/LogicTreesService.java +++ b/src/main/java/gov/usgs/earthquake/nshmp/www/source/LogicTreesService.java @@ -10,7 +10,6 @@ import gov.usgs.earthquake.nshmp.www.ResponseBody; import gov.usgs.earthquake.nshmp.www.ResponseMetadata; import gov.usgs.earthquake.nshmp.www.ServletUtil; import gov.usgs.earthquake.nshmp.www.source.SourceService.SourceModel; - import io.micronaut.http.HttpRequest; import io.micronaut.http.HttpResponse; import jakarta.inject.Singleton; @@ -39,16 +38,30 @@ public class LogicTreesService { return HttpResponse.ok(ServletUtil.GSON2.toJson(response)); } - public static HttpResponse<String> getTree(HttpRequest<?> request, Integer id) { + public static HttpResponse<String> getFeatureTree(HttpRequest<?> request, Integer id) { + var url = request.getUri().toString(); + var featureTree = Models.features(ServletUtil.model(), id); + var requestData = new RequestData(id); + var response = ResponseBody.success() + .name(NAME) + .url(url) + .metadata(new ResponseMetadata(HazVersion.appVersions())) + .request(requestData) + .response(featureTree) + .build(); + return HttpResponse.ok(ServletUtil.GSON2.toJson(response)); + } + + public static HttpResponse<String> getMfdTree(HttpRequest<?> request, Integer id) { var url = request.getUri().toString(); - var tree = Models.tree(ServletUtil.model(), id); + var mfdTree = Models.tree(ServletUtil.model(), id); var requestData = new RequestData(id); var response = ResponseBody.success() .name(NAME) .url(url) .metadata(new ResponseMetadata(HazVersion.appVersions())) .request(requestData) - .response(tree) + .response(mfdTree) .build(); return HttpResponse.ok(ServletUtil.GSON2.toJson(response)); } -- GitLab From 74becf87978218511d6bec0171fbce389c6fd2ef Mon Sep 17 00:00:00 2001 From: Peter Powers <pmpowers@usgs.gov> Date: Wed, 23 Nov 2022 09:38:46 -0700 Subject: [PATCH 17/17] spotless edits --- package-lock.json | 1 - .../gov/usgs/earthquake/nshmp/www/source/FeaturesController.java | 1 + .../gov/usgs/earthquake/nshmp/www/source/FeaturesService.java | 1 + .../usgs/earthquake/nshmp/www/source/LogicTreesController.java | 1 + .../gov/usgs/earthquake/nshmp/www/source/LogicTreesService.java | 1 + 5 files changed, 4 insertions(+), 1 deletion(-) diff --git a/package-lock.json b/package-lock.json index dc72624b..fd03b78e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5,7 +5,6 @@ "requires": true, "packages": { "": { - "name": "nshmp-haz", "version": "2.0.0", "devDependencies": { "markdownlint-cli": "^0.31.1", diff --git a/src/main/java/gov/usgs/earthquake/nshmp/www/source/FeaturesController.java b/src/main/java/gov/usgs/earthquake/nshmp/www/source/FeaturesController.java index a15a3262..3ff3662e 100644 --- a/src/main/java/gov/usgs/earthquake/nshmp/www/source/FeaturesController.java +++ b/src/main/java/gov/usgs/earthquake/nshmp/www/source/FeaturesController.java @@ -5,6 +5,7 @@ import gov.usgs.earthquake.nshmp.www.ResponseBody; import gov.usgs.earthquake.nshmp.www.ServletUtil; import gov.usgs.earthquake.nshmp.www.source.FeaturesService.Metadata; import gov.usgs.earthquake.nshmp.www.source.FeaturesService.RequestData; + import io.micronaut.http.HttpRequest; import io.micronaut.http.HttpResponse; import io.micronaut.http.annotation.Controller; diff --git a/src/main/java/gov/usgs/earthquake/nshmp/www/source/FeaturesService.java b/src/main/java/gov/usgs/earthquake/nshmp/www/source/FeaturesService.java index 258c8b0a..f21bf57d 100644 --- a/src/main/java/gov/usgs/earthquake/nshmp/www/source/FeaturesService.java +++ b/src/main/java/gov/usgs/earthquake/nshmp/www/source/FeaturesService.java @@ -10,6 +10,7 @@ import gov.usgs.earthquake.nshmp.www.ResponseBody; import gov.usgs.earthquake.nshmp.www.ResponseMetadata; import gov.usgs.earthquake.nshmp.www.ServletUtil; import gov.usgs.earthquake.nshmp.www.source.SourceService.SourceModel; + import io.micronaut.http.HttpRequest; import io.micronaut.http.HttpResponse; import jakarta.inject.Singleton; diff --git a/src/main/java/gov/usgs/earthquake/nshmp/www/source/LogicTreesController.java b/src/main/java/gov/usgs/earthquake/nshmp/www/source/LogicTreesController.java index dba2f819..6fd72aaf 100644 --- a/src/main/java/gov/usgs/earthquake/nshmp/www/source/LogicTreesController.java +++ b/src/main/java/gov/usgs/earthquake/nshmp/www/source/LogicTreesController.java @@ -5,6 +5,7 @@ import gov.usgs.earthquake.nshmp.www.ResponseBody; import gov.usgs.earthquake.nshmp.www.ServletUtil; import gov.usgs.earthquake.nshmp.www.source.LogicTreesService.Metadata; import gov.usgs.earthquake.nshmp.www.source.LogicTreesService.RequestData; + import io.micronaut.http.HttpRequest; import io.micronaut.http.HttpResponse; import io.micronaut.http.annotation.Controller; diff --git a/src/main/java/gov/usgs/earthquake/nshmp/www/source/LogicTreesService.java b/src/main/java/gov/usgs/earthquake/nshmp/www/source/LogicTreesService.java index 0065c82b..1a679b0d 100644 --- a/src/main/java/gov/usgs/earthquake/nshmp/www/source/LogicTreesService.java +++ b/src/main/java/gov/usgs/earthquake/nshmp/www/source/LogicTreesService.java @@ -10,6 +10,7 @@ import gov.usgs.earthquake.nshmp.www.ResponseBody; import gov.usgs.earthquake.nshmp.www.ResponseMetadata; import gov.usgs.earthquake.nshmp.www.ServletUtil; import gov.usgs.earthquake.nshmp.www.source.SourceService.SourceModel; + import io.micronaut.http.HttpRequest; import io.micronaut.http.HttpResponse; import jakarta.inject.Singleton; -- GitLab