Example #1
0
 def test_sample_bilinear_array(self):
     grid = RegularGrid([0.0, 0.0, 1.0, 1.0, 0.0, 0.0],
                        values=np.arange(64,
                                         dtype=np.float64).reshape([8, 8]))
     X, Y = np.meshgrid(np.arange(1, 7, 0.5), np.arange(2, 5, 0.25))
     res = grid.sample_bilinear(X, Y)
     self.assertEqual(res.shape, (1, 12, 12))
Example #2
0
 def test_sample_linear_out_of_bounds(self):
     g = RegularGrid([0, 0, 1, 1, 0, 0], values=np.ones((10, 10)))
     v = g.sample_bilinear(np.array([7, 9, 12, 15]), np.array([3, 1, -1,
                                                               1]))
     self.assertEqual(v[0][0], 1.0)
     self.assertEqual(v[0][1], 1.0)
     self.assertTrue(np.isnan(v[0][2]))
     self.assertTrue(np.isnan(v[0][3]))
Example #3
0
 def test_sample_bilinear2(self):
     grid = RegularGrid([0.0, 0.0, 1.0, 1.0, 0.0, 0.0],
                        values=np.array([[0, 1], [1, 0.5]]))
     xi, yi = np.meshgrid(np.linspace(0.5, 1.5), np.linspace(0.5, 1.5))
     z = grid.sample_bilinear(xi, yi).ravel()
     self.assertEqual([z[400], z[1200], z[1550], z[2120]], [
         0.16326530612244894, 0.48979591836734693, 0.63265306122448983,
         0.74052478134110788
     ])
Example #4
0
 def test_sample_bilinear_skewed(self):
     grid = RegularGrid([0.0, 0.0, 1.0, 1.0, 0.5, 0.2],
                        values=np.array([[0, 1], [1, 0.5]]))
     self.assertEqual(grid.sample_bilinear(1.5, 1.2), 0.625)
Example #5
0
 def test_sample_bilinear_multiband(self):
     grid = RegularGrid([0.0, 0.0, 1.0, 1.0, 0.0, 0.0],
                        values=np.dstack([[[0, 1], [1, 0.5]],
                                          [[1, 2], [2, 1.5]]]))
     res = grid.sample_bilinear(1.0, 1.0)
     self.assertTrue(np.all(res == np.array([0.625, 1.625])))
Example #6
0
 def test_sample_bilinear_uint8(self):
     grid = RegularGrid([0.0, 0.0, 1.0, 1.0, 0.0, 0.0],
                        values=np.array([[0, 2], [2, 1]], dtype=np.uint8))
     self.assertEqual(grid.sample_bilinear(1.0, 1.0), 1)