Array¶
-
struct caterva_array_t¶
A multidimensional array of data that can be compressed data.
Parameters¶
General parameters¶
-
struct caterva_params_t¶
General parameters needed for the creation of a caterva array.
Storage parameters¶
-
struct caterva_storage_t¶
Storage parameters needed for the creation of a caterva array.
Public Members
-
caterva_storage_backend_t backend¶
The backend storage.
-
caterva_storage_properties_t properties¶
The specific properties for the selected
backend
.
-
caterva_storage_backend_t backend¶
-
enum caterva_storage_backend_t¶
The backends available to store the data of the caterva array.
Values:
-
enumerator CATERVA_STORAGE_BLOSC¶
Indicates that the data is stored using a Blosc super-chunk.
-
enumerator CATERVA_STORAGE_PLAINBUFFER¶
Indicates that the data is stored using a plain buffer.
-
enumerator CATERVA_STORAGE_BLOSC¶
-
union caterva_storage_properties_t¶
- #include <caterva.h>
The storage properties for an array.
Public Members
-
caterva_storage_properties_blosc_t blosc¶
The storage properties when the array is backed by a Blosc super-chunk.
-
caterva_storage_properties_plainbuffer_t plainbuffer¶
The storage properties when the array is backed by a plain buffer.
-
caterva_storage_properties_blosc_t blosc¶
-
struct caterva_storage_properties_blosc_t¶
The storage properties for an array backed by a Blosc super-chunk.
Public Members
-
int32_t chunkshape[CATERVA_MAX_DIM]¶
The shape of each chunk of Blosc.
-
int32_t blockshape[CATERVA_MAX_DIM]¶
The shape of each block of Blosc.
-
bool sequencial¶
Flag to indicate if the super-chunk is stored sequentially or sparsely.
-
char *urlpath¶
The super-chunk name.
If
urlpath
is notNULL
, the super-chunk will be stored on disk.
-
caterva_metalayer_t metalayers[CATERVA_MAX_METALAYERS]¶
List with the metalayers desired.
-
int32_t nmetalayers¶
The number of metalayers.
-
int32_t chunkshape[CATERVA_MAX_DIM]¶
-
struct caterva_metalayer_t¶
The metalayer data needed to store it on an array.
Creation¶
Fast constructors¶
-
int caterva_empty(caterva_ctx_t *ctx, caterva_params_t *params, caterva_storage_t *storage, caterva_array_t **array)¶
Create an empty array.
- Parameters
ctx – The caterva context to be used.
params – The general params of the array desired.
storage – The storage params of the array desired.
array – The memory pointer where the array will be created.
- Returns
An error code.
-
int caterva_zeros(caterva_ctx_t *ctx, caterva_params_t *params, caterva_storage_t *storage, caterva_array_t **array)¶
Create an array, with zero being used as the default value for uninitialized portions of the array.
- Parameters
ctx – The caterva context to be used.
params – The general params of the array.
storage – The storage params of the array.
array – The memory pointer where the array will be created.
- Returns
An error code.
-
int caterva_full(caterva_ctx_t *ctx, caterva_params_t *params, caterva_storage_t *storage, void *fill_value, caterva_array_t **array)¶
Create an array, with
fill_value
being used as the default value for uninitialized portions of the array.- Parameters
ctx – The caterva context to be used.
params – The general params of the array.
storage – The storage params of the array.
fill_value – Default value for uninitialized portions of the array.
array – The memory pointer where the array will be created.
- Returns
An error code.
From/To buffer¶
-
int caterva_from_buffer(caterva_ctx_t *ctx, void *buffer, int64_t buffersize, caterva_params_t *params, caterva_storage_t *storage, caterva_array_t **array)¶
Create a caterva array from the data stored in a buffer.
- Parameters
ctx – The caterva context to be used.
buffer – The buffer where source data is stored.
buffersize – The size (in bytes) of the buffer.
params – The general params of the array desired.
storage – The storage params of the array desired.
array – The memory pointer where the array will be created.
- Returns
An error code.
-
int caterva_to_buffer(caterva_ctx_t *ctx, caterva_array_t *array, void *buffer, int64_t buffersize)¶
Extract the data into a C buffer from a caterva array.
- Parameters
ctx – The caterva context to be used.
array – The caterva array.
buffer – The buffer where the data will be stored.
buffersize – Size (in bytes) of the buffer.
- Returns
An error code.
From/To file¶
-
int caterva_open(caterva_ctx_t *ctx, const char *urlpath, caterva_array_t **array)¶
Read a caterva array from disk.
- Parameters
ctx – The caterva context to be used.
urlpath – The urlpath of the caterva array on disk.
array – The memory pointer where the array will be created.
- Returns
An error code.
-
int caterva_save(caterva_ctx_t *ctx, caterva_array_t *array, char *urlpath)¶
Save caterva array into a specific urlpath.
- Parameters
ctx – The context to be used.
array – The array to be saved.
urlpath – The urlpath where the array will be stored.
- Returns
An error code.
From Blosc object¶
-
int caterva_from_schunk(caterva_ctx_t *ctx, blosc2_schunk *schunk, caterva_array_t **array)¶
Create a caterva array from a super-chunk.
It can only be used if the array is backed by a blosc super-chunk.
- Parameters
ctx – The caterva context to be used.
schunk – The blosc super-chunk where the caterva array is stored.
array – The memory pointer where the array will be created.
- Returns
An error code.
-
int caterva_from_serial_schunk(caterva_ctx_t *ctx, uint8_t *serial_schunk, int64_t len, caterva_array_t **array)¶
Create a caterva array from a serialized super-chunk.
It can only be used if the array is backed by a blosc super-chunk.
- Parameters
ctx – The caterva context to be used.
serial_schunk – The serialized super-chunk where the caterva array is stored.
len – The size (in bytes) of the serialized super-chunk.
array – The memory pointer where the array will be created.
- Returns
An error code.
Copying¶
-
int caterva_copy(caterva_ctx_t *ctx, caterva_array_t *src, caterva_storage_t *storage, caterva_array_t **array)¶
Make a copy of the array data.
The copy is done into a new caterva array.
- Parameters
ctx – The caterva context to be used.
src – The array from which data is copied.
storage – The storage params of the array desired.
array – The memory pointer where the array will be created.
- Returns
An error code
Slicing¶
-
int caterva_get_slice_buffer(caterva_ctx_t *ctx, caterva_array_t *array, int64_t *start, int64_t *stop, void *buffer, int64_t *buffershape, int64_t buffersize)¶
Get a slice from an array and store it into a C buffer.
- Parameters
ctx – The caterva context to be used.
array – The array from which the slice will be extracted.
start – The coordinates where the slice will begin.
stop – The coordinates where the slice will end.
buffershape – The shape of the buffer.
buffer – The buffer where the data will be stored.
buffersize – The size (in bytes) of the buffer.
- Returns
An error code.
-
int caterva_set_slice_buffer(caterva_ctx_t *ctx, void *buffer, int64_t *buffershape, int64_t buffersize, int64_t *start, int64_t *stop, caterva_array_t *array)¶
Set a slice into a caterva array from a C buffer.
- Parameters
ctx – The caterva context to be used.
buffer – The buffer where the slice data is.
buffersize – The size (in bytes) of the buffer.
start – The coordinates where the slice will begin.
stop – The coordinates where the slice will end.
buffershape – The shape of the buffer.
array – The caterva array where the slice will be set
- Returns
An error code.
-
int caterva_get_slice(caterva_ctx_t *ctx, caterva_array_t *src, int64_t *start, int64_t *stop, caterva_storage_t *storage, caterva_array_t **array)¶
Get a slice from an array and store it into a new array.
- Parameters
ctx – The caterva context to be used.
src – The array from which the slice will be extracted
start – The coordinates where the slice will begin.
stop – The coordinates where the slice will end.
storage – The storage params of the array desired.
array – The memory pointer where the array will be created.
- Returns
An error code.
-
int caterva_squeeze(caterva_ctx_t *ctx, caterva_array_t *array)¶
Squeeze a caterva array.
This function remove single-dimensional entries from the shape of a caterva array.
- Parameters
ctx – The caterva context to be used.
array – The caterva array.
- Returns
An error code
Destruction¶
-
int caterva_free(caterva_ctx_t *ctx, caterva_array_t **array)¶
Free an array.
- Parameters
ctx – The caterva context to be used.
array – The memory pointer where the array is placed.
- Returns
An error code.
-
int caterva_remove(caterva_ctx_t *ctx, char *urlpath)¶
Remove a Caterva file from the file system.
Both backends are supported.
- Parameters
ctx – The caterva context to be used.
urlpath – The urlpath of the array to be removed.
- Returns
An error code