Guides
Checks before handing off scientific arrays
Transfer netCDF, HDF5 or Zarr arrays with their meaning, dependencies and reader requirements. Unlike choosing a table format, this requires checking dimensions and missing-value interpretation.
Which format should you choose?
Choose by the role each file plays in your workflow.
- Document the array's meaning
- Assemble the distribution unit
- Compare values at the destination
Document the array's meaning
Record variable names, types, dimension order, coordinates, units and time conventions. Do not equate missing or fill values with zero. For scale_factor and add_offset, distinguish stored values from decoded values.
Assemble the distribution unit
Check the netCDF variant, HDF5 external-link targets and filters, and Zarr version and codecs. Include required Zarr metadata and chunks; distinguish intentional unstored chunks governed by fill_value from transfer omissions.
Compare values at the destination
Share a version whose writes are complete and read sample slices with the recipient's library. Compare shape, axis order, attributes, missing-value masks and decoded values with the source. Record tolerances for rounding or lossy changes.
Formats to consider
netCDF
Good for: Exchanging dimensions, variables and attributes with compatible scientific tools
Less suitable for: Inferring the internal format from the extension alone
HDF5
Good for: Organizing groups and arrays hierarchically
Less suitable for: Omitting external-link targets or required filters
Zarr
Good for: Managing array chunks in a store
Less suitable for: Copying only metadata and calling the transfer complete
Before you export
- Retain source data and conversion settings. Matching checksums verifies transfer, not correct units or scientific interpretation.
- Attributes and coordinates may contain confidential information. Do not embed store credentials in shared files; verify access permissions.