Skip to content

zarr_writer

Classes:

Name Description
ZarrWriter

Classes#

ZarrWriter #

Bases: FileWriter


Writes the dataset to a basic zarr archive.

Advanced features such as specifying the chunk size or writing the zarr archive in AWS S3 will be implemented later.


Classes:

Name Description
Parameters

Methods:

Name Description
write

Attributes:

Name Type Description
file_extension str
parameters Parameters

Attributes#

file_extension class-attribute instance-attribute #
file_extension: str = 'zarr'
parameters class-attribute instance-attribute #
parameters: Parameters = Field(default_factory=Parameters)

Classes#

Parameters #

Bases: BaseModel

Attributes:

Name Type Description
to_zarr_kwargs Dict[str, Any]
Attributes#
to_zarr_kwargs class-attribute instance-attribute #
to_zarr_kwargs: Dict[str, Any] = {}

Functions#

write #
write(
    dataset: xr.Dataset,
    filepath: Optional[Path] = None,
    **kwargs: Any
) -> None
Source code in tsdat/io/writers/zarr_writer.py
def write(
    self,
    dataset: xr.Dataset,
    filepath: Optional[Path] = None,
    **kwargs: Any,
) -> None:
    encoding_dict: Dict[str, Dict[str, Any]] = {}
    for variable_name in cast(Iterable[str], dataset.variables):
        # Prevent Xarray from setting 'nan' as the default _FillValue
        encoding_dict[variable_name] = dataset[variable_name].encoding  # type: ignore
        if (
            "_FillValue" not in encoding_dict[variable_name]
            and "_FillValue" not in dataset[variable_name].attrs
        ):
            encoding_dict[variable_name]["_FillValue"] = None

    dataset.to_zarr(
        filepath,
        encoding=encoding_dict,
        **self.parameters.to_zarr_kwargs,
    )  # type: ignore