From 319ff1f51eb3058456df7e6e7f6d0e7d43293e55 Mon Sep 17 00:00:00 2001 From: Jake Faulkner Date: Wed, 8 Jan 2025 10:52:40 +1300 Subject: [PATCH 01/26] add realisation input block --- workflow/realisations.py | 32 ++++++++++++++++++++++++++++++++ workflow/schemas.py | 19 +++++++++++++++++-- 2 files changed, 49 insertions(+), 2 deletions(-) diff --git a/workflow/realisations.py b/workflow/realisations.py index adb7dec4..d8714b84 100644 --- a/workflow/realisations.py +++ b/workflow/realisations.py @@ -532,6 +532,38 @@ class RealisationMetadata(RealisationConfiguration): tag: Optional[str] = None """Metadata tag for the realisation used to specify the origin or category of the realisation (e.g. NSHM, GCMT or custom).""" + input_reference: Optional[str] = None + """Input git reference used to download files.""" + + +@dataclasses.dataclass +class RealisationInput: + """ + Represents the input specification for a simulation realisation. + + This class defines where input files for the simulation should be sourced + from within a Git-based registry. It ensures reproducibility by associating + the files with a specific Git commit and verifying their integrity using + content hashes. + """ + + _config_key: ClassVar[str] = "input" + _schema: ClassVar[Schema] = schemas.REALISATION_INPUT_SCHEMA + + commit: str + """The Git commit hash identifying the version of the registry to use. + + This ensures that the input files are sourced from a specific, immutable + state of the registry for reproducibility. + """ + + files: dict[Path, Path] + """A mapping of simulation file paths to their sources in the registry. + + The keys represent the paths where the files will be used in the simulation, + and the values are paths specifying the source file + information from the registry. + """ @dataclasses.dataclass diff --git a/workflow/schemas.py b/workflow/schemas.py index 3797d2c0..d276aaec 100644 --- a/workflow/schemas.py +++ b/workflow/schemas.py @@ -6,12 +6,13 @@ for a description of realisations and the schemas. """ -import functools +import re from enum import StrEnum +from pathlib import Path import numpy as np import pandas as pd -from schema import And, Literal, Optional, Or, Schema, Use +from schema import And, Literal, Optional, Or, Regex, Schema, Use from velocity_modelling.bounding_box import BoundingBox from source_modelling import rupture_propagation, sources @@ -646,3 +647,17 @@ class Units(StrEnum): ), } ) + + +REALISATION_INPUT_SCHEMA = Schema( + { + Literal( + "commit", + description="The git commit hash identifying the version of the registry to use.", + ): Regex("[a-f0-9]{40}", re.I), + Literal( + "files", + description="A mapping of simulation file paths to their sources in the registry.", + ): {And(str, Use(Path)): And(str, Use(Path))}, + } +) From 4c997e20ff02c8d7ef9dfa3a714e31fb34419b3c Mon Sep 17 00:00:00 2001 From: Jake Faulkner Date: Fri, 10 Jan 2025 10:12:56 +1300 Subject: [PATCH 02/26] swap input stages to using registry --- workflow/default_parameters/README.md | 47 -- workflow/default_parameters/__init__.py | 0 .../default_parameters/develop/__init__.py | 0 .../default_parameters/develop/defaults.yaml | 282 ---------- .../develop/root_defaults.yaml | 38 -- workflow/default_parameters/v16_1/__init__.py | 0 .../v16_1/emod3d_defaults.yaml | 64 --- .../v16_1/root_defaults.yaml | 22 - .../default_parameters/v18_5_3_1/__init__.py | 0 .../v18_5_3_1/emod3d_defaults.yaml | 64 --- .../v18_5_3_1/root_defaults.yaml | 22 - .../v18_5_3_1_1/__init__.py | 0 .../v18_5_3_1_1/emod3d_defaults.yaml | 64 --- .../v18_5_3_1_1/root_defaults.yaml | 22 - .../default_parameters/v18_5_3_2/__init__.py | 0 .../v18_5_3_2/emod3d_defaults.yaml | 64 --- .../v18_5_3_2/root_defaults.yaml | 22 - .../v18_5_3_2_1/__init__.py | 0 .../v18_5_3_2_1/emod3d_defaults.yaml | 64 --- .../v18_5_3_2_1/root_defaults.yaml | 22 - .../default_parameters/v18_5_3_4/__init__.py | 0 .../v18_5_3_4/emod3d_defaults.yaml | 64 --- .../v18_5_3_4/root_defaults.yaml | 22 - .../v18_5_3_4_1/__init__.py | 0 .../v18_5_3_4_1/emod3d_defaults.yaml | 64 --- .../v18_5_3_4_1/root_defaults.yaml | 22 - .../default_parameters/v18_5_4_1/__init__.py | 0 .../v18_5_4_1/emod3d_defaults.yaml | 64 --- .../v18_5_4_1/root_defaults.yaml | 22 - .../default_parameters/v18_5_4_2/__init__.py | 0 .../v18_5_4_2/emod3d_defaults.yaml | 64 --- .../v18_5_4_2/root_defaults.yaml | 22 - .../v18_5_4_2_1/__init__.py | 0 .../v18_5_4_2_1/emod3d_defaults.yaml | 64 --- .../v18_5_4_2_1/root_defaults.yaml | 22 - .../default_parameters/v18_5_4_4/__init__.py | 0 .../v18_5_4_4/emod3d_defaults.yaml | 64 --- .../v18_5_4_4/root_defaults.yaml | 22 - .../v18_5_4_4_1/__init__.py | 0 .../v18_5_4_4_1/emod3d_defaults.yaml | 64 --- .../v18_5_4_4_1/root_defaults.yaml | 22 - .../default_parameters/v20_1_1_4/__init__.py | 0 .../v20_1_1_4/emod3d_defaults.yaml | 64 --- .../v20_1_1_4/root_defaults.yaml | 30 -- .../default_parameters/v20_1_2_4/__init__.py | 0 .../v20_1_2_4/emod3d_defaults.yaml | 64 --- .../v20_1_2_4/root_defaults.yaml | 30 -- .../default_parameters/v20_4_1_1/__init__.py | 0 .../v20_4_1_1/emod3d_defaults.yaml | 65 --- .../v20_4_1_1/root_defaults.yaml | 38 -- .../default_parameters/v20_4_1_2/__init__.py | 0 .../v20_4_1_2/emod3d_defaults.yaml | 64 --- .../v20_4_1_2/root_defaults.yaml | 38 -- .../default_parameters/v20_4_1_4/__init__.py | 0 .../v20_4_1_4/emod3d_defaults.yaml | 64 --- .../v20_4_1_4/root_defaults.yaml | 38 -- .../default_parameters/v22_2_2_05/__init__.py | 0 .../v22_2_2_05/emod3d_defaults.yaml | 63 --- workflow/default_parameters/v22_2_2_05/readme | 1 - .../v22_2_2_05/root_defaults.yaml | 71 --- .../default_parameters/v22_2_2_1/__init__.py | 0 .../v22_2_2_1/emod3d_defaults.yaml | 65 --- .../v22_2_2_1/root_defaults.yaml | 38 -- .../default_parameters/v24_2_2_1/__init__.py | 0 .../v24_2_2_1/defaults.yaml | 485 ----------------- .../v24_2_2_1/root_defaults.yaml | 38 -- .../default_parameters/v24_2_2_2/__init__.py | 0 .../v24_2_2_2/defaults.yaml | 486 ------------------ .../v24_2_2_2/root_defaults.yaml | 38 -- .../default_parameters/v24_2_2_4/__init__.py | 0 .../v24_2_2_4/defaults.yaml | 485 ----------------- .../v24_2_2_4/root_defaults.yaml | 38 -- workflow/realisations.py | 124 +++-- workflow/schemas.py | 32 +- workflow/scripts/bb_sim.py | 7 +- .../scripts/generate_station_coordinates.py | 43 +- workflow/scripts/hf_sim.py | 1 - workflow/scripts/nshm2022_to_realisation.py | 80 +-- workflow/scripts/realisation_to_srf.py | 26 +- 79 files changed, 209 insertions(+), 3806 deletions(-) delete mode 100644 workflow/default_parameters/README.md delete mode 100644 workflow/default_parameters/__init__.py delete mode 100644 workflow/default_parameters/develop/__init__.py delete mode 100644 workflow/default_parameters/develop/defaults.yaml delete mode 100644 workflow/default_parameters/develop/root_defaults.yaml delete mode 100644 workflow/default_parameters/v16_1/__init__.py delete mode 100644 workflow/default_parameters/v16_1/emod3d_defaults.yaml delete mode 100644 workflow/default_parameters/v16_1/root_defaults.yaml delete mode 100644 workflow/default_parameters/v18_5_3_1/__init__.py delete mode 100644 workflow/default_parameters/v18_5_3_1/emod3d_defaults.yaml delete mode 100644 workflow/default_parameters/v18_5_3_1/root_defaults.yaml delete mode 100644 workflow/default_parameters/v18_5_3_1_1/__init__.py delete mode 100644 workflow/default_parameters/v18_5_3_1_1/emod3d_defaults.yaml delete mode 100644 workflow/default_parameters/v18_5_3_1_1/root_defaults.yaml delete mode 100644 workflow/default_parameters/v18_5_3_2/__init__.py delete mode 100644 workflow/default_parameters/v18_5_3_2/emod3d_defaults.yaml delete mode 100644 workflow/default_parameters/v18_5_3_2/root_defaults.yaml delete mode 100644 workflow/default_parameters/v18_5_3_2_1/__init__.py delete mode 100644 workflow/default_parameters/v18_5_3_2_1/emod3d_defaults.yaml delete mode 100644 workflow/default_parameters/v18_5_3_2_1/root_defaults.yaml delete mode 100644 workflow/default_parameters/v18_5_3_4/__init__.py delete mode 100644 workflow/default_parameters/v18_5_3_4/emod3d_defaults.yaml delete mode 100644 workflow/default_parameters/v18_5_3_4/root_defaults.yaml delete mode 100644 workflow/default_parameters/v18_5_3_4_1/__init__.py delete mode 100644 workflow/default_parameters/v18_5_3_4_1/emod3d_defaults.yaml delete mode 100644 workflow/default_parameters/v18_5_3_4_1/root_defaults.yaml delete mode 100644 workflow/default_parameters/v18_5_4_1/__init__.py delete mode 100644 workflow/default_parameters/v18_5_4_1/emod3d_defaults.yaml delete mode 100644 workflow/default_parameters/v18_5_4_1/root_defaults.yaml delete mode 100644 workflow/default_parameters/v18_5_4_2/__init__.py delete mode 100644 workflow/default_parameters/v18_5_4_2/emod3d_defaults.yaml delete mode 100644 workflow/default_parameters/v18_5_4_2/root_defaults.yaml delete mode 100644 workflow/default_parameters/v18_5_4_2_1/__init__.py delete mode 100644 workflow/default_parameters/v18_5_4_2_1/emod3d_defaults.yaml delete mode 100644 workflow/default_parameters/v18_5_4_2_1/root_defaults.yaml delete mode 100644 workflow/default_parameters/v18_5_4_4/__init__.py delete mode 100644 workflow/default_parameters/v18_5_4_4/emod3d_defaults.yaml delete mode 100644 workflow/default_parameters/v18_5_4_4/root_defaults.yaml delete mode 100644 workflow/default_parameters/v18_5_4_4_1/__init__.py delete mode 100644 workflow/default_parameters/v18_5_4_4_1/emod3d_defaults.yaml delete mode 100644 workflow/default_parameters/v18_5_4_4_1/root_defaults.yaml delete mode 100644 workflow/default_parameters/v20_1_1_4/__init__.py delete mode 100644 workflow/default_parameters/v20_1_1_4/emod3d_defaults.yaml delete mode 100644 workflow/default_parameters/v20_1_1_4/root_defaults.yaml delete mode 100644 workflow/default_parameters/v20_1_2_4/__init__.py delete mode 100644 workflow/default_parameters/v20_1_2_4/emod3d_defaults.yaml delete mode 100644 workflow/default_parameters/v20_1_2_4/root_defaults.yaml delete mode 100644 workflow/default_parameters/v20_4_1_1/__init__.py delete mode 100644 workflow/default_parameters/v20_4_1_1/emod3d_defaults.yaml delete mode 100644 workflow/default_parameters/v20_4_1_1/root_defaults.yaml delete mode 100644 workflow/default_parameters/v20_4_1_2/__init__.py delete mode 100644 workflow/default_parameters/v20_4_1_2/emod3d_defaults.yaml delete mode 100644 workflow/default_parameters/v20_4_1_2/root_defaults.yaml delete mode 100644 workflow/default_parameters/v20_4_1_4/__init__.py delete mode 100644 workflow/default_parameters/v20_4_1_4/emod3d_defaults.yaml delete mode 100644 workflow/default_parameters/v20_4_1_4/root_defaults.yaml delete mode 100644 workflow/default_parameters/v22_2_2_05/__init__.py delete mode 100644 workflow/default_parameters/v22_2_2_05/emod3d_defaults.yaml delete mode 100644 workflow/default_parameters/v22_2_2_05/readme delete mode 100644 workflow/default_parameters/v22_2_2_05/root_defaults.yaml delete mode 100644 workflow/default_parameters/v22_2_2_1/__init__.py delete mode 100644 workflow/default_parameters/v22_2_2_1/emod3d_defaults.yaml delete mode 100644 workflow/default_parameters/v22_2_2_1/root_defaults.yaml delete mode 100644 workflow/default_parameters/v24_2_2_1/__init__.py delete mode 100644 workflow/default_parameters/v24_2_2_1/defaults.yaml delete mode 100644 workflow/default_parameters/v24_2_2_1/root_defaults.yaml delete mode 100644 workflow/default_parameters/v24_2_2_2/__init__.py delete mode 100644 workflow/default_parameters/v24_2_2_2/defaults.yaml delete mode 100644 workflow/default_parameters/v24_2_2_2/root_defaults.yaml delete mode 100644 workflow/default_parameters/v24_2_2_4/__init__.py delete mode 100644 workflow/default_parameters/v24_2_2_4/defaults.yaml delete mode 100644 workflow/default_parameters/v24_2_2_4/root_defaults.yaml diff --git a/workflow/default_parameters/README.md b/workflow/default_parameters/README.md deleted file mode 100644 index 22cc6876..00000000 --- a/workflow/default_parameters/README.md +++ /dev/null @@ -1,47 +0,0 @@ -The ground motion simulation versions found here are available in a larger format here: https://wiki.canterbury.ac.nz/display/QuakeCore/Simulation -The final suffix of .4, .2 or .1 denotes the grid spacing used of 400m, 200m or 100m - -#Version 16.1 - - HF: v5.4.5 - - path_dur: 1 - - fmin: 0.2 - - fmidbot: 0.5 - - lsvsref: 500.0 - -#Version 18.5.3 -#####Similar to 16.1 - - HF: v5.4.5.1 - - path_dur: 11 - - fmin: 0.5 - - fmidbot: 1.0 - - no-lf-amp: True - -#Version 18.5.4 -#####Similar to 18.5.3 - - HF: v5.4.5.2 - -#Version 20.1.1 -#####Similar to 18.5.3 - - HF: v5.4.6.1 - -#Version 20.1.2 -#####Similar to 18.5.4 - - HF: v5.4.6.2 - -#Version 20.4.1.4 -#####Similar to 18.5.3 - - hb_high version = 5.4.5.3_new_gnu - - czero = 2.0 - - rvfac_shal = 0.6 - - rvfac_deep = 0.6 - - emod3d version = 3.0.8 - - rayset 1 - - Added pSA periods, default in this version is now 31 periods - -#Version 20.4.1.2 -#####Similar to 20.4.1.4 - - flo: 0.5 - - dt: 0.01 - - fmin: 0.25 - - fmidbot: 0.5 - diff --git a/workflow/default_parameters/__init__.py b/workflow/default_parameters/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/workflow/default_parameters/develop/__init__.py b/workflow/default_parameters/develop/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/workflow/default_parameters/develop/defaults.yaml b/workflow/default_parameters/develop/defaults.yaml deleted file mode 100644 index c5daa978..00000000 --- a/workflow/default_parameters/develop/defaults.yaml +++ /dev/null @@ -1,282 +0,0 @@ -emod3d: - all_in_one: 1 - bfilt: 4 - bforce: 0 - dampwidth: 0 - dblcpl: 0 - dmodfile: rho3dfile.d - dtts: 20 - dump_itinc: 4000 - dxout: 1 - dxts: 5 - dyout: 1 - dyts: 5 - dzout: 1 - dzts: 1 - elas_only: 0 - enable_output_dump: 1 - enable_restart: 1 - ffault: 2 - fhi: 0.0 - fmax: 25.0 - fmin: 0.01 - freesurf: 1 - geoproj: 1 - intmem: 1 - ix_ts: 99 - ix_ys: 100 - ix_zs: 100 - iy_ts: 2 - iy_xs: 60 - iy_zs: 50 - iz_ts: 1 - iz_xs: 1 - iz_ys: 1 - lonlat_out: 1 - maxmem: 1500 - model_style: 1 - nseis: 1 - order: 4 - pmodfile: vp3dfile.p - pointmt: 0 - qbndmax: 100.0 - qpfrac: 100.0 - qpqs_factor: 2.0 - qsfrac: 50.0 - read_restart: 0 - report: 100 - restart_itinc: 20000 - scale: 1 - smodfile: vs3dfile.s - span: 1 - stype: 2tri-p10-h20 - swap_bytes: 0 - ts_inc: 1 - ts_start: 0 - ts_total: 218 - ts_xy: 1 - ts_xz: 0 - ts_yz: 0 - tzero: 0.6 - vmodel_swapb: 0 - xseis: 0 - yseis: 0 - zseis: 0 - pertbfile: test -hf: - nbu: 4 - ift: 0 - flo: 0.02 - fhi: 19.9 - nl_skip: -99 - vp_sig: 0.0 - vsh_sig: 0.0 - rho_sig: 0.0 - qs_sig: 0.0 - ic_flag: true - velocity_name: "-1" - dt: 0.005 - t_sec: 0.0 - sdrop: 50.0 - rayset: [1, 2] - no_siteamp: false - fmax: 10.0 - kappa: 0.045 - qfexp: 0.6 - rvfac: 0.8 - rvfac_shal: 0.7 - rvfac_deep: 0.7 - czero: 2.1 - calpha: -99.0 - mom: null - rupv: null - site_specific: false - vs_moho: 999.9 - fa_sig1: 0.0 - fa_sig2: 0.0 - rv_sig1: 0.1 - path_dur: 1 - dpath_pert: 0.0 - stress_parameter_adjustment_tect_type: 1 - stress_parameter_adjustment_target_magnitude: null - stress_parameter_adjustment_fault_area: null - seed: 0 - stoch_dx: 2.0 - stoch_dy: 2.0 -srf: - resolution: 0.1 - genslip_seed: 1 - genslip_dt: 0.05 - srfgen_seed: 1 - genslip_version: 5.4.2 -velocity_model: - min_vs: 0.5 - resolution: 0.4 - ds_multiplier: 1.2 - dt: 0.2 - version: "2.06" - topo_type: "SQUASHED_TAPERED" - vs30: 500.0 - s_wave_velocity: 3500.0 - rrup_interpolants: - [ - [3.5, 46.05329066], - [3.86734694, 52.80886205], - [4.14285714, 61.6089979], - [4.41836735, 74.07002433], - [4.69387755, 90.86166722], - [5.24489796, 124.1668061], - [5.79591837, 143.3055832], - [6.34693878, 159.56440721], - [6.89795918, 183.26871665], - [7.17346939, 203.22307576], - [7.44897959, 230.24780269], - [8., 285.73404835], - ] -bb: - flo: 0.5 - dt: 0.005 - fmidbot: 0.5 - fmin: 0.25 - site_amp_version: "2014" -im: - ims: ["PGA", "PGV", "CAV", "AI", "Ds575", "Ds595", "MMI", "pSA"] - components: ["000", "090", "ver", "geom", "rotd50", "rotd100"] - units: "g" - valid_periods: - [ - 0.01, - 0.02, - 0.03, - 0.04, - 0.05, - 0.075, - 0.1, - 0.12, - 0.15, - 0.17, - 0.2, - 0.25, - 0.3, - 0.4, - 0.5, - 0.6, - 0.7, - 0.75, - 0.8, - 0.9, - 1.0, - 1.25, - 1.5, - 2.0, - 2.5, - 3.0, - 4.0, - 5.0, - 6.0, - 7.5, - 10.0, - ] - fas_frequencies: - [ - 0.1, - 0.10722672, - 0.1149757, - 0.12328467, - 0.13219411, - 0.14174742, - 0.15199111, - 0.16297508, - 0.17475284, - 0.18738174, - 0.2009233, - 0.21544347, - 0.23101297, - 0.24770764, - 0.26560878, - 0.28480359, - 0.30538555, - 0.32745492, - 0.35111917, - 0.37649358, - 0.40370173, - 0.43287613, - 0.46415888, - 0.49770236, - 0.53366992, - 0.57223677, - 0.61359073, - 0.65793322, - 0.70548023, - 0.75646333, - 0.81113083, - 0.869749, - 0.93260335, - 1.0, - 1.07226722, - 1.149757, - 1.23284674, - 1.32194115, - 1.41747416, - 1.51991108, - 1.62975083, - 1.7475284, - 1.87381742, - 2.009233, - 2.15443469, - 2.3101297, - 2.47707636, - 2.65608778, - 2.84803587, - 3.05385551, - 3.27454916, - 3.51119173, - 3.76493581, - 4.03701726, - 4.32876128, - 4.64158883, - 4.97702356, - 5.33669923, - 5.72236766, - 6.13590727, - 6.57933225, - 7.05480231, - 7.56463328, - 8.11130831, - 8.69749003, - 9.32603347, - 10.0, - 10.72267222, - 11.49756995, - 12.32846739, - 13.21941148, - 14.17474163, - 15.19911083, - 16.29750835, - 17.475284, - 18.73817423, - 20.09233003, - 21.5443469, - 23.101297, - 24.77076356, - 26.56087783, - 28.48035868, - 30.53855509, - 32.74549163, - 35.11191734, - 37.64935807, - 40.37017259, - 43.28761281, - 46.41588834, - 49.77023564, - 53.36699231, - 57.22367659, - 61.35907273, - 65.79332247, - 70.54802311, - 75.64633276, - 81.11308308, - 86.97490026, - 93.26033469, - 100.0, - ] diff --git a/workflow/default_parameters/develop/root_defaults.yaml b/workflow/default_parameters/develop/root_defaults.yaml deleted file mode 100644 index 392b30ce..00000000 --- a/workflow/default_parameters/develop/root_defaults.yaml +++ /dev/null @@ -1,38 +0,0 @@ -hf: - version: 6.0.3.2 - dt: 0.005 - rvfac: 0.8 - sdrop: 50 - path_dur: 11 - kappa: 0.045 - rvfac_shal: 0.6 - rvfac_deep: 0.6 - czero: 2.0 - rayset: 1 -bb: - fmin: 0.2 - fmidbot: 0.5 -emod3d: - emod3d_version: 3.0.8 -ims: - extended_period: False - component: - - "000" - - "090" - - ver - - geom - - rotd50 - - rotd100_50 - pSA_periods: [0.01, 0.02, 0.03, 0.04, 0.05, 0.075, 0.1, 0.12, 0.15, 0.17, 0.2, 0.25, 0.3, 0.4, 0.5, 0.6, 0.7, 0.75, 0.8, 0.9, 1.0, 1.25, 1.5, 2.0, 2.5, 3.0, 4.0, 5.0, 6.0, 7.5, 10.0] -flo: 1.0 -dt: 0.005 -VM: - hh: 0.1 - VM_Version: 2.06 - VM_Topo: SQUASHED_TAPERED - PGV_Threshold: -1 - Ds_Multiplier: 1.2 -v_1d_mod: Cant1D_v3-midQ_OneRay.1d -advanced_IM: - models: [ATC_Steel_SCBF_3Story, SAC_Steel_MF_3Story] - match_obs_stations: null diff --git a/workflow/default_parameters/v16_1/__init__.py b/workflow/default_parameters/v16_1/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/workflow/default_parameters/v16_1/emod3d_defaults.yaml b/workflow/default_parameters/v16_1/emod3d_defaults.yaml deleted file mode 100644 index 73c2bd10..00000000 --- a/workflow/default_parameters/v16_1/emod3d_defaults.yaml +++ /dev/null @@ -1,64 +0,0 @@ -all_in_one: 1 -bfilt: 4 -bforce: 0 -dampwidth: 0 -dblcpl: 0 -dmodfile: rho3dfile.d -dtts: 20 -dump_itinc: 4000 -dxout: 1 -dxts: 5 -dyout: 1 -dyts: 5 -dzout: 1 -dzts: 1 -elas_only: 0 -enable_output_dump: 1 -enable_restart: 1 -ffault: 2 -fhi: 0.0 -fmax: 25 -fmin: 0.01 -freesurf: 1 -geoproj: 1 -intmem: 1 -ix_ts: 99 -ix_ys: 100 -ix_zs: 100 -iy_ts: 2 -iy_xs: 60 -iy_zs: 50 -iz_ts: 1 -iz_xs: 1 -iz_ys: 1 -lonlat_out: 1 -maxmem: 1500 -model_style: 1 -nseis: 1 -order: 4 -pertbfile: none.pertb -pmodfile: vp3dfile.p -pointmt: 0 -qbndmax: 100.0 -qpfile: qp.qp -qpfrac: 100 -qpqs_factor: 2.0 -qsfile: qs.qs -qsfrac: 50 -read_restart: 0 -report: 100 -restart_itinc: 20000 -scale: 1 -smodfile: vs3dfile.s -span: 1 -stype: 2tri-p10-h20 -swap_bytes: 0 -ts_inc: 1 -ts_start: 0 -ts_total: 218 -ts_xy: 1 -ts_xz: 0 -ts_yz: 0 -tzero: 0.6 -useqsqp: 0 -vmodel_swapb: 0 diff --git a/workflow/default_parameters/v16_1/root_defaults.yaml b/workflow/default_parameters/v16_1/root_defaults.yaml deleted file mode 100644 index df684c56..00000000 --- a/workflow/default_parameters/v16_1/root_defaults.yaml +++ /dev/null @@ -1,22 +0,0 @@ -hf: - version: 5.4.5 - dt: 0.005 - rvfac: 0.8 - sdrop: 50 - path_dur: 1 - kappa: 0.045 -bb: - fmin: 0.2 - fmidbot: 0.5 - lfvsref: 500.0 - site_response_dir: False -emod3d: - emod3d_version: 3.0.4 -ims: - extended_period: False - component: - - geom - pSA_periods: [0.02, 0.05, 0.1, 0.2, 0.3, 0.4, 0.5, 0.75, 1.0, 2.0, 3.0, 4.0, 5.0, 7.5, 10.0] -flo: 0.25 -dt: 0.02 -v_1d_mod: Cant1D_v3-midQ_OneRay.1d \ No newline at end of file diff --git a/workflow/default_parameters/v18_5_3_1/__init__.py b/workflow/default_parameters/v18_5_3_1/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/workflow/default_parameters/v18_5_3_1/emod3d_defaults.yaml b/workflow/default_parameters/v18_5_3_1/emod3d_defaults.yaml deleted file mode 100644 index 73c2bd10..00000000 --- a/workflow/default_parameters/v18_5_3_1/emod3d_defaults.yaml +++ /dev/null @@ -1,64 +0,0 @@ -all_in_one: 1 -bfilt: 4 -bforce: 0 -dampwidth: 0 -dblcpl: 0 -dmodfile: rho3dfile.d -dtts: 20 -dump_itinc: 4000 -dxout: 1 -dxts: 5 -dyout: 1 -dyts: 5 -dzout: 1 -dzts: 1 -elas_only: 0 -enable_output_dump: 1 -enable_restart: 1 -ffault: 2 -fhi: 0.0 -fmax: 25 -fmin: 0.01 -freesurf: 1 -geoproj: 1 -intmem: 1 -ix_ts: 99 -ix_ys: 100 -ix_zs: 100 -iy_ts: 2 -iy_xs: 60 -iy_zs: 50 -iz_ts: 1 -iz_xs: 1 -iz_ys: 1 -lonlat_out: 1 -maxmem: 1500 -model_style: 1 -nseis: 1 -order: 4 -pertbfile: none.pertb -pmodfile: vp3dfile.p -pointmt: 0 -qbndmax: 100.0 -qpfile: qp.qp -qpfrac: 100 -qpqs_factor: 2.0 -qsfile: qs.qs -qsfrac: 50 -read_restart: 0 -report: 100 -restart_itinc: 20000 -scale: 1 -smodfile: vs3dfile.s -span: 1 -stype: 2tri-p10-h20 -swap_bytes: 0 -ts_inc: 1 -ts_start: 0 -ts_total: 218 -ts_xy: 1 -ts_xz: 0 -ts_yz: 0 -tzero: 0.6 -useqsqp: 0 -vmodel_swapb: 0 diff --git a/workflow/default_parameters/v18_5_3_1/root_defaults.yaml b/workflow/default_parameters/v18_5_3_1/root_defaults.yaml deleted file mode 100644 index 070e3a78..00000000 --- a/workflow/default_parameters/v18_5_3_1/root_defaults.yaml +++ /dev/null @@ -1,22 +0,0 @@ -hf: - version: 5.4.5.1 - dt: 0.005 - rvfac: 0.8 - sdrop: 50 - path_dur: 11 - kappa: 0.045 -bb: - fmin: 0.5 - fmidbot: 1.0 - no-lf-amp: True - site_response_dir: False -emod3d: - emod3d_version: 3.0.4 -ims: - extended_period: False - component: - - geom - pSA_periods: [0.02, 0.05, 0.1, 0.2, 0.3, 0.4, 0.5, 0.75, 1.0, 2.0, 3.0, 4.0, 5.0, 7.5, 10.0] -flo: 1.0 -dt: 0.005 -v_1d_mod: Cant1D_v3-midQ_OneRay.1d \ No newline at end of file diff --git a/workflow/default_parameters/v18_5_3_1_1/__init__.py b/workflow/default_parameters/v18_5_3_1_1/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/workflow/default_parameters/v18_5_3_1_1/emod3d_defaults.yaml b/workflow/default_parameters/v18_5_3_1_1/emod3d_defaults.yaml deleted file mode 100644 index 73c2bd10..00000000 --- a/workflow/default_parameters/v18_5_3_1_1/emod3d_defaults.yaml +++ /dev/null @@ -1,64 +0,0 @@ -all_in_one: 1 -bfilt: 4 -bforce: 0 -dampwidth: 0 -dblcpl: 0 -dmodfile: rho3dfile.d -dtts: 20 -dump_itinc: 4000 -dxout: 1 -dxts: 5 -dyout: 1 -dyts: 5 -dzout: 1 -dzts: 1 -elas_only: 0 -enable_output_dump: 1 -enable_restart: 1 -ffault: 2 -fhi: 0.0 -fmax: 25 -fmin: 0.01 -freesurf: 1 -geoproj: 1 -intmem: 1 -ix_ts: 99 -ix_ys: 100 -ix_zs: 100 -iy_ts: 2 -iy_xs: 60 -iy_zs: 50 -iz_ts: 1 -iz_xs: 1 -iz_ys: 1 -lonlat_out: 1 -maxmem: 1500 -model_style: 1 -nseis: 1 -order: 4 -pertbfile: none.pertb -pmodfile: vp3dfile.p -pointmt: 0 -qbndmax: 100.0 -qpfile: qp.qp -qpfrac: 100 -qpqs_factor: 2.0 -qsfile: qs.qs -qsfrac: 50 -read_restart: 0 -report: 100 -restart_itinc: 20000 -scale: 1 -smodfile: vs3dfile.s -span: 1 -stype: 2tri-p10-h20 -swap_bytes: 0 -ts_inc: 1 -ts_start: 0 -ts_total: 218 -ts_xy: 1 -ts_xz: 0 -ts_yz: 0 -tzero: 0.6 -useqsqp: 0 -vmodel_swapb: 0 diff --git a/workflow/default_parameters/v18_5_3_1_1/root_defaults.yaml b/workflow/default_parameters/v18_5_3_1_1/root_defaults.yaml deleted file mode 100644 index afe59ccc..00000000 --- a/workflow/default_parameters/v18_5_3_1_1/root_defaults.yaml +++ /dev/null @@ -1,22 +0,0 @@ -hf: - version: 5.4.5.3 - dt: 0.005 - rvfac: 0.8 - sdrop: 50 - path_dur: 11 - kappa: 0.045 -bb: - fmin: 0.5 - fmidbot: 1.0 - no-lf-amp: True - site_response_dir: False -emod3d: - emod3d_version: 3.0.4 -ims: - extended_period: False - component: - - geom - pSA_periods: [0.02, 0.05, 0.1, 0.2, 0.3, 0.4, 0.5, 0.75, 1.0, 2.0, 3.0, 4.0, 5.0, 7.5, 10.0] -flo: 1.0 -dt: 0.005 -v_1d_mod: Cant1D_v3-midQ_OneRay.1d \ No newline at end of file diff --git a/workflow/default_parameters/v18_5_3_2/__init__.py b/workflow/default_parameters/v18_5_3_2/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/workflow/default_parameters/v18_5_3_2/emod3d_defaults.yaml b/workflow/default_parameters/v18_5_3_2/emod3d_defaults.yaml deleted file mode 100644 index 73c2bd10..00000000 --- a/workflow/default_parameters/v18_5_3_2/emod3d_defaults.yaml +++ /dev/null @@ -1,64 +0,0 @@ -all_in_one: 1 -bfilt: 4 -bforce: 0 -dampwidth: 0 -dblcpl: 0 -dmodfile: rho3dfile.d -dtts: 20 -dump_itinc: 4000 -dxout: 1 -dxts: 5 -dyout: 1 -dyts: 5 -dzout: 1 -dzts: 1 -elas_only: 0 -enable_output_dump: 1 -enable_restart: 1 -ffault: 2 -fhi: 0.0 -fmax: 25 -fmin: 0.01 -freesurf: 1 -geoproj: 1 -intmem: 1 -ix_ts: 99 -ix_ys: 100 -ix_zs: 100 -iy_ts: 2 -iy_xs: 60 -iy_zs: 50 -iz_ts: 1 -iz_xs: 1 -iz_ys: 1 -lonlat_out: 1 -maxmem: 1500 -model_style: 1 -nseis: 1 -order: 4 -pertbfile: none.pertb -pmodfile: vp3dfile.p -pointmt: 0 -qbndmax: 100.0 -qpfile: qp.qp -qpfrac: 100 -qpqs_factor: 2.0 -qsfile: qs.qs -qsfrac: 50 -read_restart: 0 -report: 100 -restart_itinc: 20000 -scale: 1 -smodfile: vs3dfile.s -span: 1 -stype: 2tri-p10-h20 -swap_bytes: 0 -ts_inc: 1 -ts_start: 0 -ts_total: 218 -ts_xy: 1 -ts_xz: 0 -ts_yz: 0 -tzero: 0.6 -useqsqp: 0 -vmodel_swapb: 0 diff --git a/workflow/default_parameters/v18_5_3_2/root_defaults.yaml b/workflow/default_parameters/v18_5_3_2/root_defaults.yaml deleted file mode 100644 index 8294e1f8..00000000 --- a/workflow/default_parameters/v18_5_3_2/root_defaults.yaml +++ /dev/null @@ -1,22 +0,0 @@ -hf: - version: 5.4.5.1 - dt: 0.005 - rvfac: 0.8 - sdrop: 50 - path_dur: 11 - kappa: 0.045 -bb: - fmin: 0.5 - fmidbot: 1.0 - no-lf-amp: True - site_response_dir: False -emod3d: - emod3d_version: 3.0.4 -ims: - extended_period: False - component: - - geom - pSA_periods: [0.02, 0.05, 0.1, 0.2, 0.3, 0.4, 0.5, 0.75, 1.0, 2.0, 3.0, 4.0, 5.0, 7.5, 10.0] -flo: 0.5 -dt: 0.01 -v_1d_mod: Cant1D_v3-midQ_OneRay.1d \ No newline at end of file diff --git a/workflow/default_parameters/v18_5_3_2_1/__init__.py b/workflow/default_parameters/v18_5_3_2_1/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/workflow/default_parameters/v18_5_3_2_1/emod3d_defaults.yaml b/workflow/default_parameters/v18_5_3_2_1/emod3d_defaults.yaml deleted file mode 100644 index 73c2bd10..00000000 --- a/workflow/default_parameters/v18_5_3_2_1/emod3d_defaults.yaml +++ /dev/null @@ -1,64 +0,0 @@ -all_in_one: 1 -bfilt: 4 -bforce: 0 -dampwidth: 0 -dblcpl: 0 -dmodfile: rho3dfile.d -dtts: 20 -dump_itinc: 4000 -dxout: 1 -dxts: 5 -dyout: 1 -dyts: 5 -dzout: 1 -dzts: 1 -elas_only: 0 -enable_output_dump: 1 -enable_restart: 1 -ffault: 2 -fhi: 0.0 -fmax: 25 -fmin: 0.01 -freesurf: 1 -geoproj: 1 -intmem: 1 -ix_ts: 99 -ix_ys: 100 -ix_zs: 100 -iy_ts: 2 -iy_xs: 60 -iy_zs: 50 -iz_ts: 1 -iz_xs: 1 -iz_ys: 1 -lonlat_out: 1 -maxmem: 1500 -model_style: 1 -nseis: 1 -order: 4 -pertbfile: none.pertb -pmodfile: vp3dfile.p -pointmt: 0 -qbndmax: 100.0 -qpfile: qp.qp -qpfrac: 100 -qpqs_factor: 2.0 -qsfile: qs.qs -qsfrac: 50 -read_restart: 0 -report: 100 -restart_itinc: 20000 -scale: 1 -smodfile: vs3dfile.s -span: 1 -stype: 2tri-p10-h20 -swap_bytes: 0 -ts_inc: 1 -ts_start: 0 -ts_total: 218 -ts_xy: 1 -ts_xz: 0 -ts_yz: 0 -tzero: 0.6 -useqsqp: 0 -vmodel_swapb: 0 diff --git a/workflow/default_parameters/v18_5_3_2_1/root_defaults.yaml b/workflow/default_parameters/v18_5_3_2_1/root_defaults.yaml deleted file mode 100644 index d3ec1c84..00000000 --- a/workflow/default_parameters/v18_5_3_2_1/root_defaults.yaml +++ /dev/null @@ -1,22 +0,0 @@ -hf: - version: 5.4.5.3 - dt: 0.005 - rvfac: 0.8 - sdrop: 50 - path_dur: 11 - kappa: 0.045 -bb: - fmin: 0.5 - fmidbot: 1.0 - no-lf-amp: True - site_response_dir: False -emod3d: - emod3d_version: 3.0.4 -ims: - extended_period: False - component: - - geom - pSA_periods: [0.02, 0.05, 0.1, 0.2, 0.3, 0.4, 0.5, 0.75, 1.0, 2.0, 3.0, 4.0, 5.0, 7.5, 10.0] -flo: 0.5 -dt: 0.01 -v_1d_mod: Cant1D_v3-midQ_OneRay.1d \ No newline at end of file diff --git a/workflow/default_parameters/v18_5_3_4/__init__.py b/workflow/default_parameters/v18_5_3_4/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/workflow/default_parameters/v18_5_3_4/emod3d_defaults.yaml b/workflow/default_parameters/v18_5_3_4/emod3d_defaults.yaml deleted file mode 100644 index 73c2bd10..00000000 --- a/workflow/default_parameters/v18_5_3_4/emod3d_defaults.yaml +++ /dev/null @@ -1,64 +0,0 @@ -all_in_one: 1 -bfilt: 4 -bforce: 0 -dampwidth: 0 -dblcpl: 0 -dmodfile: rho3dfile.d -dtts: 20 -dump_itinc: 4000 -dxout: 1 -dxts: 5 -dyout: 1 -dyts: 5 -dzout: 1 -dzts: 1 -elas_only: 0 -enable_output_dump: 1 -enable_restart: 1 -ffault: 2 -fhi: 0.0 -fmax: 25 -fmin: 0.01 -freesurf: 1 -geoproj: 1 -intmem: 1 -ix_ts: 99 -ix_ys: 100 -ix_zs: 100 -iy_ts: 2 -iy_xs: 60 -iy_zs: 50 -iz_ts: 1 -iz_xs: 1 -iz_ys: 1 -lonlat_out: 1 -maxmem: 1500 -model_style: 1 -nseis: 1 -order: 4 -pertbfile: none.pertb -pmodfile: vp3dfile.p -pointmt: 0 -qbndmax: 100.0 -qpfile: qp.qp -qpfrac: 100 -qpqs_factor: 2.0 -qsfile: qs.qs -qsfrac: 50 -read_restart: 0 -report: 100 -restart_itinc: 20000 -scale: 1 -smodfile: vs3dfile.s -span: 1 -stype: 2tri-p10-h20 -swap_bytes: 0 -ts_inc: 1 -ts_start: 0 -ts_total: 218 -ts_xy: 1 -ts_xz: 0 -ts_yz: 0 -tzero: 0.6 -useqsqp: 0 -vmodel_swapb: 0 diff --git a/workflow/default_parameters/v18_5_3_4/root_defaults.yaml b/workflow/default_parameters/v18_5_3_4/root_defaults.yaml deleted file mode 100644 index 448fbab1..00000000 --- a/workflow/default_parameters/v18_5_3_4/root_defaults.yaml +++ /dev/null @@ -1,22 +0,0 @@ -hf: - version: 5.4.5.1 - dt: 0.005 - rvfac: 0.8 - sdrop: 50 - path_dur: 11 - kappa: 0.045 -bb: - fmin: 0.5 - fmidbot: 1.0 - no-lf-amp: True - site_response_dir: False -emod3d: - emod3d_version: 3.0.4 -ims: - extended_period: False - component: - - geom - pSA_periods: [0.02, 0.05, 0.1, 0.2, 0.3, 0.4, 0.5, 0.75, 1.0, 2.0, 3.0, 4.0, 5.0, 7.5, 10.0] -flo: 0.25 -dt: 0.02 -v_1d_mod: Cant1D_v3-midQ_OneRay.1d \ No newline at end of file diff --git a/workflow/default_parameters/v18_5_3_4_1/__init__.py b/workflow/default_parameters/v18_5_3_4_1/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/workflow/default_parameters/v18_5_3_4_1/emod3d_defaults.yaml b/workflow/default_parameters/v18_5_3_4_1/emod3d_defaults.yaml deleted file mode 100644 index 73c2bd10..00000000 --- a/workflow/default_parameters/v18_5_3_4_1/emod3d_defaults.yaml +++ /dev/null @@ -1,64 +0,0 @@ -all_in_one: 1 -bfilt: 4 -bforce: 0 -dampwidth: 0 -dblcpl: 0 -dmodfile: rho3dfile.d -dtts: 20 -dump_itinc: 4000 -dxout: 1 -dxts: 5 -dyout: 1 -dyts: 5 -dzout: 1 -dzts: 1 -elas_only: 0 -enable_output_dump: 1 -enable_restart: 1 -ffault: 2 -fhi: 0.0 -fmax: 25 -fmin: 0.01 -freesurf: 1 -geoproj: 1 -intmem: 1 -ix_ts: 99 -ix_ys: 100 -ix_zs: 100 -iy_ts: 2 -iy_xs: 60 -iy_zs: 50 -iz_ts: 1 -iz_xs: 1 -iz_ys: 1 -lonlat_out: 1 -maxmem: 1500 -model_style: 1 -nseis: 1 -order: 4 -pertbfile: none.pertb -pmodfile: vp3dfile.p -pointmt: 0 -qbndmax: 100.0 -qpfile: qp.qp -qpfrac: 100 -qpqs_factor: 2.0 -qsfile: qs.qs -qsfrac: 50 -read_restart: 0 -report: 100 -restart_itinc: 20000 -scale: 1 -smodfile: vs3dfile.s -span: 1 -stype: 2tri-p10-h20 -swap_bytes: 0 -ts_inc: 1 -ts_start: 0 -ts_total: 218 -ts_xy: 1 -ts_xz: 0 -ts_yz: 0 -tzero: 0.6 -useqsqp: 0 -vmodel_swapb: 0 diff --git a/workflow/default_parameters/v18_5_3_4_1/root_defaults.yaml b/workflow/default_parameters/v18_5_3_4_1/root_defaults.yaml deleted file mode 100644 index e18aa82c..00000000 --- a/workflow/default_parameters/v18_5_3_4_1/root_defaults.yaml +++ /dev/null @@ -1,22 +0,0 @@ -hf: - version: 5.4.5.3 - dt: 0.005 - rvfac: 0.8 - sdrop: 50 - path_dur: 11 - kappa: 0.045 -bb: - fmin: 0.5 - fmidbot: 1.0 - no-lf-amp: True - site_response_dir: False -emod3d: - emod3d_version: 3.0.4 -ims: - extended_period: False - component: - - geom - pSA_periods: [0.02, 0.05, 0.1, 0.2, 0.3, 0.4, 0.5, 0.75, 1.0, 2.0, 3.0, 4.0, 5.0, 7.5, 10.0] -flo: 0.25 -dt: 0.02 -v_1d_mod: Cant1D_v3-midQ_OneRay.1d \ No newline at end of file diff --git a/workflow/default_parameters/v18_5_4_1/__init__.py b/workflow/default_parameters/v18_5_4_1/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/workflow/default_parameters/v18_5_4_1/emod3d_defaults.yaml b/workflow/default_parameters/v18_5_4_1/emod3d_defaults.yaml deleted file mode 100644 index 73c2bd10..00000000 --- a/workflow/default_parameters/v18_5_4_1/emod3d_defaults.yaml +++ /dev/null @@ -1,64 +0,0 @@ -all_in_one: 1 -bfilt: 4 -bforce: 0 -dampwidth: 0 -dblcpl: 0 -dmodfile: rho3dfile.d -dtts: 20 -dump_itinc: 4000 -dxout: 1 -dxts: 5 -dyout: 1 -dyts: 5 -dzout: 1 -dzts: 1 -elas_only: 0 -enable_output_dump: 1 -enable_restart: 1 -ffault: 2 -fhi: 0.0 -fmax: 25 -fmin: 0.01 -freesurf: 1 -geoproj: 1 -intmem: 1 -ix_ts: 99 -ix_ys: 100 -ix_zs: 100 -iy_ts: 2 -iy_xs: 60 -iy_zs: 50 -iz_ts: 1 -iz_xs: 1 -iz_ys: 1 -lonlat_out: 1 -maxmem: 1500 -model_style: 1 -nseis: 1 -order: 4 -pertbfile: none.pertb -pmodfile: vp3dfile.p -pointmt: 0 -qbndmax: 100.0 -qpfile: qp.qp -qpfrac: 100 -qpqs_factor: 2.0 -qsfile: qs.qs -qsfrac: 50 -read_restart: 0 -report: 100 -restart_itinc: 20000 -scale: 1 -smodfile: vs3dfile.s -span: 1 -stype: 2tri-p10-h20 -swap_bytes: 0 -ts_inc: 1 -ts_start: 0 -ts_total: 218 -ts_xy: 1 -ts_xz: 0 -ts_yz: 0 -tzero: 0.6 -useqsqp: 0 -vmodel_swapb: 0 diff --git a/workflow/default_parameters/v18_5_4_1/root_defaults.yaml b/workflow/default_parameters/v18_5_4_1/root_defaults.yaml deleted file mode 100644 index 6565f1cd..00000000 --- a/workflow/default_parameters/v18_5_4_1/root_defaults.yaml +++ /dev/null @@ -1,22 +0,0 @@ -hf: - version: 5.4.5.2 - dt: 0.005 - rvfac: 0.8 - sdrop: 50 - path_dur: 11 - kappa: 0.045 -bb: - fmin: 0.5 - fmidbot: 1.0 - no-lf-amp: True - site_response_dir: False -emod3d: - emod3d_version: 3.0.4 -ims: - extended_period: False - component: - - geom - pSA_periods: [0.02, 0.05, 0.1, 0.2, 0.3, 0.4, 0.5, 0.75, 1.0, 2.0, 3.0, 4.0, 5.0, 7.5, 10.0] -flo: 1.0 -dt: 0.005 -v_1d_mod: Cant1D_v3-midQ_OneRay.1d \ No newline at end of file diff --git a/workflow/default_parameters/v18_5_4_2/__init__.py b/workflow/default_parameters/v18_5_4_2/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/workflow/default_parameters/v18_5_4_2/emod3d_defaults.yaml b/workflow/default_parameters/v18_5_4_2/emod3d_defaults.yaml deleted file mode 100644 index 73c2bd10..00000000 --- a/workflow/default_parameters/v18_5_4_2/emod3d_defaults.yaml +++ /dev/null @@ -1,64 +0,0 @@ -all_in_one: 1 -bfilt: 4 -bforce: 0 -dampwidth: 0 -dblcpl: 0 -dmodfile: rho3dfile.d -dtts: 20 -dump_itinc: 4000 -dxout: 1 -dxts: 5 -dyout: 1 -dyts: 5 -dzout: 1 -dzts: 1 -elas_only: 0 -enable_output_dump: 1 -enable_restart: 1 -ffault: 2 -fhi: 0.0 -fmax: 25 -fmin: 0.01 -freesurf: 1 -geoproj: 1 -intmem: 1 -ix_ts: 99 -ix_ys: 100 -ix_zs: 100 -iy_ts: 2 -iy_xs: 60 -iy_zs: 50 -iz_ts: 1 -iz_xs: 1 -iz_ys: 1 -lonlat_out: 1 -maxmem: 1500 -model_style: 1 -nseis: 1 -order: 4 -pertbfile: none.pertb -pmodfile: vp3dfile.p -pointmt: 0 -qbndmax: 100.0 -qpfile: qp.qp -qpfrac: 100 -qpqs_factor: 2.0 -qsfile: qs.qs -qsfrac: 50 -read_restart: 0 -report: 100 -restart_itinc: 20000 -scale: 1 -smodfile: vs3dfile.s -span: 1 -stype: 2tri-p10-h20 -swap_bytes: 0 -ts_inc: 1 -ts_start: 0 -ts_total: 218 -ts_xy: 1 -ts_xz: 0 -ts_yz: 0 -tzero: 0.6 -useqsqp: 0 -vmodel_swapb: 0 diff --git a/workflow/default_parameters/v18_5_4_2/root_defaults.yaml b/workflow/default_parameters/v18_5_4_2/root_defaults.yaml deleted file mode 100644 index 148db423..00000000 --- a/workflow/default_parameters/v18_5_4_2/root_defaults.yaml +++ /dev/null @@ -1,22 +0,0 @@ -hf: - version: 5.4.5.2 - dt: 0.005 - rvfac: 0.8 - sdrop: 50 - path_dur: 11 - kappa: 0.045 -bb: - fmin: 0.5 - fmidbot: 1.0 - no-lf-amp: True - site_response_dir: False -emod3d: - emod3d_version: 3.0.4 -ims: - extended_period: False - component: - - geom - pSA_periods: [0.02, 0.05, 0.1, 0.2, 0.3, 0.4, 0.5, 0.75, 1.0, 2.0, 3.0, 4.0, 5.0, 7.5, 10.0] -flo: 0.5 -dt: 0.01 -v_1d_mod: Cant1D_v3-midQ_OneRay.1d \ No newline at end of file diff --git a/workflow/default_parameters/v18_5_4_2_1/__init__.py b/workflow/default_parameters/v18_5_4_2_1/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/workflow/default_parameters/v18_5_4_2_1/emod3d_defaults.yaml b/workflow/default_parameters/v18_5_4_2_1/emod3d_defaults.yaml deleted file mode 100644 index 73c2bd10..00000000 --- a/workflow/default_parameters/v18_5_4_2_1/emod3d_defaults.yaml +++ /dev/null @@ -1,64 +0,0 @@ -all_in_one: 1 -bfilt: 4 -bforce: 0 -dampwidth: 0 -dblcpl: 0 -dmodfile: rho3dfile.d -dtts: 20 -dump_itinc: 4000 -dxout: 1 -dxts: 5 -dyout: 1 -dyts: 5 -dzout: 1 -dzts: 1 -elas_only: 0 -enable_output_dump: 1 -enable_restart: 1 -ffault: 2 -fhi: 0.0 -fmax: 25 -fmin: 0.01 -freesurf: 1 -geoproj: 1 -intmem: 1 -ix_ts: 99 -ix_ys: 100 -ix_zs: 100 -iy_ts: 2 -iy_xs: 60 -iy_zs: 50 -iz_ts: 1 -iz_xs: 1 -iz_ys: 1 -lonlat_out: 1 -maxmem: 1500 -model_style: 1 -nseis: 1 -order: 4 -pertbfile: none.pertb -pmodfile: vp3dfile.p -pointmt: 0 -qbndmax: 100.0 -qpfile: qp.qp -qpfrac: 100 -qpqs_factor: 2.0 -qsfile: qs.qs -qsfrac: 50 -read_restart: 0 -report: 100 -restart_itinc: 20000 -scale: 1 -smodfile: vs3dfile.s -span: 1 -stype: 2tri-p10-h20 -swap_bytes: 0 -ts_inc: 1 -ts_start: 0 -ts_total: 218 -ts_xy: 1 -ts_xz: 0 -ts_yz: 0 -tzero: 0.6 -useqsqp: 0 -vmodel_swapb: 0 diff --git a/workflow/default_parameters/v18_5_4_2_1/root_defaults.yaml b/workflow/default_parameters/v18_5_4_2_1/root_defaults.yaml deleted file mode 100644 index d3ec1c84..00000000 --- a/workflow/default_parameters/v18_5_4_2_1/root_defaults.yaml +++ /dev/null @@ -1,22 +0,0 @@ -hf: - version: 5.4.5.3 - dt: 0.005 - rvfac: 0.8 - sdrop: 50 - path_dur: 11 - kappa: 0.045 -bb: - fmin: 0.5 - fmidbot: 1.0 - no-lf-amp: True - site_response_dir: False -emod3d: - emod3d_version: 3.0.4 -ims: - extended_period: False - component: - - geom - pSA_periods: [0.02, 0.05, 0.1, 0.2, 0.3, 0.4, 0.5, 0.75, 1.0, 2.0, 3.0, 4.0, 5.0, 7.5, 10.0] -flo: 0.5 -dt: 0.01 -v_1d_mod: Cant1D_v3-midQ_OneRay.1d \ No newline at end of file diff --git a/workflow/default_parameters/v18_5_4_4/__init__.py b/workflow/default_parameters/v18_5_4_4/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/workflow/default_parameters/v18_5_4_4/emod3d_defaults.yaml b/workflow/default_parameters/v18_5_4_4/emod3d_defaults.yaml deleted file mode 100644 index 73c2bd10..00000000 --- a/workflow/default_parameters/v18_5_4_4/emod3d_defaults.yaml +++ /dev/null @@ -1,64 +0,0 @@ -all_in_one: 1 -bfilt: 4 -bforce: 0 -dampwidth: 0 -dblcpl: 0 -dmodfile: rho3dfile.d -dtts: 20 -dump_itinc: 4000 -dxout: 1 -dxts: 5 -dyout: 1 -dyts: 5 -dzout: 1 -dzts: 1 -elas_only: 0 -enable_output_dump: 1 -enable_restart: 1 -ffault: 2 -fhi: 0.0 -fmax: 25 -fmin: 0.01 -freesurf: 1 -geoproj: 1 -intmem: 1 -ix_ts: 99 -ix_ys: 100 -ix_zs: 100 -iy_ts: 2 -iy_xs: 60 -iy_zs: 50 -iz_ts: 1 -iz_xs: 1 -iz_ys: 1 -lonlat_out: 1 -maxmem: 1500 -model_style: 1 -nseis: 1 -order: 4 -pertbfile: none.pertb -pmodfile: vp3dfile.p -pointmt: 0 -qbndmax: 100.0 -qpfile: qp.qp -qpfrac: 100 -qpqs_factor: 2.0 -qsfile: qs.qs -qsfrac: 50 -read_restart: 0 -report: 100 -restart_itinc: 20000 -scale: 1 -smodfile: vs3dfile.s -span: 1 -stype: 2tri-p10-h20 -swap_bytes: 0 -ts_inc: 1 -ts_start: 0 -ts_total: 218 -ts_xy: 1 -ts_xz: 0 -ts_yz: 0 -tzero: 0.6 -useqsqp: 0 -vmodel_swapb: 0 diff --git a/workflow/default_parameters/v18_5_4_4/root_defaults.yaml b/workflow/default_parameters/v18_5_4_4/root_defaults.yaml deleted file mode 100644 index 1e57f294..00000000 --- a/workflow/default_parameters/v18_5_4_4/root_defaults.yaml +++ /dev/null @@ -1,22 +0,0 @@ -hf: - version: 5.4.5.2 - dt: 0.005 - rvfac: 0.8 - sdrop: 50 - path_dur: 11 - kappa: 0.045 -bb: - fmin: 0.5 - fmidbot: 1.0 - no-lf-amp: True - site_response_dir: False -emod3d: - emod3d_version: 3.0.4 -ims: - extended_period: False - component: - - geom - pSA_periods: [0.02, 0.05, 0.1, 0.2, 0.3, 0.4, 0.5, 0.75, 1.0, 2.0, 3.0, 4.0, 5.0, 7.5, 10.0] -flo: 0.25 -dt: 0.02 -v_1d_mod: Cant1D_v3-midQ_OneRay.1d \ No newline at end of file diff --git a/workflow/default_parameters/v18_5_4_4_1/__init__.py b/workflow/default_parameters/v18_5_4_4_1/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/workflow/default_parameters/v18_5_4_4_1/emod3d_defaults.yaml b/workflow/default_parameters/v18_5_4_4_1/emod3d_defaults.yaml deleted file mode 100644 index 73c2bd10..00000000 --- a/workflow/default_parameters/v18_5_4_4_1/emod3d_defaults.yaml +++ /dev/null @@ -1,64 +0,0 @@ -all_in_one: 1 -bfilt: 4 -bforce: 0 -dampwidth: 0 -dblcpl: 0 -dmodfile: rho3dfile.d -dtts: 20 -dump_itinc: 4000 -dxout: 1 -dxts: 5 -dyout: 1 -dyts: 5 -dzout: 1 -dzts: 1 -elas_only: 0 -enable_output_dump: 1 -enable_restart: 1 -ffault: 2 -fhi: 0.0 -fmax: 25 -fmin: 0.01 -freesurf: 1 -geoproj: 1 -intmem: 1 -ix_ts: 99 -ix_ys: 100 -ix_zs: 100 -iy_ts: 2 -iy_xs: 60 -iy_zs: 50 -iz_ts: 1 -iz_xs: 1 -iz_ys: 1 -lonlat_out: 1 -maxmem: 1500 -model_style: 1 -nseis: 1 -order: 4 -pertbfile: none.pertb -pmodfile: vp3dfile.p -pointmt: 0 -qbndmax: 100.0 -qpfile: qp.qp -qpfrac: 100 -qpqs_factor: 2.0 -qsfile: qs.qs -qsfrac: 50 -read_restart: 0 -report: 100 -restart_itinc: 20000 -scale: 1 -smodfile: vs3dfile.s -span: 1 -stype: 2tri-p10-h20 -swap_bytes: 0 -ts_inc: 1 -ts_start: 0 -ts_total: 218 -ts_xy: 1 -ts_xz: 0 -ts_yz: 0 -tzero: 0.6 -useqsqp: 0 -vmodel_swapb: 0 diff --git a/workflow/default_parameters/v18_5_4_4_1/root_defaults.yaml b/workflow/default_parameters/v18_5_4_4_1/root_defaults.yaml deleted file mode 100644 index e18aa82c..00000000 --- a/workflow/default_parameters/v18_5_4_4_1/root_defaults.yaml +++ /dev/null @@ -1,22 +0,0 @@ -hf: - version: 5.4.5.3 - dt: 0.005 - rvfac: 0.8 - sdrop: 50 - path_dur: 11 - kappa: 0.045 -bb: - fmin: 0.5 - fmidbot: 1.0 - no-lf-amp: True - site_response_dir: False -emod3d: - emod3d_version: 3.0.4 -ims: - extended_period: False - component: - - geom - pSA_periods: [0.02, 0.05, 0.1, 0.2, 0.3, 0.4, 0.5, 0.75, 1.0, 2.0, 3.0, 4.0, 5.0, 7.5, 10.0] -flo: 0.25 -dt: 0.02 -v_1d_mod: Cant1D_v3-midQ_OneRay.1d \ No newline at end of file diff --git a/workflow/default_parameters/v20_1_1_4/__init__.py b/workflow/default_parameters/v20_1_1_4/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/workflow/default_parameters/v20_1_1_4/emod3d_defaults.yaml b/workflow/default_parameters/v20_1_1_4/emod3d_defaults.yaml deleted file mode 100644 index 73c2bd10..00000000 --- a/workflow/default_parameters/v20_1_1_4/emod3d_defaults.yaml +++ /dev/null @@ -1,64 +0,0 @@ -all_in_one: 1 -bfilt: 4 -bforce: 0 -dampwidth: 0 -dblcpl: 0 -dmodfile: rho3dfile.d -dtts: 20 -dump_itinc: 4000 -dxout: 1 -dxts: 5 -dyout: 1 -dyts: 5 -dzout: 1 -dzts: 1 -elas_only: 0 -enable_output_dump: 1 -enable_restart: 1 -ffault: 2 -fhi: 0.0 -fmax: 25 -fmin: 0.01 -freesurf: 1 -geoproj: 1 -intmem: 1 -ix_ts: 99 -ix_ys: 100 -ix_zs: 100 -iy_ts: 2 -iy_xs: 60 -iy_zs: 50 -iz_ts: 1 -iz_xs: 1 -iz_ys: 1 -lonlat_out: 1 -maxmem: 1500 -model_style: 1 -nseis: 1 -order: 4 -pertbfile: none.pertb -pmodfile: vp3dfile.p -pointmt: 0 -qbndmax: 100.0 -qpfile: qp.qp -qpfrac: 100 -qpqs_factor: 2.0 -qsfile: qs.qs -qsfrac: 50 -read_restart: 0 -report: 100 -restart_itinc: 20000 -scale: 1 -smodfile: vs3dfile.s -span: 1 -stype: 2tri-p10-h20 -swap_bytes: 0 -ts_inc: 1 -ts_start: 0 -ts_total: 218 -ts_xy: 1 -ts_xz: 0 -ts_yz: 0 -tzero: 0.6 -useqsqp: 0 -vmodel_swapb: 0 diff --git a/workflow/default_parameters/v20_1_1_4/root_defaults.yaml b/workflow/default_parameters/v20_1_1_4/root_defaults.yaml deleted file mode 100644 index 9e707656..00000000 --- a/workflow/default_parameters/v20_1_1_4/root_defaults.yaml +++ /dev/null @@ -1,30 +0,0 @@ -hf: - version: 5.4.6.1 - dt: 0.005 - rvfac: 0.8 - sdrop: 50 - path_dur: 11 - kappa: 0.045 -bb: - fmin: 0.5 - fmidbot: 1.0 - no-lf-amp: True - site_response_dir: False -emod3d: - emod3d_version: 3.0.4 -ims: - extended_period: False - component: - - "000" - - "090" - - ver - - geom - - rotd50 - - rotd100_50 - pSA_periods: [0.02, 0.05, 0.1, 0.2, 0.3, 0.4, 0.5, 0.75, 1.0, 2.0, 3.0, 4.0, 5.0, 7.5, 10.0] -flo: 0.25 -dt: 0.02 -v_1d_mod: Cant1D_v3-midQ_OneRay.1d -advanced_IM: - models: [ATC_Steel_SCBF_3Story, SAC_Steel_MF_3Story] - match_obs_stations: null diff --git a/workflow/default_parameters/v20_1_2_4/__init__.py b/workflow/default_parameters/v20_1_2_4/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/workflow/default_parameters/v20_1_2_4/emod3d_defaults.yaml b/workflow/default_parameters/v20_1_2_4/emod3d_defaults.yaml deleted file mode 100644 index 73c2bd10..00000000 --- a/workflow/default_parameters/v20_1_2_4/emod3d_defaults.yaml +++ /dev/null @@ -1,64 +0,0 @@ -all_in_one: 1 -bfilt: 4 -bforce: 0 -dampwidth: 0 -dblcpl: 0 -dmodfile: rho3dfile.d -dtts: 20 -dump_itinc: 4000 -dxout: 1 -dxts: 5 -dyout: 1 -dyts: 5 -dzout: 1 -dzts: 1 -elas_only: 0 -enable_output_dump: 1 -enable_restart: 1 -ffault: 2 -fhi: 0.0 -fmax: 25 -fmin: 0.01 -freesurf: 1 -geoproj: 1 -intmem: 1 -ix_ts: 99 -ix_ys: 100 -ix_zs: 100 -iy_ts: 2 -iy_xs: 60 -iy_zs: 50 -iz_ts: 1 -iz_xs: 1 -iz_ys: 1 -lonlat_out: 1 -maxmem: 1500 -model_style: 1 -nseis: 1 -order: 4 -pertbfile: none.pertb -pmodfile: vp3dfile.p -pointmt: 0 -qbndmax: 100.0 -qpfile: qp.qp -qpfrac: 100 -qpqs_factor: 2.0 -qsfile: qs.qs -qsfrac: 50 -read_restart: 0 -report: 100 -restart_itinc: 20000 -scale: 1 -smodfile: vs3dfile.s -span: 1 -stype: 2tri-p10-h20 -swap_bytes: 0 -ts_inc: 1 -ts_start: 0 -ts_total: 218 -ts_xy: 1 -ts_xz: 0 -ts_yz: 0 -tzero: 0.6 -useqsqp: 0 -vmodel_swapb: 0 diff --git a/workflow/default_parameters/v20_1_2_4/root_defaults.yaml b/workflow/default_parameters/v20_1_2_4/root_defaults.yaml deleted file mode 100644 index a986b972..00000000 --- a/workflow/default_parameters/v20_1_2_4/root_defaults.yaml +++ /dev/null @@ -1,30 +0,0 @@ -hf: - version: 5.4.6.2 - dt: 0.005 - rvfac: 0.8 - sdrop: 50 - path_dur: 11 - kappa: 0.045 -bb: - fmin: 0.5 - fmidbot: 1.0 - no-lf-amp: True - site_response_dir: False -emod3d: - emod3d_version: 3.0.4 -ims: - extended_period: False - component: - - "000" - - "090" - - ver - - geom - - rotd50 - - rotd100_50 - pSA_periods: [0.02, 0.05, 0.1, 0.2, 0.3, 0.4, 0.5, 0.75, 1.0, 2.0, 3.0, 4.0, 5.0, 7.5, 10.0] -flo: 0.25 -dt: 0.02 -v_1d_mod: Cant1D_v3-midQ_OneRay.1d -advanced_IM: - models: [ATC_Steel_SCBF_3Story, SAC_Steel_MF_3Story] - match_obs_stations: null diff --git a/workflow/default_parameters/v20_4_1_1/__init__.py b/workflow/default_parameters/v20_4_1_1/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/workflow/default_parameters/v20_4_1_1/emod3d_defaults.yaml b/workflow/default_parameters/v20_4_1_1/emod3d_defaults.yaml deleted file mode 100644 index e3565083..00000000 --- a/workflow/default_parameters/v20_4_1_1/emod3d_defaults.yaml +++ /dev/null @@ -1,65 +0,0 @@ -all_in_one: 1 -bfilt: 4 -bforce: 0 -dampwidth: 0 -dblcpl: 0 -dmodfile: rho3dfile.d -dtts: 20 -dump_itinc: 4000 -dxout: 1 -dxts: 5 -dyout: 1 -dyts: 5 -dzout: 1 -dzts: 1 -elas_only: 0 -enable_output_dump: 1 -enable_restart: 1 -ffault: 2 -fhi: 0.0 -fmax: 25 -fmin: 0.01 -freesurf: 1 -geoproj: 1 -intmem: 1 -ix_ts: 99 -ix_ys: 100 -ix_zs: 100 -iy_ts: 2 -iy_xs: 60 -iy_zs: 50 -iz_ts: 1 -iz_xs: 1 -iz_ys: 1 -lonlat_out: 1 -maxmem: 1500 -model_style: 1 -nseis: 1 -order: 4 -pmodfile: vp3dfile.p -pointmt: 0 -qbndmax: 100.0 -qpfrac: 100 -qpqs_factor: 2.0 -qsfrac: 50 -read_restart: 0 -report: 100 -restart_itinc: 20000 -scale: 1 -smodfile: vs3dfile.s -span: 1 -stype: 2tri-p10-h20 -swap_bytes: 0 -ts_inc: 1 -ts_start: 0 -ts_total: 218 -ts_xy: 1 -ts_xz: 0 -ts_yz: 0 -tzero: 0.6 -vmodel_swapb: 0 -xseis: 0 -yseis: 0 -zseis: 0 -pertbfile: test - diff --git a/workflow/default_parameters/v20_4_1_1/root_defaults.yaml b/workflow/default_parameters/v20_4_1_1/root_defaults.yaml deleted file mode 100644 index b399d478..00000000 --- a/workflow/default_parameters/v20_4_1_1/root_defaults.yaml +++ /dev/null @@ -1,38 +0,0 @@ -hf: - version: 5.4.5.3 - dt: 0.005 - rvfac: 0.8 - sdrop: 50 - path_dur: 11 - kappa: 0.045 - rayset: 1 -bb: - fmin: 0.5 - fmidbot: 1.0 - no-lf-amp: True - dt: 0.005 - site_response_dir: False -emod3d: - emod3d_version: 3.0.8 -ims: - extended_period: False - component: - - "000" - - "090" - - ver - - geom - - rotd50 - - rotd100_50 - pSA_periods: [0.01, 0.02, 0.03, 0.04, 0.05, 0.075, 0.1, 0.12, 0.15, 0.17, 0.2, 0.25, 0.3, 0.4, 0.5, 0.6, 0.7, 0.75, 0.8, 0.9, 1.0, 1.25, 1.5, 2.0, 2.5, 3.0, 4.0, 5.0, 6.0, 7.5, 10.0] -flo: 1.0 -dt: 0.005 -VM: - hh: 0.1 - VM_Version: 2.06 - VM_Topo: SQUASHED_TAPERED - PGV_Threshold: -1 - Ds_Multiplier: 1.2 -v_1d_mod: Cant1D_v3-midQ_OneRay.1d -advanced_IM: - models: [ATC_Steel_SCBF_3Story, SAC_Steel_MF_3Story] - match_obs_stations: null diff --git a/workflow/default_parameters/v20_4_1_2/__init__.py b/workflow/default_parameters/v20_4_1_2/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/workflow/default_parameters/v20_4_1_2/emod3d_defaults.yaml b/workflow/default_parameters/v20_4_1_2/emod3d_defaults.yaml deleted file mode 100644 index 73c2bd10..00000000 --- a/workflow/default_parameters/v20_4_1_2/emod3d_defaults.yaml +++ /dev/null @@ -1,64 +0,0 @@ -all_in_one: 1 -bfilt: 4 -bforce: 0 -dampwidth: 0 -dblcpl: 0 -dmodfile: rho3dfile.d -dtts: 20 -dump_itinc: 4000 -dxout: 1 -dxts: 5 -dyout: 1 -dyts: 5 -dzout: 1 -dzts: 1 -elas_only: 0 -enable_output_dump: 1 -enable_restart: 1 -ffault: 2 -fhi: 0.0 -fmax: 25 -fmin: 0.01 -freesurf: 1 -geoproj: 1 -intmem: 1 -ix_ts: 99 -ix_ys: 100 -ix_zs: 100 -iy_ts: 2 -iy_xs: 60 -iy_zs: 50 -iz_ts: 1 -iz_xs: 1 -iz_ys: 1 -lonlat_out: 1 -maxmem: 1500 -model_style: 1 -nseis: 1 -order: 4 -pertbfile: none.pertb -pmodfile: vp3dfile.p -pointmt: 0 -qbndmax: 100.0 -qpfile: qp.qp -qpfrac: 100 -qpqs_factor: 2.0 -qsfile: qs.qs -qsfrac: 50 -read_restart: 0 -report: 100 -restart_itinc: 20000 -scale: 1 -smodfile: vs3dfile.s -span: 1 -stype: 2tri-p10-h20 -swap_bytes: 0 -ts_inc: 1 -ts_start: 0 -ts_total: 218 -ts_xy: 1 -ts_xz: 0 -ts_yz: 0 -tzero: 0.6 -useqsqp: 0 -vmodel_swapb: 0 diff --git a/workflow/default_parameters/v20_4_1_2/root_defaults.yaml b/workflow/default_parameters/v20_4_1_2/root_defaults.yaml deleted file mode 100644 index a63abeb1..00000000 --- a/workflow/default_parameters/v20_4_1_2/root_defaults.yaml +++ /dev/null @@ -1,38 +0,0 @@ -hf: - version: 5.4.5.3 - dt: 0.01 - rvfac: 0.8 - sdrop: 50 - path_dur: 11 - kappa: 0.045 - rayset: 1 -bb: - fmin: 0.25 - fmidbot: 0.5 - no-lf-amp: True - dt: 0.005 - site_response_dir: False -emod3d: - emod3d_version: 3.0.8 -ims: - extended_period: False - component: - - "000" - - "090" - - ver - - geom - - rotd50 - - rotd100_50 - pSA_periods: [0.01, 0.02, 0.03, 0.04, 0.05, 0.075, 0.1, 0.12, 0.15, 0.17, 0.2, 0.25, 0.3, 0.4, 0.5, 0.6, 0.7, 0.75, 0.8, 0.9, 1.0, 1.25, 1.5, 2.0, 2.5, 3.0, 4.0, 5.0, 6.0, 7.5, 10.0] -VM: - hh: 0.2 - VM_Version: 2.06 - VM_Topo: SQUASHED_TAPERED - PGV_Threshold: -1 - Ds_Multiplier: 1.2 -flo: 0.5 -dt: 0.01 -v_1d_mod: Cant1D_v3-midQ_OneRay.1d -advanced_IM: - models: [ATC_Steel_SCBF_3Story, SAC_Steel_MF_3Story] - match_obs_stations: null diff --git a/workflow/default_parameters/v20_4_1_4/__init__.py b/workflow/default_parameters/v20_4_1_4/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/workflow/default_parameters/v20_4_1_4/emod3d_defaults.yaml b/workflow/default_parameters/v20_4_1_4/emod3d_defaults.yaml deleted file mode 100644 index 73c2bd10..00000000 --- a/workflow/default_parameters/v20_4_1_4/emod3d_defaults.yaml +++ /dev/null @@ -1,64 +0,0 @@ -all_in_one: 1 -bfilt: 4 -bforce: 0 -dampwidth: 0 -dblcpl: 0 -dmodfile: rho3dfile.d -dtts: 20 -dump_itinc: 4000 -dxout: 1 -dxts: 5 -dyout: 1 -dyts: 5 -dzout: 1 -dzts: 1 -elas_only: 0 -enable_output_dump: 1 -enable_restart: 1 -ffault: 2 -fhi: 0.0 -fmax: 25 -fmin: 0.01 -freesurf: 1 -geoproj: 1 -intmem: 1 -ix_ts: 99 -ix_ys: 100 -ix_zs: 100 -iy_ts: 2 -iy_xs: 60 -iy_zs: 50 -iz_ts: 1 -iz_xs: 1 -iz_ys: 1 -lonlat_out: 1 -maxmem: 1500 -model_style: 1 -nseis: 1 -order: 4 -pertbfile: none.pertb -pmodfile: vp3dfile.p -pointmt: 0 -qbndmax: 100.0 -qpfile: qp.qp -qpfrac: 100 -qpqs_factor: 2.0 -qsfile: qs.qs -qsfrac: 50 -read_restart: 0 -report: 100 -restart_itinc: 20000 -scale: 1 -smodfile: vs3dfile.s -span: 1 -stype: 2tri-p10-h20 -swap_bytes: 0 -ts_inc: 1 -ts_start: 0 -ts_total: 218 -ts_xy: 1 -ts_xz: 0 -ts_yz: 0 -tzero: 0.6 -useqsqp: 0 -vmodel_swapb: 0 diff --git a/workflow/default_parameters/v20_4_1_4/root_defaults.yaml b/workflow/default_parameters/v20_4_1_4/root_defaults.yaml deleted file mode 100644 index bfd16f6d..00000000 --- a/workflow/default_parameters/v20_4_1_4/root_defaults.yaml +++ /dev/null @@ -1,38 +0,0 @@ -hf: - version: 5.4.5.3 - dt: 0.01 - rvfac: 0.8 - sdrop: 50 - path_dur: 11 - kappa: 0.045 - rayset: 1 -bb: - fmin: 0.2 - fmidbot: 0.25 - no-lf-amp: True - dt: 0.005 - site_response_dir: False -emod3d: - emod3d_version: 3.0.8 -ims: - extended_period: False - component: - - "000" - - "090" - - ver - - geom - - rotd50 - - rotd100_50 - pSA_periods: [0.01, 0.02, 0.03, 0.04, 0.05, 0.075, 0.1, 0.12, 0.15, 0.17, 0.2, 0.25, 0.3, 0.4, 0.5, 0.6, 0.7, 0.75, 0.8, 0.9, 1.0, 1.25, 1.5, 2.0, 2.5, 3.0, 4.0, 5.0, 6.0, 7.5, 10.0] -flo: 0.25 -dt: 0.02 -VM: - hh: 0.4 - VM_Version: 2.06 - VM_Topo: SQUASHED_TAPERED - PGV_Threshold: -1 - Ds_Multiplier: 1.2 -v_1d_mod: Cant1D_v3-midQ_OneRay.1d -advanced_IM: - models: [ATC_Steel_SCBF_3Story, SAC_Steel_MF_3Story] - match_obs_stations: null diff --git a/workflow/default_parameters/v22_2_2_05/__init__.py b/workflow/default_parameters/v22_2_2_05/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/workflow/default_parameters/v22_2_2_05/emod3d_defaults.yaml b/workflow/default_parameters/v22_2_2_05/emod3d_defaults.yaml deleted file mode 100644 index fc569fe5..00000000 --- a/workflow/default_parameters/v22_2_2_05/emod3d_defaults.yaml +++ /dev/null @@ -1,63 +0,0 @@ -all_in_one: 1 -bfilt: 4 -bforce: 0 -dampwidth: 0 -dblcpl: 0 -dmodfile: rho3dfile.d -dtts: 20 -dump_itinc: 4000 -dxout: 1 -dxts: 5 -dyout: 1 -dyts: 5 -dzout: 1 -dzts: 1 -elas_only: 0 -enable_output_dump: 1 -enable_restart: 1 -ffault: 2 -fhi: 0.0 -fmax: 25 -fmin: 0.01 -freesurf: 1 -geoproj: 1 -intmem: 1 -ix_ts: 99 -ix_ys: 100 -ix_zs: 100 -iy_ts: 2 -iy_xs: 60 -iy_zs: 50 -iz_ts: 1 -iz_xs: 1 -iz_ys: 1 -lonlat_out: 1 -maxmem: 1500 -model_style: 1 -nseis: 1 -order: 4 -pmodfile: vp3dfile.p -pointmt: 0 -qbndmax: 100.0 -qpfrac: 100 -qpqs_factor: 2.0 -qsfrac: 50 -read_restart: 0 -report: 100 -restart_itinc: 20000 -scale: 1 -smodfile: vs3dfile.s -span: 1 -stype: 2tri-p10-h20 -swap_bytes: 0 -ts_inc: 1 -ts_start: 0 -ts_total: 218 -ts_xy: 1 -ts_xz: 0 -ts_yz: 0 -tzero: 0.6 -vmodel_swapb: 0 -xseis: 0 -yseis: 0 -zseis: 0 diff --git a/workflow/default_parameters/v22_2_2_05/readme b/workflow/default_parameters/v22_2_2_05/readme deleted file mode 100644 index dac6d6c9..00000000 --- a/workflow/default_parameters/v22_2_2_05/readme +++ /dev/null @@ -1 +0,0 @@ -hb_high version 6.0.3.2 with lf amp. diff --git a/workflow/default_parameters/v22_2_2_05/root_defaults.yaml b/workflow/default_parameters/v22_2_2_05/root_defaults.yaml deleted file mode 100644 index 2e411d9d..00000000 --- a/workflow/default_parameters/v22_2_2_05/root_defaults.yaml +++ /dev/null @@ -1,71 +0,0 @@ -hf: - version: 6.0.3.9 - dt: 0.0025 - rvfac: 0.8 - sdrop: 50 - path_dur: 11 - kappa: 0.045 - rvfac_shal: 0.6 - rvfac_deep: 0.6 - czero: 2.0 -bb: - fmin: 0.2 - fmidbot: 0.5 -emod3d: - emod3d_version: 3.0.8 -flo: 2.0 -dt: 0.0025 -v_1d_mod: /nesi/project/nesi00213/VelocityModel/Mod-1D/Cant1D_v3-midQ_OneRay.1d -VM: - hh: 0.05 - VM_Version: 2.06 - VM_Topo: SQUASHED_TAPERED - PGV_Threshold: -1 - Ds_Multiplier: 1.2 -v_1d_mod: Cant1D_v3-midQ_OneRay.1d -advanced_IM: - models: - - ATC_Steel_SCBF_3Story - - SAC_Steel_MF_3Story - match_obs_stations: null -ims: - extended_period: false - component: - - '000' - - 090 - - ver - - geom - - rotd50 - - rotd100_50 - pSA_periods: - - 0.01 - - 0.02 - - 0.03 - - 0.04 - - 0.05 - - 0.075 - - 0.1 - - 0.12 - - 0.15 - - 0.17 - - 0.2 - - 0.25 - - 0.3 - - 0.4 - - 0.5 - - 0.6 - - 0.7 - - 0.75 - - 0.8 - - 0.9 - - 1.0 - - 1.25 - - 1.5 - - 2.0 - - 2.5 - - 3.0 - - 4.0 - - 5.0 - - 6.0 - - 7.5 - - 10.0 diff --git a/workflow/default_parameters/v22_2_2_1/__init__.py b/workflow/default_parameters/v22_2_2_1/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/workflow/default_parameters/v22_2_2_1/emod3d_defaults.yaml b/workflow/default_parameters/v22_2_2_1/emod3d_defaults.yaml deleted file mode 100644 index e3565083..00000000 --- a/workflow/default_parameters/v22_2_2_1/emod3d_defaults.yaml +++ /dev/null @@ -1,65 +0,0 @@ -all_in_one: 1 -bfilt: 4 -bforce: 0 -dampwidth: 0 -dblcpl: 0 -dmodfile: rho3dfile.d -dtts: 20 -dump_itinc: 4000 -dxout: 1 -dxts: 5 -dyout: 1 -dyts: 5 -dzout: 1 -dzts: 1 -elas_only: 0 -enable_output_dump: 1 -enable_restart: 1 -ffault: 2 -fhi: 0.0 -fmax: 25 -fmin: 0.01 -freesurf: 1 -geoproj: 1 -intmem: 1 -ix_ts: 99 -ix_ys: 100 -ix_zs: 100 -iy_ts: 2 -iy_xs: 60 -iy_zs: 50 -iz_ts: 1 -iz_xs: 1 -iz_ys: 1 -lonlat_out: 1 -maxmem: 1500 -model_style: 1 -nseis: 1 -order: 4 -pmodfile: vp3dfile.p -pointmt: 0 -qbndmax: 100.0 -qpfrac: 100 -qpqs_factor: 2.0 -qsfrac: 50 -read_restart: 0 -report: 100 -restart_itinc: 20000 -scale: 1 -smodfile: vs3dfile.s -span: 1 -stype: 2tri-p10-h20 -swap_bytes: 0 -ts_inc: 1 -ts_start: 0 -ts_total: 218 -ts_xy: 1 -ts_xz: 0 -ts_yz: 0 -tzero: 0.6 -vmodel_swapb: 0 -xseis: 0 -yseis: 0 -zseis: 0 -pertbfile: test - diff --git a/workflow/default_parameters/v22_2_2_1/root_defaults.yaml b/workflow/default_parameters/v22_2_2_1/root_defaults.yaml deleted file mode 100644 index 392b30ce..00000000 --- a/workflow/default_parameters/v22_2_2_1/root_defaults.yaml +++ /dev/null @@ -1,38 +0,0 @@ -hf: - version: 6.0.3.2 - dt: 0.005 - rvfac: 0.8 - sdrop: 50 - path_dur: 11 - kappa: 0.045 - rvfac_shal: 0.6 - rvfac_deep: 0.6 - czero: 2.0 - rayset: 1 -bb: - fmin: 0.2 - fmidbot: 0.5 -emod3d: - emod3d_version: 3.0.8 -ims: - extended_period: False - component: - - "000" - - "090" - - ver - - geom - - rotd50 - - rotd100_50 - pSA_periods: [0.01, 0.02, 0.03, 0.04, 0.05, 0.075, 0.1, 0.12, 0.15, 0.17, 0.2, 0.25, 0.3, 0.4, 0.5, 0.6, 0.7, 0.75, 0.8, 0.9, 1.0, 1.25, 1.5, 2.0, 2.5, 3.0, 4.0, 5.0, 6.0, 7.5, 10.0] -flo: 1.0 -dt: 0.005 -VM: - hh: 0.1 - VM_Version: 2.06 - VM_Topo: SQUASHED_TAPERED - PGV_Threshold: -1 - Ds_Multiplier: 1.2 -v_1d_mod: Cant1D_v3-midQ_OneRay.1d -advanced_IM: - models: [ATC_Steel_SCBF_3Story, SAC_Steel_MF_3Story] - match_obs_stations: null diff --git a/workflow/default_parameters/v24_2_2_1/__init__.py b/workflow/default_parameters/v24_2_2_1/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/workflow/default_parameters/v24_2_2_1/defaults.yaml b/workflow/default_parameters/v24_2_2_1/defaults.yaml deleted file mode 100644 index 536eb970..00000000 --- a/workflow/default_parameters/v24_2_2_1/defaults.yaml +++ /dev/null @@ -1,485 +0,0 @@ -emod3d: - all_in_one: 1 - bfilt: 4 - bforce: 0 - dampwidth: 0 - dblcpl: 0 - dmodfile: rho3dfile.d - dtts: 20 - dump_itinc: 4000 - dxout: 1 - dxts: 5 - dyout: 1 - dyts: 5 - dzout: 1 - dzts: 1 - elas_only: 0 - enable_output_dump: 1 - enable_restart: 1 - ffault: 2 - fhi: 0.0 - fmax: 25.0 - fmin: 0.01 - freesurf: 1 - geoproj: 1 - intmem: 1 - ix_ts: 99 - ix_ys: 100 - ix_zs: 100 - iy_ts: 2 - iy_xs: 60 - iy_zs: 50 - iz_ts: 1 - iz_xs: 1 - iz_ys: 1 - lonlat_out: 1 - maxmem: 1500 - model_style: 1 - nseis: 1 - order: 4 - pmodfile: vp3dfile.p - pointmt: 0 - qbndmax: 100.0 - qpfrac: 100.0 - qpqs_factor: 2.0 - qsfrac: 50.0 - read_restart: 0 - report: 100 - restart_itinc: 20000 - scale: 1 - smodfile: vs3dfile.s - span: 1 - stype: 2tri-p10-h20 - swap_bytes: 0 - ts_inc: 1 - ts_start: 0 - ts_total: 218 - ts_xy: 1 - ts_xz: 0 - ts_yz: 0 - tzero: 0.6 - vmodel_swapb: 0 - xseis: 0 - yseis: 0 - zseis: 0 - pertbfile: test -hf: - nbu: 4 - ift: 0 - flo: 0.02 - fhi: 19.9 - nl_skip: -99 - vp_sig: 0.0 - vsh_sig: 0.0 - rho_sig: 0.0 - qs_sig: 0.0 - ic_flag: true - velocity_name: "-1" - dt: 0.005 - t_sec: 0.0 - sdrop: 50.0 - rayset: [1, 2] - no_siteamp: false - fmax: 10.0 - kappa: 0.045 - qfexp: 0.6 - rvfac: 0.8 - rvfac_shal: 0.7 - rvfac_deep: 0.7 - czero: 2.1 - calpha: -99.0 - mom: null - rupv: null - site_specific: false - vs_moho: 999.9 - fa_sig1: 0.0 - fa_sig2: 0.0 - rv_sig1: 0.1 - path_dur: 1 - dpath_pert: 0.0 - stress_parameter_adjustment_tect_type: 1 - stress_parameter_adjustment_target_magnitude: null - stress_parameter_adjustment_fault_area: null - stoch_dx: 2.0 - stoch_dy: 2.0 -srf: - resolution: 0.1 - genslip_dt: 0.05 - genslip_version: 5.4.2 -velocity_model: - min_vs: 0.5 - resolution: 0.1 - ds_multiplier: 1.2 - dt: 0.005 - version: "2.06" - topo_type: "SQUASHED_TAPERED" - vs30: 500.0 - s_wave_velocity: 3500.0 - rrup_interpolants: - [ - [3.5, 46.05329066], - [3.86734694, 52.80886205], - [4.14285714, 61.6089979], - [4.41836735, 74.07002433], - [4.69387755, 90.86166722], - [5.24489796, 124.1668061], - [5.79591837, 143.3055832], - [6.34693878, 159.56440721], - [6.89795918, 183.26871665], - [7.17346939, 203.22307576], - [7.44897959, 230.24780269], - [8., 285.73404835], - ] -velocity_model_1d: - model: - - thickness: 0.0500 - Vp: 1.8000 - Vs: 0.3800 - rho: 1.8100 - Qp: 38.00 - Qs: 19.00 - - thickness: 0.0500 - Vp: 1.8000 - Vs: 0.4800 - rho: 1.8100 - Qp: 48.00 - Qs: 24.00 - - thickness: 0.0500 - Vp: 1.8000 - Vs: 0.5800 - rho: 1.8100 - Qp: 58.00 - Qs: 29.00 - - thickness: 0.0500 - Vp: 1.8000 - Vs: 0.6800 - rho: 1.8100 - Qp: 68.00 - Qs: 34.00 - - thickness: 0.1000 - Vp: 1.8000 - Vs: 0.7500 - rho: 1.8100 - Qp: 75.00 - Qs: 37.50 - - thickness: 0.1000 - Vp: 1.8000 - Vs: 0.8300 - rho: 1.8100 - Qp: 83.00 - Qs: 41.50 - - thickness: 0.2000 - Vp: 1.9000 - Vs: 0.9000 - rho: 1.8600 - Qp: 90.00 - Qs: 45.00 - - thickness: 0.2000 - Vp: 2.0300 - Vs: 1.0000 - rho: 1.9200 - Qp: 100.00 - Qs: 50.00 - - thickness: 0.2000 - Vp: 2.1400 - Vs: 1.0500 - rho: 1.9700 - Qp: 105.00 - Qs: 52.50 - - thickness: 0.2000 - Vp: 2.2000 - Vs: 1.1000 - rho: 1.9900 - Qp: 110.00 - Qs: 55.00 - - thickness: 0.2000 - Vp: 2.4000 - Vs: 1.1500 - rho: 2.0600 - Qp: 115.00 - Qs: 57.50 - - thickness: 0.2000 - Vp: 2.7000 - Vs: 1.2000 - rho: 2.1500 - Qp: 120.00 - Qs: 60.00 - - thickness: 0.2000 - Vp: 3.0000 - Vs: 1.4300 - rho: 2.2200 - Qp: 143.00 - Qs: 71.50 - - thickness: 0.2000 - Vp: 3.2700 - Vs: 1.6400 - rho: 2.2800 - Qp: 164.00 - Qs: 82.00 - - thickness: 0.2000 - Vp: 3.5300 - Vs: 1.8600 - rho: 2.3200 - Qp: 186.00 - Qs: 93.00 - - thickness: 0.2000 - Vp: 3.8000 - Vs: 2.0700 - rho: 2.3600 - Qp: 207.00 - Qs: 103.50 - - thickness: 0.2000 - Vp: 4.0700 - Vs: 2.2800 - rho: 2.4000 - Qp: 228.00 - Qs: 114.00 - - thickness: 0.2000 - Vp: 4.3300 - Vs: 2.4900 - rho: 2.4400 - Qp: 249.00 - Qs: 124.50 - - thickness: 0.2000 - Vp: 4.6000 - Vs: 2.7000 - rho: 2.4800 - Qp: 270.00 - Qs: 135.00 - - thickness: 0.2000 - Vp: 4.7100 - Vs: 2.7700 - rho: 2.4900 - Qp: 277.00 - Qs: 138.50 - - thickness: 0.2000 - Vp: 4.8200 - Vs: 2.8400 - rho: 2.5100 - Qp: 284.00 - Qs: 142.00 - - thickness: 0.2000 - Vp: 4.9300 - Vs: 2.9100 - rho: 2.5200 - Qp: 291.00 - Qs: 145.50 - - thickness: 0.2000 - Vp: 5.0400 - Vs: 2.9800 - rho: 2.5400 - Qp: 298.00 - Qs: 149.00 - - thickness: 0.2000 - Vp: 5.1500 - Vs: 3.0500 - rho: 2.5600 - Qp: 305.00 - Qs: 152.50 - - thickness: 0.2000 - Vp: 5.2600 - Vs: 3.1200 - rho: 2.5800 - Qp: 312.00 - Qs: 156.00 - - thickness: 0.2000 - Vp: 5.3700 - Vs: 3.1900 - rho: 2.6000 - Qp: 319.00 - Qs: 159.50 - - thickness: 0.2000 - Vp: 5.4800 - Vs: 3.2600 - rho: 2.6100 - Qp: 326.00 - Qs: 163.00 - - thickness: 0.2000 - Vp: 5.5900 - Vs: 3.3300 - rho: 2.6300 - Qp: 333.00 - Qs: 166.50 - - thickness: 0.2000 - Vp: 5.7000 - Vs: 3.4000 - rho: 2.6600 - Qp: 340.00 - Qs: 170.00 - - thickness: 3.0000 - Vp: 6.0000 - Vs: 3.6000 - rho: 2.7200 - Qp: 360.00 - Qs: 180.00 - - thickness: 4.0000 - Vp: 6.0000 - Vs: 3.6000 - rho: 2.7200 - Qp: 360.00 - Qs: 180.00 - - thickness: 15.0000 - Vp: 6.5000 - Vs: 3.7000 - rho: 2.8300 - Qp: 370.00 - Qs: 185.00 - - thickness: 12.0000 - Vp: 7.5000 - Vs: 4.3000 - rho: 3.1200 - Qp: 430.00 - Qs: 215.00 - - thickness: 999.0000 - Vp: 8.1000 - Vs: 4.6000 - rho: 3.3300 - Qp: 460.00 - Qs: 230.00 -bb: - flo: 0.5 - dt: 0.005 - fmidbot: 0.5 - fmin: 0.25 - site_amp_version: "2014" -im: - ims: ["PGA", "PGV", "CAV", "AI", "Ds575", "Ds595", "MMI", "pSA"] - components: ["000", "090", "ver", "geom", "rotd50", "rotd100"] - units: "g" - valid_periods: - [ - 0.01, - 0.02, - 0.03, - 0.04, - 0.05, - 0.075, - 0.1, - 0.12, - 0.15, - 0.17, - 0.2, - 0.25, - 0.3, - 0.4, - 0.5, - 0.6, - 0.7, - 0.75, - 0.8, - 0.9, - 1.0, - 1.25, - 1.5, - 2.0, - 2.5, - 3.0, - 4.0, - 5.0, - 6.0, - 7.5, - 10.0, - ] - fas_frequencies: - [ - 0.1, - 0.10722672, - 0.1149757, - 0.12328467, - 0.13219411, - 0.14174742, - 0.15199111, - 0.16297508, - 0.17475284, - 0.18738174, - 0.2009233, - 0.21544347, - 0.23101297, - 0.24770764, - 0.26560878, - 0.28480359, - 0.30538555, - 0.32745492, - 0.35111917, - 0.37649358, - 0.40370173, - 0.43287613, - 0.46415888, - 0.49770236, - 0.53366992, - 0.57223677, - 0.61359073, - 0.65793322, - 0.70548023, - 0.75646333, - 0.81113083, - 0.869749, - 0.93260335, - 1.0, - 1.07226722, - 1.149757, - 1.23284674, - 1.32194115, - 1.41747416, - 1.51991108, - 1.62975083, - 1.7475284, - 1.87381742, - 2.009233, - 2.15443469, - 2.3101297, - 2.47707636, - 2.65608778, - 2.84803587, - 3.05385551, - 3.27454916, - 3.51119173, - 3.76493581, - 4.03701726, - 4.32876128, - 4.64158883, - 4.97702356, - 5.33669923, - 5.72236766, - 6.13590727, - 6.57933225, - 7.05480231, - 7.56463328, - 8.11130831, - 8.69749003, - 9.32603347, - 10.0, - 10.72267222, - 11.49756995, - 12.32846739, - 13.21941148, - 14.17474163, - 15.19911083, - 16.29750835, - 17.475284, - 18.73817423, - 20.09233003, - 21.5443469, - 23.101297, - 24.77076356, - 26.56087783, - 28.48035868, - 30.53855509, - 32.74549163, - 35.11191734, - 37.64935807, - 40.37017259, - 43.28761281, - 46.41588834, - 49.77023564, - 53.36699231, - 57.22367659, - 61.35907273, - 65.79332247, - 70.54802311, - 75.64633276, - 81.11308308, - 86.97490026, - 93.26033469, - 100.0, - ] diff --git a/workflow/default_parameters/v24_2_2_1/root_defaults.yaml b/workflow/default_parameters/v24_2_2_1/root_defaults.yaml deleted file mode 100644 index 392b30ce..00000000 --- a/workflow/default_parameters/v24_2_2_1/root_defaults.yaml +++ /dev/null @@ -1,38 +0,0 @@ -hf: - version: 6.0.3.2 - dt: 0.005 - rvfac: 0.8 - sdrop: 50 - path_dur: 11 - kappa: 0.045 - rvfac_shal: 0.6 - rvfac_deep: 0.6 - czero: 2.0 - rayset: 1 -bb: - fmin: 0.2 - fmidbot: 0.5 -emod3d: - emod3d_version: 3.0.8 -ims: - extended_period: False - component: - - "000" - - "090" - - ver - - geom - - rotd50 - - rotd100_50 - pSA_periods: [0.01, 0.02, 0.03, 0.04, 0.05, 0.075, 0.1, 0.12, 0.15, 0.17, 0.2, 0.25, 0.3, 0.4, 0.5, 0.6, 0.7, 0.75, 0.8, 0.9, 1.0, 1.25, 1.5, 2.0, 2.5, 3.0, 4.0, 5.0, 6.0, 7.5, 10.0] -flo: 1.0 -dt: 0.005 -VM: - hh: 0.1 - VM_Version: 2.06 - VM_Topo: SQUASHED_TAPERED - PGV_Threshold: -1 - Ds_Multiplier: 1.2 -v_1d_mod: Cant1D_v3-midQ_OneRay.1d -advanced_IM: - models: [ATC_Steel_SCBF_3Story, SAC_Steel_MF_3Story] - match_obs_stations: null diff --git a/workflow/default_parameters/v24_2_2_2/__init__.py b/workflow/default_parameters/v24_2_2_2/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/workflow/default_parameters/v24_2_2_2/defaults.yaml b/workflow/default_parameters/v24_2_2_2/defaults.yaml deleted file mode 100644 index fe803c55..00000000 --- a/workflow/default_parameters/v24_2_2_2/defaults.yaml +++ /dev/null @@ -1,486 +0,0 @@ -emod3d: - all_in_one: 1 - bfilt: 4 - bforce: 0 - dampwidth: 0 - dblcpl: 0 - dmodfile: rho3dfile.d - dtts: 20 - dump_itinc: 4000 - dxout: 1 - dxts: 5 - dyout: 1 - dyts: 5 - dzout: 1 - dzts: 1 - elas_only: 0 - enable_output_dump: 1 - enable_restart: 1 - ffault: 2 - fhi: 0.0 - fmax: 25.0 - fmin: 0.01 - freesurf: 1 - geoproj: 1 - intmem: 1 - ix_ts: 99 - ix_ys: 100 - ix_zs: 100 - iy_ts: 2 - iy_xs: 60 - iy_zs: 50 - iz_ts: 1 - iz_xs: 1 - iz_ys: 1 - lonlat_out: 1 - maxmem: 1500 - model_style: 1 - nseis: 1 - order: 4 - pmodfile: vp3dfile.p - pointmt: 0 - qbndmax: 100.0 - qpfrac: 100.0 - qpqs_factor: 2.0 - qsfrac: 50.0 - read_restart: 0 - report: 100 - restart_itinc: 20000 - scale: 1 - smodfile: vs3dfile.s - span: 1 - stype: 2tri-p10-h20 - swap_bytes: 0 - ts_inc: 1 - ts_start: 0 - ts_total: 218 - ts_xy: 1 - ts_xz: 0 - ts_yz: 0 - tzero: 0.6 - vmodel_swapb: 0 - xseis: 0 - yseis: 0 - zseis: 0 - pertbfile: test -hf: - nbu: 4 - ift: 0 - flo: 0.02 - fhi: 19.9 - nl_skip: -99 - vp_sig: 0.0 - vsh_sig: 0.0 - rho_sig: 0.0 - qs_sig: 0.0 - ic_flag: true - velocity_name: "-1" - dt: 0.01 - t_sec: 0.0 - sdrop: 50.0 - rayset: [1, 2] - no_siteamp: false - fmax: 10.0 - kappa: 0.045 - qfexp: 0.6 - rvfac: 0.8 - rvfac_shal: 0.7 - rvfac_deep: 0.7 - czero: 2.1 - calpha: -99.0 - mom: null - rupv: null - site_specific: false - vs_moho: 999.9 - fa_sig1: 0.0 - fa_sig2: 0.0 - rv_sig1: 0.1 - path_dur: 1 - dpath_pert: 0.0 - stress_parameter_adjustment_tect_type: 1 - stress_parameter_adjustment_target_magnitude: null - stress_parameter_adjustment_fault_area: null - stoch_dx: 2.0 - stoch_dy: 2.0 -srf: - resolution: 0.2 - genslip_dt: 0.05 - genslip_version: 5.4.2 -velocity_model: - min_vs: 0.5 - resolution: 0.2 - ds_multiplier: 1.2 - dt: 0.01 - version: "2.06" - topo_type: "SQUASHED_TAPERED" - vs30: 500.0 - s_wave_velocity: 3500.0 - rrup_interpolants: - [ - [3.5, 46.05329066], - [3.86734694, 52.80886205], - [4.14285714, 61.6089979], - [4.41836735, 74.07002433], - [4.69387755, 90.86166722], - [5.24489796, 124.1668061], - [5.79591837, 143.3055832], - [6.34693878, 159.56440721], - [6.89795918, 183.26871665], - [7.17346939, 203.22307576], - [7.44897959, 230.24780269], - [8., 285.73404835], - ] -bb: - flo: 0.5 - dt: 0.01 - fmidbot: 0.5 - fmin: 0.25 - site_amp_version: "2014" - -velocity_model_1d: - model: - - thickness: 0.0500 - Vp: 1.8000 - Vs: 0.3800 - rho: 1.8100 - Qp: 38.00 - Qs: 19.00 - - thickness: 0.0500 - Vp: 1.8000 - Vs: 0.4800 - rho: 1.8100 - Qp: 48.00 - Qs: 24.00 - - thickness: 0.0500 - Vp: 1.8000 - Vs: 0.5800 - rho: 1.8100 - Qp: 58.00 - Qs: 29.00 - - thickness: 0.0500 - Vp: 1.8000 - Vs: 0.6800 - rho: 1.8100 - Qp: 68.00 - Qs: 34.00 - - thickness: 0.1000 - Vp: 1.8000 - Vs: 0.7500 - rho: 1.8100 - Qp: 75.00 - Qs: 37.50 - - thickness: 0.1000 - Vp: 1.8000 - Vs: 0.8300 - rho: 1.8100 - Qp: 83.00 - Qs: 41.50 - - thickness: 0.2000 - Vp: 1.9000 - Vs: 0.9000 - rho: 1.8600 - Qp: 90.00 - Qs: 45.00 - - thickness: 0.2000 - Vp: 2.0300 - Vs: 1.0000 - rho: 1.9200 - Qp: 100.00 - Qs: 50.00 - - thickness: 0.2000 - Vp: 2.1400 - Vs: 1.0500 - rho: 1.9700 - Qp: 105.00 - Qs: 52.50 - - thickness: 0.2000 - Vp: 2.2000 - Vs: 1.1000 - rho: 1.9900 - Qp: 110.00 - Qs: 55.00 - - thickness: 0.2000 - Vp: 2.4000 - Vs: 1.1500 - rho: 2.0600 - Qp: 115.00 - Qs: 57.50 - - thickness: 0.2000 - Vp: 2.7000 - Vs: 1.2000 - rho: 2.1500 - Qp: 120.00 - Qs: 60.00 - - thickness: 0.2000 - Vp: 3.0000 - Vs: 1.4300 - rho: 2.2200 - Qp: 143.00 - Qs: 71.50 - - thickness: 0.2000 - Vp: 3.2700 - Vs: 1.6400 - rho: 2.2800 - Qp: 164.00 - Qs: 82.00 - - thickness: 0.2000 - Vp: 3.5300 - Vs: 1.8600 - rho: 2.3200 - Qp: 186.00 - Qs: 93.00 - - thickness: 0.2000 - Vp: 3.8000 - Vs: 2.0700 - rho: 2.3600 - Qp: 207.00 - Qs: 103.50 - - thickness: 0.2000 - Vp: 4.0700 - Vs: 2.2800 - rho: 2.4000 - Qp: 228.00 - Qs: 114.00 - - thickness: 0.2000 - Vp: 4.3300 - Vs: 2.4900 - rho: 2.4400 - Qp: 249.00 - Qs: 124.50 - - thickness: 0.2000 - Vp: 4.6000 - Vs: 2.7000 - rho: 2.4800 - Qp: 270.00 - Qs: 135.00 - - thickness: 0.2000 - Vp: 4.7100 - Vs: 2.7700 - rho: 2.4900 - Qp: 277.00 - Qs: 138.50 - - thickness: 0.2000 - Vp: 4.8200 - Vs: 2.8400 - rho: 2.5100 - Qp: 284.00 - Qs: 142.00 - - thickness: 0.2000 - Vp: 4.9300 - Vs: 2.9100 - rho: 2.5200 - Qp: 291.00 - Qs: 145.50 - - thickness: 0.2000 - Vp: 5.0400 - Vs: 2.9800 - rho: 2.5400 - Qp: 298.00 - Qs: 149.00 - - thickness: 0.2000 - Vp: 5.1500 - Vs: 3.0500 - rho: 2.5600 - Qp: 305.00 - Qs: 152.50 - - thickness: 0.2000 - Vp: 5.2600 - Vs: 3.1200 - rho: 2.5800 - Qp: 312.00 - Qs: 156.00 - - thickness: 0.2000 - Vp: 5.3700 - Vs: 3.1900 - rho: 2.6000 - Qp: 319.00 - Qs: 159.50 - - thickness: 0.2000 - Vp: 5.4800 - Vs: 3.2600 - rho: 2.6100 - Qp: 326.00 - Qs: 163.00 - - thickness: 0.2000 - Vp: 5.5900 - Vs: 3.3300 - rho: 2.6300 - Qp: 333.00 - Qs: 166.50 - - thickness: 0.2000 - Vp: 5.7000 - Vs: 3.4000 - rho: 2.6600 - Qp: 340.00 - Qs: 170.00 - - thickness: 3.0000 - Vp: 6.0000 - Vs: 3.6000 - rho: 2.7200 - Qp: 360.00 - Qs: 180.00 - - thickness: 4.0000 - Vp: 6.0000 - Vs: 3.6000 - rho: 2.7200 - Qp: 360.00 - Qs: 180.00 - - thickness: 15.0000 - Vp: 6.5000 - Vs: 3.7000 - rho: 2.8300 - Qp: 370.00 - Qs: 185.00 - - thickness: 12.0000 - Vp: 7.5000 - Vs: 4.3000 - rho: 3.1200 - Qp: 430.00 - Qs: 215.00 - - thickness: 999.0000 - Vp: 8.1000 - Vs: 4.6000 - rho: 3.3300 - Qp: 460.00 - Qs: 230.00 -im: - ims: ["PGA", "PGV", "CAV", "AI", "Ds575", "Ds595", "MMI", "pSA"] - components: ["000", "090", "ver", "geom", "rotd50", "rotd100"] - units: "g" - valid_periods: - [ - 0.01, - 0.02, - 0.03, - 0.04, - 0.05, - 0.075, - 0.1, - 0.12, - 0.15, - 0.17, - 0.2, - 0.25, - 0.3, - 0.4, - 0.5, - 0.6, - 0.7, - 0.75, - 0.8, - 0.9, - 1.0, - 1.25, - 1.5, - 2.0, - 2.5, - 3.0, - 4.0, - 5.0, - 6.0, - 7.5, - 10.0, - ] - fas_frequencies: - [ - 0.1, - 0.10722672, - 0.1149757, - 0.12328467, - 0.13219411, - 0.14174742, - 0.15199111, - 0.16297508, - 0.17475284, - 0.18738174, - 0.2009233, - 0.21544347, - 0.23101297, - 0.24770764, - 0.26560878, - 0.28480359, - 0.30538555, - 0.32745492, - 0.35111917, - 0.37649358, - 0.40370173, - 0.43287613, - 0.46415888, - 0.49770236, - 0.53366992, - 0.57223677, - 0.61359073, - 0.65793322, - 0.70548023, - 0.75646333, - 0.81113083, - 0.869749, - 0.93260335, - 1.0, - 1.07226722, - 1.149757, - 1.23284674, - 1.32194115, - 1.41747416, - 1.51991108, - 1.62975083, - 1.7475284, - 1.87381742, - 2.009233, - 2.15443469, - 2.3101297, - 2.47707636, - 2.65608778, - 2.84803587, - 3.05385551, - 3.27454916, - 3.51119173, - 3.76493581, - 4.03701726, - 4.32876128, - 4.64158883, - 4.97702356, - 5.33669923, - 5.72236766, - 6.13590727, - 6.57933225, - 7.05480231, - 7.56463328, - 8.11130831, - 8.69749003, - 9.32603347, - 10.0, - 10.72267222, - 11.49756995, - 12.32846739, - 13.21941148, - 14.17474163, - 15.19911083, - 16.29750835, - 17.475284, - 18.73817423, - 20.09233003, - 21.5443469, - 23.101297, - 24.77076356, - 26.56087783, - 28.48035868, - 30.53855509, - 32.74549163, - 35.11191734, - 37.64935807, - 40.37017259, - 43.28761281, - 46.41588834, - 49.77023564, - 53.36699231, - 57.22367659, - 61.35907273, - 65.79332247, - 70.54802311, - 75.64633276, - 81.11308308, - 86.97490026, - 93.26033469, - 100.0, - ] diff --git a/workflow/default_parameters/v24_2_2_2/root_defaults.yaml b/workflow/default_parameters/v24_2_2_2/root_defaults.yaml deleted file mode 100644 index 392b30ce..00000000 --- a/workflow/default_parameters/v24_2_2_2/root_defaults.yaml +++ /dev/null @@ -1,38 +0,0 @@ -hf: - version: 6.0.3.2 - dt: 0.005 - rvfac: 0.8 - sdrop: 50 - path_dur: 11 - kappa: 0.045 - rvfac_shal: 0.6 - rvfac_deep: 0.6 - czero: 2.0 - rayset: 1 -bb: - fmin: 0.2 - fmidbot: 0.5 -emod3d: - emod3d_version: 3.0.8 -ims: - extended_period: False - component: - - "000" - - "090" - - ver - - geom - - rotd50 - - rotd100_50 - pSA_periods: [0.01, 0.02, 0.03, 0.04, 0.05, 0.075, 0.1, 0.12, 0.15, 0.17, 0.2, 0.25, 0.3, 0.4, 0.5, 0.6, 0.7, 0.75, 0.8, 0.9, 1.0, 1.25, 1.5, 2.0, 2.5, 3.0, 4.0, 5.0, 6.0, 7.5, 10.0] -flo: 1.0 -dt: 0.005 -VM: - hh: 0.1 - VM_Version: 2.06 - VM_Topo: SQUASHED_TAPERED - PGV_Threshold: -1 - Ds_Multiplier: 1.2 -v_1d_mod: Cant1D_v3-midQ_OneRay.1d -advanced_IM: - models: [ATC_Steel_SCBF_3Story, SAC_Steel_MF_3Story] - match_obs_stations: null diff --git a/workflow/default_parameters/v24_2_2_4/__init__.py b/workflow/default_parameters/v24_2_2_4/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/workflow/default_parameters/v24_2_2_4/defaults.yaml b/workflow/default_parameters/v24_2_2_4/defaults.yaml deleted file mode 100644 index 310f9cda..00000000 --- a/workflow/default_parameters/v24_2_2_4/defaults.yaml +++ /dev/null @@ -1,485 +0,0 @@ -emod3d: - all_in_one: 1 - bfilt: 4 - bforce: 0 - dampwidth: 0 - dblcpl: 0 - dmodfile: rho3dfile.d - dtts: 20 - dump_itinc: 4000 - dxout: 1 - dxts: 5 - dyout: 1 - dyts: 5 - dzout: 1 - dzts: 1 - elas_only: 0 - enable_output_dump: 1 - enable_restart: 1 - ffault: 2 - fhi: 0.0 - fmax: 25.0 - fmin: 0.01 - freesurf: 1 - geoproj: 1 - intmem: 1 - ix_ts: 99 - ix_ys: 100 - ix_zs: 100 - iy_ts: 2 - iy_xs: 60 - iy_zs: 50 - iz_ts: 1 - iz_xs: 1 - iz_ys: 1 - lonlat_out: 1 - maxmem: 1500 - model_style: 1 - nseis: 1 - order: 4 - pmodfile: vp3dfile.p - pointmt: 0 - qbndmax: 100.0 - qpfrac: 100.0 - qpqs_factor: 2.0 - qsfrac: 50.0 - read_restart: 0 - report: 100 - restart_itinc: 20000 - scale: 1 - smodfile: vs3dfile.s - span: 1 - stype: 2tri-p10-h20 - swap_bytes: 0 - ts_inc: 1 - ts_start: 0 - ts_total: 218 - ts_xy: 1 - ts_xz: 0 - ts_yz: 0 - tzero: 0.6 - vmodel_swapb: 0 - xseis: 0 - yseis: 0 - zseis: 0 - pertbfile: test -hf: - nbu: 4 - ift: 0 - flo: 0.02 - fhi: 19.9 - nl_skip: -99 - vp_sig: 0.0 - vsh_sig: 0.0 - rho_sig: 0.0 - qs_sig: 0.0 - ic_flag: true - velocity_name: "-1" - dt: 0.02 - t_sec: 0.0 - sdrop: 50.0 - rayset: [1, 2] - no_siteamp: false - fmax: 10.0 - kappa: 0.045 - qfexp: 0.6 - rvfac: 0.8 - rvfac_shal: 0.7 - rvfac_deep: 0.7 - czero: 2.1 - calpha: -99.0 - mom: null - rupv: null - site_specific: false - vs_moho: 999.9 - fa_sig1: 0.0 - fa_sig2: 0.0 - rv_sig1: 0.1 - path_dur: 1 - dpath_pert: 0.0 - stress_parameter_adjustment_tect_type: 1 - stress_parameter_adjustment_target_magnitude: null - stress_parameter_adjustment_fault_area: null - stoch_dx: 2.0 - stoch_dy: 2.0 -srf: - resolution: 0.4 - genslip_dt: 0.05 - genslip_version: 5.4.2 -velocity_model: - min_vs: 0.5 - resolution: 0.4 - ds_multiplier: 1.2 - dt: 0.02 - version: "2.06" - topo_type: "SQUASHED_TAPERED" - vs30: 500.0 - s_wave_velocity: 3500.0 - rrup_interpolants: - [ - [3.5, 46.05329066], - [3.86734694, 52.80886205], - [4.14285714, 61.6089979], - [4.41836735, 74.07002433], - [4.69387755, 90.86166722], - [5.24489796, 124.1668061], - [5.79591837, 143.3055832], - [6.34693878, 159.56440721], - [6.89795918, 183.26871665], - [7.17346939, 203.22307576], - [7.44897959, 230.24780269], - [8., 285.73404835], - ] -velocity_model_1d: - model: - - thickness: 0.0500 - Vp: 1.8000 - Vs: 0.3800 - rho: 1.8100 - Qp: 38.00 - Qs: 19.00 - - thickness: 0.0500 - Vp: 1.8000 - Vs: 0.4800 - rho: 1.8100 - Qp: 48.00 - Qs: 24.00 - - thickness: 0.0500 - Vp: 1.8000 - Vs: 0.5800 - rho: 1.8100 - Qp: 58.00 - Qs: 29.00 - - thickness: 0.0500 - Vp: 1.8000 - Vs: 0.6800 - rho: 1.8100 - Qp: 68.00 - Qs: 34.00 - - thickness: 0.1000 - Vp: 1.8000 - Vs: 0.7500 - rho: 1.8100 - Qp: 75.00 - Qs: 37.50 - - thickness: 0.1000 - Vp: 1.8000 - Vs: 0.8300 - rho: 1.8100 - Qp: 83.00 - Qs: 41.50 - - thickness: 0.2000 - Vp: 1.9000 - Vs: 0.9000 - rho: 1.8600 - Qp: 90.00 - Qs: 45.00 - - thickness: 0.2000 - Vp: 2.0300 - Vs: 1.0000 - rho: 1.9200 - Qp: 100.00 - Qs: 50.00 - - thickness: 0.2000 - Vp: 2.1400 - Vs: 1.0500 - rho: 1.9700 - Qp: 105.00 - Qs: 52.50 - - thickness: 0.2000 - Vp: 2.2000 - Vs: 1.1000 - rho: 1.9900 - Qp: 110.00 - Qs: 55.00 - - thickness: 0.2000 - Vp: 2.4000 - Vs: 1.1500 - rho: 2.0600 - Qp: 115.00 - Qs: 57.50 - - thickness: 0.2000 - Vp: 2.7000 - Vs: 1.2000 - rho: 2.1500 - Qp: 120.00 - Qs: 60.00 - - thickness: 0.2000 - Vp: 3.0000 - Vs: 1.4300 - rho: 2.2200 - Qp: 143.00 - Qs: 71.50 - - thickness: 0.2000 - Vp: 3.2700 - Vs: 1.6400 - rho: 2.2800 - Qp: 164.00 - Qs: 82.00 - - thickness: 0.2000 - Vp: 3.5300 - Vs: 1.8600 - rho: 2.3200 - Qp: 186.00 - Qs: 93.00 - - thickness: 0.2000 - Vp: 3.8000 - Vs: 2.0700 - rho: 2.3600 - Qp: 207.00 - Qs: 103.50 - - thickness: 0.2000 - Vp: 4.0700 - Vs: 2.2800 - rho: 2.4000 - Qp: 228.00 - Qs: 114.00 - - thickness: 0.2000 - Vp: 4.3300 - Vs: 2.4900 - rho: 2.4400 - Qp: 249.00 - Qs: 124.50 - - thickness: 0.2000 - Vp: 4.6000 - Vs: 2.7000 - rho: 2.4800 - Qp: 270.00 - Qs: 135.00 - - thickness: 0.2000 - Vp: 4.7100 - Vs: 2.7700 - rho: 2.4900 - Qp: 277.00 - Qs: 138.50 - - thickness: 0.2000 - Vp: 4.8200 - Vs: 2.8400 - rho: 2.5100 - Qp: 284.00 - Qs: 142.00 - - thickness: 0.2000 - Vp: 4.9300 - Vs: 2.9100 - rho: 2.5200 - Qp: 291.00 - Qs: 145.50 - - thickness: 0.2000 - Vp: 5.0400 - Vs: 2.9800 - rho: 2.5400 - Qp: 298.00 - Qs: 149.00 - - thickness: 0.2000 - Vp: 5.1500 - Vs: 3.0500 - rho: 2.5600 - Qp: 305.00 - Qs: 152.50 - - thickness: 0.2000 - Vp: 5.2600 - Vs: 3.1200 - rho: 2.5800 - Qp: 312.00 - Qs: 156.00 - - thickness: 0.2000 - Vp: 5.3700 - Vs: 3.1900 - rho: 2.6000 - Qp: 319.00 - Qs: 159.50 - - thickness: 0.2000 - Vp: 5.4800 - Vs: 3.2600 - rho: 2.6100 - Qp: 326.00 - Qs: 163.00 - - thickness: 0.2000 - Vp: 5.5900 - Vs: 3.3300 - rho: 2.6300 - Qp: 333.00 - Qs: 166.50 - - thickness: 0.2000 - Vp: 5.7000 - Vs: 3.4000 - rho: 2.6600 - Qp: 340.00 - Qs: 170.00 - - thickness: 3.0000 - Vp: 6.0000 - Vs: 3.6000 - rho: 2.7200 - Qp: 360.00 - Qs: 180.00 - - thickness: 4.0000 - Vp: 6.0000 - Vs: 3.6000 - rho: 2.7200 - Qp: 360.00 - Qs: 180.00 - - thickness: 15.0000 - Vp: 6.5000 - Vs: 3.7000 - rho: 2.8300 - Qp: 370.00 - Qs: 185.00 - - thickness: 12.0000 - Vp: 7.5000 - Vs: 4.3000 - rho: 3.1200 - Qp: 430.00 - Qs: 215.00 - - thickness: 999.0000 - Vp: 8.1000 - Vs: 4.6000 - rho: 3.3300 - Qp: 460.00 - Qs: 230.00 -bb: - flo: 0.5 - dt: 0.02 - fmidbot: 0.5 - fmin: 0.25 - site_amp_version: "2014" -im: - ims: ["PGA", "PGV", "CAV", "AI", "Ds575", "Ds595", "MMI", "pSA"] - components: ["000", "090", "ver", "geom", "rotd50", "rotd100"] - units: "g" - valid_periods: - [ - 0.01, - 0.02, - 0.03, - 0.04, - 0.05, - 0.075, - 0.1, - 0.12, - 0.15, - 0.17, - 0.2, - 0.25, - 0.3, - 0.4, - 0.5, - 0.6, - 0.7, - 0.75, - 0.8, - 0.9, - 1.0, - 1.25, - 1.5, - 2.0, - 2.5, - 3.0, - 4.0, - 5.0, - 6.0, - 7.5, - 10.0, - ] - fas_frequencies: - [ - 0.1, - 0.10722672, - 0.1149757, - 0.12328467, - 0.13219411, - 0.14174742, - 0.15199111, - 0.16297508, - 0.17475284, - 0.18738174, - 0.2009233, - 0.21544347, - 0.23101297, - 0.24770764, - 0.26560878, - 0.28480359, - 0.30538555, - 0.32745492, - 0.35111917, - 0.37649358, - 0.40370173, - 0.43287613, - 0.46415888, - 0.49770236, - 0.53366992, - 0.57223677, - 0.61359073, - 0.65793322, - 0.70548023, - 0.75646333, - 0.81113083, - 0.869749, - 0.93260335, - 1.0, - 1.07226722, - 1.149757, - 1.23284674, - 1.32194115, - 1.41747416, - 1.51991108, - 1.62975083, - 1.7475284, - 1.87381742, - 2.009233, - 2.15443469, - 2.3101297, - 2.47707636, - 2.65608778, - 2.84803587, - 3.05385551, - 3.27454916, - 3.51119173, - 3.76493581, - 4.03701726, - 4.32876128, - 4.64158883, - 4.97702356, - 5.33669923, - 5.72236766, - 6.13590727, - 6.57933225, - 7.05480231, - 7.56463328, - 8.11130831, - 8.69749003, - 9.32603347, - 10.0, - 10.72267222, - 11.49756995, - 12.32846739, - 13.21941148, - 14.17474163, - 15.19911083, - 16.29750835, - 17.475284, - 18.73817423, - 20.09233003, - 21.5443469, - 23.101297, - 24.77076356, - 26.56087783, - 28.48035868, - 30.53855509, - 32.74549163, - 35.11191734, - 37.64935807, - 40.37017259, - 43.28761281, - 46.41588834, - 49.77023564, - 53.36699231, - 57.22367659, - 61.35907273, - 65.79332247, - 70.54802311, - 75.64633276, - 81.11308308, - 86.97490026, - 93.26033469, - 100.0, - ] diff --git a/workflow/default_parameters/v24_2_2_4/root_defaults.yaml b/workflow/default_parameters/v24_2_2_4/root_defaults.yaml deleted file mode 100644 index 392b30ce..00000000 --- a/workflow/default_parameters/v24_2_2_4/root_defaults.yaml +++ /dev/null @@ -1,38 +0,0 @@ -hf: - version: 6.0.3.2 - dt: 0.005 - rvfac: 0.8 - sdrop: 50 - path_dur: 11 - kappa: 0.045 - rvfac_shal: 0.6 - rvfac_deep: 0.6 - czero: 2.0 - rayset: 1 -bb: - fmin: 0.2 - fmidbot: 0.5 -emod3d: - emod3d_version: 3.0.8 -ims: - extended_period: False - component: - - "000" - - "090" - - ver - - geom - - rotd50 - - rotd100_50 - pSA_periods: [0.01, 0.02, 0.03, 0.04, 0.05, 0.075, 0.1, 0.12, 0.15, 0.17, 0.2, 0.25, 0.3, 0.4, 0.5, 0.6, 0.7, 0.75, 0.8, 0.9, 1.0, 1.25, 1.5, 2.0, 2.5, 3.0, 4.0, 5.0, 6.0, 7.5, 10.0] -flo: 1.0 -dt: 0.005 -VM: - hh: 0.1 - VM_Version: 2.06 - VM_Topo: SQUASHED_TAPERED - PGV_Threshold: -1 - Ds_Multiplier: 1.2 -v_1d_mod: Cant1D_v3-midQ_OneRay.1d -advanced_IM: - models: [ATC_Steel_SCBF_3Story, SAC_Steel_MF_3Story] - match_obs_stations: null diff --git a/workflow/realisations.py b/workflow/realisations.py index d8714b84..faeafea5 100644 --- a/workflow/realisations.py +++ b/workflow/realisations.py @@ -13,15 +13,16 @@ import random import struct from abc import ABC -from pathlib import Path +from pathlib import Path, PurePath from typing import Any, ClassVar, Literal, Optional, Self, Union import numpy as np import numpy.typing as npt -import pandas as pd +import yaml from schema import Schema from velocity_modelling.bounding_box import BoundingBox +from qcore import registry from source_modelling import sources from source_modelling.rupture_propagation import JumpPair from source_modelling.sources import IsSource @@ -181,7 +182,16 @@ def read_from_realisation_or_defaults( try: return cls.read_from_realisation(realisation_ffp) except RealisationParseError: - default_config = cls.read_from_defaults(defaults_version) + inputs = RealisationInput.read_from_realisation_or_defaults(realisation_ffp) + defaults_yaml = inputs.fetch_file( + PurePath("v" + defaults_version.value.replace(".", "_")) + / "defaults.yaml" + ) + with open(defaults_yaml, "r", encoding="utf-8") as fp: + defaults_yaml_obj = yaml.safe_load(fp) + default_config = cls( + **cls._schema.validate(defaults_yaml_obj[cls._config_key]) + ) default_config.write_to_realisation(realisation_ffp) return default_config @@ -481,41 +491,6 @@ def to_dict(self) -> dict: return _dict -@dataclasses.dataclass -class VelocityModel1D(RealisationConfiguration): - """1D Velocity Model for SRF and HF.""" - - _config_key: ClassVar[str] = "velocity_model_1d" - _schema: ClassVar[Schema] = schemas.VELOCITY_MODEL_1D_SCHEMA - - model: pd.DataFrame - - def write_velocity_model(self, velocity_model_path: Path): - """Write a 1D velocity model to the specified path. - - Parameters - ---------- - velocity_model_path : Path - The path to write the 1D velocity model. - """ - with open(velocity_model_path, "w") as velocity_model: - velocity_model.write(f"{len(self.model)}\n") - self.model.to_csv(velocity_model, header=False, index=False, sep=" ") - - def to_dict(self) -> dict: - """ - Convert the object to a dictionary representation. - - Returns - ------- - dict - Dictionary representation of the object. - """ - _dict = dataclasses.asdict(self) - _dict["model"] = _dict["model"].to_dict("records") - return _dict - - @dataclasses.dataclass class RealisationMetadata(RealisationConfiguration): """Metadata for describing a realisation.""" @@ -532,12 +507,14 @@ class RealisationMetadata(RealisationConfiguration): tag: Optional[str] = None """Metadata tag for the realisation used to specify the origin or category of the realisation (e.g. NSHM, GCMT or custom).""" + input_set: Optional[schemas.InputSet] = None + """The input file set.""" input_reference: Optional[str] = None """Input git reference used to download files.""" @dataclasses.dataclass -class RealisationInput: +class RealisationInput(RealisationConfiguration): """ Represents the input specification for a simulation realisation. @@ -560,11 +537,74 @@ class RealisationInput: files: dict[Path, Path] """A mapping of simulation file paths to their sources in the registry. - The keys represent the paths where the files will be used in the simulation, - and the values are paths specifying the source file - information from the registry. + The keys represent the paths where the files will be used in the + simulation, and the values are paths specifying the source file information + from the registry. These can be used to override default file locations + and request custom locations. """ + registry: dict[Path, str] + """The registry hashes of the realisation inputs.""" + + @classmethod + def read_from_realisation_or_defaults(cls, realisation_ffp: Path, *args) -> Self: + """Read configuration from realisation, or read from defaults and write to realisation. + + + Returns + ------- + RealisationConfiguration + The configuration loaded from the realisation filepath, or the + defaults if the realisation does not contain the configuration + key. The configuration schema is looked up from `cls._config_key` + and the key within the config is specified `cls._schema`. + + Raises + ------ + RealisationParseError + If the key in `cls._config_key` is not present in + the realisation or scientific defaults configuration. + """ + try: + return cls.read_from_realisation(realisation_ffp) + except RealisationParseError: + realisation_metadata = RealisationMetadata.read_from_realisation( + realisation_ffp + ) + commit = registry.resolve_git_reference( + realisation_metadata.input_reference or "main" + ) + qcore_registry = registry.qcore_registry(reference=commit).registry + realisation_inputs = cls(commit=commit, files={}, registry=qcore_registry) + realisation_inputs.write_to_realisation(realisation_ffp) + return realisation_inputs + + def fetch_file(self, filepath: PurePath) -> Path: + """Fetch a file from the qcore registry. + + Parameters + ---------- + self : + self + filepath : Path + The path to the file (from the repository root). + + Returns + ------- + Path + The path to the file downloaded to disk. + """ + qcore_registry = registry.qcore_registry( + registry=self.registry, reference=self.commit + ) + return registry.fetch_file(qcore_registry, filepath) + + def to_dict(self) -> dict: + obj_dict = dataclasses.asdict(self) + obj_dict["files"] = {str(k): str(v) for k, v in self.files.items()} + obj_dict["registry"] = {str(k): v for k, v in self.registry.items()} + return obj_dict + @dataclasses.dataclass class HFConfig(RealisationConfiguration): diff --git a/workflow/schemas.py b/workflow/schemas.py index d276aaec..d72ab2c3 100644 --- a/workflow/schemas.py +++ b/workflow/schemas.py @@ -8,7 +8,7 @@ import re from enum import StrEnum -from pathlib import Path +from pathlib import Path, PurePath import numpy as np import pandas as pd @@ -412,21 +412,40 @@ def corners_to_array(corners_spec: list[dict[str, float]]) -> np.ndarray: } ) + +class InputSet(StrEnum): + """Input file set to source for the simulations.""" + + CYBERSHAKE = "cybershake" + """The cybershake file set.""" + VALIDATION = "validation" + """The validation file set.""" + + REALISATION_METADATA_SCHEMA = Schema( { Literal("name", description="The name of the realisation"): str, Literal("version", description="The version of the realisation format"): Or( "1" ), + Literal( + "defaults_version", description="Simulation default parameters version." + ): And(str, Use(DefaultsVersion)), Optional( Literal( "tag", description="Metadata tag for the realisation used to specify the origin or category of the realisation (e.g. NSHM, GCMT or custom).", ) ): Or(str, None), - Literal( - "defaults_version", description="Simulation default parameters version." - ): And(str, Use(DefaultsVersion)), + Optional(Literal("input_set", description="The input file set.")): Or( + And(str, Use(InputSet)), None + ), + Optional( + Literal( + "input_reference", + description="Input git reference used to download files.", + ) + ): Or(str, None), } ) @@ -658,6 +677,9 @@ class Units(StrEnum): Literal( "files", description="A mapping of simulation file paths to their sources in the registry.", - ): {And(str, Use(Path)): And(str, Use(Path))}, + ): Or({And(str, Use(Path)): And(str, Use(PurePath))}, {}), + Literal("registry", description="The registry associated with the commit."): Or( + {And(str, Use(PurePath)): Regex("[a-f0-9]{64}", re.I)}, {} + ), } ) diff --git a/workflow/scripts/bb_sim.py b/workflow/scripts/bb_sim.py index 58359ce5..14b2417b 100644 --- a/workflow/scripts/bb_sim.py +++ b/workflow/scripts/bb_sim.py @@ -242,9 +242,10 @@ def combine_hf_and_lf( ) domain_parameters = DomainParameters.read_from_realisation(realisation_ffp) - # As LF has a start time offset it is necessary to pad the start of HF by the same number of timesteps - # Similar code to account for an end time difference is also present - # allowing for HF and LF to have separate start times and durations + # As LF has a start time offset it is necessary to pad the start of HF by + # the same number of timesteps Similar code to account for an end time + # difference is also present allowing for HF and LF to have separate + # start times and durations bb_start_sec = min(lf.start_sec, hf.attrs["t_sec"]) lf_start_sec_offset = max(lf.start_sec - hf.attrs["t_sec"], 0) diff --git a/workflow/scripts/generate_station_coordinates.py b/workflow/scripts/generate_station_coordinates.py index e03dff76..87be5a3f 100644 --- a/workflow/scripts/generate_station_coordinates.py +++ b/workflow/scripts/generate_station_coordinates.py @@ -28,15 +28,15 @@ See the output of `generate-station-coordinates --help`. """ -from pathlib import Path -from typing import Annotated +from pathlib import Path, PurePath +from typing import Annotated, Optional import numpy as np import pandas as pd import typer from workflow import log_utils -from workflow.realisations import DomainParameters +from workflow.realisations import DomainParameters, RealisationInput app = typer.Typer() @@ -53,16 +53,18 @@ def generate_fd_files( help="Output path for station files", file_okay=False, writable=True ), ], - keep_dup_station: Annotated[ - bool, - typer.Option(help="Keep stations whose gridpoint coordinates are identical"), - ] = True, stat_file: Annotated[ - Path, + Optional[PurePath], + typer.Option(help="The location of the station file (from registry)."), + ], + local_stat_file: Annotated[ + Optional[Path], typer.Option( - help="The location of the station files.", readable=True, exists=True + help="The location of the station files (local file).", + readable=True, + exists=True, ), - ] = Path("/input/stations.ll"), + ] = None, ) -> None: """Generate station coordinate files. @@ -77,6 +79,19 @@ def generate_fd_files( stat_file : Path If True, keep stations whose gridpoint coordinates are identical. """ + if not local_stat_file and not stat_file: + print( + "You must specify either a local station file " + "(--local-stat-file) or a path in the registry (--stat-file)." + ) + raise typer.Exit(1) + + registry_local_path: Optional[Path] = None + + if stat_file: + realisation_input = RealisationInput.read_from_realisation_or_defaults(realisations_ffp) + registry_local_path = realisation_input.fetch_file(stat_file) + output_path.mkdir(exist_ok=True) domain_parameters = DomainParameters.read_from_realisation(realisations_ffp) @@ -86,7 +101,10 @@ def generate_fd_files( # retrieve in station names, latitudes and longitudes stations = pd.read_csv( - stat_file, delimiter=r"\s+", comment="#", names=["lon", "lat", "name"] + local_stat_file or registry_local_path, + delimiter=r"\s+", + comment="#", + names=["lon", "lat", "name"] ) in_domain_mask = domain_parameters.domain.contains( @@ -101,7 +119,8 @@ def generate_fd_files( stations["x"] = np.round( domain_parameters.domain.extent_x * xy[:, 0] / domain_parameters.resolution ).astype(int) - # the bounding box local coordinates start from the left bottom, so we flip that so that it starts from the top left + # the bounding box local coordinates start from the left bottom, so we + # flip that so that it starts from the top left stations["y"] = np.round( domain_parameters.domain.extent_y * (1 - xy[:, 1]) diff --git a/workflow/scripts/hf_sim.py b/workflow/scripts/hf_sim.py index 994ff21b..c5709776 100644 --- a/workflow/scripts/hf_sim.py +++ b/workflow/scripts/hf_sim.py @@ -50,7 +50,6 @@ HFConfig, RealisationMetadata, Seeds, - VelocityModel1D, ) app = typer.Typer() diff --git a/workflow/scripts/nshm2022_to_realisation.py b/workflow/scripts/nshm2022_to_realisation.py index c2d87362..e8f0ff21 100755 --- a/workflow/scripts/nshm2022_to_realisation.py +++ b/workflow/scripts/nshm2022_to_realisation.py @@ -34,9 +34,8 @@ See the output of `nshm2022-to-realisation --help`. """ -import random -from pathlib import Path -from typing import Annotated +from pathlib import Path, PurePath +from typing import Annotated, Optional import numpy as np import typer @@ -45,9 +44,17 @@ from qcore.uncertainties import distributions, mag_scaling from source_modelling import rupture_propagation from source_modelling.sources import Fault -from workflow import realisations -from workflow.defaults import DefaultsVersion, Seeds +from workflow.defaults import ( + DefaultsVersion, +) from workflow.log_utils import log_call +from workflow.realisations import ( + RealisationInput, + RealisationMetadata, + RupturePropagationConfig, + Seeds, + SourceConfig, +) app = typer.Typer() @@ -110,14 +117,6 @@ def default_magnitude_estimation( ) @log_call() def generate_realisation( - nshm_db_file: Annotated[ - Path, - typer.Argument( - help="The NSHM sqlite database containing rupture information and fault geometry.", - readable=True, - exists=True, - ), - ], rupture_id: Annotated[ int, typer.Argument( @@ -132,47 +131,68 @@ def generate_realisation( DefaultsVersion, typer.Argument(help="Scientific default parameters version to use"), ], + nshmdb_path: Annotated[ + PurePath, typer.Option(help="Path to NSHMDB (in container).") + ] = PurePath("nshmdb.db"), + local_nshmdb_path: Annotated[ + Optional[Path], + typer.Option(help="Path to local NSHMDB.", readable=True, exists=True), + ] = None, ): """Generate realisation stub files from ruptures in the NSHM 2022 database. - This function initializes a connection to the NSHM database, retrieves the faults and fault information for - the given rupture ID, estimates the most likely rupture propagation, and creates configurations and metadata - for the realisation. The resulting realisation is then written to the specified file path. + This function initializes a connection to the NSHM database, retrieves + the faults and fault information for the given rupture ID, estimates the + most likely rupture propagation, and creates configurations and metadata + for the realisation. The resulting realisation is then written to the + specified file path. Parameters ---------- nshm_db_file : Path The NSHM sqlite database containing rupture information and fault geometry. rupture_id : int - The ID of the rupture to generate the realisation stub for. Find this using the NSHM Rupture Explorer. + The ID of the rupture to generate the realisation stub for. Find + this using the NSHM Rupture Explorer. realisation_ffp : Path Location to write out the realisation. defaults_version : DefaultsVersion Scientific default parameters version to use. """ - db = nshmdb.NSHMDB(nshm_db_file) + metadata = RealisationMetadata( + name=f"Rupture {rupture_id}", + version="1", + tag="nshm", + defaults_version=defaults_version, + ) + metadata.write_to_realisation(realisation_ffp) + inputs = RealisationInput.read_from_realisation_or_defaults(realisation_ffp) + + if local_nshmdb_path: + db = nshmdb.NSHMDB(local_nshmdb_path) + else: + db = nshmdb.NSHMDB(inputs.fetch_file(nshmdb_path)) + faults = db.get_rupture_faults(rupture_id) faults_info = db.get_rupture_fault_info(rupture_id) - seeds = realisations.Seeds.read_from_realisation_or_defaults(realisation_ffp) + seeds = Seeds.read_from_realisation_or_defaults(realisation_ffp) np.random.seed(seed=seeds.nshm_to_realisation_seed) - source_config = realisations.SourceConfig(faults) + source_config = SourceConfig(faults) rakes = { fault_name: fault_info.rake for fault_name, fault_info in faults_info.items() } magnitudes = default_magnitude_estimation(faults, rakes) mfds_rates = db.most_likely_fault(rupture_id, magnitudes) - mfds_probabilities = np.array(mfds_rates.values()) + mfds_probabilities = np.array(list(mfds_rates.values())) if np.allclose(mfds_probabilities, 0): mfds_probabilities = np.ones_like(mfds_probabilities) mfds_probabilities /= mfds_probabilities.sum() initial_fault = np.random.choice(list(mfds_rates), p=mfds_probabilities) - rupture_causality_tree = ( - rupture_propagation.estimate_most_likely_rupture_propagation( - faults, initial_fault - ) + rupture_causality_tree = rupture_propagation.sample_rupture_propagation( + faults, initial_source=initial_fault ) hypocentre = np.array( @@ -181,7 +201,7 @@ def generate_realisation( distributions.truncated_weibull(1), ] ) - rupture_propagation_config = realisations.RupturePropagationConfig( + rupture_propagation_config = RupturePropagationConfig( magnitudes=magnitudes, rupture_causality_tree=rupture_causality_tree, jump_points=rupture_propagation.jump_points_from_rupture_tree( @@ -190,12 +210,6 @@ def generate_realisation( rakes=rakes, hypocentre=hypocentre, ) - metadata = realisations.RealisationMetadata( - name=f"Rupture {rupture_id}", - version="1", - tag="nshm", - defaults_version=defaults_version, - ) realisation_ffp.parent.mkdir(parents=True, exist_ok=True) - for section in [metadata, source_config, rupture_propagation_config]: + for section in [source_config, rupture_propagation_config]: section.write_to_realisation(realisation_ffp) diff --git a/workflow/scripts/realisation_to_srf.py b/workflow/scripts/realisation_to_srf.py index 7fbf1822..5bd2dea4 100644 --- a/workflow/scripts/realisation_to_srf.py +++ b/workflow/scripts/realisation_to_srf.py @@ -42,7 +42,7 @@ import shutil import subprocess from collections.abc import Iterable -from pathlib import Path +from pathlib import Path, PurePath from typing import Annotated, Optional import numpy as np @@ -58,12 +58,12 @@ from workflow import log_utils, utils from workflow.log_utils import log_call from workflow.realisations import ( + RealisationInput, RealisationMetadata, RupturePropagationConfig, Seeds, SourceConfig, SRFConfig, - VelocityModel1D, ) app = typer.Typer() @@ -140,6 +140,7 @@ def generate_fault_srf( srf_config: SRFConfig, seeds: Seeds, genslip_path: Path, + velocity_model_path: Path, ): """Generate an SRF file for a given fault. @@ -177,7 +178,6 @@ def generate_fault_srf( genslip_hypocentre_coords = np.array([fault.length, fault.width]) * ( hypocentre_local_coordinates - np.array([1 / 2, 0]) ) - velocity_model_path = output_directory / "velocity_model" genslip_cmd = [ str(genslip_path), "read_erf=0", @@ -387,7 +387,7 @@ def generate_fault_srfs_parallel( output_directory: Path, srf_config: SRFConfig, seeds: Seeds, - velocity_model_1d: VelocityModel1D, + velocity_model_path: Path, genslip_path: Path, ): """Generate fault SRF files in parallel. @@ -406,7 +406,6 @@ def generate_fault_srfs_parallel( gsf_directory.mkdir(exist_ok=True) srf_directory = output_directory / "srf" srf_directory.mkdir(exist_ok=True) - velocity_model_1d.write_velocity_model(output_directory / "velocity_model") magnitudes = rupture_propagation_config.magnitudes rakes = rupture_propagation_config.rakes @@ -436,6 +435,7 @@ def generate_fault_srfs_parallel( output_directory=output_directory, srf_config=srf_config, genslip_path=genslip_path, + velocity_model_path=velocity_model_path, seeds=seeds, ), srf_generation_parameters, @@ -468,6 +468,12 @@ def generate_srf( file_okay=False, ), ] = Path("/out"), + velocity_model_path: Annotated[ + PurePath, typer.Option(help="Path to velocity model (in registry).") + ] = PurePath("default_1d_velocity_model"), + local_velocity_model_path: Annotated[ + Optional[Path], typer.Option(help="Path to local 1d velocity model.") + ] = None, genslip_path: Annotated[ Path, typer.Option(help="Path to genslip binary.", readable=True, dir_okay=False), @@ -498,12 +504,14 @@ def generate_srf( realisation_ffp, metadata.defaults_version ) seeds = Seeds.read_from_realisation_or_defaults(realisation_ffp) + rupture_propagation = RupturePropagationConfig.read_from_realisation( realisation_ffp ) - velocity_model = VelocityModel1D.read_from_realisation_or_defaults( - realisation_ffp, metadata.defaults_version + realisation_input = RealisationInput.read_from_realisation_or_defaults( + realisation_ffp ) + source_config = SourceConfig.read_from_realisation(realisation_ffp) generate_fault_srfs_parallel( @@ -512,7 +520,9 @@ def generate_srf( work_directory, srf_config, seeds, - velocity_model, + local_velocity_model_path + if local_velocity_model_path + else realisation_input.fetch_file(velocity_model_path), genslip_path, ) srf_name = normalise_name(metadata.name) From 9f72c022f3583660b9db2a8ddaaf34ab3a908384 Mon Sep 17 00:00:00 2001 From: Jake Faulkner Date: Fri, 10 Jan 2025 10:17:32 +1300 Subject: [PATCH 03/26] remove hardcoded container inputs, and extra docker files --- cylc/flow.cylc | 64 ------------------ cylc/workflow-setup | 75 ---------------------- docker/config/condor_config.local | 0 docker/config/supervisord.conf | 0 docker/pegasus/Dockerfile | 48 -------------- docker/runner/Dockerfile | 60 ----------------- docker/runner/runner.def | 6 -- docker/testing/Dockerfile | 49 -------------- docker/testing/genslip_velocity_model.vmod | 35 ---------- 9 files changed, 337 deletions(-) delete mode 100644 cylc/flow.cylc delete mode 100644 cylc/workflow-setup delete mode 100644 docker/config/condor_config.local delete mode 100644 docker/config/supervisord.conf delete mode 100644 docker/pegasus/Dockerfile delete mode 100644 docker/runner/Dockerfile delete mode 100644 docker/testing/Dockerfile delete mode 100755 docker/testing/genslip_velocity_model.vmod diff --git a/cylc/flow.cylc b/cylc/flow.cylc deleted file mode 100644 index c67fc402..00000000 --- a/cylc/flow.cylc +++ /dev/null @@ -1,64 +0,0 @@ -[scheduler] - allow implicit tasks = True -[scheduling] - [[graph]] - R1 = """ - """ -[runtime] - [[root]] - platform = mahuika-slurm - pre-script = """ - module load Apptainer - """ - [[[directives]]] - --account = nesi00213 - [[nshm_to_realisation]] - platform = localhost - script = apptainer exec -c --bind "$PWD:/out,$CYLC_WORKFLOW_SHARE_DIR:/share" /nesi/nobackup/nesi00213/containers/runner_latest.sif nshm2022-to-realisation /nshmdb.db 0 /share/realisation.json develop - [[realisation_to_srf]] - script = apptainer exec -c --bind "$PWD:/out,$CYLC_WORKFLOW_SHARE_DIR:/share" /nesi/nobackup/nesi00213/containers/runner_latest.sif realisation-to-srf /share/realisation.json /share/realisation.srf - [[generate_stoch]] - script = apptainer exec -c --bind "$PWD:/out,$CYLC_WORKFLOW_SHARE_DIR:/share" /nesi/nobackup/nesi00213/containers/runner_latest.sif generate-stoch /share/realisation.srf /share/realisation.stoch - [[generate_velocity_model_parameters]] - platform = localhost - script = apptainer exec -c --bind "$PWD:/out,$CYLC_WORKFLOW_SHARE_DIR:/share" /nesi/nobackup/nesi00213/containers/runner_latest.sif generate-velocity-model-parameters /share/realisation.json - [[generate_velocity_model]] - script = apptainer exec -c --bind "$PWD:/out,$CYLC_WORKFLOW_SHARE_DIR:/share" /nesi/nobackup/nesi00213/containers/runner_latest.sif sh -c 'generate-velocity-model /share/realisation.json /share/Velocity_Model --num-threads $(nproc)' - [[[directives]]] - --cpus-per-task = 32 - --time = 01:00:00 - [[generate_station_coordinates]] - script = apptainer exec -c --bind "$PWD:/out,$CYLC_WORKFLOW_SHARE_DIR:/share" /nesi/nobackup/nesi00213/containers/runner_latest.sif generate-station-coordinates /share/realisation.json /share/stations - [[generate_model_coordinates]] - platform = localhost - script = apptainer exec -c --bind "$PWD:/out,$CYLC_WORKFLOW_SHARE_DIR:/share" /nesi/nobackup/nesi00213/containers/runner_latest.sif generate-model-coordinates /share/realisation.json /share/model - [[create_e3d_par]] - platform = localhost - script = apptainer exec /nesi/nobackup/nesi00213/containers/runner_latest.sif create-e3d-par $CYLC_WORKFLOW_SHARE_DIR/realisation.json $CYLC_WORKFLOW_SHARE_DIR/realisation.srf $CYLC_WORKFLOW_SHARE_DIR/Velocity_Model $CYLC_WORKFLOW_SHARE_DIR/stations $CYLC_WORKFLOW_SHARE_DIR/model $CYLC_WORKFLOW_SHARE_DIR/LF --emod3d-path /nesi/project/nesi00213/opt/maui/hybrid_sim_tools/emod3d-mpi_v3.0.8 --scratch-ffp $CYLC_WORKFLOW_SHARE_DIR/LF - [[run_emod3d]] - platform = maui-xc-slurm - pre-script = "" - script = srun /nesi/project/nesi00213/opt/maui/hybrid_sim_tools/emod3d-mpi_v3.0.8 -args "par=$CYLC_WORKFLOW_SHARE_DIR/LF/e3d.par" - [[[directives]]] - --ntasks = 80 - --hint = nomultithread - --time = 00:30:00 - [[run_hf]] - script = apptainer exec -c --bind "$PWD:/out,$CYLC_WORKFLOW_SHARE_DIR:/share" /nesi/nobackup/nesi00213/containers/runner_latest.sif run-hf /share/realisation.json /share/realisation.stoch /share/stations/stations.ll /share/realisation.hf - [[directives]] - --cpus-per-task = 128 - --time = 01:00:00 - [[plot_ts]] - script = apptainer exec -c --bind "$PWD:/out,$CYLC_WORKFLOW_SHARE_DIR:/share" /nesi/nobackup/nesi00213/containers/runner_latest.sif plot-ts /share/LF/OutBin /share/simulation.m4v - - [[run_bb]] - script = apptainer exec -c --bind "$PWD:/out,$CYLC_WORKFLOW_SHARE_DIR:/share" /nesi/nobackup/nesi00213/containers/runner_latest.sif bb-sim /share/realisation.json /share/stations/stations.ll /stations.vs30 /share/LF/OutBin /share/realisation.hf /share/Velocity_Model /share/realisation.bb /out - [[directives]] - --cpus-per-task = 128 - --time = 01:00:00 - - [[im_calc]] - script = apptainer exec -c --bind "$PWD:/out,$CYLC_WORKFLOW_SHARE_DIR:/share" /nesi/nobackup/nesi00213/containers/runner_latest.sif im-calc /share/realisation.json /share/realisation.bb /share/im_calc.csv - [[directives]] - --cpus-per-task = 128 - --time = 01:00:00 diff --git a/cylc/workflow-setup b/cylc/workflow-setup deleted file mode 100644 index 28afb60c..00000000 --- a/cylc/workflow-setup +++ /dev/null @@ -1,75 +0,0 @@ -#!/usr/bin/env bash - -CYLC_LATEST_VERSION=$(cylc list-versions | grep "^[0-9]" | sort -r | head -n 1) - -# export the correct environment variables to the users bashrc file -grep -q 'export PROJECT=nesi00213' ~/.bashrc || echo 'export PROJECT=nesi00213' >>~/.bashrc -grep -q "export CYLC_VERSION=$CYLC_LATEST_VERSION" ~/.bashrc || echo "export CYLC_VERSION=$CYLC_LATEST_VERSION" >>~/.bashrc -test -d ~/cylc-src -a -d ~/cylc-run || mkdir ~/cylc-src ~/cylc-run - -# If the user does not already have an ssh key generated on NeSI login -# nodes, then we must do so. -if ! compgen -G "$HOME/.ssh/id_*.pub" >/dev/null; then - echo "You are about to be prompted for an ssh key password." - echo "You must hit enter (twice) to ensure the key does not have one." - sleep 1 - ssh-keygen -fi - -# In order for cylc to manage jobs via SSH it needs password-less -# login via SSH, we do that by authorizing the local SSH keys to -# login. - -cat ~/.ssh/id_*.pub >>~/.ssh/authorized_keys - -# These permissions must be set for the ssh keys to work. -chmod 700 ~/.ssh -chmod 600 ~/.ssh/id_* -chmod 644 ~/.ssh/id_*.pub -chmod 750 ~ - -# Jupyter Notebook Setup -mkdir -p ~/.cylc/uiserver -# Beginning with port=21300, so we don't try to give a user a -# privileged port, find a port that is unique among nesi00213 project -# members. Configure cylc to host the gui on that port. The port needs -# to be unique because users will port-forward this port when they -# connect to the jupyter lab notebook upon executing cylc gui. -if ! grep -q "$USER=" /nesi/nobackup/nesi00213/cylc_port_maps; then - NEXT_WORKFLOW_PORT=$(awk -F= 'BEGIN{port=21299} { if ($2>port) port=$2 fi } END {print port + 1}' /nesi/nobackup/nesi00213/cylc_port_maps) - - cat <~/.cylc/uiserver/jupyter_config.py -c.ServerApp.open_browser=False -c.ServerApp.port=$NEXT_WORKFLOW_PORT -EOF - # Record the cylc port map so that the next user can find a unique - # port for themselves. - echo "$USER=$NEXT_WORKFLOW_PORT" >>/nesi/nobackup/nesi00213/cylc_port_maps -else - NEXT_WORKFLOW_PORT=$(grep "$USER=" /nesi/nobackup/nesi00213/cylc_port_maps | cut -d= -f2) -fi - -cat <> /etc/sudoers -USER pegasus -WORKDIR /home/pegasus -RUN pegasus-db-admin create diff --git a/docker/runner/Dockerfile b/docker/runner/Dockerfile deleted file mode 100644 index 2ed00e68..00000000 --- a/docker/runner/Dockerfile +++ /dev/null @@ -1,60 +0,0 @@ -FROM ubuntu:latest - -# Requirements for container: -# git (for everything) -# EMOD3D: -# libfftw3-dev -# libpapi-dev -# libopenmpi-dev -# gfortran -# cmake -# Workflow: -# sqlite3 (for NSHMDB) -# gmt + friends (for plotting) -# ffmpeg (for plotting) -# python-is-python3 (for my own sanity) -# python3-pip -RUN apt-get update && apt-get install -y \ - build-essential \ - cmake \ - ffmpeg \ - gdal-bin \ - gfortran \ - ghostscript \ - git \ - gmt \ - gmt \ - gmt-dcw \ - gmt-gshhg \ - graphicsmagick \ - libfftw3-dev \ - libopenmpi-dev \ - libpapi-dev \ - python-is-python3 \ - python3-pip \ - sqlite3 \ - wget -COPY EMOD3D EMOD3D -COPY nshmdb.db nshmdb.db -COPY genslip_velocity_model.vmod genslip_velocity_model.vmod -RUN cd /EMOD3D && \ - git checkout gcc14 && \ - mkdir build && \ - cd build && \ - cmake .. && \ - make genslip_v5.4.2 srf2stoch ll2xy xy2ll gen_model_cords -RUN wget "https://www.dropbox.com/scl/fi/xomwzo5xagrxzbdmm7z7w/Velocity-Model-1.0.0.tar.gz?rlkey=0vc6kevs851qos39kkmd4ffol&dl=0" -O /Velocity-Model.tar.gz && \ - tar xvf /Velocity-Model.tar.gz && \ - mv Velocity-Model-1.0.0 Velocity-Model && \ - cd Velocity-Model && \ - make parallel && \ - rm /Velocity-Model.tar.gz -RUN mkdir -p /usr/local/lib/python3.12/dist-packages/qcore/ && \ - wget 'https://www.dropbox.com/scl/fi/p5so9irbx43c9g96jr2qr/qcore_resources.tar.xz?rlkey=pgmn69e212c0zx0fauxuikgky&dl=0' -O /tmp/qcore-resources.tar.xz && \ - tar xvf /tmp/qcore-resources.tar.xz -C /usr/local/lib/python3.12/dist-packages/qcore/ && \ - rm /tmp/qcore-resources.tar.xz -ARG anchor cached -RUN pip install \ - "git+https://github.com/ucgmsim/workflow@pegasus" \ - --break-system-packages -ENV PATH="$PATH:/EMOD3D/tools:/Velocity-Model" diff --git a/docker/runner/runner.def b/docker/runner/runner.def index 8479c7fc..fc6025c7 100644 --- a/docker/runner/runner.def +++ b/docker/runner/runner.def @@ -29,12 +29,6 @@ From: ubuntu:latest sqlite3 \ wget - wget "https://www.dropbox.com/scl/fi/50kww45wpsnmtf3pn2okz/nshmdb.db?rlkey=4mjuomuevl1963fjwfximgldm&st=keryhkwb&dl=0" -O /nshmdb.db - wget "https://www.dropbox.com/scl/fi/b4m9g32x1j70ti69zyybq/genslip_velocity_model.vmod?rlkey=yxurhrdn8uvqh33hsb0inhsq0&st=o77aaccp&dl=0" -O /genslip_velocity_model.vmod - wget "https://www.dropbox.com/scl/fi/qakchhg6qu23aclcb02ye/Cant1D_v2-midQ_leer.1d?rlkey=wn1a6nnol2eaf5n6qsy5t1nym&st=8yahw7id&dl=0" -O /Cant1D_v2-midQ_leer.1d - wget "https://www.dropbox.com/scl/fi/pl7mw6022faskwtfsh67w/non_uniform_whole_nz_with_real_stations-hh400_v20p3_land.vs30?rlkey=0lfk9af25nrg6r5wl5j0z9t6a&st=vgwt4sv3&dl=0" -O /stations.vs30 - wget "https://www.dropbox.com/scl/fi/qifr4l9gmlzeqci5to1s4/non_uniform_whole_nz_with_real_stations-hh400_v20p3_land.ll?rlkey=al2afz1uh0swfekvmc56u9r89&st=p6veto2x&dl=0" -O /stations.ll - cd /EMOD3D && \ git checkout cylc && \ mkdir build && \ diff --git a/docker/testing/Dockerfile b/docker/testing/Dockerfile deleted file mode 100644 index 5d698cd5..00000000 --- a/docker/testing/Dockerfile +++ /dev/null @@ -1,49 +0,0 @@ -FROM ubuntu:latest - -# Requirements for container: -# git (for everything) -# EMOD3D: -# libfftw3-dev -# libpapi-dev -# libopenmpi-dev -# gfortran -# cmake -# Workflow: -# sqlite3 (for NSHMDB) -# gmt + friends (for plotting) -# ffmpeg (for plotting) -# python-is-python3 (for my own sanity) -# python3-pip -RUN apt-get update && apt-get install -y \ - build-essential \ - cmake \ - ffmpeg \ - gdal-bin \ - gfortran \ - ghostscript \ - git \ - gmt \ - gmt \ - gmt-dcw \ - gmt-gshhg \ - graphicsmagick \ - jq \ - libgmt-dev \ - libfftw3-dev \ - libopenmpi-dev \ - libpapi-dev \ - nodejs \ - python-is-python3 \ - python3-pip \ - sqlite3 \ - wget -COPY EMOD3D EMOD3D -COPY genslip_velocity_model.vmod genslip_velocity_model.vmod -RUN cd /EMOD3D && \ - git checkout gcc14 && \ - mkdir build && \ - cd build && \ - cmake .. && \ - make genslip_v5.4.2 srf2stoch ll2xy xy2ll gen_model_cords hb_high_binmod_v6.0.3 -RUN wget "https://www.dropbox.com/scl/fi/50kww45wpsnmtf3pn2okz/nshmdb.db?rlkey=4mjuomuevl1963fjwfximgldm&st=o5p83zab&dl=0" -O /nshmdb.db -ENV PATH="$PATH:/EMOD3D/tools" diff --git a/docker/testing/genslip_velocity_model.vmod b/docker/testing/genslip_velocity_model.vmod deleted file mode 100755 index a321a125..00000000 --- a/docker/testing/genslip_velocity_model.vmod +++ /dev/null @@ -1,35 +0,0 @@ -34 - 0.0500 1.8000 0.3800 1.8100 38.00 19.00 - 0.0500 1.8000 0.4800 1.8100 48.00 24.00 - 0.0500 1.8000 0.5800 1.8100 58.00 29.00 - 0.0500 1.8000 0.6800 1.8100 68.00 34.00 - 0.1000 1.8000 0.7500 1.8100 75.00 37.50 - 0.1000 1.8000 0.8300 1.8100 83.00 41.50 - 0.2000 1.9000 0.9000 1.8600 90.00 45.00 - 0.2000 2.0300 1.0000 1.9200 100.00 50.00 - 0.2000 2.1400 1.0500 1.9700 105.00 52.50 - 0.2000 2.2000 1.1000 1.9900 110.00 55.00 - 0.2000 2.4000 1.1500 2.0600 115.00 57.50 - 0.2000 2.7000 1.2000 2.1500 120.00 60.00 - 0.2000 3.0000 1.4300 2.2200 143.00 71.50 - 0.2000 3.2700 1.6400 2.2800 164.00 82.00 - 0.2000 3.5300 1.8600 2.3200 186.00 93.00 - 0.2000 3.8000 2.0700 2.3600 207.00 103.50 - 0.2000 4.0700 2.2800 2.4000 228.00 114.00 - 0.2000 4.3300 2.4900 2.4400 249.00 124.50 - 0.2000 4.6000 2.7000 2.4800 270.00 135.00 - 0.2000 4.7100 2.7700 2.4900 277.00 138.50 - 0.2000 4.8200 2.8400 2.5100 284.00 142.00 - 0.2000 4.9300 2.9100 2.5200 291.00 145.50 - 0.2000 5.0400 2.9800 2.5400 298.00 149.00 - 0.2000 5.1500 3.0500 2.5600 305.00 152.50 - 0.2000 5.2600 3.1200 2.5800 312.00 156.00 - 0.2000 5.3700 3.1900 2.6000 319.00 159.50 - 0.2000 5.4800 3.2600 2.6100 326.00 163.00 - 0.2000 5.5900 3.3300 2.6300 333.00 166.50 - 0.2000 5.7000 3.4000 2.6600 340.00 170.00 - 3.0000 6.0000 3.6000 2.7200 360.00 180.00 - 4.0000 6.0000 3.6000 2.7200 360.00 180.00 - 15.0000 6.5000 3.7000 2.8300 370.00 185.00 - 12.0000 7.5000 4.3000 3.1200 430.00 215.00 -999.0000 8.1000 4.6000 3.3300 460.00 230.00 From f3b0d655a1c5c62b8ebd559bfb8e64a955ecacee Mon Sep 17 00:00:00 2001 From: Jake Faulkner Date: Fri, 10 Jan 2025 10:18:39 +1300 Subject: [PATCH 04/26] move runner into top level directory --- {docker/runner => runner}/runner.def | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename {docker/runner => runner}/runner.def (100%) diff --git a/docker/runner/runner.def b/runner/runner.def similarity index 100% rename from docker/runner/runner.def rename to runner/runner.def From c62b0fd9f2176c049769ff50f4fc452d4284d62d Mon Sep 17 00:00:00 2001 From: Jake Faulkner Date: Fri, 17 Jan 2025 13:00:05 +1300 Subject: [PATCH 05/26] fix nshm2022-to-realisation imports --- requirements.txt | 1 + workflow/scripts/nshm2022_to_realisation.py | 2 -- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/requirements.txt b/requirements.txt index a6793abb..013e32f6 100644 --- a/requirements.txt +++ b/requirements.txt @@ -10,6 +10,7 @@ numexpr numpy<2 pandas printree +pykooh pygmt pygmt_helper @ git+https://github.com/ucgmsim/pygmt_helper pyarrow diff --git a/workflow/scripts/nshm2022_to_realisation.py b/workflow/scripts/nshm2022_to_realisation.py index 17df2de4..87c4ff97 100755 --- a/workflow/scripts/nshm2022_to_realisation.py +++ b/workflow/scripts/nshm2022_to_realisation.py @@ -44,9 +44,7 @@ from qcore.uncertainties import distributions, mag_scaling from source_modelling import rupture_propagation from source_modelling.sources import Fault -from workflow.defaults import ( from workflow.defaults import DefaultsVersion -) from workflow.log_utils import log_call from workflow.realisations import ( RealisationInput, From f6f32b7a65bf4aec51944b253b0d3249fa75227a Mon Sep 17 00:00:00 2001 From: Jake Faulkner Date: Fri, 17 Jan 2025 13:01:57 +1300 Subject: [PATCH 06/26] add docstring to to_dict method --- workflow/realisations.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/workflow/realisations.py b/workflow/realisations.py index faeafea5..5639f86c 100644 --- a/workflow/realisations.py +++ b/workflow/realisations.py @@ -600,6 +600,14 @@ def fetch_file(self, filepath: PurePath) -> Path: return registry.fetch_file(qcore_registry, filepath) def to_dict(self) -> dict: + """ + Convert the object to a dictionary representation. + + Returns + ------- + dict + Dictionary representation of the object. + """ obj_dict = dataclasses.asdict(self) obj_dict["files"] = {str(k): str(v) for k, v in self.files.items()} obj_dict["registry"] = {str(k): v for k, v in self.registry.items()} From 5bc04032dbd5684619a7551667186aadf405fd26 Mon Sep 17 00:00:00 2001 From: Jake Faulkner Date: Fri, 17 Jan 2025 13:37:23 +1300 Subject: [PATCH 07/26] Consistently use realisation inputs code --- workflow/scripts/check_srf.py | 14 +++++------ .../scripts/generate_station_coordinates.py | 23 +++++-------------- workflow/scripts/hf_sim.py | 22 ++++++++++++------ workflow/scripts/nshm2022_to_realisation.py | 6 ++--- workflow/scripts/plan_workflow.py | 1 - workflow/scripts/realisation_to_srf.py | 18 ++++++++------- 6 files changed, 41 insertions(+), 43 deletions(-) diff --git a/workflow/scripts/check_srf.py b/workflow/scripts/check_srf.py index d54e3859..c7de85b3 100644 --- a/workflow/scripts/check_srf.py +++ b/workflow/scripts/check_srf.py @@ -1,17 +1,17 @@ from pathlib import Path -from typing import Annotated +from typing import Annotated, Optional import numpy as np import typer +from velocity_modelling import velocity_model_1d from qcore.uncertainties import mag_scaling from source_modelling import srf from workflow import log_utils from workflow.realisations import ( - RealisationMetadata, + RealisationInput, RealisationParseError, RupturePropagationConfig, - VelocityModel1D, ) app = typer.Typer() @@ -24,6 +24,8 @@ def check_srf( Path, typer.Argument(help="The path to the realisation for the SRF.") ], srf_ffp: Annotated[Path, typer.Argument(help="The path to the SRF file to check.")], + velocity_model_path: Annotated[Path, typer.Argument(help='Path to 1D velocity model (in registry)')] = Path('default_1d_velocity_model'), + local_velocity_model_path: Annotated[Optional[Path], typer.Argument(help='Path to 1D velocity model (local file)')] = None, ): """Check an SRF's contents for viability. @@ -39,10 +41,8 @@ def check_srf( typer.Exit If any of the checks fail.typer.Exit """ - metadata = RealisationMetadata.read_from_realisation(realisation_ffp) - velocity_model = VelocityModel1D.read_from_realisation_or_defaults( - realisation_ffp, metadata.defaults_version - ).model + input = RealisationInput.read_from_realisation_or_defaults(realisation_ffp) + velocity_model = velocity_model_1d.read_velocity_model_1d(local_velocity_model_path or input.fetch_file(velocity_model_path)) velocity_model["mu"] = velocity_model["Vs"] ** 2 * velocity_model["rho"] * 1e10 velocity_model["depth"] = ( velocity_model["thickness"].cumsum() - velocity_model["thickness"] diff --git a/workflow/scripts/generate_station_coordinates.py b/workflow/scripts/generate_station_coordinates.py index 87be5a3f..154a201b 100644 --- a/workflow/scripts/generate_station_coordinates.py +++ b/workflow/scripts/generate_station_coordinates.py @@ -28,7 +28,7 @@ See the output of `generate-station-coordinates --help`. """ -from pathlib import Path, PurePath +from pathlib import Path from typing import Annotated, Optional import numpy as np @@ -53,10 +53,10 @@ def generate_fd_files( help="Output path for station files", file_okay=False, writable=True ), ], - stat_file: Annotated[ - Optional[PurePath], + stat_file_path: Annotated[ + Path, typer.Option(help="The location of the station file (from registry)."), - ], + ] = Path('default_station_file'), local_stat_file: Annotated[ Optional[Path], typer.Option( @@ -79,21 +79,10 @@ def generate_fd_files( stat_file : Path If True, keep stations whose gridpoint coordinates are identical. """ - if not local_stat_file and not stat_file: - print( - "You must specify either a local station file " - "(--local-stat-file) or a path in the registry (--stat-file)." - ) - raise typer.Exit(1) - - registry_local_path: Optional[Path] = None - - if stat_file: - realisation_input = RealisationInput.read_from_realisation_or_defaults(realisations_ffp) - registry_local_path = realisation_input.fetch_file(stat_file) output_path.mkdir(exist_ok=True) domain_parameters = DomainParameters.read_from_realisation(realisations_ffp) + input = RealisationInput.read_from_realisation_or_defaults(stat_file_path) # where to save gridpoint and longlat station files gp_out = output_path / "stations.statcords" @@ -101,7 +90,7 @@ def generate_fd_files( # retrieve in station names, latitudes and longitudes stations = pd.read_csv( - local_stat_file or registry_local_path, + local_stat_file or input.fetch_file(stat_file_path), delimiter=r"\s+", comment="#", names=["lon", "lat", "name"] diff --git a/workflow/scripts/hf_sim.py b/workflow/scripts/hf_sim.py index c5709776..3c201c6a 100644 --- a/workflow/scripts/hf_sim.py +++ b/workflow/scripts/hf_sim.py @@ -37,17 +37,19 @@ import subprocess import tempfile from pathlib import Path -from typing import Annotated +from typing import Annotated, Optional import h5py import numpy as np import pandas as pd import typer +from velocity_modelling import velocity_model_1d from workflow import log_utils, utils from workflow.realisations import ( DomainParameters, HFConfig, + RealisationInput, RealisationMetadata, Seeds, ) @@ -198,6 +200,12 @@ def run_hf( hf_sim_path: Annotated[Path, typer.Option(help="Path to HF sim binary")] = Path( "/EMOD3D/tools/hb_high_binmod_v6.0.3" ), + velocity_model_path: Annotated[ + Path, typer.Option(help="Path to velocity model (in registry)") + ] = Path("default_1d_velocity_model"), + local_velocity_model_path: Annotated[ + Optional[Path], typer.Option(help="Path to velocity model (local file)") + ] = None, work_directory: Annotated[ Path, typer.Option( @@ -240,9 +248,8 @@ def run_hf( seeds = Seeds.read_from_realisation_or_defaults(realisation_ffp) domain_parameters = DomainParameters.read_from_realisation(realisation_ffp) metadata = RealisationMetadata.read_from_realisation(realisation_ffp) - velocity_model = VelocityModel1D.read_from_realisation_or_defaults( - realisation_ffp, metadata.defaults_version - ) + input = RealisationInput.read_from_realisation_or_defaults(realisation_ffp) + velocity_model = velocity_model_1d.read_velocity_model_1d(local_velocity_model_path or input.fetch_file(velocity_model_path)) hf_config = HFConfig.read_from_realisation_or_defaults( realisation_ffp, metadata.defaults_version ) @@ -253,8 +260,9 @@ def run_hf( header=None, names=["longitude", "latitude", "name"], ) - velocity_model_path = work_directory / "velocity_model" - velocity_model.write_velocity_model(velocity_model_path) + + work_velocity_model_path = work_directory / "velocity_model" + velocity_model_1d.write_velocity_model_1d_plain_text(velocity_model, work_velocity_model_path) with multiprocessing.Pool(utils.get_available_cores()) as pool: stations["epicentre_distance"] = pool.starmap( functools.partial( @@ -262,7 +270,7 @@ def run_hf( hf_config, seeds, domain_parameters, - velocity_model_path, + work_velocity_model_path, stoch_ffp, work_directory, hf_sim_path, diff --git a/workflow/scripts/nshm2022_to_realisation.py b/workflow/scripts/nshm2022_to_realisation.py index 87c4ff97..efd33217 100755 --- a/workflow/scripts/nshm2022_to_realisation.py +++ b/workflow/scripts/nshm2022_to_realisation.py @@ -34,7 +34,7 @@ See the output of `nshm2022-to-realisation --help`. """ -from pathlib import Path, PurePath +from pathlib import Path from typing import Annotated, Optional import numpy as np @@ -130,8 +130,8 @@ def generate_realisation( typer.Argument(help="Scientific default parameters version to use"), ], nshmdb_path: Annotated[ - PurePath, typer.Option(help="Path to NSHMDB (in container).") - ] = PurePath("nshmdb.db"), + Path, typer.Option(help="Path to NSHMDB (in container).") + ] = Path("nshmdb.db"), local_nshmdb_path: Annotated[ Optional[Path], typer.Option(help="Path to local NSHMDB.", readable=True, exists=True), diff --git a/workflow/scripts/plan_workflow.py b/workflow/scripts/plan_workflow.py index 5c036b1e..a9424dc9 100644 --- a/workflow/scripts/plan_workflow.py +++ b/workflow/scripts/plan_workflow.py @@ -612,7 +612,6 @@ def build_filetree(root_path: PurePath, files: set[PurePath]) -> dict[str, Any]: realisations.RupturePropagationConfig._config_key: "Configuration for rupture propagation.", realisations.DomainParameters._config_key: "Parameters defining the spatial and temporal domain for simulation.", realisations.VelocityModelParameters._config_key: "Parameters defining the velocity model.", - realisations.VelocityModel1D._config_key: "1D Velocity Model for SRF and HF.", realisations.HFConfig._config_key: "High frequency simulation configuration.", realisations.EMOD3DParameters._config_key: "Parameters for EMOD3D LF simulation.", realisations.BroadbandParameters._config_key: "Parameters for broadband waveform merger.", diff --git a/workflow/scripts/realisation_to_srf.py b/workflow/scripts/realisation_to_srf.py index 5bd2dea4..6123306a 100644 --- a/workflow/scripts/realisation_to_srf.py +++ b/workflow/scripts/realisation_to_srf.py @@ -42,7 +42,7 @@ import shutil import subprocess from collections.abc import Iterable -from pathlib import Path, PurePath +from pathlib import Path from typing import Annotated, Optional import numpy as np @@ -51,6 +51,7 @@ import scipy as sp import typer from scipy.sparse import csr_array +from velocity_modelling import velocity_model_1d from qcore import coordinates, grid, gsf from source_modelling import rupture_propagation, srf @@ -387,7 +388,7 @@ def generate_fault_srfs_parallel( output_directory: Path, srf_config: SRFConfig, seeds: Seeds, - velocity_model_path: Path, + velocity_model: pd.DataFrame, genslip_path: Path, ): """Generate fault SRF files in parallel. @@ -406,6 +407,8 @@ def generate_fault_srfs_parallel( gsf_directory.mkdir(exist_ok=True) srf_directory = output_directory / "srf" srf_directory.mkdir(exist_ok=True) + velocity_model_path =output_directory / 'velocity_model' + velocity_model_1d.write_velocity_model_1d_plain_text(velocity_model) magnitudes = rupture_propagation_config.magnitudes rakes = rupture_propagation_config.rakes @@ -435,7 +438,7 @@ def generate_fault_srfs_parallel( output_directory=output_directory, srf_config=srf_config, genslip_path=genslip_path, - velocity_model_path=velocity_model_path, + velocity_model=velocity_model_path, seeds=seeds, ), srf_generation_parameters, @@ -469,8 +472,8 @@ def generate_srf( ), ] = Path("/out"), velocity_model_path: Annotated[ - PurePath, typer.Option(help="Path to velocity model (in registry).") - ] = PurePath("default_1d_velocity_model"), + Path, typer.Option(help="Path to velocity model (in registry).") + ] = Path("default_1d_velocity_model"), local_velocity_model_path: Annotated[ Optional[Path], typer.Option(help="Path to local 1d velocity model.") ] = None, @@ -511,6 +514,7 @@ def generate_srf( realisation_input = RealisationInput.read_from_realisation_or_defaults( realisation_ffp ) + velocity_model = velocity_model_1d.read_velocity_model_1d(local_velocity_model_path or realisation_input.fetch_file(velocity_model_path)) source_config = SourceConfig.read_from_realisation(realisation_ffp) @@ -520,9 +524,7 @@ def generate_srf( work_directory, srf_config, seeds, - local_velocity_model_path - if local_velocity_model_path - else realisation_input.fetch_file(velocity_model_path), + velocity_model, genslip_path, ) srf_name = normalise_name(metadata.name) From 5ef18469b5add7bf65bb586836f5dd643d6bacf3 Mon Sep 17 00:00:00 2001 From: Jake Faulkner Date: Fri, 17 Jan 2025 13:52:27 +1300 Subject: [PATCH 08/26] simplify nshmdb logic for nshm2022-to-realisation --- workflow/scripts/nshm2022_to_realisation.py | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/workflow/scripts/nshm2022_to_realisation.py b/workflow/scripts/nshm2022_to_realisation.py index efd33217..4e47fa9e 100755 --- a/workflow/scripts/nshm2022_to_realisation.py +++ b/workflow/scripts/nshm2022_to_realisation.py @@ -166,12 +166,8 @@ def generate_realisation( ) metadata.write_to_realisation(realisation_ffp) inputs = RealisationInput.read_from_realisation_or_defaults(realisation_ffp) - - if local_nshmdb_path: - db = nshmdb.NSHMDB(local_nshmdb_path) - else: - db = nshmdb.NSHMDB(inputs.fetch_file(nshmdb_path)) - + db = nshmdb.NSHMDB(local_nshmdb_path or inputs.fetch_file(nshmdb_path)) + faults = db.get_rupture_faults(rupture_id) faults_info = db.get_rupture_fault_info(rupture_id) seeds = Seeds.read_from_realisation_or_defaults(realisation_ffp) From 958024f0bed657e360f3a0e84f150ff0cdf18af4 Mon Sep 17 00:00:00 2001 From: Jake Faulkner Date: Fri, 17 Jan 2025 14:16:03 +1300 Subject: [PATCH 09/26] ruff + write velocity model path in the right place --- tests/test_bb.py | 36 +++++++++++-------- tests/test_generate_stations.py | 14 ++++++-- tests/test_hf.py | 7 ++-- tests/test_nshm_to_realisation.py | 9 +++-- tests/test_velocity_model_parameters.py | 9 +++-- workflow/scripts/check_srf.py | 12 +++++-- .../scripts/generate_station_coordinates.py | 4 +-- .../generate_velocity_model_parameters.py | 7 ++-- workflow/scripts/hf_sim.py | 8 +++-- workflow/scripts/nshm2022_to_realisation.py | 2 +- workflow/scripts/realisation_to_srf.py | 12 ++++--- 11 files changed, 80 insertions(+), 40 deletions(-) diff --git a/tests/test_bb.py b/tests/test_bb.py index ba806d97..fd961a4c 100644 --- a/tests/test_bb.py +++ b/tests/test_bb.py @@ -7,26 +7,34 @@ from workflow.scripts import bb_sim -@pytest.mark.parametrize('realisation,vs3dfile_url', [('2013p552776','https://www.dropbox.com/scl/fi/r41dwth8wo2r5mgxdw05r/vs3dfile.s?rlkey=s36skaejia56ug119pppyc2rb&st=fdm9v6ns&dl=0')]) +@pytest.mark.parametrize( + "realisation,vs3dfile_url", + [ + ( + "2013p552776", + "https://www.dropbox.com/scl/fi/r41dwth8wo2r5mgxdw05r/vs3dfile.s?rlkey=s36skaejia56ug119pppyc2rb&st=fdm9v6ns&dl=0", + ) + ], +) def test_bb_sim_2013p552776(tmp_path: Path, realisation: str, vs3dfile_url: str): - bb_test_data_path = Path('tests') / 'bb' / realisation - expected_bb_path = bb_test_data_path / 'BB_expected.bin' - output_bb_path = tmp_path / 'BB.bin' - work_directory = tmp_path / 'work' + bb_test_data_path = Path("tests") / "bb" / realisation + expected_bb_path = bb_test_data_path / "BB_expected.bin" + output_bb_path = tmp_path / "BB.bin" + work_directory = tmp_path / "work" work_directory.mkdir() - vm_path = tmp_path / 'VM' + vm_path = tmp_path / "VM" vm_path.mkdir(exist_ok=True) - subprocess.check_call(['wget', vs3dfile_url, '-O', str(vm_path / 'vs3dfile.s')]) + subprocess.check_call(["wget", vs3dfile_url, "-O", str(vm_path / "vs3dfile.s")]) bb_sim.combine_hf_and_lf( - bb_test_data_path / 'realisation.json', - bb_test_data_path / 'stations.ll', - bb_test_data_path / 'stations.vs30', + bb_test_data_path / "realisation.json", + bb_test_data_path / "stations.ll", + bb_test_data_path / "stations.vs30", # NOTE: Even though it feels like you can remove the OutBin # directory, this *will* cause the tests to fail... - bb_test_data_path / 'LF' / 'OutBin', - bb_test_data_path / 'HF.bin', + bb_test_data_path / "LF" / "OutBin", + bb_test_data_path / "HF.bin", vm_path, output_bb_path, - work_directory=work_directory + work_directory=work_directory, ) - assert filecmp.cmp(tmp_path / 'BB.bin', expected_bb_path, shallow=False) + assert filecmp.cmp(tmp_path / "BB.bin", expected_bb_path, shallow=False) diff --git a/tests/test_generate_stations.py b/tests/test_generate_stations.py index f5c33e18..b9aab83a 100644 --- a/tests/test_generate_stations.py +++ b/tests/test_generate_stations.py @@ -23,12 +23,16 @@ def test_station_coordinates( ) output_statlines = output_statcords.read_text().split("\n") expected_statlines = expected_statcords.read_text().split("\n") - diff = list(difflib.unified_diff(expected_statlines, output_statlines, fromfile='expected', tofile='actual')) + diff = list( + difflib.unified_diff( + expected_statlines, output_statlines, fromfile="expected", tofile="actual" + ) + ) assert diff == [], "Unexpected file contents:\n" + "\n".join(diff) def test_dummy_scenario(tmp_path: Path): - dummy_directory = STATIONS_INPUT / 'dummy' + dummy_directory = STATIONS_INPUT / "dummy" station_path = dummy_directory / "stations.ll" realisation_path = dummy_directory / "realisation.json" expected_statcords = dummy_directory / "stations.statcords" @@ -38,5 +42,9 @@ def test_dummy_scenario(tmp_path: Path): ) output_statlines = output_statcords.read_text().split("\n") expected_statlines = expected_statcords.read_text().split("\n") - diff = list(difflib.unified_diff(expected_statlines, output_statlines, fromfile='expected', tofile='actual')) + diff = list( + difflib.unified_diff( + expected_statlines, output_statlines, fromfile="expected", tofile="actual" + ) + ) assert diff == [], "Unexpected file contents:\n" + "\n".join(diff) diff --git a/tests/test_hf.py b/tests/test_hf.py index 4c1f3c48..bc110844 100644 --- a/tests/test_hf.py +++ b/tests/test_hf.py @@ -44,9 +44,10 @@ def test_hf_output( assert ( os.stat(tmp_path / "output.hf").st_size == os.stat(expected_output_hf).st_size ) - with open(tmp_path / "output.hf", "rb") as test_output, open( - expected_output_hf, "rb" - ) as expected_output: + with ( + open(tmp_path / "output.hf", "rb") as test_output, + open(expected_output_hf, "rb") as expected_output, + ): header_size = 288 stations_output_size = 24 * expected_station_count offset = 512 diff --git a/tests/test_nshm_to_realisation.py b/tests/test_nshm_to_realisation.py index ce12031d..6c8ecd6e 100644 --- a/tests/test_nshm_to_realisation.py +++ b/tests/test_nshm_to_realisation.py @@ -15,7 +15,10 @@ def test_nshm_to_realisation(nshmdb_path: Path, tmp_path: Path, rupture_id: int) nshm2022_to_realisation.generate_realisation( nshmdb_path, rupture_id, realisation_path, DefaultsVersion.v24_2_2_1 ) - with open(realisation_path, "r") as generated_realisation, open( - REALISATION_FILES / f"rupture_{rupture_id}.json", "r" - ) as expected_realisation: + with ( + open(realisation_path, "r") as generated_realisation, + open( + REALISATION_FILES / f"rupture_{rupture_id}.json", "r" + ) as expected_realisation, + ): assert json.load(generated_realisation) == json.load(expected_realisation) diff --git a/tests/test_velocity_model_parameters.py b/tests/test_velocity_model_parameters.py index 742a381f..58ce09dc 100644 --- a/tests/test_velocity_model_parameters.py +++ b/tests/test_velocity_model_parameters.py @@ -21,7 +21,10 @@ def test_velocity_model_parameter_generation(tmp_path: Path, rupture_id: int): generate_velocity_model_parameters.generate_velocity_model_parameters( test_realisation_path ) - with open(test_realisation_path, "r") as test_realisation, open( - CORRECT_REALISATION_FILES / f"rupture_{rupture_id}.json", "r" - ) as correct_realisation: + with ( + open(test_realisation_path, "r") as test_realisation, + open( + CORRECT_REALISATION_FILES / f"rupture_{rupture_id}.json", "r" + ) as correct_realisation, + ): assert json.load(test_realisation) == json.load(correct_realisation) diff --git a/workflow/scripts/check_srf.py b/workflow/scripts/check_srf.py index c7de85b3..0fc79f98 100644 --- a/workflow/scripts/check_srf.py +++ b/workflow/scripts/check_srf.py @@ -24,8 +24,12 @@ def check_srf( Path, typer.Argument(help="The path to the realisation for the SRF.") ], srf_ffp: Annotated[Path, typer.Argument(help="The path to the SRF file to check.")], - velocity_model_path: Annotated[Path, typer.Argument(help='Path to 1D velocity model (in registry)')] = Path('default_1d_velocity_model'), - local_velocity_model_path: Annotated[Optional[Path], typer.Argument(help='Path to 1D velocity model (local file)')] = None, + velocity_model_path: Annotated[ + Path, typer.Argument(help="Path to 1D velocity model (in registry)") + ] = Path("default_1d_velocity_model"), + local_velocity_model_path: Annotated[ + Optional[Path], typer.Argument(help="Path to 1D velocity model (local file)") + ] = None, ): """Check an SRF's contents for viability. @@ -42,7 +46,9 @@ def check_srf( If any of the checks fail.typer.Exit """ input = RealisationInput.read_from_realisation_or_defaults(realisation_ffp) - velocity_model = velocity_model_1d.read_velocity_model_1d(local_velocity_model_path or input.fetch_file(velocity_model_path)) + velocity_model = velocity_model_1d.read_velocity_model_1d( + local_velocity_model_path or input.fetch_file(velocity_model_path) + ) velocity_model["mu"] = velocity_model["Vs"] ** 2 * velocity_model["rho"] * 1e10 velocity_model["depth"] = ( velocity_model["thickness"].cumsum() - velocity_model["thickness"] diff --git a/workflow/scripts/generate_station_coordinates.py b/workflow/scripts/generate_station_coordinates.py index 154a201b..fdbeb6a0 100644 --- a/workflow/scripts/generate_station_coordinates.py +++ b/workflow/scripts/generate_station_coordinates.py @@ -56,7 +56,7 @@ def generate_fd_files( stat_file_path: Annotated[ Path, typer.Option(help="The location of the station file (from registry)."), - ] = Path('default_station_file'), + ] = Path("default_station_file"), local_stat_file: Annotated[ Optional[Path], typer.Option( @@ -93,7 +93,7 @@ def generate_fd_files( local_stat_file or input.fetch_file(stat_file_path), delimiter=r"\s+", comment="#", - names=["lon", "lat", "name"] + names=["lon", "lat", "name"], ) in_domain_mask = domain_parameters.domain.contains( diff --git a/workflow/scripts/generate_velocity_model_parameters.py b/workflow/scripts/generate_velocity_model_parameters.py index 25e7a9bb..a7f04d2d 100644 --- a/workflow/scripts/generate_velocity_model_parameters.py +++ b/workflow/scripts/generate_velocity_model_parameters.py @@ -85,7 +85,6 @@ def get_nz_outline_polygon() -> Polygon: return shapely.union(south_island, north_island) - def estimate_simulation_duration( bounding_box: BoundingBox, magnitude: float, @@ -255,7 +254,11 @@ def generate_velocity_model_parameters( rupture_magnitude = total_magnitude(np.array(list(magnitudes.values()))) rrups = { - fault_name: np.interp(magnitudes[fault_name], velocity_model_parameters.rrup_interpolants[:, 0], velocity_model_parameters.rrup_interpolants[:, 1]) + fault_name: np.interp( + magnitudes[fault_name], + velocity_model_parameters.rrup_interpolants[:, 0], + velocity_model_parameters.rrup_interpolants[:, 1], + ) for fault_name, fault in source_config.source_geometries.items() } logger = log_utils.get_logger(__name__) diff --git a/workflow/scripts/hf_sim.py b/workflow/scripts/hf_sim.py index 3c201c6a..d3c69ef6 100644 --- a/workflow/scripts/hf_sim.py +++ b/workflow/scripts/hf_sim.py @@ -249,7 +249,9 @@ def run_hf( domain_parameters = DomainParameters.read_from_realisation(realisation_ffp) metadata = RealisationMetadata.read_from_realisation(realisation_ffp) input = RealisationInput.read_from_realisation_or_defaults(realisation_ffp) - velocity_model = velocity_model_1d.read_velocity_model_1d(local_velocity_model_path or input.fetch_file(velocity_model_path)) + velocity_model = velocity_model_1d.read_velocity_model_1d( + local_velocity_model_path or input.fetch_file(velocity_model_path) + ) hf_config = HFConfig.read_from_realisation_or_defaults( realisation_ffp, metadata.defaults_version ) @@ -262,7 +264,9 @@ def run_hf( ) work_velocity_model_path = work_directory / "velocity_model" - velocity_model_1d.write_velocity_model_1d_plain_text(velocity_model, work_velocity_model_path) + velocity_model_1d.write_velocity_model_1d_plain_text( + velocity_model, work_velocity_model_path + ) with multiprocessing.Pool(utils.get_available_cores()) as pool: stations["epicentre_distance"] = pool.starmap( functools.partial( diff --git a/workflow/scripts/nshm2022_to_realisation.py b/workflow/scripts/nshm2022_to_realisation.py index 4e47fa9e..2d501a92 100755 --- a/workflow/scripts/nshm2022_to_realisation.py +++ b/workflow/scripts/nshm2022_to_realisation.py @@ -167,7 +167,7 @@ def generate_realisation( metadata.write_to_realisation(realisation_ffp) inputs = RealisationInput.read_from_realisation_or_defaults(realisation_ffp) db = nshmdb.NSHMDB(local_nshmdb_path or inputs.fetch_file(nshmdb_path)) - + faults = db.get_rupture_faults(rupture_id) faults_info = db.get_rupture_fault_info(rupture_id) seeds = Seeds.read_from_realisation_or_defaults(realisation_ffp) diff --git a/workflow/scripts/realisation_to_srf.py b/workflow/scripts/realisation_to_srf.py index 6123306a..0e0ed8d5 100644 --- a/workflow/scripts/realisation_to_srf.py +++ b/workflow/scripts/realisation_to_srf.py @@ -407,8 +407,10 @@ def generate_fault_srfs_parallel( gsf_directory.mkdir(exist_ok=True) srf_directory = output_directory / "srf" srf_directory.mkdir(exist_ok=True) - velocity_model_path =output_directory / 'velocity_model' - velocity_model_1d.write_velocity_model_1d_plain_text(velocity_model) + velocity_model_path = output_directory / "velocity_model" + velocity_model_1d.write_velocity_model_1d_plain_text( + velocity_model, velocity_model_path + ) magnitudes = rupture_propagation_config.magnitudes rakes = rupture_propagation_config.rakes @@ -438,7 +440,7 @@ def generate_fault_srfs_parallel( output_directory=output_directory, srf_config=srf_config, genslip_path=genslip_path, - velocity_model=velocity_model_path, + velocity_model_path=velocity_model_path, seeds=seeds, ), srf_generation_parameters, @@ -514,7 +516,9 @@ def generate_srf( realisation_input = RealisationInput.read_from_realisation_or_defaults( realisation_ffp ) - velocity_model = velocity_model_1d.read_velocity_model_1d(local_velocity_model_path or realisation_input.fetch_file(velocity_model_path)) + velocity_model = velocity_model_1d.read_velocity_model_1d( + local_velocity_model_path or realisation_input.fetch_file(velocity_model_path) + ) source_config = SourceConfig.read_from_realisation(realisation_ffp) From 3156543e3833cb502e576fa2c346b07ecb93bdfe Mon Sep 17 00:00:00 2001 From: Jake Faulkner Date: Fri, 17 Jan 2025 14:20:52 +1300 Subject: [PATCH 10/26] update check-srf to use new top_depth column --- workflow/scripts/check_srf.py | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/workflow/scripts/check_srf.py b/workflow/scripts/check_srf.py index 0fc79f98..28942732 100644 --- a/workflow/scripts/check_srf.py +++ b/workflow/scripts/check_srf.py @@ -50,14 +50,11 @@ def check_srf( local_velocity_model_path or input.fetch_file(velocity_model_path) ) velocity_model["mu"] = velocity_model["Vs"] ** 2 * velocity_model["rho"] * 1e10 - velocity_model["depth"] = ( - velocity_model["thickness"].cumsum() - velocity_model["thickness"] - ) - + srf_file = srf.read_srf(srf_ffp) indices = np.minimum( - len(velocity_model["depth"]) - 1, - np.searchsorted(velocity_model["depth"], srf_file.points["dep"]), + len(velocity_model["top_depth"]) - 1, + np.searchsorted(velocity_model["top_depth"], srf_file.points["dep"]), ) mu = velocity_model["mu"].iloc[indices].values srf_magnitude = mag_scaling.mom2mag( From 2bc01efd7f7d1ca3e33fe72ce08356d149b52419 Mon Sep 17 00:00:00 2001 From: Jake Faulkner Date: Fri, 17 Jan 2025 14:22:22 +1300 Subject: [PATCH 11/26] check-srf: velocity model paths are options --- workflow/scripts/check_srf.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/workflow/scripts/check_srf.py b/workflow/scripts/check_srf.py index 28942732..6fcee803 100644 --- a/workflow/scripts/check_srf.py +++ b/workflow/scripts/check_srf.py @@ -25,10 +25,10 @@ def check_srf( ], srf_ffp: Annotated[Path, typer.Argument(help="The path to the SRF file to check.")], velocity_model_path: Annotated[ - Path, typer.Argument(help="Path to 1D velocity model (in registry)") + Path, typer.Option(help="Path to 1D velocity model (in registry)") ] = Path("default_1d_velocity_model"), local_velocity_model_path: Annotated[ - Optional[Path], typer.Argument(help="Path to 1D velocity model (local file)") + Optional[Path], typer.Option(help="Path to 1D velocity model (local file)") ] = None, ): """Check an SRF's contents for viability. From bc1f0f8b206e445108b86c8d18faa64984b2aaf8 Mon Sep 17 00:00:00 2001 From: Jake Faulkner Date: Fri, 17 Jan 2025 14:32:37 +1300 Subject: [PATCH 12/26] update default station file location --- workflow/scripts/generate_station_coordinates.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/workflow/scripts/generate_station_coordinates.py b/workflow/scripts/generate_station_coordinates.py index fdbeb6a0..26773173 100644 --- a/workflow/scripts/generate_station_coordinates.py +++ b/workflow/scripts/generate_station_coordinates.py @@ -56,7 +56,7 @@ def generate_fd_files( stat_file_path: Annotated[ Path, typer.Option(help="The location of the station file (from registry)."), - ] = Path("default_station_file"), + ] = Path("default_stations_file.ll"), local_stat_file: Annotated[ Optional[Path], typer.Option( From c7d3479d96d4fba47b4cf92781e466916d723ab0 Mon Sep 17 00:00:00 2001 From: Jake Faulkner Date: Fri, 17 Jan 2025 14:34:35 +1300 Subject: [PATCH 13/26] fix input loading for station file --- workflow/scripts/generate_station_coordinates.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/workflow/scripts/generate_station_coordinates.py b/workflow/scripts/generate_station_coordinates.py index 26773173..b3971814 100644 --- a/workflow/scripts/generate_station_coordinates.py +++ b/workflow/scripts/generate_station_coordinates.py @@ -82,7 +82,7 @@ def generate_fd_files( output_path.mkdir(exist_ok=True) domain_parameters = DomainParameters.read_from_realisation(realisations_ffp) - input = RealisationInput.read_from_realisation_or_defaults(stat_file_path) + input = RealisationInput.read_from_realisation_or_defaults(realisations_ffp) # where to save gridpoint and longlat station files gp_out = output_path / "stations.statcords" From 9430d1c18f00ec4d5453a75d6b16a4d968cc7c3f Mon Sep 17 00:00:00 2001 From: Jake Faulkner Date: Fri, 17 Jan 2025 14:38:08 +1300 Subject: [PATCH 14/26] fix(hf-sim): hf-sim needs filepath for station vs30 --- workflow/scripts/hf_sim.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/workflow/scripts/hf_sim.py b/workflow/scripts/hf_sim.py index d3c69ef6..651be9c7 100644 --- a/workflow/scripts/hf_sim.py +++ b/workflow/scripts/hf_sim.py @@ -195,7 +195,7 @@ def run_hf( Path, typer.Argument(help="Location of station file.", exists=True) ], out_file: Annotated[ - Path, typer.Argument(help="Filepath for HF output.", file_okay=False) + Path, typer.Argument(help="Filepath for HF output.") ], hf_sim_path: Annotated[Path, typer.Option(help="Path to HF sim binary")] = Path( "/EMOD3D/tools/hb_high_binmod_v6.0.3" From 0a342ad8ece6f7736d94a9c8c15286db0afaa00e Mon Sep 17 00:00:00 2001 From: Jake Faulkner Date: Fri, 17 Jan 2025 14:39:01 +1300 Subject: [PATCH 15/26] fix(hf-sim): remove broken reference to .model --- workflow/scripts/hf_sim.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/workflow/scripts/hf_sim.py b/workflow/scripts/hf_sim.py index 651be9c7..1176431d 100644 --- a/workflow/scripts/hf_sim.py +++ b/workflow/scripts/hf_sim.py @@ -285,7 +285,7 @@ def run_hf( np.float32 ) - vs = velocity_model.model["Vs"].iloc[0] * 1000 + vs = velocity_model["Vs"].iloc[0] * 1000 stations["vs"] = vs nt = int(domain_parameters.duration / hf_config.dt) From 18b6aa1c4a44d2479885aa643ebed32b6eb8ea85 Mon Sep 17 00:00:00 2001 From: Jake Faulkner Date: Fri, 17 Jan 2025 15:54:32 +1300 Subject: [PATCH 16/26] Update station files to read from the registry --- workflow/scripts/bb_sim.py | 28 ++++++++++--------- .../scripts/generate_station_coordinates.py | 11 +++----- 2 files changed, 19 insertions(+), 20 deletions(-) diff --git a/workflow/scripts/bb_sim.py b/workflow/scripts/bb_sim.py index 14b2417b..7c2ee94b 100644 --- a/workflow/scripts/bb_sim.py +++ b/workflow/scripts/bb_sim.py @@ -33,7 +33,7 @@ import functools import multiprocessing from pathlib import Path -from typing import Annotated +from typing import Annotated, Optional import h5py import numpy as np @@ -47,6 +47,7 @@ from workflow.realisations import ( BroadbandParameters, DomainParameters, + RealisationInput, RealisationMetadata, ) @@ -176,12 +177,6 @@ def combine_hf_and_lf( Path, typer.Argument(help="Path to realisation file", dir_okay=False, exists=True), ], - station_vs30_ffp: Annotated[ - Path, - typer.Argument( - help="Station VS30 reference values.", dir_okay=False, exists=True - ), - ], low_frequency_waveform_directory: Annotated[ Path, typer.Argument( @@ -209,6 +204,16 @@ def combine_hf_and_lf( help="Path to output broadband file.", dir_okay=False, writable=True ), ], + station_vs30_ffp: Annotated[ + Path, + typer.Option(help="The station file to use (from registry)."), + ] = Path("default_stations_file"), + local_station_vs30_ffp: Annotated[ + Optional[Path], + typer.Option( + help="The station file to use (local file).", dir_okay=False, exists=True + ), + ] = None, ): """Combine low-frequency and high-frequency seismic waveforms. @@ -237,6 +242,7 @@ def combine_hf_and_lf( lf = timeseries.LFSeis(low_frequency_waveform_directory) hf = h5py.File(high_frequency_waveform_file, mode="r") metadata = RealisationMetadata.read_from_realisation(realisation_ffp) + input = RealisationInput.read_from_realisation_or_defaults(realisation_ffp) broadband_config = BroadbandParameters.read_from_realisation_or_defaults( realisation_ffp, metadata.defaults_version ) @@ -307,12 +313,8 @@ def combine_hf_and_lf( # ensure that LF and HF agree on station list, sometimes LF can drop a station or two stations = stations.loc[lf.stations["name"]] - station_vs30 = pd.read_csv( - station_vs30_ffp, - delimiter=r"\s+", - header=None, - names=["name", "vs30"], - ).set_index("name") + station_vs30 = pd.read_parquet(local_station_vs30_ffp or input.fetch_file(station_vs30_ffp)) + station_vs30 = station_vs30.index.rename('name') stations = stations.join(station_vs30, how="inner") with multiprocessing.Pool(utils.get_available_cores()) as pool: diff --git a/workflow/scripts/generate_station_coordinates.py b/workflow/scripts/generate_station_coordinates.py index b3971814..92cbc91e 100644 --- a/workflow/scripts/generate_station_coordinates.py +++ b/workflow/scripts/generate_station_coordinates.py @@ -56,7 +56,7 @@ def generate_fd_files( stat_file_path: Annotated[ Path, typer.Option(help="The location of the station file (from registry)."), - ] = Path("default_stations_file.ll"), + ] = Path("default_stations_file"), local_stat_file: Annotated[ Optional[Path], typer.Option( @@ -89,20 +89,17 @@ def generate_fd_files( ll_out = output_path / "stations.ll" # retrieve in station names, latitudes and longitudes - stations = pd.read_csv( + stations = pd.read_parquet( local_stat_file or input.fetch_file(stat_file_path), - delimiter=r"\s+", - comment="#", - names=["lon", "lat", "name"], ) in_domain_mask = domain_parameters.domain.contains( - stations[["lat", "lon"]].to_numpy() + stations[["latitude", "longitude"]].to_numpy() ) stations = stations.loc[in_domain_mask] # convert ll to grid points xy = domain_parameters.domain.wgs_depth_coordinates_to_local_coordinates( - stations[["lat", "lon"]].to_numpy() + stations[["latitude", "longitude"]].to_numpy() ) stations["x"] = np.round( From dc41bf77d075020023cba82c659314cd060bbee5 Mon Sep 17 00:00:00 2001 From: Jake Faulkner Date: Fri, 17 Jan 2025 16:04:30 +1300 Subject: [PATCH 17/26] really really convert station x,y to int this time --- workflow/scripts/generate_station_coordinates.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/workflow/scripts/generate_station_coordinates.py b/workflow/scripts/generate_station_coordinates.py index 92cbc91e..33be094b 100644 --- a/workflow/scripts/generate_station_coordinates.py +++ b/workflow/scripts/generate_station_coordinates.py @@ -126,7 +126,7 @@ def generate_fd_files( # x, y, z, name stations.apply( lambda station: gpf.write( - f"{station['x']:5d} {station['y']:5d} {1:5d} {station['name']}\n" + f"{station['x'].astype(int):5d} {station['y'].astype(int):5d} {1:5d} {station['name']}\n" ), axis=1, ) From d66f261246856e2da50aea1e4940a0e18701a0a1 Mon Sep 17 00:00:00 2001 From: Jake Faulkner Date: Fri, 17 Jan 2025 16:05:43 +1300 Subject: [PATCH 18/26] use index name for station x y --- workflow/scripts/generate_station_coordinates.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/workflow/scripts/generate_station_coordinates.py b/workflow/scripts/generate_station_coordinates.py index 33be094b..aea020a3 100644 --- a/workflow/scripts/generate_station_coordinates.py +++ b/workflow/scripts/generate_station_coordinates.py @@ -123,10 +123,10 @@ def generate_fd_files( with open(gp_out, "w", encoding="utf-8") as gpf: # file starts with number of entries gpf.write(f"{len(stations)}\n") - # x, y, z, name + # x, y, z, station stations.apply( lambda station: gpf.write( - f"{station['x'].astype(int):5d} {station['y'].astype(int):5d} {1:5d} {station['name']}\n" + f"{station['x'].astype(int):5d} {station['y'].astype(int):5d} {1:5d} {station.index.value}\n" ), axis=1, ) From 6f57c208bdddf931bb1383ebc4ce0f00312e2c0d Mon Sep 17 00:00:00 2001 From: Jake Faulkner Date: Fri, 17 Jan 2025 16:07:49 +1300 Subject: [PATCH 19/26] use the .name accessor for indices --- workflow/scripts/generate_station_coordinates.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/workflow/scripts/generate_station_coordinates.py b/workflow/scripts/generate_station_coordinates.py index aea020a3..f5d20c51 100644 --- a/workflow/scripts/generate_station_coordinates.py +++ b/workflow/scripts/generate_station_coordinates.py @@ -126,7 +126,7 @@ def generate_fd_files( # x, y, z, station stations.apply( lambda station: gpf.write( - f"{station['x'].astype(int):5d} {station['y'].astype(int):5d} {1:5d} {station.index.value}\n" + f"{station['x'].astype(int):5d} {station['y'].astype(int):5d} {1:5d} {station.name}\n" ), axis=1, ) From b767d72d1b13dfd6074e9dbe32eb8370daf1ab63 Mon Sep 17 00:00:00 2001 From: Jake Faulkner Date: Fri, 17 Jan 2025 16:10:21 +1300 Subject: [PATCH 20/26] fix(generate-station-coordinates): consistently access stations --- workflow/scripts/generate_station_coordinates.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/workflow/scripts/generate_station_coordinates.py b/workflow/scripts/generate_station_coordinates.py index f5d20c51..4241cece 100644 --- a/workflow/scripts/generate_station_coordinates.py +++ b/workflow/scripts/generate_station_coordinates.py @@ -149,7 +149,7 @@ def generate_fd_files( with open(ll_out, "w", encoding="utf-8") as llf: stations.apply( lambda station: llf.write( - f"{station['grid_lon']:11.5f} {station['grid_lat']:11.5f} {station['name']}\n" + f"{station['grid_lon']:11.5f} {station['grid_lat']:11.5f} {station.name}\n" ), axis=1, ) From bcc761defc571d3892ee71a3293b1d006f266f9c Mon Sep 17 00:00:00 2001 From: Jake Faulkner Date: Fri, 17 Jan 2025 16:40:07 +1300 Subject: [PATCH 21/26] bind in the cache directory --- workflow/templates/hypocentre/bb_sim.cylc | 2 +- workflow/templates/hypocentre/check_domain.cylc | 2 +- workflow/templates/hypocentre/check_srf.cylc | 2 +- workflow/templates/hypocentre/copy_domain_parameters.cylc | 2 +- workflow/templates/hypocentre/create_e3d_par.cylc | 2 +- workflow/templates/hypocentre/gcmt_to_realisation.cylc | 2 +- workflow/templates/hypocentre/generate_station_coordinates.cylc | 2 +- workflow/templates/hypocentre/generate_stoch.cylc | 2 +- workflow/templates/hypocentre/generate_velocity_model.cylc | 2 +- .../hypocentre/generate_velocity_model_parameters.cylc | 2 +- workflow/templates/hypocentre/hf_sim.cylc | 2 +- workflow/templates/hypocentre/im_calc.cylc | 2 +- workflow/templates/hypocentre/merge_ts.cylc | 2 +- workflow/templates/hypocentre/nshm_to_realisation.cylc | 2 +- workflow/templates/hypocentre/plot_ts.cylc | 2 +- workflow/templates/hypocentre/realisation_to_srf.cylc | 2 +- workflow/templates/hypocentre/write_model_coordinates.cylc | 2 +- workflow/templates/nesi/bb_sim.cylc | 2 +- workflow/templates/nesi/check_domain.cylc | 2 +- workflow/templates/nesi/check_srf.cylc | 2 +- workflow/templates/nesi/copy_domain_parameters.cylc | 2 +- workflow/templates/nesi/gcmt_to_realisation.cylc | 2 +- workflow/templates/nesi/generate_station_coordinates.cylc | 2 +- workflow/templates/nesi/generate_stoch.cylc | 2 +- workflow/templates/nesi/generate_velocity_model.cylc | 2 +- workflow/templates/nesi/generate_velocity_model_parameters.cylc | 2 +- workflow/templates/nesi/hf_sim.cylc | 2 +- workflow/templates/nesi/im_calc.cylc | 2 +- workflow/templates/nesi/merge_ts.cylc | 2 +- workflow/templates/nesi/nshm_to_realisation.cylc | 2 +- workflow/templates/nesi/plot_ts.cylc | 2 +- workflow/templates/nesi/realisation_to_srf.cylc | 2 +- workflow/templates/nesi/write_model_coordinates.cylc | 2 +- 33 files changed, 33 insertions(+), 33 deletions(-) diff --git a/workflow/templates/hypocentre/bb_sim.cylc b/workflow/templates/hypocentre/bb_sim.cylc index e4ff0385..20bf4b3a 100644 --- a/workflow/templates/hypocentre/bb_sim.cylc +++ b/workflow/templates/hypocentre/bb_sim.cylc @@ -1,3 +1,3 @@ [[{{stage_node_identifier(stage)}}]] - script = apptainer exec -c --bind "$PWD:/out,$CYLC_WORKFLOW_SHARE_DIR/{{realisation_identifier(stage)}}:/share,$CYLC_WORKFLOW_SHARE_DIR/{{stage.event}}:/parent" /mnt/hypo_scratch/containers/runner_latest.sif bb-sim /share/realisation.json /stations.vs30 /share/LF/OutBin /share/realisation.hf /parent/Velocity_Model /share/realisation.bb + script = apptainer exec -c --bind "$CYLC_WORKFLOW_SHARE_DIR/.cache:/cache,$PWD:/out,$CYLC_WORKFLOW_SHARE_DIR/{{realisation_identifier(stage)}}:/share,$CYLC_WORKFLOW_SHARE_DIR/{{stage.event}}:/parent" /mnt/hypo_scratch/containers/runner_latest.sif bb-sim /share/realisation.json /share/LF/OutBin /share/realisation.hf /parent/Velocity_Model /share/realisation.bb inherit = large_job diff --git a/workflow/templates/hypocentre/check_domain.cylc b/workflow/templates/hypocentre/check_domain.cylc index 54d31e2b..001d167e 100644 --- a/workflow/templates/hypocentre/check_domain.cylc +++ b/workflow/templates/hypocentre/check_domain.cylc @@ -1,2 +1,2 @@ [[{{stage_node_identifier(stage)}}]] - script = apptainer exec -c --bind "$PWD:/out,$CYLC_WORKFLOW_SHARE_DIR/{{realisation_identifier(stage)}}:/share,$CYLC_WORKFLOW_SHARE_DIR/{{stage.event}}:/parent" /mnt/hypo_scratch/containers/runner_latest.sif check-domain /share/realisation.json /share/realisation.srf /parent/Velocity_Model + script = apptainer exec -c --bind "$CYLC_WORKFLOW_SHARE_DIR/.cache:/cache,$PWD:/out,$CYLC_WORKFLOW_SHARE_DIR/{{realisation_identifier(stage)}}:/share,$CYLC_WORKFLOW_SHARE_DIR/{{stage.event}}:/parent" /mnt/hypo_scratch/containers/runner_latest.sif check-domain /share/realisation.json /share/realisation.srf /parent/Velocity_Model diff --git a/workflow/templates/hypocentre/check_srf.cylc b/workflow/templates/hypocentre/check_srf.cylc index dcad7f41..cead335d 100644 --- a/workflow/templates/hypocentre/check_srf.cylc +++ b/workflow/templates/hypocentre/check_srf.cylc @@ -1,2 +1,2 @@ [[{{stage_node_identifier(stage)}}]] - script = apptainer exec -c --bind "$PWD:/out,$CYLC_WORKFLOW_SHARE_DIR/{{realisation_identifier(stage)}}:/share" /mnt/hypo_scratch/containers/runner_latest.sif check-srf /share/realisation.json /share/realisation.srf + script = apptainer exec -c --bind "$CYLC_WORKFLOW_SHARE_DIR/.cache:/cache,$PWD:/out,$CYLC_WORKFLOW_SHARE_DIR/{{realisation_identifier(stage)}}:/share" /mnt/hypo_scratch/containers/runner_latest.sif check-srf /share/realisation.json /share/realisation.srf diff --git a/workflow/templates/hypocentre/copy_domain_parameters.cylc b/workflow/templates/hypocentre/copy_domain_parameters.cylc index b7624cb0..e39c7999 100644 --- a/workflow/templates/hypocentre/copy_domain_parameters.cylc +++ b/workflow/templates/hypocentre/copy_domain_parameters.cylc @@ -1,2 +1,2 @@ [[{{stage_node_identifier(stage)}}]] - script = apptainer exec -c --bind "$PWD:/out,$CYLC_WORKFLOW_SHARE_DIR/{{realisation_identifier(stage)}}:/share,$CYLC_WORKFLOW_SHARE_DIR/{{stage.event}}:/parent" /mnt/hypo_scratch/containers/runner_latest.sif copy-domain-parameters /parent/realisation.json /share/realisation.json + script = apptainer exec -c --bind "$CYLC_WORKFLOW_SHARE_DIR/.cache:/cache,$PWD:/out,$CYLC_WORKFLOW_SHARE_DIR/{{realisation_identifier(stage)}}:/share,$CYLC_WORKFLOW_SHARE_DIR/{{stage.event}}:/parent" /mnt/hypo_scratch/containers/runner_latest.sif copy-domain-parameters /parent/realisation.json /share/realisation.json diff --git a/workflow/templates/hypocentre/create_e3d_par.cylc b/workflow/templates/hypocentre/create_e3d_par.cylc index 96bd7f5d..543f33fd 100644 --- a/workflow/templates/hypocentre/create_e3d_par.cylc +++ b/workflow/templates/hypocentre/create_e3d_par.cylc @@ -1,2 +1,2 @@ [[{{stage_node_identifier(stage)}}]] - script = apptainer exec --bind "/mnt:/mnt" /mnt/hypo_scratch/containers/runner_latest.sif create-e3d-par $CYLC_WORKFLOW_SHARE_DIR/{{realisation_identifier(stage)}}/realisation.json $CYLC_WORKFLOW_SHARE_DIR/{{realisation_identifier(stage)}}/realisation.srf $CYLC_WORKFLOW_SHARE_DIR/{{stage.event}}/Velocity_Model $CYLC_WORKFLOW_SHARE_DIR/{{stage.event}}/stations $CYLC_WORKFLOW_SHARE_DIR/{{stage.event}}/model $CYLC_WORKFLOW_SHARE_DIR/{{realisation_identifier(stage)}}/LF --emod3d-path /mnt/hypo_scratch/EMOD3D/tools/emod3d-mpi_v3.0.8 --scratch-ffp $CYLC_WORKFLOW_SHARE_DIR/{{realisation_identifier(stage)}}/LF + script = apptainer exec --bind "$CYLC_WORKFLOW_SHARE_DIR/.cache:/cache,/mnt:/mnt" /mnt/hypo_scratch/containers/runner_latest.sif create-e3d-par $CYLC_WORKFLOW_SHARE_DIR/{{realisation_identifier(stage)}}/realisation.json $CYLC_WORKFLOW_SHARE_DIR/{{realisation_identifier(stage)}}/realisation.srf $CYLC_WORKFLOW_SHARE_DIR/{{stage.event}}/Velocity_Model $CYLC_WORKFLOW_SHARE_DIR/{{stage.event}}/stations $CYLC_WORKFLOW_SHARE_DIR/{{stage.event}}/model $CYLC_WORKFLOW_SHARE_DIR/{{realisation_identifier(stage)}}/LF --emod3d-path /mnt/hypo_scratch/EMOD3D/tools/emod3d-mpi_v3.0.8 --scratch-ffp $CYLC_WORKFLOW_SHARE_DIR/{{realisation_identifier(stage)}}/LF diff --git a/workflow/templates/hypocentre/gcmt_to_realisation.cylc b/workflow/templates/hypocentre/gcmt_to_realisation.cylc index e52edf72..41d565f3 100644 --- a/workflow/templates/hypocentre/gcmt_to_realisation.cylc +++ b/workflow/templates/hypocentre/gcmt_to_realisation.cylc @@ -1,2 +1,2 @@ [[{{stage_node_identifier(stage)}}]] - script = apptainer exec -c --bind "$PWD:/out,$CYLC_WORKFLOW_SHARE_DIR/{{realisation_identifier(stage)}}:/share" /mnt/hypo_scratch/containers/runner_latest.sif gcmt-to-realisation {{stage.event}} {{defaults_version}} /share/realisation.json + script = apptainer exec -c --bind "$CYLC_WORKFLOW_SHARE_DIR/.cache:/cache,$PWD:/out,$CYLC_WORKFLOW_SHARE_DIR/{{realisation_identifier(stage)}}:/share" /mnt/hypo_scratch/containers/runner_latest.sif gcmt-to-realisation {{stage.event}} {{defaults_version}} /share/realisation.json diff --git a/workflow/templates/hypocentre/generate_station_coordinates.cylc b/workflow/templates/hypocentre/generate_station_coordinates.cylc index 3126fcfa..b451847b 100644 --- a/workflow/templates/hypocentre/generate_station_coordinates.cylc +++ b/workflow/templates/hypocentre/generate_station_coordinates.cylc @@ -1,2 +1,2 @@ [[{{stage_node_identifier(stage)}}]] - script = apptainer exec -c --bind "$PWD:/out,$CYLC_WORKFLOW_SHARE_DIR/{{realisation_identifier(stage)}}:/share" /mnt/hypo_scratch/containers/runner_latest.sif generate-station-coordinates /share/realisation.json /share/stations --stat-file /stations.ll + script = apptainer exec -c --bind "$CYLC_WORKFLOW_SHARE_DIR/.cache:/cache,$PWD:/out,$CYLC_WORKFLOW_SHARE_DIR/{{realisation_identifier(stage)}}:/share" /mnt/hypo_scratch/containers/runner_latest.sif generate-station-coordinates /share/realisation.json /share/stations diff --git a/workflow/templates/hypocentre/generate_stoch.cylc b/workflow/templates/hypocentre/generate_stoch.cylc index cf2523b3..3a17892b 100644 --- a/workflow/templates/hypocentre/generate_stoch.cylc +++ b/workflow/templates/hypocentre/generate_stoch.cylc @@ -1,2 +1,2 @@ [[{{stage_node_identifier(stage)}}]] - script = apptainer exec -c --bind "$PWD:/out,$CYLC_WORKFLOW_SHARE_DIR/{{realisation_identifier(stage)}}:/share" /mnt/hypo_scratch/containers/runner_latest.sif generate-stoch /share/realisation.json /share/realisation.srf /share/realisation.stoch + script = apptainer exec -c --bind "$CYLC_WORKFLOW_SHARE_DIR/.cache:/cache,$PWD:/out,$CYLC_WORKFLOW_SHARE_DIR/{{realisation_identifier(stage)}}:/share" /mnt/hypo_scratch/containers/runner_latest.sif generate-stoch /share/realisation.json /share/realisation.srf /share/realisation.stoch diff --git a/workflow/templates/hypocentre/generate_velocity_model.cylc b/workflow/templates/hypocentre/generate_velocity_model.cylc index 3cad6087..976146a3 100644 --- a/workflow/templates/hypocentre/generate_velocity_model.cylc +++ b/workflow/templates/hypocentre/generate_velocity_model.cylc @@ -1,4 +1,4 @@ [[{{stage_node_identifier(stage)}}]] - script = apptainer exec -c --bind "$PWD:/out,$CYLC_WORKFLOW_SHARE_DIR/{{realisation_identifier(stage)}}:/share" /mnt/hypo_scratch/containers/runner_latest.sif sh -c 'generate-velocity-model /share/realisation.json /share/Velocity_Model --num-threads $(nproc)' + script = apptainer exec -c --bind "$CYLC_WORKFLOW_SHARE_DIR/.cache:/cache,$PWD:/out,$CYLC_WORKFLOW_SHARE_DIR/{{realisation_identifier(stage)}}:/share" /mnt/hypo_scratch/containers/runner_latest.sif sh -c 'generate-velocity-model /share/realisation.json /share/Velocity_Model --num-threads $(nproc)' inherit = large_job diff --git a/workflow/templates/hypocentre/generate_velocity_model_parameters.cylc b/workflow/templates/hypocentre/generate_velocity_model_parameters.cylc index 5c2c7163..a24a88d1 100644 --- a/workflow/templates/hypocentre/generate_velocity_model_parameters.cylc +++ b/workflow/templates/hypocentre/generate_velocity_model_parameters.cylc @@ -1,2 +1,2 @@ [[{{stage_node_identifier(stage)}}]] - script = apptainer exec -c --bind "$PWD:/out,$CYLC_WORKFLOW_SHARE_DIR/{{realisation_identifier(stage)}}:/share" /mnt/hypo_scratch/containers/runner_latest.sif generate-velocity-model-parameters /share/realisation.json + script = apptainer exec -c --bind "$CYLC_WORKFLOW_SHARE_DIR/.cache:/cache,$PWD:/out,$CYLC_WORKFLOW_SHARE_DIR/{{realisation_identifier(stage)}}:/share" /mnt/hypo_scratch/containers/runner_latest.sif generate-velocity-model-parameters /share/realisation.json diff --git a/workflow/templates/hypocentre/hf_sim.cylc b/workflow/templates/hypocentre/hf_sim.cylc index dfd7992f..122a4a78 100644 --- a/workflow/templates/hypocentre/hf_sim.cylc +++ b/workflow/templates/hypocentre/hf_sim.cylc @@ -1,3 +1,3 @@ [[{{stage_node_identifier(stage)}}]] - script = apptainer exec -c --bind "$PWD:/out,$CYLC_WORKFLOW_SHARE_DIR/{{realisation_identifier(stage)}}:/share,$CYLC_WORKFLOW_SHARE_DIR/{{stage.event}}/stations:/stations" /mnt/hypo_scratch/containers/runner_latest.sif hf-sim /share/realisation.json /share/realisation.stoch /stations/stations.ll /share/realisation.hf + script = apptainer exec -c --bind "$CYLC_WORKFLOW_SHARE_DIR/.cache:/cache,$PWD:/out,$CYLC_WORKFLOW_SHARE_DIR/{{realisation_identifier(stage)}}:/share,$CYLC_WORKFLOW_SHARE_DIR/{{stage.event}}/stations:/stations" /mnt/hypo_scratch/containers/runner_latest.sif hf-sim /share/realisation.json /share/realisation.stoch /stations/stations.ll /share/realisation.hf inherit = large_job diff --git a/workflow/templates/hypocentre/im_calc.cylc b/workflow/templates/hypocentre/im_calc.cylc index 7a9a9dbe..6cca7248 100644 --- a/workflow/templates/hypocentre/im_calc.cylc +++ b/workflow/templates/hypocentre/im_calc.cylc @@ -1,3 +1,3 @@ [[{{stage_node_identifier(stage)}}]] - script = apptainer exec -c --bind "$PWD:/out,$CYLC_WORKFLOW_SHARE_DIR/{{realisation_identifier(stage)}}:/share" /mnt/hypo_scratch/containers/runner_latest.sif im-calc /share/realisation.json /share/realisation.bb /share/intensity_measures.parquet + script = apptainer exec -c --bind "$CYLC_WORKFLOW_SHARE_DIR/.cache:/cache,$PWD:/out,$CYLC_WORKFLOW_SHARE_DIR/{{realisation_identifier(stage)}}:/share" /mnt/hypo_scratch/containers/runner_latest.sif im-calc /share/realisation.json /share/realisation.bb /share/intensity_measures.parquet inherit = large_job diff --git a/workflow/templates/hypocentre/merge_ts.cylc b/workflow/templates/hypocentre/merge_ts.cylc index 284f91d7..d7b7a5e0 100644 --- a/workflow/templates/hypocentre/merge_ts.cylc +++ b/workflow/templates/hypocentre/merge_ts.cylc @@ -1,2 +1,2 @@ [[{{stage_node_identifier(stage)}}]] - script = apptainer exec -c --bind "$PWD:/out,$CYLC_WORKFLOW_SHARE_DIR:/share/{{realisation_identifier(stage)}}" merge-ts /share/LF/OutBin /share/LF/OutBin/output.e3d + script = apptainer exec -c --bind "$CYLC_WORKFLOW_SHARE_DIR/.cache:/cache,$PWD:/out,$CYLC_WORKFLOW_SHARE_DIR:/share/{{realisation_identifier(stage)}}" merge-ts /share/LF/OutBin /share/LF/OutBin/output.e3d diff --git a/workflow/templates/hypocentre/nshm_to_realisation.cylc b/workflow/templates/hypocentre/nshm_to_realisation.cylc index b5652be5..12b50d07 100644 --- a/workflow/templates/hypocentre/nshm_to_realisation.cylc +++ b/workflow/templates/hypocentre/nshm_to_realisation.cylc @@ -1,2 +1,2 @@ [[{{stage_node_identifier(stage)}}]] - script = apptainer exec -c --bind "$PWD:/out,$CYLC_WORKFLOW_SHARE_DIR/{{realisation_identifier(stage)}}:/share" /mnt/hypo_scratch/containers/runner_latest.sif nshm2022-to-realisation /nshmdb.db {{stage.event}} /share/realisation.json {{defaults_version}} + script = apptainer exec -c --bind "$CYLC_WORKFLOW_SHARE_DIR/.cache:/cache,$PWD:/out,$CYLC_WORKFLOW_SHARE_DIR/{{realisation_identifier(stage)}}:/share" /mnt/hypo_scratch/containers/runner_latest.sif nshm2022-to-realisation {{stage.event}} /share/realisation.json {{defaults_version}} diff --git a/workflow/templates/hypocentre/plot_ts.cylc b/workflow/templates/hypocentre/plot_ts.cylc index 42870847..9f9a7b5b 100644 --- a/workflow/templates/hypocentre/plot_ts.cylc +++ b/workflow/templates/hypocentre/plot_ts.cylc @@ -1,2 +1,2 @@ [[{{stage_node_identifier(stage)}}]] - script = apptainer exec -c --bind "$PWD:/out,$CYLC_WORKFLOW_SHARE_DIR:/share/{{realisation_identifier(stage)}}" plot-ts /share/LF/OutBin/output.e3d /share/animation.mp4 + script = apptainer exec -c --bind "$CYLC_WORKFLOW_SHARE_DIR/.cache:/cache,$PWD:/out,$CYLC_WORKFLOW_SHARE_DIR:/share/{{realisation_identifier(stage)}}" plot-ts /share/LF/OutBin/output.e3d /share/animation.mp4 diff --git a/workflow/templates/hypocentre/realisation_to_srf.cylc b/workflow/templates/hypocentre/realisation_to_srf.cylc index fdb42f80..fc505353 100644 --- a/workflow/templates/hypocentre/realisation_to_srf.cylc +++ b/workflow/templates/hypocentre/realisation_to_srf.cylc @@ -1,2 +1,2 @@ [[{{stage_node_identifier(stage)}}]] - script = apptainer exec -c --bind "$PWD:/out,$CYLC_WORKFLOW_SHARE_DIR/{{realisation_identifier(stage)}}:/share" /mnt/hypo_scratch/containers/runner_latest.sif realisation-to-srf /share/realisation.json /share/realisation.srf + script = apptainer exec -c --bind "$CYLC_WORKFLOW_SHARE_DIR/.cache:/cache,$PWD:/out,$CYLC_WORKFLOW_SHARE_DIR/{{realisation_identifier(stage)}}:/share" /mnt/hypo_scratch/containers/runner_latest.sif realisation-to-srf /share/realisation.json /share/realisation.srf diff --git a/workflow/templates/hypocentre/write_model_coordinates.cylc b/workflow/templates/hypocentre/write_model_coordinates.cylc index 1a54c643..1279cfa7 100644 --- a/workflow/templates/hypocentre/write_model_coordinates.cylc +++ b/workflow/templates/hypocentre/write_model_coordinates.cylc @@ -1,2 +1,2 @@ [[{{stage_node_identifier(stage)}}]] - script = apptainer exec -c --bind "$PWD:/out,$CYLC_WORKFLOW_SHARE_DIR/{{realisation_identifier(stage)}}:/share" /mnt/hypo_scratch/containers/runner_latest.sif generate-model-coordinates /share/realisation.json /share/model + script = apptainer exec -c --bind "$CYLC_WORKFLOW_SHARE_DIR/.cache:/cache,$PWD:/out,$CYLC_WORKFLOW_SHARE_DIR/{{realisation_identifier(stage)}}:/share" /mnt/hypo_scratch/containers/runner_latest.sif generate-model-coordinates /share/realisation.json /share/model diff --git a/workflow/templates/nesi/bb_sim.cylc b/workflow/templates/nesi/bb_sim.cylc index a027906a..357a2ed7 100644 --- a/workflow/templates/nesi/bb_sim.cylc +++ b/workflow/templates/nesi/bb_sim.cylc @@ -1,5 +1,5 @@ [[{{stage_node_identifier(stage)}}]] - script = apptainer exec -c --bind "$PWD:/out,$CYLC_WORKFLOW_SHARE_DIR/{{realisation_identifier(stage)}}:/share,$CYLC_WORKFLOW_SHARE_DIR/{{stage.event}}:/parent" /nesi/nobackup/nesi00213/containers/runner_latest.sif bb-sim /share/realisation.json /stations.vs30 /share/LF/OutBin /share/realisation.hf /parent/Velocity_Model /share/realisation.bb + script = apptainer exec -c --bind "$CYLC_WORKFLOW_SHARE_DIR/.cache:/cache:$PWD:/out,$CYLC_WORKFLOW_SHARE_DIR/{{realisation_identifier(stage)}}:/share,$CYLC_WORKFLOW_SHARE_DIR/{{stage.event}}:/parent" /nesi/nobackup/nesi00213/containers/runner_latest.sif bb-sim /share/realisation.json /share/LF/OutBin /share/realisation.hf /parent/Velocity_Model /share/realisation.bb [[[directives]]] --cpus-per-task = 32 --time = 01:00:00 diff --git a/workflow/templates/nesi/check_domain.cylc b/workflow/templates/nesi/check_domain.cylc index 1d1657c7..0a0da89c 100644 --- a/workflow/templates/nesi/check_domain.cylc +++ b/workflow/templates/nesi/check_domain.cylc @@ -1,2 +1,2 @@ [[{{stage_node_identifier(stage)}}]] - script = apptainer exec -c --bind "$PWD:/out,$CYLC_WORKFLOW_SHARE_DIR/{{realisation_identifier(stage)}}:/share,$CYLC_WORKFLOW_SHARE_DIR/{{stage.event}}:/parent" /nesi/nobackup/nesi00213/containers/runner_latest.sif check-domain /share/realisation.json /share/realisation.srf /parent/Velocity_Model + script = apptainer exec -c --bind "$CYLC_WORKFLOW_SHARE_DIR/.cache:/cache,$PWD:/out,$CYLC_WORKFLOW_SHARE_DIR/{{realisation_identifier(stage)}}:/share,$CYLC_WORKFLOW_SHARE_DIR/{{stage.event}}:/parent" /nesi/nobackup/nesi00213/containers/runner_latest.sif check-domain /share/realisation.json /share/realisation.srf /parent/Velocity_Model diff --git a/workflow/templates/nesi/check_srf.cylc b/workflow/templates/nesi/check_srf.cylc index d6bfcd21..90073d27 100644 --- a/workflow/templates/nesi/check_srf.cylc +++ b/workflow/templates/nesi/check_srf.cylc @@ -1,2 +1,2 @@ [[{{stage_node_identifier(stage)}}]] - script = apptainer exec -c --bind "$PWD:/out,$CYLC_WORKFLOW_SHARE_DIR/{{realisation_identifier(stage)}}:/share" /nesi/nobackup/nesi00213/containers/runner_latest.sif check-srf /share/realisation.json /share/realisation.srf + script = apptainer exec -c --bind "$CYLC_WORKFLOW_SHARE_DIR/.cache:/cache,$PWD:/out,$CYLC_WORKFLOW_SHARE_DIR/{{realisation_identifier(stage)}}:/share" /nesi/nobackup/nesi00213/containers/runner_latest.sif check-srf /share/realisation.json /share/realisation.srf diff --git a/workflow/templates/nesi/copy_domain_parameters.cylc b/workflow/templates/nesi/copy_domain_parameters.cylc index 31d70156..3adfbd9e 100644 --- a/workflow/templates/nesi/copy_domain_parameters.cylc +++ b/workflow/templates/nesi/copy_domain_parameters.cylc @@ -1,3 +1,3 @@ [[{{stage_node_identifier(stage)}}]] platform = localhost - script = apptainer exec -c --bind "$PWD:/out,$CYLC_WORKFLOW_SHARE_DIR/{{realisation_identifier(stage)}}:/share,$CYLC_WORKFLOW_SHARE_DIR/{{stage.event}}:/parent" /nesi/nobackup/nesi00213/containers/runner_latest.sif copy-domain-parameters /parent/realisation.json /share/realisation.json + script = apptainer exec -c --bind "$CYLC_WORKFLOW_SHARE_DIR/.cache:/cache,$PWD:/out,$CYLC_WORKFLOW_SHARE_DIR/{{realisation_identifier(stage)}}:/share,$CYLC_WORKFLOW_SHARE_DIR/{{stage.event}}:/parent" /nesi/nobackup/nesi00213/containers/runner_latest.sif copy-domain-parameters /parent/realisation.json /share/realisation.json diff --git a/workflow/templates/nesi/gcmt_to_realisation.cylc b/workflow/templates/nesi/gcmt_to_realisation.cylc index b90bd940..afaf77a7 100644 --- a/workflow/templates/nesi/gcmt_to_realisation.cylc +++ b/workflow/templates/nesi/gcmt_to_realisation.cylc @@ -1,3 +1,3 @@ [[{{stage_node_identifier(stage)}}]] platform = localhost - script = apptainer exec -c --bind "$PWD:/out,$CYLC_WORKFLOW_SHARE_DIR/{{realisation_identifier(stage)}}:/share" /nesi/nobackup/nesi00213/containers/runner_latest.sif gcmt-to-realisation {{stage.event}} {{defaults_version}} /share/realisation.json + script = apptainer exec -c --bind "$CYLC_WORKFLOW_SHARE_DIR/.cache:/cache,$PWD:/out,$CYLC_WORKFLOW_SHARE_DIR/{{realisation_identifier(stage)}}:/share" /nesi/nobackup/nesi00213/containers/runner_latest.sif gcmt-to-realisation {{stage.event}} {{defaults_version}} /share/realisation.json diff --git a/workflow/templates/nesi/generate_station_coordinates.cylc b/workflow/templates/nesi/generate_station_coordinates.cylc index 7f3fd09e..930cd53a 100644 --- a/workflow/templates/nesi/generate_station_coordinates.cylc +++ b/workflow/templates/nesi/generate_station_coordinates.cylc @@ -1,3 +1,3 @@ [[{{stage_node_identifier(stage)}}]] platform = localhost - script = apptainer exec -c --bind "$PWD:/out,$CYLC_WORKFLOW_SHARE_DIR/{{realisation_identifier(stage)}}:/share" /nesi/nobackup/nesi00213/containers/runner_latest.sif generate-station-coordinates /share/realisation.json /share/stations --stat-file /stations.ll + script = apptainer exec -c --bind "$CYLC_WORKFLOW_SHARE_DIR/.cache:/cache,$PWD:/out,$CYLC_WORKFLOW_SHARE_DIR/{{realisation_identifier(stage)}}:/share" /nesi/nobackup/nesi00213/containers/runner_latest.sif generate-station-coordinates /share/realisation.json /share/stations diff --git a/workflow/templates/nesi/generate_stoch.cylc b/workflow/templates/nesi/generate_stoch.cylc index e11009ef..798ac68e 100644 --- a/workflow/templates/nesi/generate_stoch.cylc +++ b/workflow/templates/nesi/generate_stoch.cylc @@ -1,2 +1,2 @@ [[{{stage_node_identifier(stage)}}]] - script = apptainer exec -c --bind "$PWD:/out,$CYLC_WORKFLOW_SHARE_DIR/{{realisation_identifier(stage)}}:/share" /nesi/nobackup/nesi00213/containers/runner_latest.sif generate-stoch /share/realisation.json /share/realisation.srf /share/realisation.stoch + script = apptainer exec -c --bind "$CYLC_WORKFLOW_SHARE_DIR/.cache:/cache,$PWD:/out,$CYLC_WORKFLOW_SHARE_DIR/{{realisation_identifier(stage)}}:/share" /nesi/nobackup/nesi00213/containers/runner_latest.sif generate-stoch /share/realisation.json /share/realisation.srf /share/realisation.stoch diff --git a/workflow/templates/nesi/generate_velocity_model.cylc b/workflow/templates/nesi/generate_velocity_model.cylc index 2077bf6a..0d614f86 100644 --- a/workflow/templates/nesi/generate_velocity_model.cylc +++ b/workflow/templates/nesi/generate_velocity_model.cylc @@ -1,5 +1,5 @@ [[ {{stage_node_identifier(stage)}} ]] - script = apptainer exec -c --bind "$PWD:/out,$CYLC_WORKFLOW_SHARE_DIR/{{realisation_identifier(stage)}}:/share" /nesi/nobackup/nesi00213/containers/runner_latest.sif sh -c 'generate-velocity-model /share/realisation.json /share/Velocity_Model --num-threads $(nproc)' + script = apptainer exec -c --bind "$CYLC_WORKFLOW_SHARE_DIR/.cache:/cache,$PWD:/out,$CYLC_WORKFLOW_SHARE_DIR/{{realisation_identifier(stage)}}:/share" /nesi/nobackup/nesi00213/containers/runner_latest.sif sh -c 'generate-velocity-model /share/realisation.json /share/Velocity_Model --num-threads $(nproc)' [[[directives]]] --cpus-per-task = 32 --time = 01:00:00 diff --git a/workflow/templates/nesi/generate_velocity_model_parameters.cylc b/workflow/templates/nesi/generate_velocity_model_parameters.cylc index 94529ce1..476bc2c9 100644 --- a/workflow/templates/nesi/generate_velocity_model_parameters.cylc +++ b/workflow/templates/nesi/generate_velocity_model_parameters.cylc @@ -1,2 +1,2 @@ [[{{stage_node_identifier(stage)}}]] - script = apptainer exec -c --bind "$PWD:/out,$CYLC_WORKFLOW_SHARE_DIR/{{realisation_identifier(stage)}}:/share" /nesi/nobackup/nesi00213/containers/runner_latest.sif generate-velocity-model-parameters /share/realisation.json + script = apptainer exec -c --bind "$CYLC_WORKFLOW_SHARE_DIR/.cache:/cache,$PWD:/out,$CYLC_WORKFLOW_SHARE_DIR/{{realisation_identifier(stage)}}:/share" /nesi/nobackup/nesi00213/containers/runner_latest.sif generate-velocity-model-parameters /share/realisation.json diff --git a/workflow/templates/nesi/hf_sim.cylc b/workflow/templates/nesi/hf_sim.cylc index 0967b831..28dfcf5e 100644 --- a/workflow/templates/nesi/hf_sim.cylc +++ b/workflow/templates/nesi/hf_sim.cylc @@ -1,5 +1,5 @@ [[{{stage_node_identifier(stage)}}]] - script = apptainer exec -c --bind "$PWD:/out,$CYLC_WORKFLOW_SHARE_DIR/{{realisation_identifier(stage)}}:/share,$CYLC_WORKFLOW_SHARE_DIR/{{stage.event}}/stations:/stations" /nesi/nobackup/nesi00213/containers/runner_latest.sif hf-sim /share/realisation.json /share/realisation.stoch /stations/stations.ll /share/realisation.hf + script = apptainer exec -c --bind "$CYLC_WORKFLOW_SHARE_DIR/.cache:/cache,$PWD:/out,$CYLC_WORKFLOW_SHARE_DIR/{{realisation_identifier(stage)}}:/share,$CYLC_WORKFLOW_SHARE_DIR/{{stage.event}}/stations:/stations" /nesi/nobackup/nesi00213/containers/runner_latest.sif hf-sim /share/realisation.json /share/realisation.stoch /stations/stations.ll /share/realisation.hf [[[directives]]] --cpus-per-task = 32 --time = 01:00:00 diff --git a/workflow/templates/nesi/im_calc.cylc b/workflow/templates/nesi/im_calc.cylc index 9c2c1350..28bccb2a 100644 --- a/workflow/templates/nesi/im_calc.cylc +++ b/workflow/templates/nesi/im_calc.cylc @@ -1,5 +1,5 @@ [[{{stage_node_identifier(stage)}}]] - script = apptainer exec -c --bind "$PWD:/out,$CYLC_WORKFLOW_SHARE_DIR/{{realisation_identifier(stage)}}:/share" /nesi/nobackup/nesi00213/containers/runner_latest.sif im-calc /share/realisation.json /share/realisation.bb /share/intensity_measures.parquet --num-processes 64 --psa-rotd-maximum-memory-allocation 40 + script = apptainer exec -c --bind "$CYLC_WORKFLOW_SHARE_DIR/.cache:/cache,$PWD:/out,$CYLC_WORKFLOW_SHARE_DIR/{{realisation_identifier(stage)}}:/share" /nesi/nobackup/nesi00213/containers/runner_latest.sif im-calc /share/realisation.json /share/realisation.bb /share/intensity_measures.parquet --num-processes 64 --psa-rotd-maximum-memory-allocation 40 [[[directives]]] --cpus-per-task = 64 --time = 01:00:00 diff --git a/workflow/templates/nesi/merge_ts.cylc b/workflow/templates/nesi/merge_ts.cylc index 284f91d7..f091c83d 100644 --- a/workflow/templates/nesi/merge_ts.cylc +++ b/workflow/templates/nesi/merge_ts.cylc @@ -1,2 +1,2 @@ [[{{stage_node_identifier(stage)}}]] - script = apptainer exec -c --bind "$PWD:/out,$CYLC_WORKFLOW_SHARE_DIR:/share/{{realisation_identifier(stage)}}" merge-ts /share/LF/OutBin /share/LF/OutBin/output.e3d + script = apptainer exec -c --bind "$CYLC_WORKFLOW_SHARE_DIR/.cache:/cache:$PWD:/out,$CYLC_WORKFLOW_SHARE_DIR:/share/{{realisation_identifier(stage)}}" merge-ts /share/LF/OutBin /share/LF/OutBin/output.e3d diff --git a/workflow/templates/nesi/nshm_to_realisation.cylc b/workflow/templates/nesi/nshm_to_realisation.cylc index 3510b698..4c39a6e6 100644 --- a/workflow/templates/nesi/nshm_to_realisation.cylc +++ b/workflow/templates/nesi/nshm_to_realisation.cylc @@ -1,3 +1,3 @@ [[{{stage_node_identifier(stage)}}]] platform = localhost - script = apptainer exec -c --bind "$PWD:/out,$CYLC_WORKFLOW_SHARE_DIR/{{realisation_identifier(stage)}}:/share" /nesi/nobackup/nesi00213/containers/runner_latest.sif nshm2022-to-realisation /nshmdb.db {{stage.event}} /share/realisation.json {{defaults_version}} + script = apptainer exec -c --bind "$CYLC_WORKFLOW_SHARE_DIR/.cache:/cache,$PWD:/out,$CYLC_WORKFLOW_SHARE_DIR/{{realisation_identifier(stage)}}:/share" /nesi/nobackup/nesi00213/containers/runner_latest.sif nshm2022-to-realisation {{stage.event}} /share/realisation.json {{defaults_version}} diff --git a/workflow/templates/nesi/plot_ts.cylc b/workflow/templates/nesi/plot_ts.cylc index 42870847..9f9a7b5b 100644 --- a/workflow/templates/nesi/plot_ts.cylc +++ b/workflow/templates/nesi/plot_ts.cylc @@ -1,2 +1,2 @@ [[{{stage_node_identifier(stage)}}]] - script = apptainer exec -c --bind "$PWD:/out,$CYLC_WORKFLOW_SHARE_DIR:/share/{{realisation_identifier(stage)}}" plot-ts /share/LF/OutBin/output.e3d /share/animation.mp4 + script = apptainer exec -c --bind "$CYLC_WORKFLOW_SHARE_DIR/.cache:/cache,$PWD:/out,$CYLC_WORKFLOW_SHARE_DIR:/share/{{realisation_identifier(stage)}}" plot-ts /share/LF/OutBin/output.e3d /share/animation.mp4 diff --git a/workflow/templates/nesi/realisation_to_srf.cylc b/workflow/templates/nesi/realisation_to_srf.cylc index 62b3cac4..19fd2e1e 100644 --- a/workflow/templates/nesi/realisation_to_srf.cylc +++ b/workflow/templates/nesi/realisation_to_srf.cylc @@ -1,2 +1,2 @@ [[{{stage_node_identifier(stage)}}]] - script = apptainer exec -c --bind "$PWD:/out,$CYLC_WORKFLOW_SHARE_DIR/{{realisation_identifier(stage)}}:/share" /nesi/nobackup/nesi00213/containers/runner_latest.sif realisation-to-srf /share/realisation.json /share/realisation.srf + script = apptainer exec -c --bind "$CYLC_WORKFLOW_SHARE_DIR/.cache:/cache,$PWD:/out,$CYLC_WORKFLOW_SHARE_DIR/{{realisation_identifier(stage)}}:/share" /nesi/nobackup/nesi00213/containers/runner_latest.sif realisation-to-srf /share/realisation.json /share/realisation.srf diff --git a/workflow/templates/nesi/write_model_coordinates.cylc b/workflow/templates/nesi/write_model_coordinates.cylc index ece862b6..0bae642b 100644 --- a/workflow/templates/nesi/write_model_coordinates.cylc +++ b/workflow/templates/nesi/write_model_coordinates.cylc @@ -1,3 +1,3 @@ [[{{stage_node_identifier(stage)}}]] platform = localhost - script = apptainer exec -c --bind "$PWD:/out,$CYLC_WORKFLOW_SHARE_DIR/{{realisation_identifier(stage)}}:/share" /nesi/nobackup/nesi00213/containers/runner_latest.sif generate-model-coordinates /share/realisation.json /share/model + script = apptainer exec -c --bind "$CYLC_WORKFLOW_SHARE_DIR/.cache:/cache,$PWD:/out,$CYLC_WORKFLOW_SHARE_DIR/{{realisation_identifier(stage)}}:/share" /nesi/nobackup/nesi00213/containers/runner_latest.sif generate-model-coordinates /share/realisation.json /share/model From 92895d2a5bba2a88febb4df495ab62d3bcc1eace Mon Sep 17 00:00:00 2001 From: Jake Faulkner Date: Fri, 17 Jan 2025 16:59:03 +1300 Subject: [PATCH 22/26] update copy input script to create folders if they don't exist --- workflow/templates/hypocentre/copy_input.cylc | 11 ++++++++++- workflow/templates/nesi/copy_input.cylc | 11 ++++++++++- 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/workflow/templates/hypocentre/copy_input.cylc b/workflow/templates/hypocentre/copy_input.cylc index d85d38bb..c294729f 100644 --- a/workflow/templates/hypocentre/copy_input.cylc +++ b/workflow/templates/hypocentre/copy_input.cylc @@ -1,2 +1,11 @@ [[copy_input]] - script = "[[ ! -d $CYLC_WORKFLOW_RUN_DIR/input ]] || cp -rn $CYLC_WORKFLOW_RUN_DIR/input/. $CYLC_WORKFLOW_SHARE_DIR" + script = """ + # Create the $CYLC_WORKFLOW_RUN_DIR/input directory if it doesn't exist + mkdir -p "$CYLC_WORKFLOW_RUN_DIR/input" + + # Copy the contents of the input directory to $CYLC_WORKFLOW_SHARE_DIR + cp -r "$CYLC_WORKFLOW_RUN_DIR/input/." "$CYLC_WORKFLOW_SHARE_DIR" + + # Create the $CYLC_WORKFLOW_SHARE_DIR/.cache directory if it doesn't exist + mkdir -p "$CYLC_WORKFLOW_SHARE_DIR/.cache" + """ diff --git a/workflow/templates/nesi/copy_input.cylc b/workflow/templates/nesi/copy_input.cylc index 017ff1c9..9f8c0e96 100644 --- a/workflow/templates/nesi/copy_input.cylc +++ b/workflow/templates/nesi/copy_input.cylc @@ -1,3 +1,12 @@ [[copy_input]] platform = localhost - script = "[[ ! -d $CYLC_WORKFLOW_RUN_DIR/input ]] || cp -rn $CYLC_WORKFLOW_RUN_DIR/input/. $CYLC_WORKFLOW_SHARE_DIR" + script = """ + # Create the $CYLC_WORKFLOW_RUN_DIR/input directory if it doesn't exist + mkdir -p "$CYLC_WORKFLOW_RUN_DIR/input" + + # Copy the contents of the input directory to $CYLC_WORKFLOW_SHARE_DIR + cp -r "$CYLC_WORKFLOW_RUN_DIR/input/." "$CYLC_WORKFLOW_SHARE_DIR" + + # Create the $CYLC_WORKFLOW_SHARE_DIR/.cache directory if it doesn't exist + mkdir -p "$CYLC_WORKFLOW_SHARE_DIR/.cache" + """ From c4b99797751390107fe9a1a57c521a7f5f5f596a Mon Sep 17 00:00:00 2001 From: Jake Faulkner Date: Mon, 20 Jan 2025 15:17:26 +1300 Subject: [PATCH 23/26] update source modelling URL --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index 013e32f6..3e313f42 100644 --- a/requirements.txt +++ b/requirements.txt @@ -23,7 +23,7 @@ requests schema scipy shapely -source_modelling @ git+https://github.com/ucgmsim/source_modelling +source_modelling @ git+https://github.com/ucgmsim/source_modelling.git tables tqdm typer From 59548228eded4ccd67cef0ad8c5548ff87330f0c Mon Sep 17 00:00:00 2001 From: Jake Faulkner Date: Mon, 20 Jan 2025 15:32:54 +1300 Subject: [PATCH 24/26] remove .git again from source modelling URL --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index 3e313f42..013e32f6 100644 --- a/requirements.txt +++ b/requirements.txt @@ -23,7 +23,7 @@ requests schema scipy shapely -source_modelling @ git+https://github.com/ucgmsim/source_modelling.git +source_modelling @ git+https://github.com/ucgmsim/source_modelling tables tqdm typer From 3961cf79292c7b457d09bf4e484e94f2e32d5990 Mon Sep 17 00:00:00 2001 From: Jake Faulkner Date: Tue, 28 Jan 2025 14:35:04 +1300 Subject: [PATCH 25/26] fix(workflow): make registry paths more clear --- workflow/scripts/bb_sim.py | 8 ++- workflow/scripts/check_srf.py | 6 +- .../scripts/generate_station_coordinates.py | 4 +- workflow/scripts/hf_sim.py | 8 +-- workflow/scripts/nshm2022_to_realisation.py | 4 +- workflow/scripts/realisation_to_srf.py | 56 ++++++++++++------- 6 files changed, 52 insertions(+), 34 deletions(-) diff --git a/workflow/scripts/bb_sim.py b/workflow/scripts/bb_sim.py index 7c2ee94b..20a220ce 100644 --- a/workflow/scripts/bb_sim.py +++ b/workflow/scripts/bb_sim.py @@ -204,7 +204,7 @@ def combine_hf_and_lf( help="Path to output broadband file.", dir_okay=False, writable=True ), ], - station_vs30_ffp: Annotated[ + registry_station_vs30_ffp: Annotated[ Path, typer.Option(help="The station file to use (from registry)."), ] = Path("default_stations_file"), @@ -313,8 +313,10 @@ def combine_hf_and_lf( # ensure that LF and HF agree on station list, sometimes LF can drop a station or two stations = stations.loc[lf.stations["name"]] - station_vs30 = pd.read_parquet(local_station_vs30_ffp or input.fetch_file(station_vs30_ffp)) - station_vs30 = station_vs30.index.rename('name') + station_vs30 = pd.read_parquet( + local_station_vs30_ffp or input.fetch_file(registry_station_vs30_ffp) + ) + station_vs30 = station_vs30.index.rename("name") stations = stations.join(station_vs30, how="inner") with multiprocessing.Pool(utils.get_available_cores()) as pool: diff --git a/workflow/scripts/check_srf.py b/workflow/scripts/check_srf.py index 6fcee803..71bae25b 100644 --- a/workflow/scripts/check_srf.py +++ b/workflow/scripts/check_srf.py @@ -24,7 +24,7 @@ def check_srf( Path, typer.Argument(help="The path to the realisation for the SRF.") ], srf_ffp: Annotated[Path, typer.Argument(help="The path to the SRF file to check.")], - velocity_model_path: Annotated[ + registry_velocity_model_path: Annotated[ Path, typer.Option(help="Path to 1D velocity model (in registry)") ] = Path("default_1d_velocity_model"), local_velocity_model_path: Annotated[ @@ -47,10 +47,10 @@ def check_srf( """ input = RealisationInput.read_from_realisation_or_defaults(realisation_ffp) velocity_model = velocity_model_1d.read_velocity_model_1d( - local_velocity_model_path or input.fetch_file(velocity_model_path) + local_velocity_model_path or input.fetch_file(registry_velocity_model_path) ) velocity_model["mu"] = velocity_model["Vs"] ** 2 * velocity_model["rho"] * 1e10 - + srf_file = srf.read_srf(srf_ffp) indices = np.minimum( len(velocity_model["top_depth"]) - 1, diff --git a/workflow/scripts/generate_station_coordinates.py b/workflow/scripts/generate_station_coordinates.py index 4241cece..b85f0075 100644 --- a/workflow/scripts/generate_station_coordinates.py +++ b/workflow/scripts/generate_station_coordinates.py @@ -53,7 +53,7 @@ def generate_fd_files( help="Output path for station files", file_okay=False, writable=True ), ], - stat_file_path: Annotated[ + registry_stat_file_path: Annotated[ Path, typer.Option(help="The location of the station file (from registry)."), ] = Path("default_stations_file"), @@ -90,7 +90,7 @@ def generate_fd_files( # retrieve in station names, latitudes and longitudes stations = pd.read_parquet( - local_stat_file or input.fetch_file(stat_file_path), + local_stat_file or input.fetch_file(registry_stat_file_path), ) in_domain_mask = domain_parameters.domain.contains( diff --git a/workflow/scripts/hf_sim.py b/workflow/scripts/hf_sim.py index 1176431d..ee935541 100644 --- a/workflow/scripts/hf_sim.py +++ b/workflow/scripts/hf_sim.py @@ -194,13 +194,11 @@ def run_hf( station_file: Annotated[ Path, typer.Argument(help="Location of station file.", exists=True) ], - out_file: Annotated[ - Path, typer.Argument(help="Filepath for HF output.") - ], + out_file: Annotated[Path, typer.Argument(help="Filepath for HF output.")], hf_sim_path: Annotated[Path, typer.Option(help="Path to HF sim binary")] = Path( "/EMOD3D/tools/hb_high_binmod_v6.0.3" ), - velocity_model_path: Annotated[ + registry_velocity_model_path: Annotated[ Path, typer.Option(help="Path to velocity model (in registry)") ] = Path("default_1d_velocity_model"), local_velocity_model_path: Annotated[ @@ -250,7 +248,7 @@ def run_hf( metadata = RealisationMetadata.read_from_realisation(realisation_ffp) input = RealisationInput.read_from_realisation_or_defaults(realisation_ffp) velocity_model = velocity_model_1d.read_velocity_model_1d( - local_velocity_model_path or input.fetch_file(velocity_model_path) + local_velocity_model_path or input.fetch_file(registry_velocity_model_path) ) hf_config = HFConfig.read_from_realisation_or_defaults( realisation_ffp, metadata.defaults_version diff --git a/workflow/scripts/nshm2022_to_realisation.py b/workflow/scripts/nshm2022_to_realisation.py index 2d501a92..3105d36e 100755 --- a/workflow/scripts/nshm2022_to_realisation.py +++ b/workflow/scripts/nshm2022_to_realisation.py @@ -129,7 +129,7 @@ def generate_realisation( DefaultsVersion, typer.Argument(help="Scientific default parameters version to use"), ], - nshmdb_path: Annotated[ + registry_nshmdb_path: Annotated[ Path, typer.Option(help="Path to NSHMDB (in container).") ] = Path("nshmdb.db"), local_nshmdb_path: Annotated[ @@ -166,7 +166,7 @@ def generate_realisation( ) metadata.write_to_realisation(realisation_ffp) inputs = RealisationInput.read_from_realisation_or_defaults(realisation_ffp) - db = nshmdb.NSHMDB(local_nshmdb_path or inputs.fetch_file(nshmdb_path)) + db = nshmdb.NSHMDB(local_nshmdb_path or inputs.fetch_file(registry_nshmdb_path)) faults = db.get_rupture_faults(rupture_id) faults_info = db.get_rupture_fault_info(rupture_id) diff --git a/workflow/scripts/realisation_to_srf.py b/workflow/scripts/realisation_to_srf.py index 63e5f9b6..c7d7969f 100644 --- a/workflow/scripts/realisation_to_srf.py +++ b/workflow/scripts/realisation_to_srf.py @@ -318,8 +318,10 @@ def stitch_srf_files( srf_file_map: dict[str, srf.SrfFile] = {} - def compute_rupture_delay(tinit: float, parent_coordinates: np.ndarray, child_coordinates: np.ndarray) -> float: - """ Compute the rupture jump delay between the parent SRF and child SRF. + def compute_rupture_delay( + tinit: float, parent_coordinates: np.ndarray, child_coordinates: np.ndarray + ) -> float: + """Compute the rupture jump delay between the parent SRF and child SRF. delay = T_p + d / s where T_p is the initial rupture time of the closest point on @@ -340,14 +342,17 @@ def compute_rupture_delay(tinit: float, parent_coordinates: np.ndarray, child_co float The delay for the child SRF. """ - jump_distance_km = coordinates.distance_between_wgs_depth_coordinates( - parent_coordinates, child_coordinates - ) / 1000 + jump_distance_km = ( + coordinates.distance_between_wgs_depth_coordinates( + parent_coordinates, child_coordinates + ) + / 1000 + ) # TODO: Add exponential random variable here to perturb the jump delay. - return tinit + jump_distance_km / 3.5 + return tinit + jump_distance_km / 3.5 def process_fault(fault_name: str) -> None: - """ Delay fault SRF according to rupture delay from parents + propagation speed across the gap between faults. + """Delay fault SRF according to rupture delay from parents + propagation speed across the gap between faults. Parameters ---------- @@ -355,7 +360,9 @@ def process_fault(fault_name: str) -> None: The fault to process. """ fault = faults[fault_name] - parent_fault_name = rupture_propagation_config.rupture_causality_tree.get(fault_name) + parent_fault_name = rupture_propagation_config.rupture_causality_tree.get( + fault_name + ) fault_srf_path = output_directory / "srf" / f"{normalise_name(fault_name)}.srf" fault_srf = srf.read_srf(fault_srf_path) @@ -370,8 +377,10 @@ def process_fault(fault_name: str) -> None: parent_srf = srf_file_map[parent_fault_name] parent_fault = faults[parent_fault_name] - parent_coordinates = parent_fault.fault_coordinates_to_wgs_depth_coordinates( - jump_point.from_point + parent_coordinates = ( + parent_fault.fault_coordinates_to_wgs_depth_coordinates( + jump_point.from_point + ) ) child_coordinates = fault.fault_coordinates_to_wgs_depth_coordinates( jump_point.to_point @@ -380,13 +389,16 @@ def process_fault(fault_name: str) -> None: jump_index = int( np.argmin( coordinates.distance_between_wgs_depth_coordinates( - parent_srf.points[["lat", "lon", "dep"]].to_numpy() * np.array([1, 1, 1000]), + parent_srf.points[["lat", "lon", "dep"]].to_numpy() + * np.array([1, 1, 1000]), parent_coordinates, ) ) ) tinit = parent_srf.points["tinit"].iloc[jump_index] - time_delay = compute_rupture_delay(tinit, parent_coordinates, child_coordinates) + time_delay = compute_rupture_delay( + tinit, parent_coordinates, child_coordinates + ) logger = log_utils.get_logger(__name__) fault_srf.points["tinit"] += time_delay @@ -395,11 +407,10 @@ def process_fault(fault_name: str) -> None: "computed delay", fault_name=fault_name, delay=time_delay, - srf_min=fault_srf.points['tinit'].min() + srf_min=fault_srf.points["tinit"].min(), ) ) - srf_file_map[fault_name] = fault_srf # Process each fault in the determined order @@ -412,15 +423,21 @@ def process_fault(fault_name: str) -> None: header=pd.concat([fault_srf.header for fault_srf in srf_file_map.values()]), points=pd.concat([fault_srf.points for fault_srf in srf_file_map.values()]), slipt1_array=concatenate_slip_values( - fault_srf.slipt1_array if fault_srf.slipt1_array is not None else csr_array((len(fault_srf.points), 1)) + fault_srf.slipt1_array + if fault_srf.slipt1_array is not None + else csr_array((len(fault_srf.points), 1)) for fault_srf in srf_file_map.values() ), slipt2_array=concatenate_slip_values( - fault_srf.slipt2_array if fault_srf.slipt2_array is not None else csr_array((len(fault_srf.points), 1)) + fault_srf.slipt2_array + if fault_srf.slipt2_array is not None + else csr_array((len(fault_srf.points), 1)) for fault_srf in srf_file_map.values() ), slipt3_array=concatenate_slip_values( - fault_srf.slipt3_array if fault_srf.slipt3_array is not None else csr_array((len(fault_srf.points), 1)) + fault_srf.slipt3_array + if fault_srf.slipt3_array is not None + else csr_array((len(fault_srf.points), 1)) for fault_srf in srf_file_map.values() ), ) @@ -522,7 +539,7 @@ def generate_srf( file_okay=False, ), ] = Path("/out"), - velocity_model_path: Annotated[ + registry_velocity_model_path: Annotated[ Path, typer.Option(help="Path to velocity model (in registry).") ] = Path("default_1d_velocity_model"), local_velocity_model_path: Annotated[ @@ -566,7 +583,8 @@ def generate_srf( realisation_ffp ) velocity_model = velocity_model_1d.read_velocity_model_1d( - local_velocity_model_path or realisation_input.fetch_file(velocity_model_path) + local_velocity_model_path + or realisation_input.fetch_file(registry_velocity_model_path) ) source_config = SourceConfig.read_from_realisation(realisation_ffp) From b4caf975a601dd0343bb3df927b6d239e89ce489 Mon Sep 17 00:00:00 2001 From: Jake Faulkner Date: Tue, 28 Jan 2025 14:44:23 +1300 Subject: [PATCH 26/26] ci(ruff): fix ruff import sorting --- workflow/realisations.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/workflow/realisations.py b/workflow/realisations.py index 5a99d6b8..4f832ac8 100644 --- a/workflow/realisations.py +++ b/workflow/realisations.py @@ -22,8 +22,8 @@ from schema import Schema from velocity_modelling.bounding_box import BoundingBox -from qcore import registry from IM import im_calculation +from qcore import registry from source_modelling import sources from source_modelling.rupture_propagation import JumpPair from source_modelling.sources import IsSource