def test_numpy_rw_7(): if gdaltest.numpy_drv is None: pytest.skip() import numpy from osgeo import gdalnumeric ds = gdal.Open('data/byte.tif') array = numpy.zeros([1, ds.RasterYSize, ds.RasterXSize], numpy.uint8) array_res = ds.ReadAsArray(buf_obj=array) assert array is array_res ds2 = gdalnumeric.OpenArray(array) assert ds2.GetRasterBand(1).Checksum() == ds.GetRasterBand(1).Checksum() # Try again with a 2D array array = numpy.zeros([ds.RasterYSize, ds.RasterXSize], numpy.uint8) array_res = ds.ReadAsArray(buf_obj=array) assert array is array_res ds2 = gdalnumeric.OpenArray(array) assert ds2.GetRasterBand(1).Checksum() == ds.GetRasterBand(1).Checksum() # With a multi band file ds = gdal.Open('data/rgbsmall.tif') array = numpy.zeros([ds.RasterCount, ds.RasterYSize, ds.RasterXSize], numpy.uint8) array_res = ds.ReadAsArray(buf_obj=array) assert array is array_res ds2 = gdalnumeric.OpenArray(array) assert ds2.GetRasterBand(1).Checksum() == ds.GetRasterBand(1).Checksum()
def numpy_rw_7(): if gdaltest.numpy_drv is None: return 'skip' import numpy from osgeo import gdalnumeric ds = gdal.Open('data/byte.tif') array = numpy.zeros([1, ds.RasterYSize, ds.RasterXSize], numpy.uint8) array_res = ds.ReadAsArray(buf_obj=array) if array is not array_res: return 'fail' ds2 = gdalnumeric.OpenArray(array) if ds2.GetRasterBand(1).Checksum() != ds.GetRasterBand(1).Checksum(): return 'fail' # Try again with a 2D array array = numpy.zeros([ds.RasterYSize, ds.RasterXSize], numpy.uint8) array_res = ds.ReadAsArray(buf_obj=array) if array is not array_res: return 'fail' ds2 = gdalnumeric.OpenArray(array) if ds2.GetRasterBand(1).Checksum() != ds.GetRasterBand(1).Checksum(): return 'fail' return 'success'
def save_image_with_georef(image, driver, original_ds, offset_x=0, offset_y=0, save_path=None): """ Args: save_path: str, image save path driver: gdal IO driver image: an instance of ndarray original_ds: a instance of data set offset_x: x location in data set offset_y: y location in data set Returns: """ # get Geo Reference ds = gdalnumeric.OpenArray(image) gdalnumeric.CopyDatasetInfo(original_ds, ds, xoff=offset_x, yoff=offset_y) driver.CreateCopy(save_path, ds) # write by band clip = image.astype(np.int8) # write the dataset if len(image.shape) == 3: for i in range(image.shape[0]): ds.GetRasterBand(i + 1).WriteArray(clip[i]) else: ds.GetRasterBand(1).WriteArray(clip) del ds
def test_numpy_rw_8(): import numpy from osgeo import gdalnumeric ds = gdal.Open('data/rgbsmall.tif') array = numpy.zeros([ds.RasterCount, ds.RasterYSize, ds.RasterXSize], numpy.uint8) ds.ReadAsArray(buf_obj=array) ds2 = gdalnumeric.OpenArray(array) for i in range(1, ds.RasterCount): assert ds2.GetRasterBand(i).Checksum() == ds.GetRasterBand(i).Checksum()
def test_numpy_rw_2(): from osgeo import gdalnumeric array = gdalnumeric.LoadFile('data/utmsmall.tif') assert array is not None, 'Failed to load utmsmall.tif into array' ds = gdalnumeric.OpenArray(array) assert ds is not None, 'Failed to open memory array as dataset.' bnd = ds.GetRasterBand(1) assert bnd.Checksum() == 50054, 'Didnt get expected checksum on reopened file' ds = None
def test_numpy_rw_6(): import numpy from osgeo import gdalnumeric ds = gdal.Open('data/byte.tif') array = numpy.zeros([ds.RasterYSize, ds.RasterXSize], numpy.uint8) array_res = ds.GetRasterBand(1).ReadAsArray(buf_obj=array) assert array is array_res ds2 = gdalnumeric.OpenArray(array) assert ds2.GetRasterBand(1).Checksum() == ds.GetRasterBand(1).Checksum()
def numpy_rw_8(): if gdaltest.numpy_drv is None: return 'skip' import numpy from osgeo import gdalnumeric ds = gdal.Open('data/rgbsmall.tif') array = numpy.zeros([ds.RasterCount, ds.RasterYSize, ds.RasterXSize], numpy.uint8) ds.ReadAsArray(buf_obj=array) ds2 = gdalnumeric.OpenArray(array) for i in range(1, ds.RasterCount): if ds2.GetRasterBand(i).Checksum() != ds.GetRasterBand(i).Checksum(): return 'fail' return 'success'
def numpy_rw_2(): if gdaltest.numpy_drv is None: return 'skip' from osgeo import gdalnumeric array = gdalnumeric.LoadFile('data/utmsmall.tif') if array is None: gdaltest.post_reason('Failed to load utmsmall.tif into array') return 'fail' ds = gdalnumeric.OpenArray(array) if ds is None: gdaltest.post_reason('Failed to open memory array as dataset.') return 'fail' bnd = ds.GetRasterBand(1) if bnd.Checksum() != 50054: gdaltest.post_reason('Didnt get expected checksum on reopened file') return 'fail' ds = None return 'success'