[gdal-dev] GDALWarp on a specific overview of a dataset

Thomas Sevaldrud thomas at silentwings.no
Mon Jun 15 03:07:25 PDT 2015


Hi,

I am having a bit of trouble with warping a dataset (an ECW file) with
multiple overviews. The base file is huge, so I am selecting the overview
that matches closest to my output resolution and makes an in-memory VRT of
this, consisting of the overview bands of the original image.

This seems to only work for some overview levels, and not for others. I get
results that appear to be made from the correct sets of colors basically,
but way out of scale and postion. Some times it seems to work nicely
though, so I suspect that there is some memory overwriting issue or
something here.

This is the part of the code that builds the overview VRT. The input
dataset is _ds, an

// Create a VRT of the closest matching overlay
GDALDriver *vrtDriver = (GDALDriver *) GDALGetDriverByName( "VRT" );

vrtDS = vrtDriver->Create("", ovrW, ovrH, _numBands, _dataType, NULL);
GDALSetProjection(vrtDS, _srcProjectionWKT.c_str());

   ouble geoTransform[6]; _ds->GetGeoTransform(geoTransform); double
basePixelSizeX = geoTransform[XFM_PIXEL_SIZE_EW]; double basePixelSizeY =
geoTransform[XFM_PIXEL_SIZE_NS];

geoTransform[XFM_PIXEL_SIZE_EW] = scaleX*basePixelSizeX;
geoTransform[XFM_PIXEL_SIZE_NS] = scaleY*basePixelSizeY;
vrtDS->SetGeoTransform(geoTransform);

for(int i = 1; i <= _numBands; i++)
{
GDALRasterBand* srcRootBand = _ds->GetRasterBand(i);
GDALRasterBand* srcBand = srcRootBand->GetOverview(overviewId);
VRTSourcedRasterBand* vrtBand =
(VRTSourcedRasterBand*)vrtDS->GetRasterBand(i);
vrtBand->AddSimpleSource(srcBand);
}
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/gdal-dev/attachments/20150615/47154704/attachment.html>


More information about the gdal-dev mailing list