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 114ef37c2efb511be9d7be89ebaa7dc1cf536b7d..663ed4b170bb5f144600a3c96a84cc8d271ecb2b 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 9f944153b2371fe06b31d82f2124cd3aa780836a..5eb1f3656e3e3635fea6a9774cb87d8d564d8859 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 5bdd233b510cea47388ec791fdbc15c33ec30ee1..32a8006885410f0034943419685f9e0922e490c2 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 29ea7bb809728940a5752c5db9a991514ff56f3b..ec318cae4f924ff0c23ee4238cc1590a0236f062 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 176de270dbb03dcd7009a80a32738bda8049c963..e36f78d3fd4a998d6a0719c1fa91f8c317b68906 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 7e973f7921a0b8f49f5b221102fbfd4aef4a3ba5..598ff931e1353b4a01f501f687a82877b0650546 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 8692293c994fcb735c2a5b8bcfe88e1269cb6123..7ef8670ca67515caf4a695a73c7b4978a1825833 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 9c5540e3ff5761430f939418516d379be6c1b64b..74e83c2ca172531daba42264b5eb7785a3d3c6b7 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,