diff --git a/src/main/java/scratch/kevin/prvi25/figures/CombinedMFDsPlot.java b/src/main/java/scratch/kevin/prvi25/figures/CombinedMFDsPlot.java index 3bec2f9..5c66b44 100644 --- a/src/main/java/scratch/kevin/prvi25/figures/CombinedMFDsPlot.java +++ b/src/main/java/scratch/kevin/prvi25/figures/CombinedMFDsPlot.java @@ -23,23 +23,22 @@ import org.opensha.sha.magdist.SummedMagFreqDist; import org.opensha.sha.util.TectonicRegionType; +import com.google.common.base.Preconditions; + import net.mahdilamb.colormap.Colors; +import static scratch.kevin.prvi25.figures.PRVI_Paths.*; + public class CombinedMFDsPlot { public static void main(String[] args) throws IOException { - File crustalDir = new File("/home/kevin/OpenSHA/nshm23/batch_inversions/" - + "2024_11_19-prvi25_crustal_branches-dmSample5x"); - FaultSystemSolution crustalSol = FaultSystemSolution.load(new File(crustalDir, - "results_PRVI_CRUSTAL_FM_V1p1_branch_averaged_gridded.zip")); + FaultSystemSolution crustalSol = FaultSystemSolution.load(CRUSTAL_SOL_GRIDDED); - File subductionDir = new File("/home/kevin/OpenSHA/nshm23/batch_inversions/" - + "2024_11_19-prvi25_subduction_branches"); - FaultSystemSolution subductionSol1 = FaultSystemSolution.load(new File(subductionDir, - "results_PRVI_SUB_FM_LARGE_branch_averaged_gridded.zip")); - FaultSystemSolution subductionSol2 = FaultSystemSolution.load(new File(subductionDir, - "results_PRVI_SUB_FM_SMALL_branch_averaged_gridded.zip")); + FaultSystemSolution subductionSol1 = FaultSystemSolution.load(SUBDUCTION_SOL_LARGE); + FaultSystemSolution subductionSol2 = FaultSystemSolution.load(SUBDUCTION_SOL_SMALL); + File outputDir = new File(FIGURES_DIR, "combined_mfds"); + Preconditions.checkState(outputDir.exists() || outputDir.mkdir()); EvenlyDiscretizedFunc refMFD = FaultSysTools.initEmptyMFD(9.45); @@ -122,7 +121,6 @@ public static void main(String[] args) throws IOException { HeadlessGraphPanel gp = PlotUtils.initHeadless(); - File outputDir = new File("/tmp"); Range yRange = new Range(1e-6, 1e1); Range xRange = new Range(5d, 9.5d); diff --git a/src/main/java/scratch/kevin/prvi25/figures/ConnectivityClusterPlot.java b/src/main/java/scratch/kevin/prvi25/figures/ConnectivityClusterPlot.java index 374d1f9..bca3dc1 100644 --- a/src/main/java/scratch/kevin/prvi25/figures/ConnectivityClusterPlot.java +++ b/src/main/java/scratch/kevin/prvi25/figures/ConnectivityClusterPlot.java @@ -7,8 +7,6 @@ import java.util.Set; import java.util.concurrent.TimeUnit; -import org.opensha.commons.geo.Location; -import org.opensha.commons.geo.Region; import org.opensha.commons.gui.plot.GeographicMapMaker; import org.opensha.sha.earthquake.faultSysSolution.FaultSystemRupSet; import org.opensha.sha.earthquake.faultSysSolution.FaultSystemSolution; @@ -17,15 +15,18 @@ import org.opensha.sha.earthquake.faultSysSolution.ruptures.util.ConnectivityCluster; import org.opensha.sha.faultSurface.FaultSection; +import com.google.common.base.Preconditions; import com.google.common.base.Stopwatch; +import static scratch.kevin.prvi25.figures.PRVI_Paths.*; + class ConnectivityClusterPlot { public static void main(String[] args) throws IOException { - FaultSystemSolution sol = FaultSystemSolution.load(new File("/data/kevin/nshm23/batch_inversions/" - + "2024_11_19-prvi25_crustal_branches-dmSample5x/results_PRVI_CRUSTAL_FM_V1p1_branch_averaged.zip")); + FaultSystemSolution sol = FaultSystemSolution.load(CRUSTAL_SOL_SUPRA_ONLY); - File outputDir = new File("/home/kevin/Documents/papers/2024_PRVI_ERF/prvi25-erf-paper/Figures/crustal_fm"); + File outputDir = new File(FIGURES_DIR, "crustal_fm"); + Preconditions.checkState(outputDir.exists() || outputDir.mkdir()); FaultSystemRupSet rupSet = sol.getRupSet(); if (!rupSet.hasModule(ConnectivityClusters.class)) { diff --git a/src/main/java/scratch/kevin/prvi25/figures/CrustalCarveoutSmallerRegionMFDPlot.java b/src/main/java/scratch/kevin/prvi25/figures/CrustalCarveoutSmallerRegionMFDPlot.java index 2ab740c..b3dc18d 100644 --- a/src/main/java/scratch/kevin/prvi25/figures/CrustalCarveoutSmallerRegionMFDPlot.java +++ b/src/main/java/scratch/kevin/prvi25/figures/CrustalCarveoutSmallerRegionMFDPlot.java @@ -32,6 +32,8 @@ import net.mahdilamb.colormap.Colors; +import static scratch.kevin.prvi25.figures.PRVI_Paths.*; + public class CrustalCarveoutSmallerRegionMFDPlot { public static void main(String[] args) throws IOException { @@ -47,8 +49,7 @@ public static void main(String[] args) throws IOException { names.add("Smaller Map Region"); prefixes.add("smaller_map_region"); - FaultSystemSolution sol = FaultSystemSolution.load(new File("/home/kevin/OpenSHA/nshm23/batch_inversions/" - + "2024_10_24-prvi25_crustal_branches-dmSample5x/results_PRVI_CRUSTAL_FM_V1p1_branch_averaged_gridded.zip")); + FaultSystemSolution sol = FaultSystemSolution.load(CRUSTAL_SOL_SUPRA_ONLY); EvenlyDiscretizedFunc refMFD = FaultSysTools.initEmptyMFD(2.55, sol.getRupSet().getMaxMag()); diff --git a/src/main/java/scratch/kevin/prvi25/figures/CrustalFaultNamesFigure.java b/src/main/java/scratch/kevin/prvi25/figures/CrustalFaultNamesFigure.java index b53da4a..ee2bb63 100644 --- a/src/main/java/scratch/kevin/prvi25/figures/CrustalFaultNamesFigure.java +++ b/src/main/java/scratch/kevin/prvi25/figures/CrustalFaultNamesFigure.java @@ -23,12 +23,17 @@ import org.opensha.sha.faultSurface.FaultSection; import org.opensha.sha.faultSurface.FaultTrace; +import com.google.common.base.Preconditions; + import net.mahdilamb.colormap.Colors; +import static scratch.kevin.prvi25.figures.PRVI_Paths.*; + class CrustalFaultNamesFigure { public static void main(String[] args) throws IOException { - File ouutputDir = new File("/home/kevin/Documents/papers/2024_PRVI_ERF/prvi25-erf-paper/Figures/crustal_fm"); + File outputDir = new File(FIGURES_DIR, "crustal_fm"); + Preconditions.checkState(outputDir.exists() || outputDir.mkdir()); PRVI25_CrustalFaultModels fm = PRVI25_CrustalFaultModels.PRVI_CRUSTAL_FM_V1p1; @@ -42,7 +47,7 @@ public static void main(String[] args) throws IOException { mapMaker.setSectTraceChar(new PlotCurveCharacterstics(PlotLineType.SOLID, 3f, Colors.tab_blue)); - mapMaker.plot(ouutputDir, "crustal_sect_names", " "); + mapMaker.plot(outputDir, "crustal_sect_names", " "); } static void addStandardFaultLabels(GeographicMapMaker mapMaker, List sects) { diff --git a/src/main/java/scratch/kevin/prvi25/figures/DefModelSampleLineIntegralsPlot.java b/src/main/java/scratch/kevin/prvi25/figures/DefModelSampleLineIntegralsPlot.java index ff3e77d..61eecdd 100644 --- a/src/main/java/scratch/kevin/prvi25/figures/DefModelSampleLineIntegralsPlot.java +++ b/src/main/java/scratch/kevin/prvi25/figures/DefModelSampleLineIntegralsPlot.java @@ -40,15 +40,17 @@ import scratch.kevin.prvi25.FaultSystemLineIntegralCalculator.LineIntegralResult; import scratch.kevin.prvi25.FaultSystemLineIntegralCalculator.VectorComponent; +import static scratch.kevin.prvi25.figures.PRVI_Paths.*; + public class DefModelSampleLineIntegralsPlot { public static void main(String[] args) throws IOException { // File outputDir = new File("/tmp"); - File outputDir = new File("/home/kevin/Documents/papers/2024_PRVI_ERF/prvi25-erf-paper/Figures/crustal_dm"); + File outputDir = new File(FIGURES_DIR, "crustal_dm"); + Preconditions.checkState(outputDir.exists() || outputDir.mkdir()); String prefix = "prvi_dm_sample_line_integrals"; - LogicTree randTree = LogicTree.read(new File( - "/home/kevin/OpenSHA/nshm23/batch_inversions/2024_10_24-prvi25_crustal_branches-dmSample5x/logic_tree.json")); + LogicTree randTree = LogicTree.read(new File(CRUSTAL_DIR, "logic_tree.json")); PRVI25_CrustalFaultModels fm = PRVI25_CrustalFaultModels.PRVI_CRUSTAL_FM_V1p1; // VectorComponent[] components = VectorComponent.values(); diff --git a/src/main/java/scratch/kevin/prvi25/figures/FaultParticipationPlots.java b/src/main/java/scratch/kevin/prvi25/figures/FaultParticipationPlots.java index d57bef8..9e29d48 100644 --- a/src/main/java/scratch/kevin/prvi25/figures/FaultParticipationPlots.java +++ b/src/main/java/scratch/kevin/prvi25/figures/FaultParticipationPlots.java @@ -14,13 +14,12 @@ import com.google.common.base.Preconditions; +import static scratch.kevin.prvi25.figures.PRVI_Paths.*; + public class FaultParticipationPlots { public static void main(String[] args) throws IOException { - File solFile = new File("/data/kevin/nshm23/batch_inversions/" - + "2024_11_19-prvi25_crustal_branches-dmSample5x/results_PRVI_CRUSTAL_FM_V1p1_branch_averaged_gridded.zip"); - - FaultSystemSolution sol = FaultSystemSolution.load(solFile); + FaultSystemSolution sol = FaultSystemSolution.load(CRUSTAL_SOL_SUPRA_ONLY); CPT cpt = GMT_CPT_Files.RAINBOW_UNIFORM.instance().rescale(-5, -1); cpt.setBelowMinColor(cpt.getMinColor()); @@ -28,8 +27,8 @@ public static void main(String[] args) throws IOException { double[] minMags = { 0, 6, 6.7, 7, 7.5, 7.8 }; -// File outputDir = new File("/home/kevin/Documents/papers/2023_NSHM23_Inversion/figures/partic_plot"); - File outputDir = new File("/tmp"); + File outputDir = new File(FIGURES_DIR, "partic_plot"); +// File outputDir = new File("/tmp"); Preconditions.checkState(outputDir.exists() || outputDir.mkdir()); GeographicMapMaker mapMaker = new RupSetMapMaker(sol.getRupSet(), PRVI25_RegionLoader.loadPRVI_ModelBroad()); diff --git a/src/main/java/scratch/kevin/prvi25/figures/GridCubeRatePlot.java b/src/main/java/scratch/kevin/prvi25/figures/GridCubeRatePlot.java index 503fda3..d0f26b4 100644 --- a/src/main/java/scratch/kevin/prvi25/figures/GridCubeRatePlot.java +++ b/src/main/java/scratch/kevin/prvi25/figures/GridCubeRatePlot.java @@ -52,6 +52,8 @@ import scratch.UCERF3.erf.ETAS.SeisDepthDistribution; +import static scratch.kevin.prvi25.figures.PRVI_Paths.*; + public class GridCubeRatePlot { public static void main(String[] args) throws IOException { @@ -92,7 +94,7 @@ public static void main(String[] args) throws IOException { rake = 0d; } - File outputDir = new File("/home/kevin/Documents/papers/2024_PRVI_ERF/prvi25-erf-paper/Figures/crustal_grid"); + File outputDir = new File(FIGURES_DIR, "crustal_grid"); Region sectReg = new Region(new Location(traceStart.lat, traceStart.lon-1d), new Location(traceEnd.lat, traceEnd.lon+1d)); GriddedRegion gridReg = new GriddedRegion(sectReg, gridSpacing, GriddedRegion.ANCHOR_0_0); diff --git a/src/main/java/scratch/kevin/prvi25/figures/IndividualMFDPlots.java b/src/main/java/scratch/kevin/prvi25/figures/IndividualMFDPlots.java index 61a0220..3caa0ee 100644 --- a/src/main/java/scratch/kevin/prvi25/figures/IndividualMFDPlots.java +++ b/src/main/java/scratch/kevin/prvi25/figures/IndividualMFDPlots.java @@ -43,29 +43,24 @@ import scratch.kevin.latex.LaTeXUtils; import scratch.kevin.prvi25.SubductionCombinedModelCreator; +import static scratch.kevin.prvi25.figures.PRVI_Paths.*; + public class IndividualMFDPlots { public static void main(String[] args) throws IOException { - File crustalDir = new File("/home/kevin/OpenSHA/nshm23/batch_inversions/" - + "2024_12_05-prvi25_crustal_branches-dmSample5x"); - FaultSystemSolution crustalSol = FaultSystemSolution.load(new File(crustalDir, - "results_PRVI_CRUSTAL_FM_V1p1_branch_averaged_gridded.zip")); + FaultSystemSolution crustalSol = FaultSystemSolution.load(CRUSTAL_SOL_GRIDDED); EvenlyDiscretizedFunc refMFD = FaultSysTools.initEmptyMFD(4.05, 9.55); - File subductionDir = new File("/home/kevin/OpenSHA/nshm23/batch_inversions/" - + "2024_11_19-prvi25_subduction_branches"); - FaultSystemSolution subductionLargeSol = FaultSystemSolution.load(new File(subductionDir, - "results_PRVI_SUB_FM_LARGE_branch_averaged_gridded.zip")); - FaultSystemSolution subductionSmallSol = FaultSystemSolution.load(new File(subductionDir, - "results_PRVI_SUB_FM_SMALL_branch_averaged_gridded.zip")); + FaultSystemSolution subductionLargeSol = FaultSystemSolution.load(SUBDUCTION_SOL_LARGE); + FaultSystemSolution subductionSmallSol = FaultSystemSolution.load(SUBDUCTION_SOL_SMALL); FaultSystemSolution subductionCombined = SubductionCombinedModelCreator.combine( Map.of(PRVI25_SubductionFaultModels.PRVI_SUB_FM_LARGE, subductionLargeSol, PRVI25_SubductionFaultModels.PRVI_SUB_FM_SMALL, subductionSmallSol)); - File crustalOutputDir = new File("/home/kevin/Documents/papers/2024_PRVI_ERF/prvi25-erf-paper/Figures/crustal_sol"); + File crustalOutputDir = new File(FIGURES_DIR, "crustal_sol"); Preconditions.checkState(crustalOutputDir.exists() || crustalOutputDir.mkdir()); - File subductionOutputDir = new File("/home/kevin/Documents/papers/2024_PRVI_ERF/prvi25-erf-paper/Figures/sub_sol"); + File subductionOutputDir = new File(FIGURES_DIR, "sub_sol"); Preconditions.checkState(subductionOutputDir.exists() || subductionOutputDir.mkdir()); FileWriter crustalTexFW = new FileWriter(new File(crustalOutputDir, "crustal_mfds.tex")); diff --git a/src/main/java/scratch/kevin/prvi25/figures/LogicTreeFigureWriter.java b/src/main/java/scratch/kevin/prvi25/figures/LogicTreeFigureWriter.java index 7d76705..1b1d1cf 100644 --- a/src/main/java/scratch/kevin/prvi25/figures/LogicTreeFigureWriter.java +++ b/src/main/java/scratch/kevin/prvi25/figures/LogicTreeFigureWriter.java @@ -44,6 +44,8 @@ import com.itextpdf.text.pdf.PdfTemplate; import com.itextpdf.text.pdf.PdfWriter; +import static scratch.kevin.prvi25.figures.PRVI_Paths.*; + public class LogicTreeFigureWriter extends JPanel { public static void main(String[] args) throws IOException { @@ -53,7 +55,8 @@ public static void main(String[] args) throws IOException { nameRemappings.put(NSHM23_ScalingRelationships.LOGA_C4p2_SQRT_LEN.getShortName(), "Sqrt-Len"); nameRemappings.put(PRVI25_CrustalRandomlySampledDeformationModelLevel.NAME, "Geologic Deformation Model Sample"); - File outputDir = new File("/home/kevin/Documents/papers/2024_PRVI_ERF/prvi25-erf-paper/Figures/logic_trees"); + File outputDir = new File(FIGURES_DIR, "logic_trees"); + Preconditions.checkState(outputDir.exists() || outputDir.mkdir()); List> trees = new ArrayList<>(); List prefixes = new ArrayList<>(); diff --git a/src/main/java/scratch/kevin/prvi25/figures/MapSourceTypeDisagg.java b/src/main/java/scratch/kevin/prvi25/figures/MapSourceTypeDisagg.java index 42b40ff..114b0c0 100644 --- a/src/main/java/scratch/kevin/prvi25/figures/MapSourceTypeDisagg.java +++ b/src/main/java/scratch/kevin/prvi25/figures/MapSourceTypeDisagg.java @@ -46,6 +46,8 @@ import net.mahdilamb.colormap.Colors; +import static scratch.kevin.prvi25.figures.PRVI_Paths.*; + public class MapSourceTypeDisagg { enum MapType { @@ -71,22 +73,16 @@ private MapType(String name, Color color, IncludeBackgroundOption... bgOps) { } public static void main(String[] args) throws IOException { - File baseDir = new File("/home/kevin/OpenSHA/nshm23/batch_inversions/"); - EnumMap dirs = new EnumMap<>(MapType.class); double[] periods = {0d, 1d, 5d}; ReturnPeriods[] rps = SolHazardMapCalc.MAP_RPS; - String crustalDate = "2024_11_19"; - String subductionDate = crustalDate; - String combinedDate = crustalDate; - - dirs.put(MapType.COMBINED, new File(baseDir, combinedDate+"-prvi25_crustal_subduction_combined_branches-ba_only")); - dirs.put(MapType.CRUSTAL, new File(baseDir, crustalDate+"-prvi25_crustal_branches-dmSample5x-ba_only")); - dirs.put(MapType.SUBDUCTION, new File(baseDir, subductionDate+"-prvi25_subduction_branches-ba_only-both_fms")); - dirs.put(MapType.SUBDUCTION_INTERFACE, new File(baseDir, subductionDate+"-prvi25_subduction_branches-ba_only-INTERFACE_only")); - dirs.put(MapType.SUBDUCTION_SLAB, new File(baseDir, subductionDate+"-prvi25_subduction_branches-ba_only-SLAB_only")); + dirs.put(MapType.COMBINED, new File(INV_DIR, COMBINED_DIR.getName()+"-ba_only")); + dirs.put(MapType.CRUSTAL, new File(INV_DIR, CRUSTAL_DIR.getName()+"-ba_only")); + dirs.put(MapType.SUBDUCTION, new File(INV_DIR, SUBDUCTION_DIR.getName()+"-ba_only-both_fms")); + dirs.put(MapType.SUBDUCTION_INTERFACE, new File(INV_DIR, SUBDUCTION_DIR.getName()+"-ba_only-INTERFACE_only")); + dirs.put(MapType.SUBDUCTION_SLAB, new File(INV_DIR, SUBDUCTION_DIR.getName()+"-ba_only-SLAB_only")); double debugPeriod = 5d; ReturnPeriods debugRP = ReturnPeriods.TWO_IN_50; diff --git a/src/main/java/scratch/kevin/prvi25/figures/MultiTectonicParticipationMap.java b/src/main/java/scratch/kevin/prvi25/figures/MultiTectonicParticipationMap.java index 5ac5391..3f06e88 100644 --- a/src/main/java/scratch/kevin/prvi25/figures/MultiTectonicParticipationMap.java +++ b/src/main/java/scratch/kevin/prvi25/figures/MultiTectonicParticipationMap.java @@ -48,27 +48,18 @@ import com.google.common.collect.Table.Cell; import com.google.common.primitives.Doubles; +import static scratch.kevin.prvi25.figures.PRVI_Paths.*; + public class MultiTectonicParticipationMap { public static void main(String[] args) throws IOException { - File invsDir = new File("/home/kevin/OpenSHA/nshm23/batch_inversions"); - - File crustalDir = new File(invsDir, "2024_11_19-prvi25_crustal_branches-dmSample5x"); - File subductionDir = new File(invsDir, "2024_11_19-prvi25_subduction_branches"); - File combDir = new File(invsDir, "2024_11_19-prvi25_crustal_subduction_combined_branches"); - -// File outputDir = new File(combDir, "misc_plots/combined_participation"); - File outputDir = new File("/home/kevin/Documents/papers/2024_PRVI_ERF/prvi25-erf-paper/Figures/combined_partic_rate_maps"); + File outputDir = new File(FIGURES_DIR, "combined_partic_rate_maps"); Preconditions.checkState(outputDir.exists() || outputDir.mkdirs()); - FaultSystemSolution crustalSol = FaultSystemSolution.load(new File(crustalDir, - "results_PRVI_CRUSTAL_FM_V1p1_branch_averaged_gridded.zip")); - FaultSystemSolution subSmallSol = FaultSystemSolution.load(new File(subductionDir, - "results_PRVI_SUB_FM_SMALL_branch_averaged_gridded.zip")); - FaultSystemSolution subLargeSol = FaultSystemSolution.load(new File(subductionDir, - "results_PRVI_SUB_FM_LARGE_branch_averaged_gridded.zip")); - FaultSystemSolution combSol = FaultSystemSolution.load(new File(combDir, - "combined_branch_averaged_solution.zip")); + FaultSystemSolution crustalSol = FaultSystemSolution.load(CRUSTAL_SOL_GRIDDED); + FaultSystemSolution subSmallSol = FaultSystemSolution.load(SUBDUCTION_SOL_SMALL); + FaultSystemSolution subLargeSol = FaultSystemSolution.load(SUBDUCTION_SOL_LARGE); + FaultSystemSolution combSol = FaultSystemSolution.load(COMBINED_SOL); boolean includeInterfaceGridded = false; diff --git a/src/main/java/scratch/kevin/prvi25/figures/ObsUncertaintyBoundsFigure.java b/src/main/java/scratch/kevin/prvi25/figures/ObsUncertaintyBoundsFigure.java index f2c3080..fb65eba 100644 --- a/src/main/java/scratch/kevin/prvi25/figures/ObsUncertaintyBoundsFigure.java +++ b/src/main/java/scratch/kevin/prvi25/figures/ObsUncertaintyBoundsFigure.java @@ -32,10 +32,12 @@ import net.mahdilamb.colormap.Colors; +import static scratch.kevin.prvi25.figures.PRVI_Paths.*; + public class ObsUncertaintyBoundsFigure { public static void main(String[] args) throws IOException { - File outputDir = new File("/home/kevin/Documents/papers/2024_PRVI_ERF/prvi25-erf-paper/Figures"); + File outputDir = FIGURES_DIR; String prefix = "obs_mfd_bounds"; boolean incremental = false; diff --git a/src/main/java/scratch/kevin/prvi25/figures/PRVI_Paths.java b/src/main/java/scratch/kevin/prvi25/figures/PRVI_Paths.java new file mode 100644 index 0000000..570c0ca --- /dev/null +++ b/src/main/java/scratch/kevin/prvi25/figures/PRVI_Paths.java @@ -0,0 +1,23 @@ +package scratch.kevin.prvi25.figures; + +import java.io.File; + +public class PRVI_Paths { + + public static final File PAPER_DIR =new File("/home/kevin/Documents/papers/2024_PRVI_ERF/prvi25-erf-paper"); + public static final File FIGURES_DIR =new File(PAPER_DIR, "Figures"); + + public static final File INV_DIR = new File("/data/kevin/nshm23/batch_inversions/"); + + public static final File CRUSTAL_DIR = new File(INV_DIR, "2024_11_19-prvi25_crustal_branches-dmSample5x"); + public static final File CRUSTAL_SOL_GRIDDED = new File(CRUSTAL_DIR, "results_PRVI_CRUSTAL_FM_V1p1_branch_averaged_gridded.zip"); + public static final File CRUSTAL_SOL_SUPRA_ONLY = new File(CRUSTAL_DIR, "results_PRVI_CRUSTAL_FM_V1p1_branch_averaged.zip"); + + public static final File SUBDUCTION_DIR = new File(INV_DIR, "2024_11_19-prvi25_subduction_branches"); + public static final File SUBDUCTION_SOL_LARGE = new File(SUBDUCTION_DIR, "results_PRVI_SUB_FM_LARGE_branch_averaged_gridded.zip"); + public static final File SUBDUCTION_SOL_SMALL = new File(SUBDUCTION_DIR, "results_PRVI_SUB_FM_SMALL_branch_averaged_gridded.zip"); + + public static final File COMBINED_DIR = new File(INV_DIR, "2024_11_19-prvi25_crustal_subduction_combined_branches"); + public static final File COMBINED_SOL = new File(COMBINED_DIR, "combined_branch_averaged_solution.zip"); + +} diff --git a/src/main/java/scratch/kevin/prvi25/figures/PRVI_SubductionSubSectPlots.java b/src/main/java/scratch/kevin/prvi25/figures/PRVI_SubductionSubSectPlots.java index 988a7b7..223d130 100644 --- a/src/main/java/scratch/kevin/prvi25/figures/PRVI_SubductionSubSectPlots.java +++ b/src/main/java/scratch/kevin/prvi25/figures/PRVI_SubductionSubSectPlots.java @@ -36,6 +36,8 @@ import scratch.kevin.prvi25.FaultSystemLineIntegralCalculator; +import static scratch.kevin.prvi25.figures.PRVI_Paths.*; + public class PRVI_SubductionSubSectPlots { public static Region plotReg = new Region(new Location(16.5, -71.5), new Location(21, -60)); @@ -50,7 +52,7 @@ public static void main(String[] args) throws IOException { PRVI25_InvConfigFactory factory = new PRVI25_InvConfigFactory(); // File outputDir = new File("/home/kevin/Documents/papers/2024_PRVI_Subduction/figures/fault_model"); - File outputDir = new File("/home/kevin/Documents/papers/2024_PRVI_ERF/prvi25-erf-paper/Figures/sub_fm"); + File outputDir = new File(FIGURES_DIR, "sub_fm"); Preconditions.checkState(outputDir.exists() || outputDir.mkdir()); Font font = new Font(Font.SANS_SERIF, Font.BOLD, 24); diff --git a/src/main/java/scratch/kevin/prvi25/figures/ProxyFaultRepresentationFigures.java b/src/main/java/scratch/kevin/prvi25/figures/ProxyFaultRepresentationFigures.java index 7939e7b..24c0538 100644 --- a/src/main/java/scratch/kevin/prvi25/figures/ProxyFaultRepresentationFigures.java +++ b/src/main/java/scratch/kevin/prvi25/figures/ProxyFaultRepresentationFigures.java @@ -39,6 +39,8 @@ import com.google.common.base.Preconditions; +import static scratch.kevin.prvi25.figures.PRVI_Paths.*; + public class ProxyFaultRepresentationFigures { private enum RupType { @@ -60,7 +62,8 @@ public static void main(String[] args) throws IOException { ProxyFaultSectionInstances proxyModule = ProxyFaultSectionInstances.build(rupSet, 5, 5d); rupSet.addModule(proxyModule); - File outputDir = new File("/home/kevin/Documents/papers/2024_PRVI_ERF/prvi25-erf-paper/Figures/proxy_faults"); + File outputDir = new File(FIGURES_DIR, "proxy_faults"); + Preconditions.checkState(outputDir.exists() || outputDir.mkdir()); boolean titles = false; diff --git a/src/main/java/scratch/kevin/prvi25/figures/RupSetStatsTexWriter.java b/src/main/java/scratch/kevin/prvi25/figures/RupSetStatsTexWriter.java index f085124..3bd5a9b 100644 --- a/src/main/java/scratch/kevin/prvi25/figures/RupSetStatsTexWriter.java +++ b/src/main/java/scratch/kevin/prvi25/figures/RupSetStatsTexWriter.java @@ -28,14 +28,15 @@ import scratch.kevin.latex.LaTeXUtils; +import static scratch.kevin.prvi25.figures.PRVI_Paths.*; + public class RupSetStatsTexWriter { public static void main(String[] args) throws IOException { - // TODO Auto-generated method stub PRVI25_InvConfigFactory factory = new PRVI25_InvConfigFactory(); factory.setCacheDir(new File("/home/kevin/OpenSHA/nshm23/rup_sets/cache")); - File outputDir = new File("/home/kevin/Documents/papers/2024_PRVI_ERF/prvi25-erf-paper/Figures"); + File outputDir = FIGURES_DIR; FileWriter fw = new FileWriter(new File(outputDir, "rup_set_stats.tex")); diff --git a/src/main/java/scratch/kevin/prvi25/figures/SegResultPlots.java b/src/main/java/scratch/kevin/prvi25/figures/SegResultPlots.java index 2663742..83fb2df 100644 --- a/src/main/java/scratch/kevin/prvi25/figures/SegResultPlots.java +++ b/src/main/java/scratch/kevin/prvi25/figures/SegResultPlots.java @@ -21,15 +21,15 @@ import com.google.common.base.Preconditions; +import static scratch.kevin.prvi25.figures.PRVI_Paths.*; + class SegResultPlots { public static void main(String[] args) throws IOException { - File outputDir = new File("/home/kevin/Documents/papers/2024_PRVI_ERF/prvi25-erf-paper/Figures/crustal_sol"); + File outputDir = new File(FIGURES_DIR, "crustal_sol"); Preconditions.checkState(outputDir.exists() || outputDir.mkdir()); - FaultSystemSolution sol = FaultSystemSolution.load( - new File("/data/kevin/nshm23/batch_inversions/2024_12_05-prvi25_crustal_branches-dmSample5x/" - + "results_PRVI_CRUSTAL_FM_V1p1_branch_averaged.zip")); + FaultSystemSolution sol = FaultSystemSolution.load(CRUSTAL_SOL_SUPRA_ONLY); ClusterRuptures cRups = sol.getRupSet().requireModule(ClusterRuptures.class); PlausibilityConfiguration config = sol.getRupSet().requireModule(PlausibilityConfiguration.class); diff --git a/src/main/java/scratch/kevin/prvi25/figures/SeismicityPDFFigures.java b/src/main/java/scratch/kevin/prvi25/figures/SeismicityPDFFigures.java index 25586fa..89a88ba 100644 --- a/src/main/java/scratch/kevin/prvi25/figures/SeismicityPDFFigures.java +++ b/src/main/java/scratch/kevin/prvi25/figures/SeismicityPDFFigures.java @@ -18,6 +18,8 @@ import org.opensha.commons.gui.plot.PlotLineType; import org.opensha.commons.mapping.gmt.elements.GMT_CPT_Files; import org.opensha.commons.util.cpt.CPT; +import org.opensha.sha.earthquake.faultSysSolution.FaultSystemSolution; +import org.opensha.sha.earthquake.faultSysSolution.modules.GridSourceList; import org.opensha.sha.earthquake.faultSysSolution.util.FaultSysTools; import org.opensha.sha.earthquake.rupForecastImpl.prvi25.gridded.PRVI25_GridSourceBuilder; import org.opensha.sha.earthquake.rupForecastImpl.prvi25.logicTree.PRVI25_DeclusteringAlgorithms; @@ -25,26 +27,32 @@ import org.opensha.sha.earthquake.rupForecastImpl.prvi25.logicTree.PRVI25_SeisSmoothingAlgorithms; import org.opensha.sha.earthquake.rupForecastImpl.prvi25.util.PRVI25_RegionLoader; import org.opensha.sha.earthquake.rupForecastImpl.prvi25.util.PRVI25_RegionLoader.PRVI25_SeismicityRegions; +import org.opensha.sha.util.TectonicRegionType; import com.google.common.base.Preconditions; +import static scratch.kevin.prvi25.figures.PRVI_Paths.*; + class SeismicityPDFFigures { public static void main(String[] args) throws IOException { - File figsDir = new File("/home/kevin/Documents/papers/2024_PRVI_ERF/prvi25-erf-paper/Figures"); - File crustalOutputDir = new File(figsDir, "crustal_grid"); + File crustalOutputDir = new File(FIGURES_DIR, "crustal_grid"); Preconditions.checkState(crustalOutputDir.exists() || crustalOutputDir.mkdir()); - File subOutputDir = new File(figsDir, "sub_grid"); + File subOutputDir = new File(FIGURES_DIR, "sub_grid"); Preconditions.checkState(subOutputDir.exists() || subOutputDir.mkdir()); PRVI25_DeclusteringAlgorithms avgDecluster = PRVI25_DeclusteringAlgorithms.AVERAGE; PRVI25_SeisSmoothingAlgorithms avgSmooth = PRVI25_SeisSmoothingAlgorithms.AVERAGE; GriddedRegion fullGrid = new GriddedRegion(PRVI25_SeismicityRegions.CRUSTAL.load(), 0.1, GriddedRegion.ANCHOR_0_0); + GridSourceList crustalGridProv = FaultSystemSolution.load(CRUSTAL_SOL_GRIDDED).requireModule(GridSourceList.class); + plotPDFs(crustalOutputDir, "crustal_pdf", 0, avgDecluster, avgSmooth, fullGrid, "Crustal", PRVI25_SeismicityRegions.CRUSTAL); - plotPDFs(crustalOutputDir, "crustal_m5", 5d, avgDecluster, avgSmooth, fullGrid, - "Crustal", PRVI25_SeismicityRegions.CRUSTAL); +// plotPDFs(crustalOutputDir, "crustal_m5", 5d, avgDecluster, avgSmooth, fullGrid, +// "Crustal", PRVI25_SeismicityRegions.CRUSTAL); + plotNucleationRates(crustalOutputDir, "crustal_m5", crustalGridProv, 5d, TectonicRegionType.ACTIVE_SHALLOW, fullGrid, "Crustal", null); + plotNucleationRates(crustalOutputDir, "crustal_m7", crustalGridProv, 7d, TectonicRegionType.ACTIVE_SHALLOW, fullGrid, "Crustal", null); plotPDFs(subOutputDir, "sub_interface_pdf", 0, avgDecluster, avgSmooth, fullGrid, "Interface", PRVI25_SeismicityRegions.CAR_INTERFACE, PRVI25_SeismicityRegions.MUE_INTERFACE); @@ -115,5 +123,37 @@ private static void plotPDFs(File outputDir, String prefix, double magForRate, P mapMaker.plot(outputDir, prefix, " "); } + + private static void plotNucleationRates(File outputDir, String prefix, GridSourceList gridSources, + double minMag, TectonicRegionType trt, GriddedRegion gridReg, String name, + List plotRegions) throws IOException { + GriddedGeoDataSet xyz = new GriddedGeoDataSet(gridReg, false); + BitSet everSets = new BitSet(xyz.size()); + boolean remap = gridSources.getGriddedRegion() == null || !gridReg.equalsRegion(gridSources.getGriddedRegion()); + + for (int l=0; l"+oDF.format(minMag)+" Nucleation Rate"; + cpt.setNanColor(new Color(255, 255, 255)); + + GeographicMapMaker mapMaker = new GeographicMapMaker(gridReg); + mapMaker.setWriteGeoJSON(false); + + if (plotRegions != null && !plotRegions.isEmpty()) + mapMaker.plotInsetRegions(plotRegions, new PlotCurveCharacterstics(PlotLineType.SOLID, 2f, Color.DARK_GRAY), null, 1); + mapMaker.plotXYZData(xyz, cpt, label); + + mapMaker.plot(outputDir, prefix, " "); + } } diff --git a/src/main/java/scratch/kevin/prvi25/figures/SlipRateFigures.java b/src/main/java/scratch/kevin/prvi25/figures/SlipRateFigures.java index 9b200c4..a35c572 100644 --- a/src/main/java/scratch/kevin/prvi25/figures/SlipRateFigures.java +++ b/src/main/java/scratch/kevin/prvi25/figures/SlipRateFigures.java @@ -57,20 +57,18 @@ import net.mahdilamb.colormap.Colors; import scratch.kevin.latex.LaTeXUtils; +import static scratch.kevin.prvi25.figures.PRVI_Paths.*; + public class SlipRateFigures { static Region CRUSTAL_FAULT_MAP_REG = new Region(new Location(16.4, -70.2), new Location(20.2, -61.7));; public static void main(String[] args) throws IOException { - File invsDir = new File("/data/kevin/nshm23/batch_inversions"); - File figsDir = new File("/home/kevin/Documents/papers/2024_PRVI_ERF/prvi25-erf-paper/Figures"); - File crustalDMOutputDir = new File(figsDir, "crustal_dm"); - File crustalSolOutputDir = new File(figsDir, "crustal_sol"); + File crustalDMOutputDir = new File(FIGURES_DIR, "crustal_dm"); + File crustalSolOutputDir = new File(FIGURES_DIR, "crustal_sol"); - File crustalSolDir = new File(invsDir, "2024_12_05-prvi25_crustal_branches-dmSample5x/"); - FaultSystemSolution crustalSol = FaultSystemSolution.load( - new File(crustalSolDir, "results_PRVI_CRUSTAL_FM_V1p1_branch_averaged_gridded.zip")); - FaultSystemSolution crustalNoClassicSol = buildNoClassic(new File(crustalSolDir, "node_branch_averaged")); + FaultSystemSolution crustalSol = FaultSystemSolution.load(CRUSTAL_SOL_SUPRA_ONLY); + FaultSystemSolution crustalNoClassicSol = buildNoClassic(new File(CRUSTAL_DIR, "node_branch_averaged")); plotCrustal(crustalDMOutputDir, crustalSolOutputDir, crustalSol, crustalNoClassicSol); // plotCrustal(outputDir, null); diff --git a/src/main/java/scratch/kevin/prvi25/figures/TectonicSettingPlot.java b/src/main/java/scratch/kevin/prvi25/figures/TectonicSettingPlot.java index 7c83375..7a6161f 100644 --- a/src/main/java/scratch/kevin/prvi25/figures/TectonicSettingPlot.java +++ b/src/main/java/scratch/kevin/prvi25/figures/TectonicSettingPlot.java @@ -37,10 +37,12 @@ import net.mahdilamb.colormap.Colors; import scratch.kevin.prvi25.FaultSystemLineIntegralCalculator; +import static scratch.kevin.prvi25.figures.PRVI_Paths.*; + public class TectonicSettingPlot { public static void main(String[] args) throws IOException { - File outputDir = new File("/home/kevin/Documents/papers/2024_PRVI_ERF/prvi25-erf-paper/Figures/"); + File outputDir = FIGURES_DIR; Preconditions.checkState(outputDir.exists() || outputDir.mkdirs()); Region modelReg = PRVI25_RegionLoader.loadPRVI_ModelBroad();