[gdal-dev] VRTWarpedDataset with ChunkandWarpImage

classic Classic list List threaded Threaded
5 messages Options
Reply | Threaded
Open this post in threaded view
|

[gdal-dev] VRTWarpedDataset with ChunkandWarpImage

David Olson-2
Hi,
  I've set up a c++ code which creates a VRTWarpedDataset from a source image then uses ChunkAndWarpImage to warp additional source images and create a mosaic with the VRTWarpedDataset destination (hdst_ds).
 The code is tested and runs fine without memory leak.
 However I do get an error upon calling GDALClose(hdst_ds) :  
      ERROR 6: WriteBlock() not supported for this dataset
 GDALClose calls FlushCache which calls WriteBlock.
 Just wanting to get some insight on this error. And possibly how to avoid it.
Thanks, 
David

_______________________________________________
gdal-dev mailing list
[hidden email]
http://lists.osgeo.org/mailman/listinfo/gdal-dev
Reply | Threaded
Open this post in threaded view
|

Re: VRTWarpedDataset with ChunkandWarpImage

Even Rouault-2
Le lundi 27 octobre 2014 22:42:11, David Olson a écrit :

> Hi,
>   I've set up a c++ code which creates a VRTWarpedDataset from a source
> image then uses ChunkAndWarpImage to warp additional source images and
> create a mosaic with the VRTWarpedDataset destination (hdst_ds).
>  The code is tested and runs fine without memory leak.
>  However I do get an error upon calling GDALClose(hdst_ds) :
>       *ERROR 6: WriteBlock() not supported for this dataset*.
>  GDALClose calls FlushCache which calls WriteBlock.
>  Just wanting to get some insight on this error. And possibly how to avoid
> it.

David,

Difficult to tell without a reproducable snippet. But my guess is that you have
an issue with setting up alpha band. Perhaps you have not defined nDstAlphaBand
in the warping options ?

Even

--
Spatialys - Geospatial professional services
http://www.spatialys.com
_______________________________________________
gdal-dev mailing list
[hidden email]
http://lists.osgeo.org/mailman/listinfo/gdal-dev
Reply | Threaded
Open this post in threaded view
|

Re: VRTWarpedDataset with ChunkandWarpImage

David Olson-2
Evan, 
  The source and destination data are 3-band RGB so I don't believe that is the problem...
  However I did define GdalWarp->nDstAlphaBand = 0 with the same result. Basically getting three 
  erorrs - one for each band:

ERROR 6: WriteBlock() not supported for this dataset.
ERROR 6: WriteBlock() not supported for this dataset.
ERROR 6: WriteBlock() not supported for this dataset.
   
Thanks, David

On Mon, Oct 27, 2014 at 3:21 PM, Even Rouault <[hidden email]> wrote:
Le lundi 27 octobre 2014 22:42:11, David Olson a écrit :
> Hi,
>   I've set up a c++ code which creates a VRTWarpedDataset from a source
> image then uses ChunkAndWarpImage to warp additional source images and
> create a mosaic with the VRTWarpedDataset destination (hdst_ds).
>  The code is tested and runs fine without memory leak.
>  However I do get an error upon calling GDALClose(hdst_ds) :
>       *ERROR 6: WriteBlock() not supported for this dataset*.
>  GDALClose calls FlushCache which calls WriteBlock.
>  Just wanting to get some insight on this error. And possibly how to avoid
> it.

David,

Difficult to tell without a reproducable snippet. But my guess is that you have
an issue with setting up alpha band. Perhaps you have not defined nDstAlphaBand
in the warping options ?

Even

--
Spatialys - Geospatial professional services
http://www.spatialys.com


_______________________________________________
gdal-dev mailing list
[hidden email]
http://lists.osgeo.org/mailman/listinfo/gdal-dev
Reply | Threaded
Open this post in threaded view
|

Re: VRTWarpedDataset with ChunkandWarpImage

David Olson-2
Here shortened version of the code...

  VSIFCloseL(VSIFileFromMemBuffer((*vsifile1).c_str(),
                                  buf1, FALSE));  // buf1 = RGB JPEG
  GDALDatasetH hsrc1_ds = GDALOpenInternal((*vsifile1).c_str(), GA_ReadOnly,
                           kGdalAllowedDrivers);
 VSIFCloseL(VSIFileFromMemBuffer((*vsifile2).c_str(),
                                  buf2, FALSE));  // buf2 = RGB JPEG
 GDALDatasetH hsrc2_ds = GDALOpenInternal((*vsifile2).c_str(), GA_ReadOnly,
                           kGdalAllowedDrivers);
....  // initialize geo_transform, gdal_warp
gdal_warp->hSrcDS = hsrc1_ds;
VRTWarpedDataset *hdst_ds =  (VRTWarpedDataset*)(GDALCreateWarpedVRT(
      hsrc1_ds, XSize, YSize, &dst_geo_transform[0], gdal_warp));
gdal_warp->hDstDS = hdst_ds;
gdal_warp->hSrcDS = hsrc2_ds;
CPLErr eErr = warp_operation.ChunkAndWarpImage(0, 0, GDALGetRasterXSize(hdst_ds),
                                            GDALGetRasterYSize(hdst_ds));
GDALClose((GDALDatasetH)hdst_ds);   // "ERROR 6: WriteBlock() not supported for this dataset." /band
... // Close Source Datasets etc..



On Mon, Oct 27, 2014 at 3:41 PM, David Olson <[hidden email]> wrote:
Evan, 
  The source and destination data are 3-band RGB so I don't believe that is the problem...
  However I did define GdalWarp->nDstAlphaBand = 0 with the same result. Basically getting three 
  erorrs - one for each band:

