hi list, I recently upgraded to gdal 1.6.0 and found that one Python function that used to work in 1.4.4 no longer works. The purpose of function was to read in a band, perform matrix manipulation (in this case, subtract a baseline) and resave.
The error that I am getting is that in the new dataset the last hundreds of lines DN are written zero. If I take out the last line "self.balanced_ds.FlushCache()" then the entire dataset is written as zeros. None of errors would happen in gdal 1.4.4. Is there any changes in gdal 1.6.0 w.r.t. FlushCache() ? What is the right way to perform this? thanks, Shawn =================================== RCS_PROC_STEP = 300 src_ds = gdal.Open(src_filename) self.balanced_ds = gdal.GetDriverByName("GTiff").CreateCopy(tmp_filename, src_ds, 0) bandobj = self.balanced_ds.GetRasterBand(1) xsize, ysize = self.balanced_ds.RasterXSize,self.balanced_ds.RasterYSize output_datatype = gdalnumeric.GDALTypeCodeToNumericTypeCode( bandobj.DataType ) nblocks = ysize / RCS_PROC_STEP + 1 nlines = RCS_PROC_STEP for block in range( nblocks ): first_line = RCS_PROC_STEP*block if block == nblocks - 1: nlines = ysize - first_line datablock = gdalnumeric.BandReadAsArray( bandobj, 0, first_line, xsize, nlines ) datablock = datablock - baseline gdalnumeric.BandWriteArray( bandobj, datablock.astype(gdalnumeric.Int16), 0, first_line ) bandobj.FlushCache() self.balanced_ds.FlushCache()
_______________________________________________ gdal-dev mailing list gdal-dev@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/gdal-dev