Ejemplo n.º 1
0
    def test_modis(self):
        h5f = h5py.File(FILENAME_DATA, 'r')
        lon1 = to_da(h5f['lon_1km'])
        lat1 = to_da(h5f['lat_1km'])
        satz1 = to_da(h5f['satz_1km'])

        lon250 = to_da(h5f['lon_250m'])
        lon500 = to_da(h5f['lon_500m'])

        lat250 = to_da(h5f['lat_250m'])
        lat500 = to_da(h5f['lat_500m'])

        lons, lats = modis_1km_to_250m(lon1, lat1, satz1)
        self.assertTrue(np.allclose(lon250, lons, atol=1e-2))
        self.assertTrue(np.allclose(lat250, lats, atol=1e-2))

        lons, lats = modis_1km_to_500m(lon1, lat1, satz1)
        self.assertTrue(np.allclose(lon500, lons, atol=1e-2))
        self.assertTrue(np.allclose(lat500, lats, atol=1e-2))

        lat5 = lat1[2::5, 2::5]
        lon5 = lon1[2::5, 2::5]

        satz5 = satz1[2::5, 2::5]
        lons, lats = modis_5km_to_1km(lon5, lat5, satz5)
        self.assertTrue(np.allclose(lon1, lons, atol=1e-2))
        self.assertTrue(np.allclose(lat1, lats, atol=1e-2))

        # 5km to 500m
        lons, lats = modis_5km_to_500m(lon5, lat5, satz5)
        self.assertEqual(lon500.shape, lons.shape)
        self.assertEqual(lat500.shape, lats.shape)
        # self.assertTrue(np.allclose(lon500, lons, atol=1e-2))
        # self.assertTrue(np.allclose(lat500, lats, atol=1e-2))

        # 5km to 250m
        lons, lats = modis_5km_to_250m(lon5, lat5, satz5)
        self.assertEqual(lon250.shape, lons.shape)
        self.assertEqual(lat250.shape, lats.shape)
        # self.assertTrue(np.allclose(lon250, lons, atol=1e-2))
        # self.assertTrue(np.allclose(lat250, lats, atol=1e-2))

        # Test level 2
        lat5 = lat1[2::5, 2:-5:5]
        lon5 = lon1[2::5, 2:-5:5]

        satz5 = satz1[2::5, 2:-5:5]
        lons, lats = modis_5km_to_1km(lon5, lat5, satz5)
        self.assertTrue(np.allclose(lon1, lons, atol=1e-2))
        self.assertTrue(np.allclose(lat1, lats, atol=1e-2))

        # Test nans issue (#19)
        satz1 = to_da(abs(np.linspace(-65.4, 65.4, 1354)).repeat(20).reshape(-1, 20).T)
        lons, lats = modis_1km_to_500m(lon1, lat1, satz1)
        self.assertFalse(np.any(np.isnan(lons.compute())))
        self.assertFalse(np.any(np.isnan(lats.compute())))