ERROR 6: WriteBlock() not supported for this dataset.
ERROR 6: WriteBlock() not supported for this dataset.
ERROR 6: WriteBlock() not supported for this dataset.
   
Thanks, David

On Mon, Oct 27, 2014 at 3:21 PM, Even Rouault <[hidden email]> wrote:
Le lundi 27 octobre 2014 22:42:11, David Olson a écrit :
> Hi,
>   I've set up a c++ code which creates a VRTWarpedDataset from a source
> image then uses ChunkAndWarpImage to warp additional source images and
> create a mosaic with the VRTWarpedDataset destination (hdst_ds).
>  The code is tested and runs fine without memory leak.
>  However I do get an error upon calling GDALClose(hdst_ds) :
>       *ERROR 6: WriteBlock() not supported for this dataset*.
>  GDALClose calls FlushCache which calls WriteBlock.
>  Just wanting to get some insight on this error. And possibly how to avoid
> it.

David,

Difficult to tell without a reproducable snippet. But my guess is that you have
an issue with setting up alpha band. Perhaps you have not defined nDstAlphaBand
in the warping options ?

Even

--
Spatialys - Geospatial professional services
http://www.spatialys.com



_______________________________________________
gdal-dev mailing list
[hidden email]
http://lists.osgeo.org/mailman/listinfo/gdal-dev
Reply | Threaded
Open this post in threaded view
|

Re: VRTWarpedDataset with ChunkandWarpImage

Even Rouault-2
Le mardi 28 octobre 2014 00:16:25, David Olson a écrit :

> Here shortened version of the code...
>
>   VSIFCloseL(VSIFileFromMemBuffer((*vsifile1).c_str(),
>                                   buf1, FALSE));  // buf1 = RGB JPEG
>   GDALDatasetH hsrc1_ds = GDALOpenInternal((*vsifile1).c_str(),
> GA_ReadOnly, kGdalAllowedDrivers);
>  VSIFCloseL(VSIFileFromMemBuffer((*vsifile2).c_str(),
>                                   buf2, FALSE));  // buf2 = RGB JPEG
>  GDALDatasetH hsrc2_ds = GDALOpenInternal((*vsifile2).c_str(), GA_ReadOnly,
>                            kGdalAllowedDrivers);
> ....  // initialize geo_transform, gdal_warp
> gdal_warp->hSrcDS = hsrc1_ds;
> VRTWarpedDataset *hdst_ds =  (VRTWarpedDataset*)(GDALCreateWarpedVRT(
>       hsrc1_ds, XSize, YSize, &dst_geo_transform[0], gdal_warp));
> gdal_warp->hDstDS = hdst_ds;
> gdal_warp->hSrcDS = hsrc2_ds;
> CPLErr eErr = warp_operation.ChunkAndWarpImage(0, 0,
> GDALGetRasterXSize(hdst_ds),
>                                             GDALGetRasterYSize(hdst_ds));
> GDALClose((GDALDatasetH)hdst_ds);   // "ERROR 6: WriteBlock() not supported
> for this dataset." /band
> ... // Close Source Datasets etc..

Hum, what you attempt to do is really weird and explains the error. You cannot
use a warped VRT as the *output* of a warping operation. You can only read in
a warped VRT.

>
> On Mon, Oct 27, 2014 at 3:41 PM, David Olson <[hidden email]> wrote:
> > Evan,
> >
> >   The source and destination data are 3-band RGB so I don't believe that
> >
> > is the problem...
> >
> >   However I did define GdalWarp->nDstAlphaBand = 0 with the same result.
> >
> > Basically getting three
> >
> >   erorrs - one for each band:
> > ERROR 6: WriteBlock() not supported for this dataset.
> > ERROR 6: WriteBlock() not supported for this dataset.
> > ERROR 6: WriteBlock() not supported for this dataset.
> >
> > Thanks, David
> >
> > On Mon, Oct 27, 2014 at 3:21 PM, Even Rouault
> > <[hidden email]>
> >
> > wrote:
> >> Le lundi 27 octobre 2014 22:42:11, David Olson a écrit :
> >> > Hi,
> >> >
> >> >   I've set up a c++ code which creates a VRTWarpedDataset from a
> >> >   source
> >> >
> >> > image then uses ChunkAndWarpImage to warp additional source images and
> >> > create a mosaic with the VRTWarpedDataset destination (hdst_ds).
> >> >
> >> >  The code is tested and runs fine without memory leak.
> >> >  
> >> >  However I do get an error upon calling GDALClose(hdst_ds) :
> >> >       *ERROR 6: WriteBlock() not supported for this dataset*.
> >> >  
> >> >  GDALClose calls FlushCache which calls WriteBlock.
> >> >  Just wanting to get some insight on this error. And possibly how to
> >>
> >> avoid
> >>
> >> > it.
> >>
> >> David,
> >>
> >> Difficult to tell without a reproducable snippet. But my guess is that
> >> you have
> >> an issue with setting up alpha band. Perhaps you have not defined
> >> nDstAlphaBand
> >> in the warping options ?
> >>
> >> Even
> >>
> >> --
> >> Spatialys - Geospatial professional services
> >> http://www.spatialys.com

--
Spatialys - Geospatial professional services
http://www.spatialys.com
_______________________________________________
gdal-dev mailing list
[hidden email]
http://lists.osgeo.org/mailman/listinfo/gdal-dev