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

tseval thomas at silentwings.no
Thu May 10 11:03:46 EDT 2012


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.


More information about the gdal-dev mailing list