[gdal-dev] Creating a VRT dataset from overviews in C++

Thomas Sevaldrud thomas at silentwings.no
Fri May 11 03:50:49 EDT 2012


>
> 10.05.2012 23:14, Thomas Sevaldrud написал:
>
> Hi Dmitry, and thanks for your answer!
>
> Hi Thomas!
>
>
>  I was actually looking at this patch earlier today, but I also wanted to
> see if I could solve it without patching.
>
>  Will this patch be included in the official source?
>
> My patch needs some refactoring and testing on python bindings. The work
> is going on , but not so fast as I wish. As I finished and commit my code,
> It'll be some testing period and than fixes will be accepted.
>
>
>  Is it possible to do it the way I described in the previous mail?
>
> Yes, you can try to warp and overview images (bands). You can get an
> overview of needed level from GDALRasterBand Class via GetOverview (int)
> method, but than you need to work on band basis and mixed them in colour
> image by yourself.
>

This is probably a stupid question, but I couldn't find it anywhere in the
documentation. How do I create a GDALDataset from a set of existing
GDALRasterBands?

I guess I could copy the pixel data with the RasterIO methods, but I was
hoping I could make a VRT or something from a set of existing overview
bands and then do the warping on this, to avoid the copying of a
potentially huge dataset.

- Thomas


>  Cheers,
> Thomas
>
> On Thu, May 10, 2012 at 7:11 PM, Dmitry Baryshnikov <polimax at mail.ru>wrote:
>
>>  10.05.2012 19:03, tseval написал:
>>
>> Hi,
>>
>> I'm trying to cut and reproject a large image with overviews using the c++
>> api. This runs extremely slow when I produce highly downsampled cutouts
>> covering large areas of the original image.
>>
>> I understand the the Warp API doesn't use the overviews when resampling, so
>> I wanted to make a temporary dataset from one of the downscaled overviews
>> and do the warping on this dataset instead.
>>
>> First of all, is this a sensible way of doing things? If so, what driver
>> should I use? I guess VRT? I have been trying to create a VRT by doing
>> something like this:
>>
>> 	double scaleX = (double)ovrW/origW;
>> 	double scaleY = (double)ovrH/origH;
>> 	GDALDataset* vrtDS = vrtDriver->Create("", ovrW, ovrH, _numBands,
>> _dataType, NULL);
>> 	GDALSetProjection(vrtDS, _srcProjectionWKT);
>> 	double geoTransform[6];
>> 	srcDS->GetGeoTransform(geoTransform);
>> 	geoTransform[XFM_PIXEL_SIZE_EW] = scaleX*geoTransform[XFM_PIXEL_SIZE_EW];
>> 	geoTransform[XFM_PIXEL_SIZE_NS] = scaleY*geoTransform[XFM_PIXEL_SIZE_NS];
>> 	vrtDS->SetGeoTransform(geoTransform);
>>
>> But how am I supposed to set the bands in the VRT from the downscaled
>> overview bands in the original image?
>>
>> Any help on this would be greatly appreciated :)
>>
>>
>> --
>> View this message in context: http://osgeo-org.1560.n6.nabble.com/Creating-a-VRT-dataset-from-overviews-in-C-tp4965891.html
>> Sent from the GDAL - Dev mailing list archive at Nabble.com.
>> _______________________________________________
>> gdal-dev mailing listgdal-dev at lists.osgeo.orghttp://lists.osgeo.org/mailman/listinfo/gdal-dev
>>
>>   Hi,
>>
>> You can try to use this patch to enable overviews in VRT
>> http://trac.osgeo.org/gdal/ticket/2076
>> or waits as I accomplish my work on fixing this situation.
>> <http://trac.osgeo.org/gdal/ticket/2076>
>>
>> Best regards,
>>     Dmitry
>>
>> _______________________________________________
>> gdal-dev mailing list
>> gdal-dev at lists.osgeo.org
>> http://lists.osgeo.org/mailman/listinfo/gdal-dev
>>
>
>  Best regards,
>     Dmitry
>
>
> _______________________________________________
> gdal-dev mailing list
> gdal-dev at lists.osgeo.org
> http://lists.osgeo.org/mailman/listinfo/gdal-dev
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.osgeo.org/pipermail/gdal-dev/attachments/20120511/ac59ab41/attachment-0001.html


More information about the gdal-dev mailing list