Show
Ignore:
Timestamp:
01/05/10 11:18:26 (2 years ago)
Author:
jorgearevalo
Message:

Out-db raster support added. Ticket #227 solved.

Files:
1 modified

Legend:

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

    r5027 r5102  
    9696                     help="register the raster as a filesystem (out-db) raster") 
    9797    grp_r.add_option("-l", "--overview-level", dest="overview_level", action="store", type="int", default=1, 
    98                      help='Create overview tables named as ov_<RASTER TABLE>_<LEVEL> and ' 
     98                     help='Create overview tables named as o_<LEVEL>_<RASTER_TABLE> and ' 
    9999                     'populate with GDAL-provided overviews (regular blocking only)') 
    100100    prs.add_option_group(grp_r); 
     
    125125                     help="control endianness of generated binary output of raster; " 
    126126                     "specify 0 for XDR and 1 for NDR (default); " 
    127                      "only XDR output is supported now") 
     127                     "only NDR output is supported now") 
    128128    grp_u.add_option("-w", "--wktraster-version", dest="version", 
    129129                     action="store", type="int", default=g_rt_version,  
     
    739739    return hexwkb 
    740740 
    741 def wkblify_band(options, band, level, xoff, yoff, read_block_size, block_size): 
     741def wkblify_band(options, band, level, xoff, yoff, read_block_size, block_size, infile, bandidx): 
    742742    """Writes band of given GDAL dataset into HEX-encoded WKB for WKT Raster output.""" 
    743743    assert band is not None, "Error: Missing GDAL raster band" 
     
    748748        # Off-db raster 
    749749        # TODO: Do we want to handle options.overview_level? --mloskot 
     750        # ANSWER:  
    750751        # TODO: Where bandidx and ds come from? --mloskot 
     752        # ANSWER: Provided by caller method --jorgearevalo 
    751753        hexwkb += wkblify('B', bandidx - 1) 
    752         filepath = os.path.abspath((ds.GetFileList()[0]).replace('\\', '\\\\')) 
     754        filepath = os.path.abspath(infile.replace('\\', '\\\\')) 
     755        logit('MSG: Out-db raster path=%s\n' % filepath) 
    753756        hexwkb += wkblify(str(len(filepath)) + 's', filepath) 
    754757        hexwkb += wkblify('B', 0) 
     
    820823    return hexwkb 
    821824 
    822 def wkblify_raster_level(options, ds, level, band_range): 
     825def wkblify_raster_level(options, ds, level, band_range, infile): 
    823826    assert ds is not None 
    824827    assert level >= 1 
     
    900903 
    901904                hexwkb += wkblify_band_header(options, band) 
    902                 hexwkb += wkblify_band(options, band, level, xoff, yoff, read_block_size, block_size) 
     905                hexwkb += wkblify_band(options, band, level, xoff, yoff, read_block_size, block_size, infile, b) 
    903906 
    904907            # INSERT INTO 
     
    933936 
    934937    # Generate requested overview level (base raster if level = 1) 
    935     summary = wkblify_raster_level(options, ds, options.overview_level, band_range) 
     938    summary = wkblify_raster_level(options, ds, options.overview_level, band_range, infile) 
    936939    SUMMARY.append( summary ) 
    937940