From a946e5c3665e4aeec2e659f5bf9eefbf8cd5ff5e Mon Sep 17 00:00:00 2001
From: Peter Powers <pmpowers@usgs.gov>
Date: Sun, 30 Jan 2022 09:26:04 -0700
Subject: [PATCH] removed stale GridLoader.GrLoader

---
 .../earthquake/nshmp/model/GridLoader.java    | 175 +-----------------
 1 file changed, 4 insertions(+), 171 deletions(-)

diff --git a/src/main/java/gov/usgs/earthquake/nshmp/model/GridLoader.java b/src/main/java/gov/usgs/earthquake/nshmp/model/GridLoader.java
index 63b7b056..f271e0ae 100644
--- a/src/main/java/gov/usgs/earthquake/nshmp/model/GridLoader.java
+++ b/src/main/java/gov/usgs/earthquake/nshmp/model/GridLoader.java
@@ -4,15 +4,12 @@ import static com.google.common.base.Preconditions.checkState;
 import static gov.usgs.earthquake.nshmp.model.Deserialize.MFD_TREE;
 import static java.lang.Math.log10;
 import static java.util.stream.Collectors.toUnmodifiableList;
-import static java.util.stream.Collectors.toUnmodifiableMap;
 
 import java.nio.file.Path;
 import java.util.ArrayList;
 import java.util.EnumMap;
-import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
-import java.util.Map.Entry;
 import java.util.Optional;
 import java.util.OptionalDouble;
 import java.util.stream.Stream;
@@ -71,7 +68,7 @@ class GridLoader {
       String mfdTreeKey,
       ModelData data) {
 
-    GrLoader2 loader = new GrLoader2(id, name, featureId, mfdTreeKey, data);
+    GrLoader loader = new GrLoader(id, name, featureId, mfdTreeKey, data);
     return loader.createSlabRuptureSet();
   }
 
@@ -92,7 +89,7 @@ class GridLoader {
       IncrLoader loader = new IncrLoader(id, name, featureId, mfdTreeKey, data);
       return loader.createRuptureSet();
     } else {
-      GrLoader2 loader = new GrLoader2(id, name, featureId, mfdTreeKey, data);
+      GrLoader loader = new GrLoader(id, name, featureId, mfdTreeKey, data);
       return loader.createGridRuptureSet();
     }
   }
@@ -206,172 +203,8 @@ class GridLoader {
     return fmMap;
   }
 
