예제 #1
0
파일: test_viirs.py 프로젝트: xwtang/satpy
    def test_histogram_dnb(self):
        """Test the 'histogram_dnb' compositor."""
        import dask.array as da
        import numpy as np
        import xarray as xr
        from pyresample.geometry import AreaDefinition

        from satpy.composites.viirs import HistogramDNB
        rows = 5
        cols = 10
        area = AreaDefinition('test', 'test', 'test', {
            'proj': 'eqc',
            'lon_0': 0.0,
            'lat_0': 0.0
        }, cols, rows, (-20037508.34, -10018754.17, 20037508.34, 10018754.17))

        comp = HistogramDNB('histogram_dnb',
                            prerequisites=('dnb', ),
                            standard_name='toa_outgoing_radiance_per_'
                            'unit_wavelength')
        dnb = np.zeros((rows, cols)) + 0.25
        dnb[3, :] += 0.25
        dnb[4:, :] += 0.5
        dnb = da.from_array(dnb, chunks=25)
        c01 = xr.DataArray(dnb,
                           dims=('y', 'x'),
                           attrs={
                               'name': 'DNB',
                               'area': area
                           })
        # data changes by row, sza changes by col for testing
        sza = np.zeros((rows, cols)) + 70.0
        sza[:, 3] += 20.0
        sza[:, 4:] += 45.0
        sza = da.from_array(sza, chunks=25)
        c02 = xr.DataArray(sza,
                           dims=('y', 'x'),
                           attrs={
                               'name': 'solar_zenith_angle',
                               'area': area
                           })
        res = comp((c01, c02))
        self.assertIsInstance(res, xr.DataArray)
        self.assertIsInstance(res.data, da.Array)
        self.assertEqual(res.attrs['name'], 'histogram_dnb')
        self.assertEqual(res.attrs['standard_name'], 'equalized_radiance')
        data = res.compute()
        unique_values = np.unique(data)
        np.testing.assert_allclose(unique_values, [0.5994, 0.7992, 0.999],
                                   rtol=1e-3)
예제 #2
0
    def test_histogram_dnb(self, c01, c02):
        """Test the 'histogram_dnb' compositor."""
        from satpy.composites.viirs import HistogramDNB

        comp = HistogramDNB('histogram_dnb',
                            prerequisites=('dnb', ),
                            standard_name='toa_outgoing_radiance_per_'
                            'unit_wavelength')
        res = comp((c01, c02))
        assert isinstance(res, xr.DataArray)
        assert isinstance(res.data, da.Array)
        assert res.attrs['name'] == 'histogram_dnb'
        assert res.attrs['standard_name'] == 'equalized_radiance'
        data = res.compute()
        unique_values = np.unique(data)
        np.testing.assert_allclose(unique_values, [0.5994, 0.7992, 0.999],
                                   rtol=1e-3)