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)