Python osgeo.gdal.RegenerateOverview() Examples
The following are 6
code examples of osgeo.gdal.RegenerateOverview().
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example.
You may also want to check out all available functions/classes of the module
osgeo.gdal
, or try the search function
.
Example #1
Source File: gdal2cesium.py From gdal2cesium with GNU General Public License v2.0 | 6 votes |
def scale_query_to_tile(self, dsquery, dstile): """Scales down query dataset to the tile dataset""" querysize = dsquery.RasterXSize tilesize = dstile.RasterXSize tilebands = dstile.RasterCount if self.options.resampling == 'average': for i in range(1,tilebands+1): res = gdal.RegenerateOverview( dsquery.GetRasterBand(i), dstile.GetRasterBand(i), 'average' ) if res != 0: self.error("RegenerateOverview() failed") else: # Other algorithms are implemented by gdal.ReprojectImage(). dsquery.SetGeoTransform( (0.0, tilesize / float(querysize), 0.0, 0.0, 0.0, tilesize / float(querysize)) ) dstile.SetGeoTransform( (0.0, 1.0, 0.0, 0.0, 0.0, 1.0) ) res = gdal.ReprojectImage(dsquery, dstile, None, None, self.resampling) if res != 0: self.error("ReprojectImage() failed on %s, error %d" % (tilefilename, res))
Example #2
Source File: gdal2tiles.py From gdal2tiles with MIT License | 4 votes |
def scale_query_to_tile(dsquery, dstile, tiledriver, options, tilefilename=''): """Scales down query dataset to the tile dataset""" querysize = dsquery.RasterXSize tilesize = dstile.RasterXSize tilebands = dstile.RasterCount if options.resampling == 'average': # Function: gdal.RegenerateOverview() for i in range(1, tilebands+1): # Black border around NODATA res = gdal.RegenerateOverview(dsquery.GetRasterBand(i), dstile.GetRasterBand(i), 'average') if res != 0: exit_with_error("RegenerateOverview() failed on %s, error %d" % ( tilefilename, res)) elif options.resampling == 'antialias': # Scaling by PIL (Python Imaging Library) - improved Lanczos array = numpy.zeros((querysize, querysize, tilebands), numpy.uint8) for i in range(tilebands): array[:, :, i] = gdalarray.BandReadAsArray(dsquery.GetRasterBand(i+1), 0, 0, querysize, querysize) im = Image.fromarray(array, 'RGBA') # Always four bands im1 = im.resize((tilesize, tilesize), Image.ANTIALIAS) if os.path.exists(tilefilename): im0 = Image.open(tilefilename) im1 = Image.composite(im1, im0, im1) im1.save(tilefilename, tiledriver) else: if options.resampling == 'near': gdal_resampling = gdal.GRA_NearestNeighbour elif options.resampling == 'bilinear': gdal_resampling = gdal.GRA_Bilinear elif options.resampling == 'cubic': gdal_resampling = gdal.GRA_Cubic elif options.resampling == 'cubicspline': gdal_resampling = gdal.GRA_CubicSpline elif options.resampling == 'lanczos': gdal_resampling = gdal.GRA_Lanczos # Other algorithms are implemented by gdal.ReprojectImage(). dsquery.SetGeoTransform((0.0, tilesize / float(querysize), 0.0, 0.0, 0.0, tilesize / float(querysize))) dstile.SetGeoTransform((0.0, 1.0, 0.0, 0.0, 0.0, 1.0)) res = gdal.ReprojectImage(dsquery, dstile, None, None, gdal_resampling) if res != 0: exit_with_error("ReprojectImage() failed on %s, error %d" % (tilefilename, res))
Example #3
Source File: gdal2tiles.py From gdal2tiles with MIT License | 4 votes |
def options_post_processing(options, input_file, output_folder): if not options.title: options.title = os.path.basename(input_file) if options.url and not options.url.endswith('/'): options.url += '/' if options.url: out_path = output_folder if out_path.endswith("/"): out_path = out_path[:-1] options.url += os.path.basename(out_path) + '/' # Supported options if options.resampling == 'average': try: if gdal.RegenerateOverview: pass except Exception: exit_with_error("'average' resampling algorithm is not available.", "Please use -r 'near' argument or upgrade to newer version of GDAL.") elif options.resampling == 'antialias': try: if numpy: # pylint:disable=W0125 pass except Exception: exit_with_error("'antialias' resampling algorithm is not available.", "Install PIL (Python Imaging Library) and numpy.") try: os.path.basename(input_file).encode('ascii') except UnicodeEncodeError: full_ascii = False else: full_ascii = True # LC_CTYPE check if not full_ascii and 'UTF-8' not in os.environ.get("LC_CTYPE", ""): if not options.quiet: print("\nWARNING: " "You are running gdal2tiles.py with a LC_CTYPE environment variable that is " "not UTF-8 compatible, and your input file contains non-ascii characters. " "The generated sample googlemaps, openlayers or " "leaflet files might contain some invalid characters as a result\n") # Output the results if options.verbose: print("Options:", options) print("Input:", input_file) print("Output:", output_folder) print("Cache: %s MB" % (gdal.GetCacheMax() / 1024 / 1024)) print('') return options
Example #4
Source File: gdal2tiles.py From gdal2tiles with MIT License | 4 votes |
def scale_query_to_tile(dsquery, dstile, tiledriver, options, tilefilename=''): """Scales down query dataset to the tile dataset""" querysize = dsquery.RasterXSize tilesize = dstile.RasterXSize tilebands = dstile.RasterCount if options.resampling == 'average': # Function: gdal.RegenerateOverview() for i in range(1, tilebands + 1): # Black border around NODATA res = gdal.RegenerateOverview(dsquery.GetRasterBand(i), dstile.GetRasterBand(i), 'average') if res != 0: exit_with_error("RegenerateOverview() failed on %s, error %d" % ( tilefilename, res)) elif options.resampling == 'antialias': # Scaling by PIL (Python Imaging Library) - improved Lanczos array = numpy.zeros((querysize, querysize, tilebands), numpy.uint8) for i in range(tilebands): array[:, :, i] = gdalarray.BandReadAsArray(dsquery.GetRasterBand(i + 1), 0, 0, querysize, querysize) im = Image.fromarray(array, 'RGBA') # Always four bands im1 = im.resize((tilesize, tilesize), Image.ANTIALIAS) if os.path.exists(tilefilename): im0 = Image.open(tilefilename) im1 = Image.composite(im1, im0, im1) im1.save(tilefilename, tiledriver) else: if options.resampling == 'near': gdal_resampling = gdal.GRA_NearestNeighbour elif options.resampling == 'bilinear': gdal_resampling = gdal.GRA_Bilinear elif options.resampling == 'cubic': gdal_resampling = gdal.GRA_Cubic elif options.resampling == 'cubicspline': gdal_resampling = gdal.GRA_CubicSpline elif options.resampling == 'lanczos': gdal_resampling = gdal.GRA_Lanczos # Other algorithms are implemented by gdal.ReprojectImage(). dsquery.SetGeoTransform((0.0, tilesize / float(querysize), 0.0, 0.0, 0.0, tilesize / float(querysize))) dstile.SetGeoTransform((0.0, 1.0, 0.0, 0.0, 0.0, 1.0)) res = gdal.ReprojectImage(dsquery, dstile, None, None, gdal_resampling) if res != 0: exit_with_error("ReprojectImage() failed on %s, error %d" % (tilefilename, res))
Example #5
Source File: gdal2tiles.py From gdal2tiles with MIT License | 4 votes |
def options_post_processing(options, input_file, output_folder): if not options.title: options.title = os.path.basename(input_file) if options.url and not options.url.endswith('/'): options.url += '/' if options.url: out_path = output_folder if out_path.endswith("/"): out_path = out_path[:-1] options.url += os.path.basename(out_path) + '/' if isinstance(options.zoom, (list, tuple)) and len(options.zoom) < 2: raise ValueError('Invalid zoom value') # Supported options if options.resampling == 'average': try: if gdal.RegenerateOverview: pass except Exception: exit_with_error("'average' resampling algorithm is not available.", "Please use -r 'near' argument or upgrade to newer version of GDAL.") elif options.resampling == 'antialias': try: if numpy: # pylint:disable=W0125 pass except Exception: exit_with_error("'antialias' resampling algorithm is not available.", "Install PIL (Python Imaging Library) and numpy.") try: os.path.basename(input_file).encode('ascii') except UnicodeEncodeError: full_ascii = False else: full_ascii = True # LC_CTYPE check if not full_ascii and 'UTF-8' not in os.environ.get("LC_CTYPE", ""): if not options.quiet: print("\nWARNING: " "You are running gdal2tiles.py with a LC_CTYPE environment variable that is " "not UTF-8 compatible, and your input file contains non-ascii characters. " "The generated sample googlemaps, openlayers or " "leaflet files might contain some invalid characters as a result\n") # Output the results if options.verbose: print("Options:", options) print("Input:", input_file) print("Output:", output_folder) print("Cache: %s MB" % (gdal.GetCacheMax() / 1024 / 1024)) print('') return options
Example #6
Source File: gdal2tiles_parallel.py From geopackage-python with GNU General Public License v3.0 | 4 votes |
def scale_query_to_tile(self, dsquery, dstile, tilefilename=''): """Scales down query dataset to the tile dataset""" querysize = dsquery.RasterXSize tilesize = dstile.RasterXSize tilebands = dstile.RasterCount if self.options.resampling == 'average': # Function: gdal.RegenerateOverview() for i in range(1, tilebands + 1): # Black border around NODATA #if i != 4: # dsquery.GetRasterBand(i).SetNoDataValue(0) res = gdal.RegenerateOverview( dsquery.GetRasterBand(i), dstile.GetRasterBand(i), 'average') if res != 0: self.error("RegenerateOverview() failed on %s, error %d" % (tilefilename, res)) elif self.options.resampling == 'antialias': # Scaling by PIL (Python Imaging Library) - improved Lanczos array = numpy.zeros((querysize, querysize, tilebands), numpy.uint8) for i in range(tilebands): array[:, :, i] = gdalarray.BandReadAsArray( dsquery.GetRasterBand(i + 1), 0, 0, querysize, querysize) im = Image.fromarray(array, 'RGBA') # Always four bands im1 = im.resize((tilesize, tilesize), Image.ANTIALIAS) if path.exists(tilefilename): im0 = Image.open(tilefilename) im1 = Image.composite(im1, im0, im1) im1.save(tilefilename, self.tiledriver) else: # Other algorithms are implemented by gdal.ReprojectImage(). dsquery.SetGeoTransform((0.0, tilesize / float(querysize), 0.0, 0.0, 0.0, tilesize / float(querysize))) dstile.SetGeoTransform((0.0, 1.0, 0.0, 0.0, 0.0, 1.0)) res = gdal.ReprojectImage(dsquery, dstile, None, None, self.resampling) if res != 0: self.error("ReprojectImage() failed on %s, error %d" % (tilefilename, res)) # -------------------------------------------------------------------------