-  private static class GrLoader {
-
-    private final ModelData data;
-    private final Map<Integer, SourceFeature.Grid> featureMap;
-    private final Path pdfPath;
-    private final Map<Integer, LogicTree<Mfd>> modelMfdTrees;
-    private final Map<Integer, FeatureData> dataMap;
-
-    private GrLoader(ModelData data) {
-
-      this.data = data;
-      this.featureMap = data.gridFeatureMap().orElseThrow();
-      this.pdfPath = data.gridRateFile().orElseThrow();
-      this.modelMfdTrees = createModelMfds();
-      this.dataMap = featureMap.keySet().stream()
-          .collect(toUnmodifiableMap(
-              i -> i,
-              i -> new FeatureData()));
-      processNodes();
-    }
-
-    private List<GridRuptureSet> createGridRuptureSets() {
-      List<GridRuptureSet> ruptureSets = new ArrayList<>();
-      for (Entry<Integer, FeatureData> entry : dataMap.entrySet()) {
-        SourceFeature.Grid feature = featureMap.get(entry.getKey());
-        FeatureData featureData = dataMap.get(entry.getKey());
-        GridRuptureSet grs = GridRuptureSet.builder()
-            .feature(feature)
-            .modelData(data)
-            .nodeData(
-                featureData.locations,
-                featureData.mfds,
-                featureData.mfdsTree,
-                Optional.empty())
-            .build();
-        ruptureSets.add(grs);
-      }
-      return ruptureSets;
-    }
-
-    private List<SlabRuptureSet> createSlabRuptureSets() {
-      List<SlabRuptureSet> ruptureSets = new ArrayList<>();
-      for (Entry<Integer, FeatureData> entry : dataMap.entrySet()) {
-        SourceFeature.Grid feature = featureMap.get(entry.getKey());
-        FeatureData featureData = dataMap.get(entry.getKey());
-        SlabRuptureSet.Builder srsb = SlabRuptureSet.builder();
-        srsb.feature(feature)
-            .modelData(data)
-            .nodeData(
-                featureData.locations,
-                featureData.mfds,
-                featureData.mfdsTree,
-                Optional.empty());
-        ruptureSets.add(srsb.build());
-      }
-      return ruptureSets;
-    }
-
-    private void processNodes() {
-      DelimitedData data = DelimitedData.comma(pdfPath);
-      /* May or may not have mMax column in rate file. */
-      boolean mMaxPresent = data.columnKeys().contains(Key.MMAX);
-      try (Stream<Record> s = data.records()) {
-        s.forEach(record -> processRecord(record, mMaxPresent));
-      }
-
-      /* Create total MFDs and transpose mfd tree lists. */
-      for (FeatureData featureData : dataMap.values()) {
-        featureData.mfds = reduceMfds(featureData.mfdTrees);
-        featureData.mfdsTree = Trees.transpose(featureData.mfdTrees);
-      }
-    }
-
-    private List<Mfd> reduceMfds(List<LogicTree<Mfd>> mfdTrees) {
-      return mfdTrees.stream()
-          .map(ModelTrees::reduceMfdTree)
-          .collect(toUnmodifiableList());
-    }
-
-    // private boolean temp = true;
-
-    private void processRecord(Record record, boolean mMaxPresent) {
-
-      Location loc = Location.create(
-          record.getDouble(Key.LON),
-          record.getDouble(Key.LAT));
-      double a = Math.log10(record.getDouble(Key.PDF));
-      OptionalDouble mMax = mMaxPresent
-          ? record.getOptionalDouble(Key.MMAX)
-          : OptionalDouble.empty();
-
-      Optional<Integer> gridIdOpt = gridFeatureForLocation(loc);
-      // if (gridIdOpt.isEmpty()) {
-      // return;
-      // }
-      Integer gridId = gridIdOpt.orElseThrow();
-
-      FeatureData featureData = dataMap.get(gridId);
-      featureData.locations.add(loc);
-
-      LogicTree<Mfd> modelMfds = modelMfdTrees.get(gridId);
-      LogicTree<Mfd> nodeMfds = createNodeMfdTree(modelMfds, a, mMax);
-
-      // if (temp) {
-      // System.out.println(nodeMfds);
-      // System.out.println(a + " " + mMax);
-      // for (Branch<Mfd> branch : nodeMfds) {
-      // System.out.println(branch.value().properties().getAsGr().mMin());
-      // System.out.println(branch.value());
-      // }
-      // temp = false;
-      // }
-      featureData.mfdTrees.add(nodeMfds);
-    }
-
-    private LogicTree<Mfd> createNodeMfdTree(
-        LogicTree<Mfd> modelTree,
-        double a,
-        OptionalDouble mMax) {
-
-      LogicTree.Builder<Mfd> nodeMfdTree = LogicTree.builder(MFD_TREE);
-      for (Branch<Mfd> branch : modelTree) {
-
-        Mfd.Properties.GutenbergRichter grProps = branch.value().properties().getAsGr();
-        double mMin = grProps.mMin() + grProps.Δm() * 0.5;
-        double rate = Mfds.gutenbergRichterRate(a, grProps.b(), mMin);
-        Mfd.Builder nodeMfd = Mfd.Builder.from(branch.value())
-            .scaleToIncrementalRate(rate);
-        mMax.ifPresent(m -> truncate(grProps, nodeMfd, m));
-        nodeMfdTree.addBranch(
-            branch.id(),
-            nodeMfd.build(),
-            branch.weight());
-      }
-      return nodeMfdTree.build();
-    }
-
-    /*
-     * Check that each MFD logic tree consists fo the same type, has the same
-     * mMin and Δm. This ensures we'll be able to create different mMax MFDs
-     * with the same magnitude bins.
-     */
-    private Map<Integer, LogicTree<Mfd>> createModelMfds() {
-      Map<Integer, LogicTree<Mfd>> modelMfds = new HashMap<>();
-      for (Entry<Integer, SourceFeature.Grid> entry : featureMap.entrySet()) {
-        SourceFeature.Grid grid = entry.getValue();
-        LogicTree<Mfd.Properties> propsTree = Deserialize.mfdTree(
-            grid.source.properties(),
-            data);
-        LogicTree<Mfd> mfdTree = ModelTrees.grPropsTreeToMmaxMfdTree(propsTree);
-        modelMfds.put(entry.getKey(), mfdTree);
-      }
-      return Map.copyOf(modelMfds);
-    }
-
-    @Deprecated
-    private Optional<Integer> gridFeatureForLocation(Location location) {
-      return featureMap.values().stream()
-          .filter(grid -> grid.contains(location))
-          .map(grid -> grid.id)
-          .findFirst();
-    }
-  }
-
   /* Handles logic trees of GR MFDs and multiple features. */
-  private static class GrLoader2 {
+  private static class GrLoader {
 
     private final int id;
     private final String name;
@@ -382,7 +215,7 @@ class GridLoader {
     private final LogicTree<Mfd> modelMfdTree;
     private final FeatureData featureData;
 
-    private GrLoader2(
+    private GrLoader(
         int id,
         String name,
         int featureId,
-- 
GitLab