diff --git a/geomagio/adjusted/Affine.py b/geomagio/adjusted/Affine.py index 1acc421717c4a436edc11c3a48df43fb39336899..54820455a8bd41a9390e1db07e26f99835617116 100644 --- a/geomagio/adjusted/Affine.py +++ b/geomagio/adjusted/Affine.py @@ -267,7 +267,6 @@ class Affine(BaseModel): times = self.get_times(readings) Ms = [] weights = [] - metrics = [] inputs = ordinates for transform in self.transforms: @@ -278,7 +277,10 @@ class Affine(BaseModel): ) # return NaNs if no valid observations if np.sum(weights) == 0: - raise ValueError(f"No valid observations for {time}") + return AdjustedMatrix( + matrix=np.nan * np.ones((4, 4)), + pier_correction=np.nan, + ) # zero out statistically 'bad' baselines weights = self.weight_baselines(baselines=baselines, weights=weights) diff --git a/test/adjusted_test/adjusted_test.py b/test/adjusted_test/adjusted_test.py index 26047ccccb1d6479dd50e7f2d841827a5f8e63bb..adcd74112dcf2f80618f7b0aeaaedc72e91dc23c 100644 --- a/test/adjusted_test/adjusted_test.py +++ b/test/adjusted_test/adjusted_test.py @@ -1,6 +1,6 @@ import json import numpy as np -from numpy.testing import assert_equal, assert_array_almost_equal, assert_array_less +from numpy.testing import assert_equal, assert_array_almost_equal, assert_array_equal from obspy.core import UTCDateTime from geomagio.adjusted.SpreadsheetSummaryFactory import SpreadsheetSummaryFactory @@ -235,7 +235,6 @@ def test_BOU201911202001_short_causal(): ).calculate(readings=readings) matrices = format_result([adjusted_matrix.matrix for adjusted_matrix in result]) - metrics = [adjusted_matrix.metrics for adjusted_matrix in result] expected_matrices = get_excpected_matrices("BOU", "short_causal") for i in range(len(matrices)): assert_array_almost_equal( @@ -266,7 +265,6 @@ def test_BOU201911202001_short_acausal(): ) matrices = format_result([adjusted_matrix.matrix for adjusted_matrix in result]) - metrics = [adjusted_matrix.metrics for adjusted_matrix in result] expected_matrices = get_excpected_matrices("BOU", "short_acausal") for i in range(len(matrices)): assert_array_almost_equal( @@ -301,7 +299,6 @@ def test_BOU201911202001_infinite_weekly(): ) matrices = format_result([adjusted_matrix.matrix for adjusted_matrix in result]) - metrics = [adjusted_matrix.metrics for adjusted_matrix in result] expected_matrices = get_excpected_matrices("BOU", "inf_weekly") for i in range(len(matrices)): assert_array_almost_equal( @@ -330,7 +327,6 @@ def test_BOU201911202001_infinite_one_interval(): ) matrices = format_result([adjusted_matrix.matrix for adjusted_matrix in result]) - metrics = [adjusted_matrix.metrics for adjusted_matrix in result] expected_matrices = get_excpected_matrices("BOU", "inf_one_interval") for i in range(len(matrices)): assert_array_almost_equal( @@ -342,6 +338,23 @@ def test_BOU201911202001_infinite_one_interval(): assert_equal(len(matrices), 1) +def test_BOU201911202001_invalid_readings(): + readings = [] + result = Affine( + observatory="BOU", + starttime=UTCDateTime("2019-11-01T00:00:00Z"), + endtime=UTCDateTime("2020-01-31T23:59:00Z"), + acausal=True, + transforms=[ + RotationTranslationXY(memory=np.inf), + TranslateOrigins(memory=np.inf), + ], + update_interval=None, + ).calculate(readings=readings,)[0] + assert_array_equal(result.matrix, np.nan * np.ones((4, 4))) + assert_equal(result.pier_correction, np.nan) + + def test_CMO2015_causal(): readings = get_spreadsheet_directory_readings( observatory="CMO", @@ -366,7 +379,6 @@ def test_CMO2015_causal(): ) matrices = format_result([adjusted_matrix.matrix for adjusted_matrix in result]) - metrics = [adjusted_matrix.metrics for adjusted_matrix in result] expected_matrices = get_excpected_matrices("CMO", "short_causal") for i in range(len(matrices)): assert_array_almost_equal( @@ -403,7 +415,6 @@ def test_CMO2015_acausal(): ) matrices = format_result([adjusted_matrix.matrix for adjusted_matrix in result]) - metrics = [adjusted_matrix.metrics for adjusted_matrix in result] expected_matrices = get_excpected_matrices("CMO", "short_acausal") for i in range(len(matrices)): assert_array_almost_equal( @@ -444,7 +455,6 @@ def test_CMO2015_infinite_weekly(): ) matrices = format_result([adjusted_matrix.matrix for adjusted_matrix in result]) - metrics = [adjusted_matrix.metrics for adjusted_matrix in result] expected_matrices = get_excpected_matrices("CMO", "inf_weekly") for i in range(len(matrices)): assert_array_almost_equal( @@ -481,7 +491,6 @@ def test_CMO2015_infinite_one_interval(): ) matrices = format_result([adjusted_matrix.matrix for adjusted_matrix in result]) - metrics = [adjusted_matrix.metrics for adjusted_matrix in result] expected_matrices = get_excpected_matrices("CMO", "inf_one_interval") for i in range(len(matrices)): assert_array_almost_equal(