Source code for vocalpy.features
"""Class that represents features extracted from sound."""
from __future__ import annotations
import pathlib
import xarray as xr
[docs]
class Features:
"""Class that represents features extracted from sound.
Attributes
----------
data : xarray.Dataset
See Also
--------
vocalpy.feature
vocalpy.FeatureExtractor
"""
[docs]
def __init__(self, data: xr.Dataset):
if not isinstance(data, xr.Dataset):
raise TypeError(
f"Features `data` must be an instance of `xarray.Dataset`, but type was: {type(data)}"
)
self.data = data
def __repr__(self):
return f"vocalpy.Features(data=\n{self.data!r}\n)"
[docs]
@classmethod
def read(cls, path: str | pathlib.Path):
"""Read :class:`Features` from a file.
Parameters
----------
path : str, pathlib.Path
Path to file with features.
Returns
-------
features : vocalpy.Features
Instance of :class:`Features` with data
from ``path`` loaded into it.
"""
data = xr.open_dataset(path)
return cls(data=data)
[docs]
def write(self, path: str | pathlib.Path):
"""Write :class:`Features` to a file.
Parameters
----------
path : str, pathlib.Path
Path to where file with features should be saved.
"""
self.data.to_netcdf(path)