Changes between Version 38 and Version 39 of WKTRasterDriver


Ignore:
Timestamp:
Jul 26, 2009, 3:19:33 AM (15 years ago)
Author:
jorgearevalo
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • WKTRasterDriver

    v38 v39  
    44
    55
    6 ********** UPDATED ON 2009/07/19 ***********
     6********** UPDATED ON 2009/07/26 ***********
    77
    88
     
    1717[http://www.gis4free.org/blog/2009/07/04/gsoc-09-weekly-report-6-2606-0307/ Weekly report #6 (26/06 - 03/07)][[BR]]
    1818[http://www.gis4free.org/blog/2009/07/13/gsoc-09-weekly-report-7-0307-1007/ Weekly report #7 (03/07 - 10/07)][[BR]]
    19 [http://www.gis4free.org/blog/2009/07/20/gsoc-09-weekly-report-8-1007-1707/ Weekly report #8 (10/07 - 17/07)]
     19[http://www.gis4free.org/blog/2009/07/20/gsoc-09-weekly-report-8-1007-1707/ Weekly report #8 (10/07 - 17/07)][[BR]]
     20[http://www.gis4free.org/blog/2009/07/26/gsoc-09-weekly…report-9-1707-2407/ Weekly report #8 (17/07 - 24/07)]
    2021
    2122== General overview ==
     
    8384I'll need more testing, anyway.
    8485
     86== Wrappers for Dataset and RasterBand ==
     87
     88The code was really complex after implementing fully read-only support for regular-blocking raster. And it was really inconvenient to manage with the hexwkb format in the RasterBand methods. So, I created two wrappers: WKTRasterWrapper and WKTRasterBandWrapper.
     89
     90The WKTRasterWrapper represents a WKTRaster, with a raster header and an array of raster bands. The constructor of the class takes a hexwkb string as input, and fill all the raster header's properties and create the raster band wrappers. ''WKTRasterBand'' class has been declared as ''friend'' class, so, it can modify any raster field. The more important part is a method, called ''GetHexWkbRepresentation'' that returns the updated hexwkb string each time is called. It will be useful to perform the inplace update, or to update the RASTER_COLUMNS table if needed.
     91
     92The WKTRasterBandWrapper represents a raster band. This class is managed by WKTRasterWrapper class. It has one method, ''SetData'', that updates the data of the band.
     93
     94I think these wrappers will simplify the rest of the work.
     95
    8596== Overviews ==
    8697
     
    92103  1. Create one Dataset per overview in the Open method of WKTRasterDataset class. Is necessary to check the number of overviews of the given table, using the RASTER_OVERVIEWS metadata table. Is necessary to set the name of the overviews table in each created Dataset.
    93104  1. Create the rasterbands for each overview Dataset. Change the pixel size by using the overview factor.
     105  1. Create metadata entries for each overview as elements of SUBDATASETS metadata domain in Dataset.
    94106
    95107
    96108== Out-db rasters ==
    97109
    98 I'm working in the implementation of the support for out-db rasters too. The point is to read the band data from a file in the filesystem, instead of fetching it from database. I suppose that the file in the filesystem contains ONLY the raster bands data.
     110I'm working in the implementation of the support for out-db rasters too. The point is to read the band data from a file in the filesystem, instead of fetching it from database. The files will be a fully-qualified raster files. Maybe TIFF files. This issue is undecided and under development just now (July 26th)
    99111
    100 == Project plan (please, edit as convenient) ==
     112== Project plan (The tasks will be revised to the end of the GSoC) ==
    101113
    102114||'''Objectives and tasks'''||'''Approx. Schedule'''||'''Status'''||
     
    108120||RasterBand: Query the correct block and fetch the raster data||15th July||Done||
    109121||'''Objective 1.1 - Support of different pixel data types, take care of byte swapping'''||'''17th July'''||'''Done'''||
    110 ||'''Objective 2 - Support access to overviews'''||'''26th July'''||'''On going'''||
    111 ||'''Objective 3 - Support for out-db rasters'''||'''26th July'''||'''On going'''||
    112 ||'''Objective 4 - Rasters inplace update'''||'''26th July'''||'''todo'''||
     122||'''Objective 2 - Support access to overviews'''||'''26th July'''||'''Done'''||
     123||'''Objective 3 - Rasters inplace update'''||'''26th July'''||'''Done'''||
     124||'''Objective 4 - Support for out-db rasters'''||'''2th August'''||'''On going'''||
    113125||'''Objective 5 - Read only support for non-regular blocking rasters'''||'''2th-10th August'''||'''todo'''||
    114126||Objective 5.1 - Block caching in Raster Band||2th-10th August||todo||
     
    124136The quotes of this page are taken from:
    125137  * The WKT Raster specification documents, from Pierre Racine.
    126   * The GDAL Driver implementation tutorial: http://www.gdal.org/gdal_drivertut.html, from ¿Frank Warmerdam?
     138  * The GDAL Driver implementation tutorial: http://www.gdal.org/gdal_drivertut.html, from Frank Warmerdam
    127139  * The GDAL Data model: http://www.gdal.org/gdal_datamodel.html, from ¿Frank Warmerdam?
    128140  * Comments sent by mail or posted in my blog by Tamas Szekeres, Mateusz Loskot, Frank Warmerdam, Even Rouault, Pierre Racine.