[gdal-dev] GDALWarp Datasets

James McClain james.mcclain at gmail.com
Thu Feb 14 21:06:28 PST 2019


Hello,

If I may, I would like to a few questions regarding how best to use the
GDALWarp function (
https://github.com/OSGeo/gdal/blob/master/gdal/apps/gdalwarp_lib.cpp#L748-L770)
and the datasets that it creates.

In particular, I am experimenting with using such datasets to read warped
extents on an on-demand basis and in a thread-safe way.

I have found that the VRT output format is lazy with respect to computation
and allocation which is great for my use case, but it appears not to be
thread safe with respect to reading from a single warped dataset from
multiple threads.

I have found that the MEM output format is safe with respect to concurrent
reads, but is eager in its allocation and computation.

I have found that the GTIFF output format is also safe with respect to
concurrent reads (but CPU utilization is low so it looks like there is
internal locking), and it is once again eager with respect to allocation
and computation.

What I would like to find is way to create a dataset that is both lazy and
safe with respect to concurrent reads.  Can anyone share any suggestions
with me?

(Note: the foregoing statements are based on experiments that I have done,
not based on looking at the code; if any of the above is incorrect I am
very happy to be corrected.)

On a more meta level, are datasets created by GDALWarp the right approach
(if I want to lazy get warped extents in a thread-safe manner) or should I
look elsewhere?

Thank you,
James McClain

-- 
"I prayed for freedom for twenty years, but received no answer until I
prayed with my legs."
     -- Frederick Douglass
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/gdal-dev/attachments/20190215/fb3dd646/attachment.html>


More information about the gdal-dev mailing list