Skip to content
Snippets Groups Projects
Commit fe6b148c authored by Clayton, Brandon Scott's avatar Clayton, Brandon Scott
Browse files

remove nshm

parent c9ab9a9c
No related branches found
No related tags found
2 merge requests!128Production Release | nshmp-ws-static,!127Resolves - Handle Multiple NetCDF Files for AASHTO Service
...@@ -23,18 +23,8 @@ import ucar.nc2.dataset.NetcdfDatasets; ...@@ -23,18 +23,8 @@ import ucar.nc2.dataset.NetcdfDatasets;
*/ */
public class NetcdfHazardCurves extends Netcdf<StaticDataHazardCurves> { public class NetcdfHazardCurves extends Netcdf<StaticDataHazardCurves> {
private final Nshm nshm;
public NetcdfHazardCurves(Path netcdfPath) { public NetcdfHazardCurves(Path netcdfPath) {
super(netcdfPath); super(netcdfPath);
nshm = Nshm.valueOf(netcdfData().scienceBaseMetadata().catalogId);
}
/**
* Returns the NSHM
*/
public Nshm nshm() {
return nshm;
} }
@Override @Override
......
...@@ -2,7 +2,6 @@ package gov.usgs.earthquake.nshmp.netcdf.www; ...@@ -2,7 +2,6 @@ package gov.usgs.earthquake.nshmp.netcdf.www;
import gov.usgs.earthquake.nshmp.gmm.Imt; import gov.usgs.earthquake.nshmp.gmm.Imt;
import gov.usgs.earthquake.nshmp.gmm.NehrpSiteClass; import gov.usgs.earthquake.nshmp.gmm.NehrpSiteClass;
import gov.usgs.earthquake.nshmp.netcdf.Nshm;
import gov.usgs.earthquake.nshmp.netcdf.www.Metadata.ServiceResponseMetadata; import gov.usgs.earthquake.nshmp.netcdf.www.Metadata.ServiceResponseMetadata;
import gov.usgs.earthquake.nshmp.netcdf.www.Request.RequestData; import gov.usgs.earthquake.nshmp.netcdf.www.Request.RequestData;
import gov.usgs.earthquake.nshmp.netcdf.www.RequestHazardCurves.HazardRequestDataImt; import gov.usgs.earthquake.nshmp.netcdf.www.RequestHazardCurves.HazardRequestDataImt;
...@@ -15,23 +14,20 @@ import gov.usgs.earthquake.nshmp.netcdf.www.RequestHazardCurves.HazardRequestDat ...@@ -15,23 +14,20 @@ import gov.usgs.earthquake.nshmp.netcdf.www.RequestHazardCurves.HazardRequestDat
public class HazardMetadata { public class HazardMetadata {
static class HazardResponseMetadata extends ServiceResponseMetadata { static class HazardResponseMetadata extends ServiceResponseMetadata {
public final Nshm nshm;
public final Imt imt; public final Imt imt;
HazardResponseMetadata( HazardResponseMetadata(
Nshm nshm,
NehrpSiteClass siteClass, NehrpSiteClass siteClass,
Imt imt, Imt imt,
String xLabel, String xLabel,
String yLabel) { String yLabel) {
super(siteClass, xLabel, yLabel); super(siteClass, xLabel, yLabel);
this.nshm = nshm;
this.imt = imt; this.imt = imt;
} }
@Override @Override
public HazardRequestDataImt toRequestMetadata(RequestData requestData) { public HazardRequestDataImt toRequestMetadata(RequestData requestData) {
return new HazardRequestDataImt(nshm, requestData.site, siteClass, imt, requestData.format); return new HazardRequestDataImt(requestData.site, siteClass, imt, requestData.format);
} }
} }
} }
...@@ -2,21 +2,17 @@ package gov.usgs.earthquake.nshmp.netcdf.www; ...@@ -2,21 +2,17 @@ package gov.usgs.earthquake.nshmp.netcdf.www;
import gov.usgs.earthquake.nshmp.gmm.Imt; import gov.usgs.earthquake.nshmp.gmm.Imt;
import gov.usgs.earthquake.nshmp.gmm.NehrpSiteClass; import gov.usgs.earthquake.nshmp.gmm.NehrpSiteClass;
import gov.usgs.earthquake.nshmp.netcdf.Nshm;
public class HazardQuery extends Query { public class HazardQuery extends Query {
public final Nshm nshm;
public final Imt imt; public final Imt imt;
public HazardQuery( public HazardQuery(
Nshm nshm,
Double longitude, Double longitude,
Double latitude, Double latitude,
NehrpSiteClass siteClass, NehrpSiteClass siteClass,
Imt imt, Imt imt,
ResponseFormat format) { ResponseFormat format) {
super(longitude, latitude, siteClass, format); super(longitude, latitude, siteClass, format);
this.nshm = nshm;
this.imt = imt; this.imt = imt;
} }
} }
...@@ -6,7 +6,6 @@ import java.util.List; ...@@ -6,7 +6,6 @@ import java.util.List;
import gov.usgs.earthquake.nshmp.gmm.Imt; import gov.usgs.earthquake.nshmp.gmm.Imt;
import gov.usgs.earthquake.nshmp.gmm.NehrpSiteClass; import gov.usgs.earthquake.nshmp.gmm.NehrpSiteClass;
import gov.usgs.earthquake.nshmp.netcdf.NetcdfDataFilesHazardCurves; import gov.usgs.earthquake.nshmp.netcdf.NetcdfDataFilesHazardCurves;
import gov.usgs.earthquake.nshmp.netcdf.Nshm;
import gov.usgs.earthquake.nshmp.netcdf.www.HazardMetadata.HazardResponseMetadata; import gov.usgs.earthquake.nshmp.netcdf.www.HazardMetadata.HazardResponseMetadata;
import gov.usgs.earthquake.nshmp.netcdf.www.Request.RequestDataSiteClass; import gov.usgs.earthquake.nshmp.netcdf.www.Request.RequestDataSiteClass;
import gov.usgs.earthquake.nshmp.netcdf.www.RequestHazardCurves.HazardRequestDataImt; import gov.usgs.earthquake.nshmp.netcdf.www.RequestHazardCurves.HazardRequestDataImt;
...@@ -33,8 +32,7 @@ import io.swagger.v3.oas.annotations.tags.Tag; ...@@ -33,8 +32,7 @@ import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.inject.Inject; import jakarta.inject.Inject;
/** /**
* Micronaut controller for getting static hazards or ground motions from a * Micronaut controller for getting static hazards from a NetCDF file.
* NetCDF file.
* *
* @see NetcdfService * @see NetcdfService
* *
...@@ -47,6 +45,9 @@ public class NetcdfController { ...@@ -47,6 +45,9 @@ public class NetcdfController {
@Inject @Inject
private NshmpMicronautServlet servlet; private NshmpMicronautServlet servlet;
/**
* The path to a hazard NetCDF file
*/
@Value("${nshmp-ws-static.netcdf-path}") @Value("${nshmp-ws-static.netcdf-path}")
Path netcdfPath; Path netcdfPath;
...@@ -87,11 +88,11 @@ public class NetcdfController { ...@@ -87,11 +88,11 @@ public class NetcdfController {
"### Service call pattern\n" + "### Service call pattern\n" +
"This service call is slashed delimited with pattern: " + "This service call is slashed delimited with pattern: " +
"`/hazard/{nshm}/{longitude}/{latitude}/{siteClass}/{imt}`\n" + "`/hazard/{longitude}/{latitude}/{siteClass}/{imt}`\n" +
"<br><br>" + "<br><br>" +
"Example: `/hazard/CONUS_2018/-118/34/BC/PGA`" + "Example: `/hazard/-118/34/BC/PGA`" +
"<br><br>" + "<br><br>" +
"CSV Example: `/hazard/CONUS_2018/-118/34/BC/PGA?format=CSV`", "CSV Example: `/hazard/-118/34/BC/PGA?format=CSV`",
operationId = "hazard-by-imt") operationId = "hazard-by-imt")
@ApiResponse( @ApiResponse(
description = "Spatially interpolated hazard curves", description = "Spatially interpolated hazard curves",
...@@ -110,18 +111,17 @@ public class NetcdfController { ...@@ -110,18 +111,17 @@ public class NetcdfController {
"Ground Motion (g),0.00233,0.0035,0.00524,0.00786,0.0118, ...\n" + "Ground Motion (g),0.00233,0.0035,0.00524,0.00786,0.0118, ...\n" +
"Annual Frequency of Exceedence,0.036386,0.026034,0.018125,0.012197, ...\n")) "Annual Frequency of Exceedence,0.036386,0.026034,0.018125,0.012197, ...\n"))
}) })
@Get(uri = "/{nshm}/{longitude}/{latitude}/{siteClass}/{imt}{?format}", @Get(uri = "/{longitude}/{latitude}/{siteClass}/{imt}{?format}",
produces = MediaType.APPLICATION_JSON) produces = MediaType.APPLICATION_JSON)
public HttpResponse<String> doGetSlashByImt( public HttpResponse<String> doGetSlashByImt(
HttpRequest<?> request, HttpRequest<?> request,
@Schema(required = true) @PathVariable Nshm nshm,
@Schema(required = true) @PathVariable Double latitude, @Schema(required = true) @PathVariable Double latitude,
@Schema(required = true) @PathVariable Double longitude, @Schema(required = true) @PathVariable Double longitude,
@Schema(required = true) @PathVariable NehrpSiteClass siteClass, @Schema(required = true) @PathVariable NehrpSiteClass siteClass,
@Schema(required = true) @PathVariable Imt imt, @Schema(required = true) @PathVariable Imt imt,
@Schema(required = false, defaultValue = "JSON", @Schema(required = false, defaultValue = "JSON",
implementation = ResponseFormat.class) @QueryValue @Nullable ResponseFormat format) { implementation = ResponseFormat.class) @QueryValue @Nullable ResponseFormat format) {
return doGet(request, nshm, longitude, latitude, siteClass, imt, format); return doGet(request, longitude, latitude, siteClass, imt, format);
} }
/** /**
...@@ -150,11 +150,11 @@ public class NetcdfController { ...@@ -150,11 +150,11 @@ public class NetcdfController {
"### Service call pattern\n" + "### Service call pattern\n" +
"This service call is slashed delimited with pattern: " + "This service call is slashed delimited with pattern: " +
"`/hazard/{nshm}/{longitude}/{latitude}/{siteClass}`\n" + "`/hazard/{longitude}/{latitude}/{siteClass}`\n" +
"<br><br>" + "<br><br>" +
"Example: `/hazard/CONUS_2018/-118/34/BC`" + "Example: `/hazard/-118/34/BC`" +
"<br><br>" + "<br><br>" +
"Example: `/hazard/CONUS_2018/-118/34/BC?format=CSV`", "Example: `/hazard/-118/34/BC?format=CSV`",
operationId = "hazard-by-siteclass") operationId = "hazard-by-siteclass")
@ApiResponse( @ApiResponse(
description = "Spatially interpolated hazard curves", description = "Spatially interpolated hazard curves",
...@@ -176,17 +176,16 @@ public class NetcdfController { ...@@ -176,17 +176,16 @@ public class NetcdfController {
"...")) "..."))
}) })
@Get(uri = "/{nshm}/{longitude}/{latitude}/{siteClass}{?format}", @Get(uri = "/{longitude}/{latitude}/{siteClass}{?format}",
produces = MediaType.APPLICATION_JSON) produces = MediaType.APPLICATION_JSON)
public HttpResponse<String> doGetSlashBySite( public HttpResponse<String> doGetSlashBySite(
HttpRequest<?> request, HttpRequest<?> request,
@Schema(required = true) @PathVariable Nshm nshm,
@Schema(required = true) @PathVariable Double latitude, @Schema(required = true) @PathVariable Double latitude,
@Schema(required = true) @PathVariable Double longitude, @Schema(required = true) @PathVariable Double longitude,
@Schema(required = true) @PathVariable NehrpSiteClass siteClass, @Schema(required = true) @PathVariable NehrpSiteClass siteClass,
@Schema(required = false, defaultValue = "JSON", @Schema(required = false, defaultValue = "JSON",
implementation = ResponseFormat.class) @QueryValue @Nullable ResponseFormat format) { implementation = ResponseFormat.class) @QueryValue @Nullable ResponseFormat format) {
return doGet(request, nshm, longitude, latitude, siteClass, null, format); return doGet(request, longitude, latitude, siteClass, null, format);
} }
/** /**
...@@ -213,11 +212,11 @@ public class NetcdfController { ...@@ -213,11 +212,11 @@ public class NetcdfController {
"### Service call pattern\n" + "### Service call pattern\n" +
"This service call is slashed delimited with pattern: " + "This service call is slashed delimited with pattern: " +
"`/hazard/{nshm}/{longitude}/{latitude}`\n" + "`/hazard/{longitude}/{latitude}`\n" +
"<br><br>" + "<br><br>" +
"Example: `/hazard/CONUS_2018/-118/34`" + "Example: `/hazard/-118/34`" +
"<br><br>" + "<br><br>" +
"Example: `/hazard/conus_2018/-118/34?format=CSV`", "Example: `/hazard/-118/34?format=CSV`",
operationId = "hazard") operationId = "hazard")
@ApiResponse( @ApiResponse(
description = "Returns static curves from the NSHM NetCDF file", description = "Returns static curves from the NSHM NetCDF file",
...@@ -239,15 +238,14 @@ public class NetcdfController { ...@@ -239,15 +238,14 @@ public class NetcdfController {
"...")) "..."))
}) })
@Get(uri = "/{nshm}/{longitude}/{latitude}{?format}", produces = MediaType.APPLICATION_JSON) @Get(uri = "/{longitude}/{latitude}{?format}", produces = MediaType.APPLICATION_JSON)
public HttpResponse<String> doGetSlash( public HttpResponse<String> doGetSlash(
HttpRequest<?> request, HttpRequest<?> request,
@Schema(required = true) @PathVariable Nshm nshm,
@Schema(required = true) @PathVariable Double longitude, @Schema(required = true) @PathVariable Double longitude,
@Schema(required = true) @PathVariable Double latitude, @Schema(required = true) @PathVariable Double latitude,
@Schema(required = false, defaultValue = "JSON", @Schema(required = false, defaultValue = "JSON",
implementation = ResponseFormat.class) @QueryValue @Nullable ResponseFormat format) { implementation = ResponseFormat.class) @QueryValue @Nullable ResponseFormat format) {
return doGet(request, nshm, longitude, latitude, null, null, format); return doGet(request, longitude, latitude, null, null, format);
} }
/** /**
...@@ -277,12 +275,12 @@ public class NetcdfController { ...@@ -277,12 +275,12 @@ public class NetcdfController {
"### Service call pattern\n" + "### Service call pattern\n" +
"This service call is query based with pattern: " + "This service call is query based with pattern: " +
"`/hazard?nshm={string}&longitude={number}&latitude={number}" + "`/hazard?longitude={number}&latitude={number}" +
"&siteClass={string}&imt={string}&format={CSV|JSON}`\n" + "&siteClass={string}&imt={string}&format={CSV|JSON}`\n" +
"<br><br>" + "<br><br>" +
"Example: `/hazard?nshm=CONUS_2018&longitude=-118&latitude=34&siteClass=A&imt=PGA`" + "Example: `/hazard?longitude=-118&latitude=34&siteClass=A&imt=PGA`" +
"<br><br>" + "<br><br>" +
"CSV Example: `/hazard?nshm=CONUS_2018&longitude=-118&latitude=34&siteClass=A&imt=PGA?format=CSV`", "CSV Example: `/hazard?longitude=-118&latitude=34&siteClass=A&imt=PGA?format=CSV`",
operationId = "hazard-by-imt") operationId = "hazard-by-imt")
@ApiResponse( @ApiResponse(
description = "Spatially interpolated hazard curves", description = "Spatially interpolated hazard curves",
...@@ -304,18 +302,17 @@ public class NetcdfController { ...@@ -304,18 +302,17 @@ public class NetcdfController {
"...")) "..."))
}) })
@Get(uri = "{?nshm,longitude,latitude,siteClass,imt,format}", @Get(uri = "{?longitude,latitude,siteClass,imt,format}",
produces = MediaType.APPLICATION_JSON) produces = MediaType.APPLICATION_JSON)
public HttpResponse<String> doGet( public HttpResponse<String> doGet(
HttpRequest<?> request, HttpRequest<?> request,
@Schema(required = true) @QueryValue @Nullable Nshm nshm,
@Schema(required = true) @QueryValue @Nullable Double longitude, @Schema(required = true) @QueryValue @Nullable Double longitude,
@Schema(required = true) @QueryValue @Nullable Double latitude, @Schema(required = true) @QueryValue @Nullable Double latitude,
@QueryValue @Nullable NehrpSiteClass siteClass, @QueryValue @Nullable NehrpSiteClass siteClass,
@QueryValue @Nullable Imt imt, @QueryValue @Nullable Imt imt,
@Schema(required = false, defaultValue = "JSON", @Schema(required = false, defaultValue = "JSON",
implementation = ResponseFormat.class) @QueryValue @Nullable ResponseFormat format) { implementation = ResponseFormat.class) @QueryValue @Nullable ResponseFormat format) {
var query = new HazardQuery(nshm, longitude, latitude, siteClass, imt, format); var query = new HazardQuery(longitude, latitude, siteClass, imt, format);
return service.handleServiceCall(request, query); return service.handleServiceCall(request, query);
} }
......
...@@ -7,9 +7,7 @@ import gov.usgs.earthquake.nshmp.Text.Delimiter; ...@@ -7,9 +7,7 @@ import gov.usgs.earthquake.nshmp.Text.Delimiter;
import gov.usgs.earthquake.nshmp.geo.Location; import gov.usgs.earthquake.nshmp.geo.Location;
import gov.usgs.earthquake.nshmp.gmm.Imt; import gov.usgs.earthquake.nshmp.gmm.Imt;
import gov.usgs.earthquake.nshmp.gmm.NehrpSiteClass; import gov.usgs.earthquake.nshmp.gmm.NehrpSiteClass;
import gov.usgs.earthquake.nshmp.netcdf.Nshm;
import gov.usgs.earthquake.nshmp.netcdf.reader.NetcdfUtils.Key; import gov.usgs.earthquake.nshmp.netcdf.reader.NetcdfUtils.Key;
import gov.usgs.earthquake.nshmp.netcdf.www.Request.RequestData;
import gov.usgs.earthquake.nshmp.netcdf.www.Request.RequestDataSiteClass; import gov.usgs.earthquake.nshmp.netcdf.www.Request.RequestDataSiteClass;
/** /**
...@@ -19,24 +17,18 @@ import gov.usgs.earthquake.nshmp.netcdf.www.Request.RequestDataSiteClass; ...@@ -19,24 +17,18 @@ import gov.usgs.earthquake.nshmp.netcdf.www.Request.RequestDataSiteClass;
*/ */
public class RequestHazardCurves { public class RequestHazardCurves {
static class HazardRequestData extends RequestData {
public Nshm nshm;
HazardRequestData(Nshm nshm, Location site, ResponseFormat format) {
super(site, format);
this.nshm = nshm;
}
}
/** /**
* Request data with site class and imt * Request data with site class and imt
*/ */
static class HazardRequestDataImt extends HazardRequestDataSiteClass { static class HazardRequestDataImt extends RequestDataSiteClass {
public Imt imt; public Imt imt;
HazardRequestDataImt(Nshm nshm, Location site, NehrpSiteClass siteClass, Imt imt, HazardRequestDataImt(
Location site,
NehrpSiteClass siteClass,
Imt imt,
ResponseFormat format) { ResponseFormat format) {
super(nshm, site, siteClass, format); super(site, siteClass, format);
this.imt = imt; this.imt = imt;
} }
...@@ -46,23 +38,4 @@ public class RequestHazardCurves { ...@@ -46,23 +38,4 @@ public class RequestHazardCurves {
super.toCsv(), Text.join(List.of(Key.IMT.toString(), imt.name()), Delimiter.COMMA)); super.toCsv(), Text.join(List.of(Key.IMT.toString(), imt.name()), Delimiter.COMMA));
} }
} }
/**
* Request data with site class
*/
static class HazardRequestDataSiteClass extends RequestDataSiteClass {
public Nshm nshm;
HazardRequestDataSiteClass(Nshm nshm, Location site, NehrpSiteClass siteClass,
ResponseFormat format) {
super(site, siteClass, format);
this.nshm = nshm;
}
@Override
public String toCsv() {
return String.format("%s,%s",
super.toCsv(), Text.join(List.of(Key.SITE_CLASS.toString(), siteClass), Delimiter.COMMA));
}
}
} }
package gov.usgs.earthquake.nshmp.netcdf;
/**
* The NSHMs.
*
* @author U.S. Geologcial Survey
*/
public enum Nshm {
CONUS_2018("NSHM Conterminous U.S 2018"),
HAWAII_2021("NSHM Hawaii 2021");
private String label;
private Nshm(String label) {
this.label = label;
}
@Override
public String toString() {
return label;
}
}
...@@ -11,7 +11,6 @@ import com.google.gson.GsonBuilder; ...@@ -11,7 +11,6 @@ import com.google.gson.GsonBuilder;
import gov.usgs.earthquake.nshmp.gmm.Imt; import gov.usgs.earthquake.nshmp.gmm.Imt;
import gov.usgs.earthquake.nshmp.netcdf.NetcdfVersion; import gov.usgs.earthquake.nshmp.netcdf.NetcdfVersion;
import gov.usgs.earthquake.nshmp.netcdf.Nshm;
import gov.usgs.earthquake.nshmp.www.ResponseBody; import gov.usgs.earthquake.nshmp.www.ResponseBody;
import gov.usgs.earthquake.nshmp.www.ResponseMetadata; import gov.usgs.earthquake.nshmp.www.ResponseMetadata;
import gov.usgs.earthquake.nshmp.www.WsUtils.EnumSerializer; import gov.usgs.earthquake.nshmp.www.WsUtils.EnumSerializer;
...@@ -28,7 +27,6 @@ public class NetcdfWsUtils { ...@@ -28,7 +27,6 @@ public class NetcdfWsUtils {
static { static {
GSON = new GsonBuilder() GSON = new GsonBuilder()
.registerTypeAdapter(Imt.class, new EnumSerializer<Imt>()) .registerTypeAdapter(Imt.class, new EnumSerializer<Imt>())
.registerTypeAdapter(Nshm.class, new EnumSerializer<Nshm>())
.registerTypeAdapter(Double.class, new NaNSerializer()) .registerTypeAdapter(Double.class, new NaNSerializer())
.disableHtmlEscaping() .disableHtmlEscaping()
.serializeNulls() .serializeNulls()
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment