From 5b7bee71673fcb4aa37d2f16291907ee1919b24d Mon Sep 17 00:00:00 2001 From: Peter Powers <pmpowers@usgs.gov> Date: Sat, 31 Oct 2020 10:41:42 -0600 Subject: [PATCH] source config convenience methods --- .../nshmp/model/FaultRuptureSet.java | 2 +- .../nshmp/model/GridRuptureSet.java | 2 +- .../earthquake/nshmp/model/HazardModel.java | 4 +- .../nshmp/model/InterfaceRuptureSet.java | 2 +- .../earthquake/nshmp/model/ModelLoader.java | 62 ++++++------------- .../nshmp/model/SlabRuptureSet.java | 2 +- .../earthquake/nshmp/model/SourceConfig.java | 4 +- .../nshmp/model/ZoneRuptureSet.java | 2 +- 8 files changed, 29 insertions(+), 51 deletions(-) diff --git a/src/main/java/gov/usgs/earthquake/nshmp/model/FaultRuptureSet.java b/src/main/java/gov/usgs/earthquake/nshmp/model/FaultRuptureSet.java index 114ef37c..663ed4b1 100644 --- a/src/main/java/gov/usgs/earthquake/nshmp/model/FaultRuptureSet.java +++ b/src/main/java/gov/usgs/earthquake/nshmp/model/FaultRuptureSet.java @@ -175,7 +175,7 @@ public class FaultRuptureSet implements RuptureSet { System.out.println(); System.out.println(); - SourceConfig.Fault config = (SourceConfig.Fault) data.sourceConfig(); + SourceConfig.Fault config = data.sourceConfig().asFault(); surface = DefaultGriddedSurface.builder() .trace(feature.trace) .depth(feature.upperDepth) diff --git a/src/main/java/gov/usgs/earthquake/nshmp/model/GridRuptureSet.java b/src/main/java/gov/usgs/earthquake/nshmp/model/GridRuptureSet.java index 9f944153..5eb1f365 100644 --- a/src/main/java/gov/usgs/earthquake/nshmp/model/GridRuptureSet.java +++ b/src/main/java/gov/usgs/earthquake/nshmp/model/GridRuptureSet.java @@ -47,7 +47,7 @@ class GridRuptureSet implements RuptureSet { } private GridSourceSet createSourceSet(double weight) { - SourceConfig.Grid config = (SourceConfig.Grid) data.sourceConfig(); + SourceConfig.Grid config = data.sourceConfig().asGrid(); GridSourceSet grid = GridLoader.createGrid( config, feature.source, diff --git a/src/main/java/gov/usgs/earthquake/nshmp/model/HazardModel.java b/src/main/java/gov/usgs/earthquake/nshmp/model/HazardModel.java index 5bdd233b..32a80068 100644 --- a/src/main/java/gov/usgs/earthquake/nshmp/model/HazardModel.java +++ b/src/main/java/gov/usgs/earthquake/nshmp/model/HazardModel.java @@ -295,7 +295,7 @@ public final class HazardModel implements Iterable<SourceSet<? extends Source>> double leafWeight) { SourceFeature.NshmFault feature = frs.feature; - SourceConfig.Fault config = (SourceConfig.Fault) frs.data.sourceConfig(); + SourceConfig.Fault config = frs.data.sourceConfig().asFault(); return new FaultSource.Builder() .name(feature.name) @@ -338,7 +338,7 @@ public final class HazardModel implements Iterable<SourceSet<? extends Source>> private InterfaceSource interfaceRuptureSetToSource(InterfaceRuptureSet irs, double weight) { SourceFeature.Interface feature = irs.feature; List<LocationList> traces = feature.traces; - SourceConfig.Fault config = (SourceConfig.Fault) irs.data.sourceConfig(); + SourceConfig.Fault config = irs.data.sourceConfig().asFault(); InterfaceSource.Builder isb = new InterfaceSource.Builder() .lowerTrace(traces.get(traces.size() - 1)); diff --git a/src/main/java/gov/usgs/earthquake/nshmp/model/InterfaceRuptureSet.java b/src/main/java/gov/usgs/earthquake/nshmp/model/InterfaceRuptureSet.java index 29ea7bb8..ec318cae 100644 --- a/src/main/java/gov/usgs/earthquake/nshmp/model/InterfaceRuptureSet.java +++ b/src/main/java/gov/usgs/earthquake/nshmp/model/InterfaceRuptureSet.java @@ -169,7 +169,7 @@ public class InterfaceRuptureSet implements RuptureSet { feature = createFeature(); System.out.println(feature); - SourceConfig.Fault config = (SourceConfig.Fault) data.sourceConfig(); + SourceConfig.Fault config = data.sourceConfig().asFault(); surface = new ApproxGriddedSurface( feature.traces.get(0), feature.traces.get(1), diff --git a/src/main/java/gov/usgs/earthquake/nshmp/model/ModelLoader.java b/src/main/java/gov/usgs/earthquake/nshmp/model/ModelLoader.java index 176de270..e36f78d3 100644 --- a/src/main/java/gov/usgs/earthquake/nshmp/model/ModelLoader.java +++ b/src/main/java/gov/usgs/earthquake/nshmp/model/ModelLoader.java @@ -294,7 +294,7 @@ abstract class ModelLoader { SourceFeature.NshmFault feature = SourceFeature.newNshmFault(geojson); /* Possibly split on normal fault dip variants. */ - SourceConfig.Fault config = (SourceConfig.Fault) data.sourceConfig(); + SourceConfig.Fault config = data.sourceConfig().asFault(); boolean isNormal = FocalMech.fromRake(feature.rake) == FocalMech.NORMAL; if (config.normalDipTree.isPresent() && isNormal) { System.out.println("dip tree: " + root.relativize(geojson)); @@ -303,17 +303,6 @@ abstract class ModelLoader { System.out.println(" source: " + root.relativize(geojson)); - // SourceFeature.NshmFault feature = SourceFeature.newNshmFault(geojson); - data.faultFeatureMap(Map.of(feature.id, feature)); - - // FaultRuptureSet ruptureSet = FaultRuptureSet.builder() - // .modelData(data) - // .name(feature.name) - // .id(feature.id) - // .sections(List.of(feature.id)) - // .mfdTree(mfdTree) - // .build(); - LogicTree<Path> root = LogicTree.singleton(geojson); SourceTree.Builder treeBuilder = SourceTree.builder() .name(feature.name) @@ -321,17 +310,16 @@ abstract class ModelLoader { .gmms(data.gmms()) .root(root); - // .addLeaf(root.branches().get(0), ruptureSet) - // .build(); - - return loadSingleRuptureSet( + loadSingleRuptureSet( root.branches().get(0), treeBuilder, data, feature); + + return treeBuilder.build(); } - private SourceTree loadSingleRuptureSet( + private void loadSingleRuptureSet( Branch<Path> branch, SourceTree.Builder treeBuilder, ModelData data, @@ -351,50 +339,40 @@ abstract class ModelLoader { .mfdTree(mfdTree) .build(); - return treeBuilder.addLeaf(branch, ruptureSet).build(); + treeBuilder.addLeaf(branch, ruptureSet); } - SourceTree loadNormalDipTree( + private SourceTree loadNormalDipTree( SourceFeature.NshmFault feature, ModelData data) { - SourceConfig.Fault config = (SourceConfig.Fault) data.sourceConfig(); - - // Feature source = GeoJson.from(geojson).toFeature(); - // Properties props = source.properties(); - double dip = feature.dip;// props.getDouble(Key.DIP).orElseThrow(); - String name = feature.name;// props.getString(Key.NAME).orElseThrow(); - + SourceConfig.Fault config = data.sourceConfig().asFault(); LogicTree<Double> dipTree = config.normalDipTree.orElseThrow(); - LogicTree<Path> dipPathTree = ModelUtil.toPathTree(dipTree); + LogicTree<Path> dipSourceTree = ModelUtil.toPathTree(dipTree); SourceTree.Builder treeBuilder = SourceTree.builder() - .name(name) + .name(feature.name) .type(FAULT) .gmms(data.gmms()) - .root(dipPathTree); - - // SourceFeature.NshmFault feature = SourceFeature.newNshmFault(geojson); - - // Properties.Builder props = Properties.fromFeature(source); + .root(dipSourceTree); for (int i = 0; i < dipTree.size(); i++) { - // for (Branch<Double> dipBranch : dipTree) { Branch<Double> dipBranch = dipTree.branches().get(i); - int branchDip = (int) (dip + dipBranch.value()); - String branchName = String.format("%s [%s°]", name, dip); + int branchDip = (int) (feature.dip + dipBranch.value()); + String branchName = String.format("%s [%s°]", feature.name, branchDip); Feature dipFeature = Feature.copyOf(feature.source) .properties(Properties.fromFeature(feature.source) - .put(Key.NAME, name) - .put(Key.DIP, dip + dipBranch.value()) + .put(Key.NAME, branchName) + .put(Key.DIP, branchDip) .build()) .build(); - // createSingleRuptureSet - - processBranch(dipPathTree.branches().get(i), treeBuilder, data); + loadSingleRuptureSet( + dipSourceTree.branches().get(i), + treeBuilder, + data, + new SourceFeature.NshmFault(dipFeature)); } - return treeBuilder.build(); } diff --git a/src/main/java/gov/usgs/earthquake/nshmp/model/SlabRuptureSet.java b/src/main/java/gov/usgs/earthquake/nshmp/model/SlabRuptureSet.java index 7e973f79..598ff931 100644 --- a/src/main/java/gov/usgs/earthquake/nshmp/model/SlabRuptureSet.java +++ b/src/main/java/gov/usgs/earthquake/nshmp/model/SlabRuptureSet.java @@ -45,7 +45,7 @@ class SlabRuptureSet implements RuptureSet { } private GridSourceSet createSourceSet(double weight) { - SourceConfig.Grid config = (SourceConfig.Grid) data.sourceConfig(); + SourceConfig.Grid config = data.sourceConfig().asGrid(); GridSourceSet grid = GridLoader.createGrid( config, feature.source, diff --git a/src/main/java/gov/usgs/earthquake/nshmp/model/SourceConfig.java b/src/main/java/gov/usgs/earthquake/nshmp/model/SourceConfig.java index 8692293c..7ef8670c 100644 --- a/src/main/java/gov/usgs/earthquake/nshmp/model/SourceConfig.java +++ b/src/main/java/gov/usgs/earthquake/nshmp/model/SourceConfig.java @@ -31,11 +31,11 @@ abstract class SourceConfig { this.resource = resource; } - Fault getAsFault() { + Fault asFault() { return (Fault) this; } - Grid getAsGrid() { + Grid asGrid() { return (Grid) this; } diff --git a/src/main/java/gov/usgs/earthquake/nshmp/model/ZoneRuptureSet.java b/src/main/java/gov/usgs/earthquake/nshmp/model/ZoneRuptureSet.java index 9c5540e3..74e83c2c 100644 --- a/src/main/java/gov/usgs/earthquake/nshmp/model/ZoneRuptureSet.java +++ b/src/main/java/gov/usgs/earthquake/nshmp/model/ZoneRuptureSet.java @@ -71,7 +71,7 @@ class ZoneRuptureSet implements RuptureSet { } private GridSourceSet createSourceSet(double weight) { - SourceConfig.Grid config = (SourceConfig.Grid) data.sourceConfig(); + SourceConfig.Grid config = data.sourceConfig().asGrid(); GridSourceSet grid = GridLoader.createGrid( config, -- GitLab