From 84e51930857eb748b656f99850d61fe62748021b Mon Sep 17 00:00:00 2001 From: Jake Faulkner Date: Tue, 27 Oct 2026 14:23:37 +1300 Subject: [PATCH 1/2] Classify GCMT tectonic type with Haynie et al. (2026) source_modelling's CMTClassifier.tectonic_type now uses the Haynie et al. (2026) interface/intraslab classification instead of the NZ NSHM 2022 and NGA-SUB rules. Update the gcmt-to-realisation docstring and the test expectations: the 2003 Fiordland event (2103645) sits ~9 km below the Slab2 interface with slip very oblique to the Puysegur plate motion, and is now classified as subduction_slab. Co-Authored-By: Claude Opus 5.5 --- tests/test_gcmt_to_realisation.py | 6 ++++-- workflow/scripts/gcmt_to_realisation.py | 5 +++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/tests/test_gcmt_to_realisation.py b/tests/test_gcmt_to_realisation.py index 715cd7bb..a4107b87 100644 --- a/tests/test_gcmt_to_realisation.py +++ b/tests/test_gcmt_to_realisation.py @@ -28,7 +28,9 @@ @pytest.mark.parametrize( "event_id, tect_type", [ - ("2103645", "subduction_interface"), # 2003 Fiordland + # 2003 Fiordland: ~9 km below the Slab2 interface with slip very oblique + # to the Puysegur plate motion, so Haynie et al. (2026) favours slab. + ("2103645", "subduction_slab"), ("2016p858000", "active_shallow"), # 2016 Kaikoura ("2017p795065", "subduction_slab"), ], @@ -67,7 +69,7 @@ def test_gcmt_to_realisation_most_likely_nodal_plane(tmp_path: Path) -> None: solution_origin=solutions_ffp, ) - # The 2003 Fiordland earthquake ruptured the shallow-dipping interface. + # The shallow-dipping plane agrees with the subducting Puysegur slab. fault = SourceConfig.read_from_realisation(realisation_ffp).source_geometries[ "2103645" ] diff --git a/workflow/scripts/gcmt_to_realisation.py b/workflow/scripts/gcmt_to_realisation.py index aa93a77d..dffc1e09 100644 --- a/workflow/scripts/gcmt_to_realisation.py +++ b/workflow/scripts/gcmt_to_realisation.py @@ -164,8 +164,9 @@ def gcmt_to_realisation( Defaults to `MOST_LIKELY`. tectonic_type : focal_mechanism.TectonicType | None The tectonic type used to select the empirical ground motion models. - If not provided, it is classified from the solution with the NZ NSHM - 2022 rule (see `source_modelling.focal_mechanism`). + If not provided, it is classified from the solution with the + Haynie et al. (2026) interface/intraslab classification (see + `source_modelling.focal_mechanism`). solution_origin : Path | None If provided, use a supplied CSV of CMT solutions to lookup geometry. Must follow the format of the Geonet CMT solutions file. From a337854bc78d4f666719e8209a5993ccc01680bb Mon Sep 17 00:00:00 2001 From: Jake Faulkner Date: Tue, 27 Oct 2026 20:30:25 +1300 Subject: [PATCH 2/2] Follow source_modelling's switch to CatSep as published source_modelling now uses the published CatSep ramp-function scores of Haynie et al. (2026) against Slab2. Under it the 2003 Fiordland event (2103645) is classified as subduction_interface again, so restore the original test expectation and comments, and describe CatSep in the gcmt-to-realisation docstring. Co-Authored-By: Claude Opus 5.5 --- tests/test_gcmt_to_realisation.py | 6 ++---- workflow/scripts/gcmt_to_realisation.py | 6 +++--- 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/tests/test_gcmt_to_realisation.py b/tests/test_gcmt_to_realisation.py index a4107b87..715cd7bb 100644 --- a/tests/test_gcmt_to_realisation.py +++ b/tests/test_gcmt_to_realisation.py @@ -28,9 +28,7 @@ @pytest.mark.parametrize( "event_id, tect_type", [ - # 2003 Fiordland: ~9 km below the Slab2 interface with slip very oblique - # to the Puysegur plate motion, so Haynie et al. (2026) favours slab. - ("2103645", "subduction_slab"), + ("2103645", "subduction_interface"), # 2003 Fiordland ("2016p858000", "active_shallow"), # 2016 Kaikoura ("2017p795065", "subduction_slab"), ], @@ -69,7 +67,7 @@ def test_gcmt_to_realisation_most_likely_nodal_plane(tmp_path: Path) -> None: solution_origin=solutions_ffp, ) - # The shallow-dipping plane agrees with the subducting Puysegur slab. + # The 2003 Fiordland earthquake ruptured the shallow-dipping interface. fault = SourceConfig.read_from_realisation(realisation_ffp).source_geometries[ "2103645" ] diff --git a/workflow/scripts/gcmt_to_realisation.py b/workflow/scripts/gcmt_to_realisation.py index dffc1e09..0f082f9b 100644 --- a/workflow/scripts/gcmt_to_realisation.py +++ b/workflow/scripts/gcmt_to_realisation.py @@ -164,9 +164,9 @@ def gcmt_to_realisation( Defaults to `MOST_LIKELY`. tectonic_type : focal_mechanism.TectonicType | None The tectonic type used to select the empirical ground motion models. - If not provided, it is classified from the solution with the - Haynie et al. (2026) interface/intraslab classification (see - `source_modelling.focal_mechanism`). + If not provided, it is the most plausible type under the CatSep + scores of Haynie et al. (2026), computed against Slab2 (no Moho); + see `source_modelling.focal_mechanism`. solution_origin : Path | None If provided, use a supplied CSV of CMT solutions to lookup geometry. Must follow the format of the Geonet CMT solutions file.