Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implement multifile VRT parallel raster output #241

Open
wants to merge 3 commits into
base: Develop
Choose a base branch
from

Conversation

jcphill
Copy link

@jcphill jcphill commented Aug 17, 2022

Greatly improve raster output performance for large runs on
parallel filesystems by writing one TIF file per rank along
with a VRT file. Writing to /path/to/foldername/filename.vrt
creates the directory foldername if it does not exist and
writes data to files /path/to/foldername/filename.%d.tif

No changes are needed to read VRT files.

The VRT TIF files are written in tiled format as there is no
performance penalty when writing but a dramatic performance
increase when reading small areas from very wide rasters.

Greatly improve raster output performance for large runs on
parallel filesystems by writing one TIF file per rank along
with a VRT file.  Writing to /path/to/foldername/filename.vrt
creates the directory foldername if it does not exist and
writes data to files /path/to/foldername/filename.%d.tif

No changes are needed to read VRT files.

The VRT TIF files are written in tiled format as there is no
performance penalty when writing but a dramatic performance
increase when reading small areas from very wide rasters.
Enables GDAL virtual file systems, in particular can write VRT to
cloud storage if CPL_VSIL_USE_TEMP_FILE_FOR_RANDOM_WRITE=YES is set.
Use GDAL EQUAL() macro for case-insensitive string comparison.

Old code would change extension to lower case in actual filename
so passing FOO.TIF would create file named FOO.tif instead.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant