Jan,

Some GDAL and OGR drivers use a specific API, the VSI File Large API, to access files. That API mimics the semantics of standard C library IO API :

fopen -> VSIFOpenL
fread -> VSIFReadL
fseek -> VSIFSeekL
....

Usually that API enables access to large files (> 4 GB) on Unix and Windows. But there are a few 'plugins' for specific purposes. For example, if you pass /vsigzip/pass/to/your/file.gz to VSIFOpenL, the calls will go through a plug-in that will do on-the-fly decompression of a GZip compressed file (compression support added by Frank in 1.7.0). This is used internally by the GDAL R driver, or by the OGR GTM driver. We can also use the /vsimem/ prefix to read or write into in-memory files (used internally in GDAL in some drivers and algorithms, used by MapServer to generate the output image and avoid creating a temporary file on the file system, etc...). Or /vsisubfile/ to access to a file embedded within another file (used to decompress JPEG2000 or JPEG streams in some formats like NITF).

Here are a few links for further reading on the subject :
http://trac.osgeo.org/gdal/wiki/UserDocs/ReadInZip
http://gdal.org/cpl__vsi_8h.html

Best regards,

Even

Oh, that makes a difference indeed! When I read Frank's long answer, this was the only point I didn't like. How does this mechanism work?

Jan

On 16-1-2010 12:33, Even Rouault wrote:
I think Frank meant

With Even's work, it is *now* possible for many drivers to to
transparently access compressed files using the /vsigzip/ mechanism.







_______________________________________________
gdal-dev mailing list
gdal-dev@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/gdal-dev

Reply via email to