Example #1
0
def test_spectrum_to_spectra(make_datasets):
    """ Import a spectrum into a spectrum """

    spectrum, spectra, hsi, make_dataset_shape = make_datasets

    new_dataset = Spectra()
    new_dataset.data = spectrum

    assert new_dataset.size == spectrum.size
    np.testing.assert_array_equal(np.squeeze(new_dataset.data), spectrum)
Example #2
0
def test_hsi_to_spectra(make_datasets):
    """ Import an hsi into spectra """

    spectrum, spectra, hsi, make_dataset_shape = make_datasets

    new_dataset = Spectra()
    new_dataset.data = hsi

    assert new_dataset.size == hsi.size
    np.testing.assert_array_equal(hsi.reshape((-1, hsi.shape[-1])),
                                  new_dataset.data)
Example #3
0
def test_spectra():
    N = 101
    data = np.dot(np.ones((10, 1)), np.linspace(0, 100, N)[None, :])
    f = np.arange(N)
    spectra = Spectra(data=data, freq=f)
    np_testing.assert_allclose(spectra._data_idx_freq[0], spectra._data[...,
                                                                        0])

    # Note: _data_idx_freq is INCLUSIVE-- normal indexing is NOT
    # This the :11 and not 10
    np_testing.assert_allclose(spectra._data_idx_freq[0:10],
                               spectra._data[..., 0:11])
    np_testing.assert_allclose(spectra._data_idx_freq[0.0:10.1:.1],
                               spectra._data[..., 0:11])
    np_testing.assert_allclose(spectra._data_idx_freq[0.0:10.1],
                               spectra._data[..., 0:11])
    np_testing.assert_allclose(spectra._data_idx_freq[10], spectra._data[...,
                                                                         10])
    np_testing.assert_allclose(spectra._data_idx_freq[[10, 11]],
                               spectra._data[..., [10, 11]])

    # Slice the spatial dimension as well:
    np_testing.assert_allclose(spectra._data_idx_freq[:, 0:10],
                               spectra._data[..., 0:11])
    np_testing.assert_allclose(spectra._data_idx_freq[:, 0.0:10.1:.1],
                               spectra._data[..., 0:11])
    np_testing.assert_allclose(spectra._data_idx_freq[:, 0.0:10.1],
                               spectra._data[..., 0:11])
    np_testing.assert_allclose(spectra._data_idx_freq[10, 11],
                               spectra._data[..., [10, 11]])
    np_testing.assert_allclose(spectra._data_idx_freq[:, 10],
                               spectra._data[..., 10])
Example #4
0
def test_spectrum_to_spectra_rng(make_datasets):
    """ Import spectrum into spectra -- defined range"""

    spectrum, spectra, hsi, make_dataset_shape = make_datasets

    rng = [10, 11]

    new_dataset = Spectra()
    new_dataset.freq.data = np.arange(spectra.shape[-1])
    new_dataset.data = spectrum
    new_dataset.freq.op_list_pix = rng
    new_dataset.data = spectrum

    assert new_dataset.size == spectrum.size
    assert (new_dataset.data != 0).sum() == len(rng)
    np.testing.assert_almost_equal(np.squeeze(new_dataset.data[..., rng]),
                                   spectrum[rng])
Example #5
0
def test_hsi_to_spectra_rng(make_datasets):
    """ Import an hsi into spectra -- defined range"""

    spectrum, spectra, hsi, make_dataset_shape = make_datasets

    rng = [10, 11]

    new_dataset = Spectra()
    new_dataset.freq.data = np.arange(spectra.shape[-1])
    new_dataset.data = hsi
    new_dataset.freq.op_list_pix = rng
    new_dataset.data = hsi

    assert new_dataset.size == hsi.size
    assert (new_dataset.data != 0).sum() == len(rng) * np.prod(hsi.shape[:-1])
    np.testing.assert_almost_equal(new_dataset.data[..., rng],
                                   hsi[..., rng].reshape((-1, len(rng))))
Example #6
0
def test_hdf_import_spectra_to_spectra(hdf_dataset):
    """ Import a spectra into a spectra """

    filename, fid, hdf_data_shape = hdf_dataset
    hdf_data_shape = np.array(hdf_data_shape)

    dname = 'spectra'
    dataset = Spectra()

    out = hdf_import_data('.', filename, dname, output_cls_instance=dataset)
    assert out is True
    assert dataset.size == hdf_data_shape[1:].prod()
    np.testing.assert_array_equal(dataset.data, fid[dname].value)
Example #7
0
def test_reshape_axes_static(make_datasets):
    """ Test reshape axes static method """

    spectrum, spectra, hsi, make_dataset_shape = make_datasets

    Spectra._reshape_axes(shape=hsi.shape,
                          spectral_axis=-1) == (-1, hsi.shape[-1])
    Spectra._reshape_axes(shape=spectra.shape,
                          spectral_axis=-1) == (-1, spectra.shape[-1])
    Spectra._reshape_axes(shape=spectrum.shape,
                          spectral_axis=-1) == (-1, spectrum.shape[-1])
Example #8
0
def test_mean_axes_static():
    """ Ensure mean_axes_static raises an error"""

    with pytest.raises(NotImplementedError):
        Spectra._mean_axes()