pub fn ebcc_encode(
data: ArrayView<'_, f32, EbccDim>,
config: &EBCCConfig,
) -> EBCCResult<Vec<u8>>Expand description
Encode a 3D data array using EBCC compression.
§Arguments
data: 3D input data arrayconfig: EBCC configuration
§Returns
The compressed data bytes.
§Errors
EBCCError::InvalidInputif thedatahas any zero-size dimensionEBCCError::InvalidInputif the size ofdataoverflows or would not fit into memoryEBCCError::InvalidInputif the last two dimensions ofdataare too small or its EBCC internal image dimensions are outside the supported rangeEBCCError::InvalidConfigifconfig.validatefailsEBCCError::InvalidInputif thedatacontains any non-finite (infinite or NaN) valuesEBCCError::CompressionErrorif compression with EBCC fails
§Examples
use ebcc::{ebcc_encode, EBCCConfig};
use ndarray::Array;
// 2D ERA5-like data: 721x1440
let data = Array::from_shape_vec((1, 721, 1440), vec![1.0f32; 721 * 1440]).unwrap();
let config = EBCCConfig::max_absolute_error_bounded(0.01);
let compressed = ebcc_encode(data.view(), &config)?;
println!(
"Compressed {} bytes to {} bytes",
data.len() * 4, compressed.len(),
);