Ejemplo n.º 2
0
    def test_modis(self):
        h5f = h5py.File(FILENAME_DATA, 'r')
        lon1 = to_da(h5f['lon_1km'])
        lat1 = to_da(h5f['lat_1km'])
        satz1 = to_da(h5f['satz_1km'])

        lon250 = to_da(h5f['lon_250m'])
        lon500 = to_da(h5f['lon_500m'])

        lat250 = to_da(h5f['lat_250m'])
        lat500 = to_da(h5f['lat_500m'])

        lons, lats = modis_1km_to_250m(lon1, lat1, satz1)
        self.assertTrue(np.allclose(lon250, lons, atol=1e-2))
        self.assertTrue(np.allclose(lat250, lats, atol=1e-2))

        lons, lats = modis_1km_to_500m(lon1, lat1, satz1)
        self.assertTrue(np.allclose(lon500, lons, atol=1e-2))
        self.assertTrue(np.allclose(lat500, lats, atol=1e-2))

        lat5 = lat1[2::5, 2::5]
        lon5 = lon1[2::5, 2::5]

        satz5 = satz1[2::5, 2::5]
        lons, lats = modis_5km_to_1km(lon5, lat5, satz5)
        self.assertTrue(np.allclose(lon1, lons, atol=1e-2))
        self.assertTrue(np.allclose(lat1, lats, atol=1e-2))
    def test_modis(self):
        h5f = h5py.File(FILENAME_DATA, 'r')
        lon1 = to_da(h5f['lon_1km'])
        lat1 = to_da(h5f['lat_1km'])
        satz1 = to_da(h5f['satz_1km'])

        lon250 = to_da(h5f['lon_250m'])
        lon500 = to_da(h5f['lon_500m'])

        lat250 = to_da(h5f['lat_250m'])
        lat500 = to_da(h5f['lat_500m'])

        lons, lats = modis_1km_to_250m(lon1, lat1, satz1)
        self.assertTrue(np.allclose(lon250, lons, atol=1e-2))
        self.assertTrue(np.allclose(lat250, lats, atol=1e-2))

        lons, lats = modis_1km_to_500m(lon1, lat1, satz1)
        self.assertTrue(np.allclose(lon500, lons, atol=1e-2))
        self.assertTrue(np.allclose(lat500, lats, atol=1e-2))

        lat5 = lat1[2::5, 2::5]
        lon5 = lon1[2::5, 2::5]

        satz5 = satz1[2::5, 2::5]
        lons, lats = modis_5km_to_1km(lon5, lat5, satz5)
        self.assertTrue(np.allclose(lon1, lons, atol=1e-2))
        self.assertTrue(np.allclose(lat1, lats, atol=1e-2))

        # Test level 2
        lat5 = lat1[2::5, 2:-5:5]
        lon5 = lon1[2::5, 2:-5:5]

        satz5 = satz1[2::5, 2:-5:5]
        lons, lats = modis_5km_to_1km(lon5, lat5, satz5)
        self.assertTrue(np.allclose(lon1, lons, atol=1e-2))
        self.assertTrue(np.allclose(lat1, lats, atol=1e-2))
Ejemplo n.º 4
0
    def test_poles_datum(self):
        import xarray as xr
        h5f = h5py.File(FILENAME_DATA, 'r')
        orig_lon = to_da(h5f['lon_1km'])
        lon1 = orig_lon + 180
        lon1 = xr.where(lon1 > 180, lon1 - 360, lon1)
        lat1 = to_da(h5f['lat_1km'])
        satz1 = to_da(h5f['satz_1km'])

        lat5 = lat1[2::5, 2::5]
        lon5 = lon1[2::5, 2::5]

        satz5 = satz1[2::5, 2::5]
        lons, lats = modis_5km_to_1km(lon5, lat5, satz5)
        lons = lons + 180
        lons = xr.where(lons > 180, lons - 360, lons)
        self.assertTrue(np.allclose(orig_lon, lons, atol=1e-2))
        self.assertTrue(np.allclose(lat1, lats, atol=1e-2))
    def test_poles_datum(self):
        import xarray as xr
        h5f = h5py.File(FILENAME_DATA, 'r')
        orig_lon = to_da(h5f['lon_1km'])
        lon1 = orig_lon + 180
        lon1 = xr.where(lon1 > 180, lon1 - 360, lon1)
        lat1 = to_da(h5f['lat_1km'])
        satz1 = to_da(h5f['satz_1km'])

        lat5 = lat1[2::5, 2::5]
        lon5 = lon1[2::5, 2::5]

        satz5 = satz1[2::5, 2::5]
        lons, lats = modis_5km_to_1km(lon5, lat5, satz5)
        lons = lons + 180
        lons = xr.where(lons > 180, lons - 360, lons)
        self.assertTrue(np.allclose(orig_lon, lons, atol=1e-2))
        self.assertTrue(np.allclose(lat1, lats, atol=1e-2))