From 9fc5d61f45b160c7ced2c7889b811053b7ac6ea3 Mon Sep 17 00:00:00 2001
From: Peter Powers <pmpowers@usgs.gov>
Date: Wed, 3 Nov 2021 09:57:21 -0600
Subject: [PATCH] lib site updates

---
 .../gov/usgs/earthquake/nshmp/DisaggCalc.java     |  6 +++---
 .../gov/usgs/earthquake/nshmp/DisaggEpsilon.java  | 15 ++++++++-------
 .../gov/usgs/earthquake/nshmp/HazardCalc.java     |  9 +++++----
 .../java/gov/usgs/earthquake/nshmp/RateCalc.java  |  7 +++----
 .../usgs/earthquake/nshmp/www/meta/MetaUtil.java  | 12 ++++++------
 .../nshmp/www/services/HazardService.java         |  4 +---
 6 files changed, 26 insertions(+), 27 deletions(-)

diff --git a/src/main/java/gov/usgs/earthquake/nshmp/DisaggCalc.java b/src/main/java/gov/usgs/earthquake/nshmp/DisaggCalc.java
index dccbe7cd4..4c8224c72 100644
--- a/src/main/java/gov/usgs/earthquake/nshmp/DisaggCalc.java
+++ b/src/main/java/gov/usgs/earthquake/nshmp/DisaggCalc.java
@@ -6,6 +6,7 @@ import java.io.IOException;
 import java.nio.file.Files;
 import java.nio.file.Path;
 import java.nio.file.Paths;
+import java.util.List;
 import java.util.Optional;
 import java.util.concurrent.ExecutorService;
 import java.util.concurrent.Executors;
@@ -22,7 +23,6 @@ import gov.usgs.earthquake.nshmp.calc.Hazard;
 import gov.usgs.earthquake.nshmp.calc.HazardCalcs;
 import gov.usgs.earthquake.nshmp.calc.HazardExport;
 import gov.usgs.earthquake.nshmp.calc.Site;
-import gov.usgs.earthquake.nshmp.calc.Sites;
 import gov.usgs.earthquake.nshmp.calc.ThreadCount;
 import gov.usgs.earthquake.nshmp.internal.Logging;
 import gov.usgs.earthquake.nshmp.model.HazardModel;
