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

add metadata

parent 87032292
No related branches found
No related tags found
2 merge requests!128Production Release | nshmp-ws-static,!127Resolves - Handle Multiple NetCDF Files for AASHTO Service
...@@ -12,10 +12,12 @@ import gov.usgs.earthquake.nshmp.Text; ...@@ -12,10 +12,12 @@ import gov.usgs.earthquake.nshmp.Text;
import gov.usgs.earthquake.nshmp.Text.Delimiter; import gov.usgs.earthquake.nshmp.Text.Delimiter;
import gov.usgs.earthquake.nshmp.gmm.NehrpSiteClass; import gov.usgs.earthquake.nshmp.gmm.NehrpSiteClass;
import gov.usgs.earthquake.nshmp.netcdf.Netcdf; import gov.usgs.earthquake.nshmp.netcdf.Netcdf;
import gov.usgs.earthquake.nshmp.netcdf.NetcdfDataFiles;
import gov.usgs.earthquake.nshmp.netcdf.data.ScienceBaseMetadata;
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.Query.Service; import gov.usgs.earthquake.nshmp.netcdf.www.Query.Service;
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.Request.RequestDataSiteClass; import gov.usgs.earthquake.nshmp.netcdf.www.meta.DoubleParameter;
import gov.usgs.earthquake.nshmp.www.ResponseBody; import gov.usgs.earthquake.nshmp.www.ResponseBody;
import io.micronaut.http.HttpRequest; import io.micronaut.http.HttpRequest;
...@@ -32,10 +34,10 @@ public abstract class NetcdfService<T extends Query> { ...@@ -32,10 +34,10 @@ public abstract class NetcdfService<T extends Query> {
protected static final Logger LOGGER = Logger.getLogger(NetcdfService.class.getName()); protected static final Logger LOGGER = Logger.getLogger(NetcdfService.class.getName());
Netcdf<?> netcdf; protected NetcdfDataFiles<?> netcdfDataFiles;
protected NetcdfService(Netcdf<?> netcdf) { protected NetcdfService(NetcdfDataFiles<?> netcdfDataFiles) {
this.netcdf = netcdf; this.netcdfDataFiles = netcdfDataFiles;
} }
/** /**
...@@ -50,35 +52,10 @@ public abstract class NetcdfService<T extends Query> { ...@@ -50,35 +52,10 @@ public abstract class NetcdfService<T extends Query> {
*/ */
abstract String getServiceName(); abstract String getServiceName();
/**
* Returns the source model
*/
abstract SourceModel getSourceModel();
/** /**
* Returns the netcdf object associated with the specific data type. * Returns the netcdf object associated with the specific data type.
*/ */
abstract Netcdf<?> netcdf(); abstract NetcdfDataFiles<?> netcdfDataFiles();
/**
* Returns the static curves at a specific location.
*
* @param <T> The response type
* @param request The request data
* @param url The URL for the service call
*/
abstract <U> ResponseBody<RequestData, U> processCurves(RequestData request, String url);
/**
* Returns the static curves at a specific location and site class.
*
* @param <T> The response type
* @param request The request data
* @param url The URL for the service call
*/
abstract <U> ResponseBody<RequestDataSiteClass, U> processCurvesSiteClass(
RequestDataSiteClass request,
String url);
/** /**
* Process the service request and returns the string response. * Process the service request and returns the string response.
...@@ -127,6 +104,15 @@ public abstract class NetcdfService<T extends Query> { ...@@ -127,6 +104,15 @@ public abstract class NetcdfService<T extends Query> {
} }
} }
/**
* Returns the source models.
*/
List<SourceModel> getSourceModels() {
return netcdfDataFiles().stream()
.map(SourceModel::new)
.collect(Collectors.toList());
}
<U extends ServiceResponseMetadata> String toCsvResponse( <U extends ServiceResponseMetadata> String toCsvResponse(
RequestData requestData, RequestData requestData,
ResponseData<U> responseData) { ResponseData<U> responseData) {
...@@ -192,13 +178,41 @@ public abstract class NetcdfService<T extends Query> { ...@@ -192,13 +178,41 @@ public abstract class NetcdfService<T extends Query> {
return lines.stream().collect(Collectors.joining(Text.NEWLINE)); return lines.stream().collect(Collectors.joining(Text.NEWLINE));
} }
static class NetcdfMetadata {
public final String netcdfFile;
public final ScienceBaseMetadata scienceBaseMetadata;
NetcdfMetadata(Netcdf<?> netcdf) {
var fileName = netcdf.netcdfPath().getFileName();
netcdfFile = fileName == null ? netcdf.netcdfPath().toString() : fileName.toString();
scienceBaseMetadata = netcdf.netcdfData().scienceBaseMetadata();
}
}
static class SourceModel { static class SourceModel {
public final String name; public final String name;
public final Map<NehrpSiteClass, Double> siteClasses; public final Map<NehrpSiteClass, Double> siteClasses;
public final DoubleParameter longitude;
public final DoubleParameter latitude;
public final NetcdfMetadata netcdfMetadata;
SourceModel(Netcdf<?> netcdf) { SourceModel(Netcdf<?> netcdf) {
name = netcdf.netcdfData().scienceBaseMetadata().label; name = netcdf.netcdfData().scienceBaseMetadata().label;
siteClasses = netcdf.netcdfData().vs30Map(); siteClasses = netcdf.netcdfData().vs30Map();
var min = netcdf.netcdfData().minimumBounds();
var max = netcdf.netcdfData().maximumBounds();
longitude = new DoubleParameter(
"Longitude",
"°",
min.longitude,
max.longitude);
latitude = new DoubleParameter(
"Latitude",
"°",
min.latitude,
max.latitude);
netcdfMetadata = new NetcdfMetadata(netcdf);
} }
} }
} }
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