From b3d8d2b70e7f13bd6a63847b259d4e7033fba0e4 Mon Sep 17 00:00:00 2001
From: Brandon Clayton <bclayton@usgs.gov>
Date: Thu, 6 Oct 2022 16:01:25 -0600
Subject: [PATCH] add map and sites

---
 .../netcdf/data/NetcdfDataHazardCurves.java   | 25 ++++++++++++++++++-
 .../netcdf/www/NetcdfServiceHazardCurves.java |  6 +++++
 .../nshmp/netcdf/reader/NetcdfUtils.java      |  2 ++
 3 files changed, 32 insertions(+), 1 deletion(-)

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 e144ae5..9907827 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/www/NetcdfServiceHazardCurves.java b/src/hazard/src/main/java/gov/usgs/earthquake/nshmp/netcdf/www/NetcdfServiceHazardCurves.java
index 6984e67..d1d29d6 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/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 8ccccd7..e770bee 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";
   }
-- 
GitLab