@jsignell and Jarrett Keifer published a really great and thought-provoking blog post on the similarities, differences, and synergies between COG and Zarr. at the message that people should focus on how to work together and leverage the value of all file formats
A minor point that underpins one of the messages, that COG and Zarr are more interchangeable than commonly acknowledged, is that “COG does support multiple dimensions within an array as long as all have the same size and data type, and it can support multiple unrelated arrays”. My understanding of the dimensionality difference between these formats was that COG has chunk-equivalents than span 1 (strips) or 2 (tiles) dimensions, such that you couldn’t do the equivalent of this using COGs:
import xarray as xr
ds: xr.Dataset = xr.open_mfdataset("ERA5.zarr")
# Rechunk the data
ds = ds.chunk({"time": 50, "latitude": 50, "longitude": 50})
# Save to Zarr v3
ds.to_zarr("rechunked_ERA5.zarr", zarr_version=3)
Does COG support multidimensional arrays where a single tile spans multiple indexes along more than 2 dimensions? If so, does anyone have an example of how to produce such a COG?
cc a few of our resident COG experts @Vincent_Sarago @Michael_Sumner @jsignell