コード例 #1
0
def test_compute_persistence(initialized_ds, reconstruction_ds,
                             observations_ds):
    """Test to see if compute_persistence can be run from the HindcastEnsemble"""
    hindcast = HindcastEnsemble(initialized_ds)
    hindcast.add_reference(reconstruction_ds, 'reconstruction')
    hindcast.add_reference(observations_ds, 'observations')
    hindcast.compute_persistence()
    hindcast.compute_persistence('observations')
    hindcast.compute_persistence(metric='rmse')
コード例 #2
0
def test_smooth_temporal(fosi_3d, dple_3d):
    """Test whether coarsening reduces dim.size."""
    hindcast = HindcastEnsemble(dple_3d)
    hindcast.add_reference(fosi_3d, 'reconstruction')
    hindcast.add_uninitialized(fosi_3d)
    initialized_before = hindcast.initialized
    dim = 'lead'
    hindcast.smooth(smooth_kws={dim: 4})
    actual_initialized = hindcast.initialized
    assert initialized_before[dim].size > actual_initialized[dim].size
コード例 #3
0
def test_compute_metric(initialized_ds, reconstruction_ds, observations_ds):
    """Test to see if compute_metric can be run from the HindcastEnsemble"""
    hindcast = HindcastEnsemble(initialized_ds)
    hindcast.add_reference(reconstruction_ds, 'reconstruction')
    hindcast.add_reference(observations_ds, 'observations')
    # Don't need to check for NaNs, etc. since that's handled in the prediction
    # module testing.
    hindcast.compute_metric()  # compute over all references
    hindcast.compute_metric('reconstruction')  # compute over single reference
    # test all keywords
    hindcast.compute_metric(max_dof=True, metric='rmse', comparison='m2r')
コード例 #4
0
def test_smooth_goddard(fosi_3d, dple_3d):
    """Test whether goddard smoothing function reduces ntime."""
    hindcast = HindcastEnsemble(dple_3d.isel(nlat=slice(1, None)))
    hindcast.add_reference(fosi_3d.isel(nlat=slice(1, None)), 'reconstruction')
    hindcast.add_uninitialized(fosi_3d.isel(nlat=slice(1, None)))
    initialized_before = hindcast.initialized
    hindcast.smooth(smooth_kws='goddard2013')
    actual_initialized = hindcast.initialized
    dim = 'lead'
    assert actual_initialized[dim].size < initialized_before[dim].size
    for dim in ['nlon', 'nlat']:
        assert actual_initialized[dim[1:]].size < initialized_before[dim].size
コード例 #5
0
def test_compute_uninitialized(initialized_ds, uninitialized_ds,
                               reconstruction_ds, observations_ds):
    """Test to see if compute_uninitialized can be frun from the HindcastEnsemble"""
    hindcast = HindcastEnsemble(initialized_ds)
    hindcast.add_reference(reconstruction_ds, 'reconstruction')
    hindcast.add_uninitialized(uninitialized_ds)
    # single reference, no declaration of name.
    hindcast.compute_uninitialized()
    hindcast.add_reference(observations_ds, 'observations')
    # multiple references, no name declaration.
    hindcast.compute_uninitialized()
    # multiple references, call one.
    hindcast.compute_uninitialized('reconstruction')
    hindcast.compute_uninitialized(metric='rmse', comparison='m2r')
コード例 #6
0
def test_add_reference_da(initialized_ds, observations_da):
    """Test to see if a reference can be added to the HindcastEnsemble as a da"""
    hindcast = HindcastEnsemble(initialized_ds)
    hindcast.add_reference(observations_da, 'observations')
コード例 #7
0
def test_add_reference(initialized_ds, reconstruction_ds):
    """Test to see if a reference can be added to the HindcastEnsemble"""
    hindcast = HindcastEnsemble(initialized_ds)
    hindcast.add_reference(reconstruction_ds, 'reconstruction')
コード例 #8
0
def test_compute_metric_single(initialized_ds, reconstruction_ds):
    """Test to see if compute_metric automatically works with a single reference"""
    hindcast = HindcastEnsemble(initialized_ds)
    hindcast.add_reference(reconstruction_ds, 'reconstruction')
    hindcast.compute_metric()