Ejemplo n.º 1
0
    def test_readasarray(self):
        with LibVips.disable_warnings():
            vips_ds = VipsDataset(inputfile=self.upsamplingfile)
            gdal_ds = Dataset(inputfile=self.upsamplingfile)

            # Reading the whole file
            self.assertEqual(
                vips_ds.ReadAsArray(xoff=0, yoff=0).all(),
                gdal_ds.ReadAsArray(xoff=0, yoff=0).all())

            # Reading from an offset
            vips_data = vips_ds.ReadAsArray(xoff=128, yoff=128)
            gdal_data = gdal_ds.ReadAsArray(xoff=128,
                                            yoff=128,
                                            xsize=128,
                                            ysize=128)
            self.assertEqual(vips_data.all(), gdal_data.all())

            vips_blue = vips_ds.GetRasterBand(3)
            gdal_blue = gdal_ds.GetRasterBand(3)

            # Reading the whole band
            self.assertEqual(
                vips_blue.ReadAsArray(xoff=0, yoff=0).all(),
                gdal_blue.ReadAsArray(xoff=0, yoff=0).all())

            # Reading from an offset
            vips_band_data = vips_blue.ReadAsArray(xoff=128, yoff=128)
            gdal_band_data = gdal_blue.ReadAsArray(xoff=128,
                                                   yoff=128,
                                                   win_xsize=128,
                                                   win_ysize=128)
            self.assertEqual(vips_band_data.all(), gdal_band_data.all())

            # Test for errors
            self.assertRaises(ValueError,
                              vips_ds.ReadAsArray,
                              xoff=0,
                              yoff=0,
                              buf_obj=[])

            self.assertRaises(ValueError,
                              vips_blue.ReadAsArray,
                              xoff=0,
                              yoff=0,
                              buf_xsize=1,
                              buf_ysize=1)