@@ -97,7 +97,7 @@ public class DisaggCalc {
       log.info(config.toString());
 
       log.info("");
-      Sites sites = HazardCalc.readSites(args[1], config, model.siteData(), log);
+      List<Site> sites = HazardCalc.readSites(args[1], config, model.siteData(), log);
       log.info("Sites: " + sites);
 
       double returnPeriod = config.disagg.returnPeriod;
@@ -128,7 +128,7 @@ public class DisaggCalc {
   private static Path calc(
       HazardModel model,
       CalcConfig config,
-      Sites sites,
+      List<Site> sites,
       double returnPeriod,
       Logger log) throws IOException {
 
diff --git a/src/main/java/gov/usgs/earthquake/nshmp/DisaggEpsilon.java b/src/main/java/gov/usgs/earthquake/nshmp/DisaggEpsilon.java
index f0c60f602..066a6fca2 100644
--- a/src/main/java/gov/usgs/earthquake/nshmp/DisaggEpsilon.java
+++ b/src/main/java/gov/usgs/earthquake/nshmp/DisaggEpsilon.java
@@ -219,7 +219,8 @@ public class DisaggEpsilon {
    * returns the path to the directory where results were written.
    *
    * TODO consider refactoring to supply an Optional<Double> return period to
-   * HazardCalc.calc() that will trigger disaggregations if the value is present.
+   * HazardCalc.calc() that will trigger disaggregations if the value is
+   * present.
    */
   private static Path calc(
       HazardModel model,
@@ -240,7 +241,7 @@ public class DisaggEpsilon {
 
     log.info(PROGRAM + ": calculating ...");
     Path outDir = createOutputDir(config.output.directory);
-    Path siteDir = outDir.resolve("vs30-" + (int) sites.get(0).vs30);
+    Path siteDir = outDir.resolve("vs30-" + (int) sites.get(0).vs30());
     Files.createDirectory(siteDir);
 
     Stopwatch stopwatch = Stopwatch.createStarted();
@@ -267,8 +268,8 @@ public class DisaggEpsilon {
 
       String filename = String.format(
           "edisagg_%.2f_%.2f.json",
-          site.location.longitude,
-          site.location.latitude);
+          site.location().longitude,
+          site.location().latitude);
 
       Path resultPath = siteDir.resolve(filename);
       Writer writer = Files.newBufferedWriter(resultPath);
@@ -303,11 +304,11 @@ public class DisaggEpsilon {
 
     ResponseData(List<String> models, Site site, Imt imt, double iml) {
       this.models = models;
-      this.longitude = site.location.longitude;
-      this.latitude = site.location.latitude;
+      this.longitude = site.location().longitude;
+      this.latitude = site.location().latitude;
       this.imt = imt.toString();
       this.iml = iml;
-      this.vs30 = site.vs30;
+      this.vs30 = site.vs30();
     }
   }
 
diff --git a/src/main/java/gov/usgs/earthquake/nshmp/HazardCalc.java b/src/main/java/gov/usgs/earthquake/nshmp/HazardCalc.java
index c6a8fb44e..8218dc569 100644
--- a/src/main/java/gov/usgs/earthquake/nshmp/HazardCalc.java
+++ b/src/main/java/gov/usgs/earthquake/nshmp/HazardCalc.java
@@ -9,6 +9,7 @@ import java.nio.file.Files;
 import java.nio.file.Path;
 import java.nio.file.Paths;
 import java.util.Arrays;
+import java.util.List;
 import java.util.Optional;
 import java.util.concurrent.Callable;
 import java.util.concurrent.ExecutionException;
@@ -107,7 +108,7 @@ public class HazardCalc {
       log.info(config.toString());
 
       log.info("");
-      Sites sites = readSites(args[1], config, model.siteData(), log);
+      List<Site> sites = readSites(args[1], config, model.siteData(), log);
       log.info("Sites: " + sites);
 
       Path out = calc(model, config, sites, log);
@@ -130,7 +131,7 @@ public class HazardCalc {
     }
   }
 
-  static Sites readSites(
+  static List<Site> readSites(
       String arg,
       CalcConfig defaults,
       SiteData siteData,
@@ -145,7 +146,7 @@ public class HazardCalc {
     try {
       return fname.endsWith(".csv")
           ? Sites.fromCsv(path, defaults, siteData)
-          : Sites.fromJson(path, defaults, siteData);
+          : Sites.fromGeoJson(path, defaults, siteData);
     } catch (IOException ioe) {
       throw new IllegalArgumentException(
           "Error parsing sites file [%s]; see sites file documentation");
@@ -159,7 +160,7 @@ public class HazardCalc {
   private static Path calc(
       HazardModel model,
       CalcConfig config,
-      Sites sites,
+      List<Site> sites,
       Logger log) throws IOException, InterruptedException, ExecutionException {
 
     int threadCount = config.performance.threadCount.value();
diff --git a/src/main/java/gov/usgs/earthquake/nshmp/RateCalc.java b/src/main/java/gov/usgs/earthquake/nshmp/RateCalc.java
index cc3118f47..b923a90b8 100644
--- a/src/main/java/gov/usgs/earthquake/nshmp/RateCalc.java
+++ b/src/main/java/gov/usgs/earthquake/nshmp/RateCalc.java
@@ -27,7 +27,6 @@ import gov.usgs.earthquake.nshmp.calc.CalcConfig;
 import gov.usgs.earthquake.nshmp.calc.EqRate;
 import gov.usgs.earthquake.nshmp.calc.EqRateExport;
 import gov.usgs.earthquake.nshmp.calc.Site;
-import gov.usgs.earthquake.nshmp.calc.Sites;
 import gov.usgs.earthquake.nshmp.calc.ThreadCount;
 import gov.usgs.earthquake.nshmp.internal.Logging;
 import gov.usgs.earthquake.nshmp.model.HazardModel;
@@ -107,7 +106,7 @@ public class RateCalc {
       log.info(config.toString());
 
       log.info("");
-      Sites sites = HazardCalc.readSites(args[1], config, model.siteData(), log);
+      List<Site> sites = HazardCalc.readSites(args[1], config, model.siteData(), log);
       log.info("Sites: " + sites);
 
       Path out = calc(model, config, sites, log);
@@ -137,7 +136,7 @@ public class RateCalc {
   private static Path calc(
       HazardModel model,
       CalcConfig config,
-      Sites sites,
+      List<Site> sites,
       Logger log) throws IOException, ExecutionException, InterruptedException {
 
     ThreadCount threadCount = config.performance.threadCount;
@@ -170,7 +169,7 @@ public class RateCalc {
   private static EqRateExport concurrentCalc(
       HazardModel model,
       CalcConfig config,
-      Sites sites,
+      List<Site> sites,
       Logger log,
       ListeningExecutorService executor)
       throws InterruptedException, ExecutionException, IOException {
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 b2153504d..74c7c7ab4 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
@@ -33,15 +33,15 @@ public final class MetaUtil {
     public JsonElement serialize(Site site, Type typeOfSrc, JsonSerializationContext context) {
       JsonObject loc = new JsonObject();
 
-      loc.addProperty("latitude", Maths.round(site.location.latitude, 3));
-      loc.addProperty("longitude", Maths.round(site.location.longitude, 3));
+      loc.addProperty("latitude", Maths.round(site.location().latitude, 3));
+      loc.addProperty("longitude", Maths.round(site.location().longitude, 3));
 
       JsonObject json = new JsonObject();
       json.add("location", loc);
-      json.addProperty("vs30", site.vs30);
-      json.addProperty("vsInfered", site.vsInferred);
-      json.addProperty("z1p0", Double.isNaN(site.z1p0) ? null : site.z1p0);
-      json.addProperty("z2p5", Double.isNaN(site.z2p5) ? null : site.z2p5);
+      json.addProperty("vs30", site.vs30());
+      json.addProperty("vsInfered", site.vsInferred());
+      json.addProperty("z1p0", Double.isNaN(site.z1p0()) ? null : site.z1p0());
+      json.addProperty("z2p5", Double.isNaN(site.z2p5()) ? null : site.z2p5());
 
       return json;
     }
diff --git a/src/main/java/gov/usgs/earthquake/nshmp/www/services/HazardService.java b/src/main/java/gov/usgs/earthquake/nshmp/www/services/HazardService.java
index 10261bbff..a439c75bb 100644
--- a/src/main/java/gov/usgs/earthquake/nshmp/www/services/HazardService.java
+++ b/src/main/java/gov/usgs/earthquake/nshmp/www/services/HazardService.java
@@ -35,7 +35,6 @@ import gov.usgs.earthquake.nshmp.www.meta.Status;
 import gov.usgs.earthquake.nshmp.www.services.ServicesUtil.ServiceQueryData;
 import gov.usgs.earthquake.nshmp.www.services.ServicesUtil.ServiceRequestData;
 import gov.usgs.earthquake.nshmp.www.services.SourceServices.SourceModel;
-
 import io.micronaut.http.HttpRequest;
 import io.micronaut.http.HttpResponse;
 
@@ -116,10 +115,9 @@ public final class HazardService {
       this.data = data;
     }
 
-    @Override
+    @Override // TODO this needs to pick up SiteData
     public Site apply(CalcConfig config) {
       return Site.builder()
-          .dataService(config.siteData.service)
           .location(Location.create(data.longitude, data.latitude))
           .vs30(data.vs30)
           .build();
-- 
GitLab