def test_bilinear(self): data = numpy.fromfunction(lambda y, x: y * x * 10**-6, (928, 928)) msg_con = image.ImageContainerBilinear(data, self.msg_area_resize, 50000, segments=1, neighbours=8) area_con = msg_con.resample(self.area_def) res = area_con.image_data cross_sum = res.sum() expected = 24712.589910252744 self.assertAlmostEqual(cross_sum, expected)
def test_bilinear_swath(self): data = numpy.fromfunction(lambda y, x: y * x, (50, 10)) lons = numpy.fromfunction(lambda y, x: 3 + x, (50, 10)) lats = numpy.fromfunction(lambda y, x: 75 - y, (50, 10)) swath_def = geometry.SwathDefinition(lons=lons, lats=lats) swath_con = image.ImageContainerBilinear(data, swath_def, 500000, segments=1, neighbours=8) area_con = swath_con.resample(self.area_def) res = area_con.image_data cross_sum = res.sum() expected = 16852120.789503865 self.assertAlmostEqual(cross_sum, expected, places=5)
def test_bilinear_multi(self): data1 = numpy.fromfunction(lambda y, x: y * x * 10**-6, (928, 928)) data2 = numpy.fromfunction(lambda y, x: y * x * 10**-6, (928, 928)) * 2 data = numpy.dstack((data1, data2)) msg_con = image.ImageContainerBilinear(data, self.msg_area_resize, 50000, segments=1, neighbours=8) area_con = msg_con.resample(self.area_def) res = area_con.image_data cross_sum1 = res[:, :, 0].sum() expected1 = 24712.589910252744 self.assertAlmostEqual(cross_sum1, expected1) cross_sum2 = res[:, :, 1].sum() expected2 = 24712.589910252744 * 2 self.assertAlmostEqual(cross_sum2, expected2)