Changeset 5102

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

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

Location:
spike/wktraster
Files:
2 modified

Legend:

Unmodified
Added
Removed
  • spike/wktraster/rt_pg/rtpostgis.sql.in.c

    r5026 r5102  
    539539    -- Verify out_db 
    540540    -- TODO: Waiting for out-db rasters 
    541     IF ( p_out_db = true ) THEN 
    542             RAISE EXCEPTION 'TODO: Outside database rasters not implemented yet'; 
    543             RETURN 'fail'; 
    544     END IF; 
     541    --IF ( p_out_db = true ) THEN 
     542    --        RAISE EXCEPTION 'TODO: Outside database rasters not implemented yet'; 
     543    --        RETURN 'fail'; 
     544    --END IF; 
    545545 
    546546 
  • 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