libgta  1.0.9
Read and Write Generic Tagged Array (GTA) files
libgta Reference

The Generic Tagged Array (GTA) File Format

The GTA file format has the following features:

  • GTAs can store any kind of data in multidimensional arrays
  • GTAs can optionally use simple tags to store rich metadata
  • GTAs are streamable, which allows direct reading from and writing to pipes, network sockets, and other non-seekable media
  • GTAs can use ZLIB, BZIP2, or XZ compression, allowing a tradeoff between compression/decompression speed and compression ratio
  • Uncompressed GTA files allow easy out-of-core data access for very large arrays

See the GTA file format specification for details.

The libgta Library

The library works with three basic entities: GTA headers, GTA tag lists, and the array data.
A GTA header stores all the information about the array data: array dimensions, array element components, and tag lists. There is one global tag list for the whole array, one tag list for each dimension, and one tag list for each element component.
The array data can be read and written in one of three ways:

  • completely in memory (for arrays that are not too big),
  • stream-based (for streamable tasks),
  • or block-based (for random access to the array data).

The library provides interfaces for C and C++. See the Files section.

Examples

Examples written in C:

Examples written in C++: