Source code for arviz.data.io_netcdf
"""Input and output support for data."""
from .converters import convert_to_inference_data
from .inference_data import InferenceData
[docs]
def from_netcdf(filename, *, engine="h5netcdf", group_kwargs=None, regex=False):
"""Load netcdf file back into an arviz.InferenceData.
Parameters
----------
filename : str
name or path of the file to load trace
engine : {"h5netcdf", "netcdf4"}, default "h5netcdf"
Library used to read the netcdf file.
group_kwargs : dict of {str: dict}
Keyword arguments to be passed into each call of :func:`xarray.open_dataset`.
The keys of the higher level should be group names or regex matching group
names, the inner dicts re passed to ``open_dataset``.
This feature is currently experimental
regex : str
Specifies where regex search should be used to extend the keyword arguments.
Returns
-------
InferenceData object
Notes
-----
By default, the datasets of the InferenceData object will be lazily loaded instead
of loaded into memory. This behaviour is regulated by the value of
``az.rcParams["data.load"]``.
"""
if group_kwargs is None:
group_kwargs = {}
return InferenceData.from_netcdf(
filename, engine=engine, group_kwargs=group_kwargs, regex=regex
)
[docs]
def to_netcdf(data, filename, *, group="posterior", engine="h5netcdf", coords=None, dims=None):
"""Save dataset as a netcdf file.
WARNING: Only idempotent in case `data` is InferenceData
Parameters
----------
data : InferenceData, or any object accepted by `convert_to_inference_data`
Object to be saved
filename : str
name or path of the file to load trace
group : str (optional)
In case `data` is not InferenceData, this is the group it will be saved to
engine : {"h5netcdf", "netcdf4"}, default "h5netcdf"
Library used to read the netcdf file.
coords : dict (optional)
See `convert_to_inference_data`
dims : dict (optional)
See `convert_to_inference_data`
Returns
-------
str
filename saved to
"""
inference_data = convert_to_inference_data(data, group=group, coords=coords, dims=dims)
file_name = inference_data.to_netcdf(filename, engine=engine)
return file_name