TileDB - TileDB raster
Driver short name
TileDB
Added in version 3.0.
Build dependencies
TileDB (>= 2.7 starting with GDAL 3.7)
GDAL can read and write TileDB arrays through the TileDB library.
The driver relies on the Open Source TileDB library (MIT licensed).
Driver capabilities
Supports CreateCopy()
This driver supports the GDALDriver::CreateCopy()
operation
Supports Create()
This driver supports the GDALDriver::Create()
operation
Supports Georeferencing
This driver supports georeferencing
Supports VirtualIO
This driver supports virtual I/O operations (/vsimem/, etc.)
Open options
The following open options exist:
TILEDB_CONFIG=<filename>: A local file with TileDB configuration options
TILEDB_TIMESTAMP=<integer>: Open array at this timestamp. Should be strictly greater than zero when set.
STATS=[YES/NO]: Defaults to
NO
. Whether TileDB performance statistics should be displayed.TILEDB_ATTRIBUTE=<string>: Attribute to read from each band
Creation options
The following creation options exist:
TILEDB_CONFIG=<filename>: A local file with TileDB configuration options
COMPRESSION=[NONE/GZIP/ZSTD/LZ4/RLE/BZIP2/DOUBLE-DELTA/POSITIVE-DELTA]: Compression to use. Default is NONE
COMPRESSION_LEVEL=<integer>: Compression level
BLOCKXSIZE=<integer>: Defaults to
256
. Tile width.BLOCKYSIZE=<integer>: Defaults to
256
. Tile heightSTATS=[YES/NO]: Defaults to
NO
. Whether TileDB performance statistics should be displayed.TILEDB_ATTRIBUTE=<string>: Co-registered file to add as TileDB attributes. Only applicable for interleave types of band or pixel
INTERLEAVE=[BAND/PIXEL/ATTRIBUTES]: Defaults to
BAND
. Indexing order. Influences how multi-band rasters are stored.BAND
: a 3D array is created with the slowest varying dimension being the band.PIXEL
: a 3D array is created with the fastest varying dimension being the band.ATTRIBUTES
: a 2D array is created with each band being stored in a separate TileDB attribute.
TILEDB_TIMESTAMP=<integer>: Create array at this timestamp. Should be strictly greater than zero when set.
CREATE_GROUP=[YES/NO]: (GDAL >= 3.10) Defaults to
YES
since 3.10 (NO previously). Whether the dataset should be created within a TileDB group.When the dataset is created within a TileDB group, overviews that may be created are stored as TileDB arrays inside that group, next to the full resolution array. This makes administration of the dataset easier.
Otherwise, the past default behavior (CREATE_GROUP=NO) is to create the dataset as a TileDB array. Overviews cannot be created in that mode.
Multidimensional API support
Added in version 3.8.
The TileDB driver supports the Multidimensional Raster Data Model for reading and writing operations. It requires GDAL to be built and run against TileDB >= 2.15.
The driver supports: - creating and reading groups and subgroups - creating and reading multidimensional dense arrays with a numeric data type - creating and reading numeric or string attributes in groups and arrays - storing an indexing array of a dimension as a TileDB dimension label
The multidimensional API supports reading dense arrays created by the classic raster API of GDAL.
The following multidimensional dataset open options are available:
TILEDB_CONFIG=config: A local file with TileDB configuration options
TILEDB_TIMESTAMP=val: inclusive ending timestamp when opening this array
The following multidimensional dataset creation options are available:
TILEDB_CONFIG=config: A local file with TileDB configuration options
TILEDB_TIMESTAMP=val: Create array at this timestamp. Should be strictly greater than zero when set.
The following array open options are available:
TILEDB_TIMESTAMP=val: inclusive ending timestamp when opening this array
The following array creation options are available:
BLOCKSIZE=val1,val2,...,valN: Block size in pixels
COMPRESSION=NONE/GZIP/ZSTD/LZ4/RLE/BZIP2/DOUBLE-DELTA/POSITIVE-DELTA: Compression to use. Default is NONE
COMPRESSION_LEVEL=int_value: compression level
IN_MEMORY=YES/NO: hether the array should be only in-memory. Useful to create an indexing variable that is serialized as a dimension label
TILEDB_TIMESTAMP=val: Create array at this timestamp. Should be strictly greater than zero when set.
Cf tiledb_multidim.py for examples of how to use the Python multidimensional API with the TileDB driver.
Standalone plugin compilation
Added in version 3.10.
While this driver may be built as part of a whole GDAL build, either in libgdal itself, or as a plugin, it is also possible to only build this driver as a plugin, against an already built libgdal.
The version of the GDAL sources used to build the driver must match the version of the libgdal it is built against.
For example, from a "build_tiledb" directory under the root of the GDAL source tree:
cmake -S ../frmts/tiledb -DCMAKE_PREFIX_PATH=/path/to/GDAL_installation_prefix -DTileDB_DIR:PATH=/path/to/tiledb_installation_prefix/lib/cmake/TileDB
cmake --build .
Note that such a plugin, when used against a libgdal not aware of it, will be systematically loaded at GDAL driver initialization time, and will not benefit from deferred plugin loading capabilities <rfc-96>. For that, libgdal itself must be built with the CMake variable GDAL_REGISTER_DRIVER_TILEDB_FOR_LATER_PLUGIN=ON set.
See Also
TileDB vector documentation page