diff --git a/src/hazard/src/main/java/gov/usgs/earthquake/nshmp/netcdf/data/NetcdfDataHazardCurves.java b/src/hazard/src/main/java/gov/usgs/earthquake/nshmp/netcdf/data/NetcdfDataHazardCurves.java index e144ae5476e0a74c35c0af382651830fdc5c8f8d..9907827006a48dbfc3d7dd5862e4080b05801c26 100644 --- a/src/hazard/src/main/java/gov/usgs/earthquake/nshmp/netcdf/data/NetcdfDataHazardCurves.java +++ b/src/hazard/src/main/java/gov/usgs/earthquake/nshmp/netcdf/data/NetcdfDataHazardCurves.java @@ -4,6 +4,7 @@ import static com.google.common.base.Preconditions.checkState; import java.util.Map; +import gov.usgs.earthquake.nshmp.geo.json.FeatureCollection; import gov.usgs.earthquake.nshmp.gmm.Imt; /** @@ -14,11 +15,19 @@ import gov.usgs.earthquake.nshmp.gmm.Imt; public class NetcdfDataHazardCurves extends NetcdfData { private final Map<Imt, double[]> imls; + private final FeatureCollection map; + private final FeatureCollection sites; - public NetcdfDataHazardCurves(NetcdfData netcdfData, Map<Imt, double[]> imls) { + public NetcdfDataHazardCurves( + NetcdfData netcdfData, + Map<Imt, double[]> imls, + FeatureCollection map, + FeatureCollection sites) { super(NetcdfData.Builder.copyOf(netcdfData)); checkState(!imls.isEmpty(), "Must add imls"); this.imls = imls; + this.map = map; + this.sites = sites; } /** @@ -28,6 +37,13 @@ public class NetcdfDataHazardCurves extends NetcdfData { return imls; } + /** + * Returns the map boundary feature collection. + */ + public FeatureCollection map() { + return map; + } + /** * Returns the number of Imls */ @@ -35,6 +51,13 @@ public class NetcdfDataHazardCurves extends NetcdfData { return imls.values().iterator().next().length; } + /** + * Returns the test sites feature collection. + */ + public FeatureCollection sites() { + return sites; + } + public static Builder builder() { return new Builder(); } diff --git a/src/hazard/src/main/java/gov/usgs/earthquake/nshmp/netcdf/reader/ReaderHazardCurves.java b/src/hazard/src/main/java/gov/usgs/earthquake/nshmp/netcdf/reader/ReaderHazardCurves.java index f8531d56ae5533bae0695d3d657f2569f8305b8a..9c465d295d94499f02fdd130f7350dab5fb0e513 100644 --- a/src/hazard/src/main/java/gov/usgs/earthquake/nshmp/netcdf/reader/ReaderHazardCurves.java +++ b/src/hazard/src/main/java/gov/usgs/earthquake/nshmp/netcdf/reader/ReaderHazardCurves.java @@ -7,6 +7,7 @@ import java.util.EnumMap; import java.util.List; import java.util.Map; +import gov.usgs.earthquake.nshmp.geo.json.GeoJson; import gov.usgs.earthquake.nshmp.gmm.Imt; import gov.usgs.earthquake.nshmp.netcdf.data.NetcdfData; import gov.usgs.earthquake.nshmp.netcdf.data.NetcdfDataHazardCurves; @@ -43,7 +44,15 @@ public class ReaderHazardCurves extends Reader { // get map of IMLs var imls = mapImls(vImls, netcdfData.imts()); - return new NetcdfDataHazardCurves(netcdfData, imls); + // get map boundary geojson + var map = + GeoJson.from(targetGroup.findAttribute(Key.MAP).getStringValue()).toFeatureCollection(); + + // get test sites geojson + var sites = + GeoJson.from(targetGroup.findAttribute(Key.SITES).getStringValue()).toFeatureCollection(); + + return new NetcdfDataHazardCurves(netcdfData, imls, map, sites); } @Override diff --git a/src/hazard/src/main/java/gov/usgs/earthquake/nshmp/netcdf/www/NetcdfServiceHazardCurves.java b/src/hazard/src/main/java/gov/usgs/earthquake/nshmp/netcdf/www/NetcdfServiceHazardCurves.java index 6984e675bb8bf2b8232500c46e977c2a94c723e7..d1d29d67b1b2002b7f4ecdba4f45f5ddbfe985b6 100644 --- a/src/hazard/src/main/java/gov/usgs/earthquake/nshmp/netcdf/www/NetcdfServiceHazardCurves.java +++ b/src/hazard/src/main/java/gov/usgs/earthquake/nshmp/netcdf/www/NetcdfServiceHazardCurves.java @@ -3,6 +3,8 @@ package gov.usgs.earthquake.nshmp.netcdf.www; import java.util.List; import java.util.stream.Collectors; +import com.google.gson.JsonElement; + import gov.usgs.earthquake.nshmp.data.XySequence; import gov.usgs.earthquake.nshmp.geo.Location; import gov.usgs.earthquake.nshmp.gmm.Imt; @@ -218,10 +220,14 @@ public class NetcdfServiceHazardCurves extends static class HazardSourceModel extends SourceModel { public final List<Imt> imts; + public final JsonElement map; + public final JsonElement sites; HazardSourceModel(NetcdfHazardCurves netcdf) { super(netcdf); imts = netcdf.netcdfData().imts().stream().sorted().collect(Collectors.toList()); + map = netcdf.netcdfData().map().toJsonTree(); + sites = netcdf.netcdfData().sites().toJsonTree(); } } } diff --git a/src/hazard/src/main/resources/hazard-example.nc b/src/hazard/src/main/resources/hazard-example.nc index 1969150bcb1f553bd4e701ed35ea61c4fd8a96f9..c3fa431cb6e99a25f766dfbc31d74256bc15c0d2 100644 Binary files a/src/hazard/src/main/resources/hazard-example.nc and b/src/hazard/src/main/resources/hazard-example.nc differ diff --git a/src/lib/src/main/java/gov/usgs/earthquake/nshmp/netcdf/reader/NetcdfUtils.java b/src/lib/src/main/java/gov/usgs/earthquake/nshmp/netcdf/reader/NetcdfUtils.java index 8ccccd717b07e78844f146cb2b44fc2188819ba4..e770beeec3606cf31f7b846357c0af46481b4c52 100644 --- a/src/lib/src/main/java/gov/usgs/earthquake/nshmp/netcdf/reader/NetcdfUtils.java +++ b/src/lib/src/main/java/gov/usgs/earthquake/nshmp/netcdf/reader/NetcdfUtils.java @@ -216,9 +216,11 @@ public class NetcdfUtils { public static final String IMT = "imt"; public static final String LAT = "lat"; public static final String LON = "lon"; + public static final String MAP = "map"; public static final String REGION = "region"; public static final String SCIENCE_BASE_INFO = "scienceBaseInfo"; public static final String SITE_CLASS = "siteClass"; + public static final String SITES = "sites"; public static final String VS30 = "vs30"; public static final String YEAR = "year"; }