[Gdal-dev] Re: SoC project status

Adam Nowacki nowak at xpam.de
Mon Jul 16 12:34:31 EDT 2007


Frank Warmerdam wrote:
> As mentioned earlier, I'd like to see the design living in the GDAL Trac
> Wiki.  Design review of the driver ought to take place on gdal-dev.

http://trac.osgeo.org/gdal/wiki/SoCWMSDriver

but I don't really like the way editing works there, It's all same 
looking text.
Can we get C++ syntax coloring ? 
http://trac.osgeo.org/gdal/wiki/TracSyntaxColoring

> I think it would make sense to use distinct driver implementations for
> the tile based datasources (TMS, Worldwind, etc) and WMS.  For the WMS
> driver it makes sense to override IRasterIO() and fetch the exact
> requested region at the requested resolution.
> But for fixed tile based data sources, I think you should just implement
> the IReadBlock() interface and leave it up to the normal GDAL blocking
> mechanism to handle mosaicing, etc.

For base image it may be fine as the alignment required is only block 
size, usually 256x256 to 512x512. However, if you add overviews the 
alignment requirement grows by 2^n where n is number of overviews. For 
example to have all overviews in global 15 meter / pixel Landsat tileset 
the data window would have to be 2`700`000 x 1`300`000 pixels starting 
at (-180, 90). That big image may be a problem for some poorly coded 
applications.

Another thing is serial nature of block based IO. Only one image could 
be downloaded at same time (unless some clever prefetching is 
implemented). A bigger request to RasterIO can be serviced using 
parallel http connections and/or pipelining making it several times faster.

> As mentioned earlier, I don't think the background thread/curl/adviseread
> stuff should be done in the first pass.  So please plan initially
> on a single threaded approach with that as an optional development
> once the basics are all working.

Background thread / AdviseRead, I can forget it for a while ... but 
CURL, do you mean that I should not use CURL in the driver ? WCS driver 
already does so why couldn't WMS ?

> Lastly, I try not to use std::string in GDAL, but instead to use CPLString
> which is derived from std::string.

I know, it's just a habit of using std::string. I can mass rename it to 
CPLString.

> I quite excited about supporting so many different datasources - it hadn't
> really sunk in with me that you were going to do more than just WMS!

They all are fairly similar. The only real differences are the URLs 
hence the short mini-drivers.



More information about the Gdal-dev mailing list