Show
Ignore:
Timestamp:
06/10/09 07:24:31 (3 years ago)
Author:
mloskot
Message:

[wktraster] Fixed stupid bug that was exporting pixel data of non-overview band as it was overview. Simply, band.GetOverview?() call was missing. mloskot's writing 1000 times: don't listen to reggae musing while coding.

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • spike/wktraster/scripts/gdal2wktraster.py

    r4133 r4163  
    470470    assert overview < band.GetOverviewCount() 
    471471     
    472     band_ov = band.GetOverview(overview) 
    473     assert band_ov is not None 
    474      
    475     ovf = int(0.5 + ds.RasterXSize / float(band_ov.XSize)) 
     472    ov_band = band.GetOverview(overview) 
     473    assert ov_band is not None 
     474     
     475    ovf = int(0.5 + ds.RasterXSize / float(ov_band.XSize)) 
    476476    logit('MSG: Overview factor = %d\n' % ovf) 
    477477 
     
    567567     
    568568    return (xgeo, ygeo) 
     569 
     570def calculate_geoxy_overview(gt, xy, level): 
     571 
     572    # Update pixel resolution according to overview level 
     573    newgt = ( gt[0], gt[1] * float(level), gt[2], gt[3], gt[4], gt[5] * float(level) ) 
     574 
     575    return calculate_geoxy(newgt, xy) 
    569576 
    570577def calculate_bounding_box(ds): 
     
    861868 
    862869        for nov in range(0, noverviews): 
    863             msg = 'MSG: ---------- OVERVIEW # %d ------------------------------\n' % nov 
     870            msg = 'MSG: ---------- OVERVIEW # %d ------------------------------\n' % (nov + 1) 
    864871            logit(msg) 
    865872            options.output.write('\n-- ' + msg) 
    866873             
    867             band_ov = ds.GetRasterBand(band_from).GetOverview(nov) 
    868             assert band_ov is not None 
     874            ov_band = ds.GetRasterBand(band_from).GetOverview(nov) 
     875            assert ov_band is not None 
    869876            ov_factor = calculate_overview_factor(ds, nov) 
    870877 
     
    877884            options.output.write(sql) 
    878885 
    879             raster_size = ( band_ov.XSize, band_ov.YSize ) 
     886            raster_size = ( ov_band.XSize, ov_band.YSize ) 
    880887            grid_size = calculate_grid_size(raster_size, block_size) 
    881888             
    882889            logit("MSG: Processing overview = %s using block = %s as grid = %s\n" % \ 
    883890                  (str(raster_size), str(block_size), str(grid_size))) 
    884              
     891 
     892            ov_band = None 
    885893            tile_count = 0 
    886894 
     
    890898                    xoff = xcell * block_size[0] 
    891899                    yoff = ycell * block_size[1] 
    892                     ul = calculate_geoxy(gt, (xoff, yoff)) 
     900                    ul = calculate_geoxy_overview(gt, (xoff, yoff), ov_factor) 
    893901 
    894902                    logit("MSG: ---------- CELL %d x %d: (%d x %d) (%d x %d); UL: %s  --------------------\n" % \ 
     
    902910                        logit("MSG: Band %d\n" % nband) 
    903911 
    904                         hexwkb += wkblify_band_header(options, band) 
    905                         hexwkb += wkblify_band(options, band, xoff, yoff, block_size) 
     912                        ov_band = band.GetOverview(nov) 
     913                        assert ov_band is not None, "Missing GDAL overview %d for band %d" % (nov, nband) 
     914                         
     915                        hexwkb += wkblify_band_header(options, ov_band) 
     916                        hexwkb += wkblify_band(options, ov_band, xoff, yoff, block_size) 
    906917 
    907918                    # INSERT INTO