Source code for tdrsource

"""Base definition of the TDR input data

"""

import xarray as xr

_SPEED_NAMES = ["velocity", "speed"]


[docs]class TDRSource: """Define TDR data source Use xarray.Dataset to ensure pseudo-standard metadata Attributes ---------- tdr_file : str String indicating the file where the data comes from. tdr : xarray.Dataset Dataset with input data. depth_name : str Name of data variable with depth measurements. has_speed : bool Whether input data include speed measurements. speed_name : str Name of data variable with the speed measurements. Examples -------- >>> from skdiveMove.tests import diveMove2skd >>> tdrX = diveMove2skd(True) >>> print(tdrX) """ def __init__(self, tdr_file, depth_name="depth", has_speed=False, **kwargs): """Set up attributes for TDRSource objects Parameters ---------- tdr_file : str, path object of file-like object A valid string path for the file with TDR measurements, or path or file-like object, interpreted as in ``pandas.read_csv``. depth_name : str, optional Name of data variable with depth measurements. Default: "depth". has_speed : bool, optional Weather data includes speed measurements. Column name must be one of ["velocity", "speed"]. Default: False. **kwargs : optional keyword arguments Arguments passed to ``xarray.load_dataset``. """ self.tdr = xr.load_dataset(tdr_file, **kwargs) self.depth_name = depth_name speed_var = [x for x in list(self.tdr.data_vars.keys()) if x in _SPEED_NAMES] if speed_var and has_speed: self.has_speed = True self.speed_name = speed_var[0] else: self.has_speed = False self.speed_name = None self.tdr_file = tdr_file def __str__(self): objcls = ("Time-Depth Recorder data -- Class {} object\n" .format(self.__class__.__name__)) return(objcls + "{}".format(self.tdr))
[docs] def get_depth(self): """Return depth array Returns ------- xarray.DataArray """ return(self.tdr[self.depth_name])
[docs] def get_speed(self): """Return speed array Returns ------- xarray.DataArray """ return(self.tdr[self.speed_name])
[docs] def get_tdr(self): """Return TDR Dataset Returns ------- xarray.Dataset """ return(self.tdr)