From 864fe0d4ed00f497504c7f040e3826074047bff8 Mon Sep 17 00:00:00 2001 From: jmcvey3 <53623232+jmcvey3@users.noreply.github.com> Date: Fri, 7 Feb 2025 17:33:03 -0800 Subject: [PATCH 1/5] Fix changing surface layer profile cell sizes, fix bin 1 distance, add range offset to attributes --- mhkit/dolfyn/io/rdi.py | 59 ++++++++++++++++++++++++++----------- mhkit/dolfyn/io/rdi_defs.py | 43 +++++++++++++++++++-------- 2 files changed, 72 insertions(+), 30 deletions(-) diff --git a/mhkit/dolfyn/io/rdi.py b/mhkit/dolfyn/io/rdi.py index 797f3116..e9061d53 100644 --- a/mhkit/dolfyn/io/rdi.py +++ b/mhkit/dolfyn/io/rdi.py @@ -177,7 +177,9 @@ def __init__( self.n_cells_diff = 0 self.n_cells_sl = 0 self.cs_diff = 0 + self.cs_sl_diff = 0 self.cs = [] + self.cs_sl = [] self.cfg = {} self.cfgbb = {} self.hdr = {} @@ -828,6 +830,9 @@ def save_profiles(self, dat, nm, en, iens): if self.cs_diff: self.cs.append([iens, self.cfg["cell_size"]]) self.cs_diff = 0 + if self.cs_sl_diff: + self.cs_sl.append([iens, self.cfg["cell_size_sl"]]) + self.cs_sl_diff = 0 # Then copy the ensemble to the dataset. ds[..., iens] = bn @@ -859,33 +864,25 @@ def cleanup(self, dat, cfg): """ # Clean up changing cell size, if necessary cs = np.array(self.cs, dtype=np.float32) - cell_sizes = cs[:, 1] + cs_sl = np.array(self.cs_sl, dtype=np.float32) # If cell sizes change, depth-bin average the smaller cell sizes if len(self.cs) > 1: - bins_to_merge = cell_sizes.max() / cell_sizes - idx_start = cs[:, 0].astype(int) - idx_end = np.append(cs[1:, 0], self._nens).astype(int) - dv = dat["data_vars"] - for var in dv: - if (len(dv[var].shape) == 3) and ("_sl" not in var): - # Create a new NaN var to save data in - new_var = (np.zeros(dv[var].shape) * np.nan).astype(dv[var].dtype) - # For each cell size change, reshape and bin-average - for id1, id2, b in zip(idx_start, idx_end, bins_to_merge): - array = np.transpose(dv[var][..., id1:id2]) - bin_arr = np.transpose(np.mean(self.reshape(array, b), axis=-1)) - new_var[: len(bin_arr), :, id1:id2] = bin_arr - # Reset data. This often leaves nan data at farther ranges - dv[var] = new_var + self.merge_bins(cs, dv, sl=False) + if len(self.cs_sl) > 1: + dv = dat["data_vars"] + self.merge_bins(cs_sl, dv, sl=True) # Set cell size and range cfg["n_cells"] = self.ensemble["n_cells"] - cfg["cell_size"] = round(cell_sizes.max(), 3) + cfg["cell_size"] = round(cs[:, 1].max(), 3) dat["coords"]["range"] = ( cfg["bin1_dist_m"] + np.arange(cfg["n_cells"]) * cfg["cell_size"] ).astype(np.float32) + cfg["range_offset"] = round( + cfg["bin1_dist_m"] - cfg["blank_dist"] - cfg["cell_size"], 3 + ) # Save configuration data as attributes for nm in cfg: @@ -893,6 +890,12 @@ def cleanup(self, dat, cfg): # Clean up surface layer profiles if "surface_layer" in cfg: # RiverPro/StreamPro + # Set SL cell size and range + cfg["cell_size_sl"] = round(cs_sl[:, 1].max(), 3) + cfg["n_cells_sl"] = self.n_cells_sl + # RDI doesn't include stored range offset in SL profiles for some reason + cfg["blank_dist_sl"] = round(cfg["bin1_dist_m_sl"] - cfg["cell_size_sl"], 3) + cfg["bin1_dist_m_sl"] += cfg["range_offset"] dat["coords"]["range_sl"] = ( cfg["bin1_dist_m_sl"] + np.arange(0, self.n_cells_sl) * cfg["cell_size_sl"] @@ -906,6 +909,28 @@ def cleanup(self, dat, cfg): return dat, cfg + def merge_bins(self, cs, dv, sl=False): + cell_sizes = cs[:, 1] + bins_to_merge = cell_sizes.max() / cell_sizes + idx_start = cs[:, 0].astype(int) + idx_end = np.append(cs[1:, 0], self._nens).astype(int) + + for var in dv: + if not sl: + flag = "_sl" not in var + elif sl: + flag = "_sl" in var + if (len(dv[var].shape) == 3) and flag: + # Create a new NaN var to save data in + new_var = (np.zeros(dv[var].shape) * np.nan).astype(dv[var].dtype) + # For each cell size change, reshape and bin-average + for id1, id2, b in zip(idx_start, idx_end, bins_to_merge): + array = np.transpose(dv[var][..., id1:id2]) + bin_arr = np.transpose(np.mean(self.reshape(array, b), axis=-1)) + new_var[: len(bin_arr), :, id1:id2] = bin_arr + # Reset data. This often leaves nan data at farther ranges + dv[var] = new_var + def reshape(self, arr, n_bin=None): """ Reshapes the input array `arr` to a shape of (..., n, n_bin). diff --git a/mhkit/dolfyn/io/rdi_defs.py b/mhkit/dolfyn/io/rdi_defs.py index addbb3ea..0cfc5712 100644 --- a/mhkit/dolfyn/io/rdi_defs.py +++ b/mhkit/dolfyn/io/rdi_defs.py @@ -400,7 +400,7 @@ def read_cfgseg(rdr, bb=False): if ("n_cells" not in cfg) or (n_cells != cfg["n_cells"]): cfg["n_cells"] = n_cells if rdr._debug_level > 0: - logging.info(f"Number of cells set to {cfg['n_cells']}") + logging.debug(f"Number of cells set to {n_cells}") cfg["pings_per_ensemble"] = fd.read_ui16(1) # Check if cell size has changed cs = float(fd.read_ui16(1) * 0.01) @@ -408,7 +408,7 @@ def read_cfgseg(rdr, bb=False): rdr.cs_diff = cs if "cell_size" not in cfg else (cs - cfg["cell_size"]) cfg["cell_size"] = cs if rdr._debug_level > 0: - logging.info(f"Cell size set to {cfg['cell_size']}") + logging.debug(f"Cell size set to {cs}") cfg["blank_dist"] = round(float(fd.read_ui16(1) * 0.01), 2) cfg["profiling_mode"] = fd.read_ui8(1) cfg["min_corr_threshold"] = fd.read_ui8(1) @@ -427,7 +427,13 @@ def read_cfgseg(rdr, bb=False): cfg["magnetic_var_deg"] = float(fd.read_i16(1) * 0.01) cfg["sensors_src"] = np.binary_repr(fd.read_ui8(1), 8) cfg["sensors_avail"] = np.binary_repr(fd.read_ui8(1), 8) - cfg["bin1_dist_m"] = round(float(fd.read_ui16(1) * 0.01), 4) + # If cell size changes, the bin1 distance will too + # We only want to save the largest, as we depth average smaller cells together + b1d = round(float(fd.read_ui16(1) * 0.01), 4) + if ("bin1_dist_m" not in cfg) or (b1d > cfg["bin1_dist_m"]): + cfg["bin1_dist_m"] = b1d + if rdr._debug_level > 0: + logging.debug(f"Bin 1 distance set to {b1d}") cfg["transmit_pulse_m"] = round(float(fd.read_ui16(1) * 0.01), 2) cfg["water_ref_cells"] = list(fd.read_ui8(2).astype(list)) # list for attrs cfg["false_target_threshold"] = fd.read_ui8(1) @@ -479,18 +485,29 @@ def read_fixed_sl(rdr): """Read surface layer fixed header""" cfg = rdr.cfg cfg["surface_layer"] = 1 - n_cells = rdr.f.read_ui8(1) # Check if n_cells is greater than what was used in prior profiles - if n_cells > rdr.n_cells_sl: - rdr.n_cells_sl = n_cells + n_cells_sl = rdr.f.read_ui8(1) + if n_cells_sl > rdr.n_cells_sl: + rdr.n_cells_sl = n_cells_sl + if ("n_cells_sl" not in cfg) or (n_cells_sl != cfg["n_cells_sl"]): + cfg["n_cells_sl"] = n_cells_sl if rdr._debug_level > 0: - logging.warning( - f"Maximum number of surface layer cells increased to {n_cells}" - ) - cfg["n_cells_sl"] = n_cells - # Assuming surface layer profile cell size never changes - cfg["cell_size_sl"] = float(rdr.f.read_ui16(1) * 0.01) - cfg["bin1_dist_m_sl"] = round(float(rdr.f.read_ui16(1) * 0.01), 4) + logging.debug(f"Number of surface cells set to {n_cells_sl}") + # Cell size also changes + cs_sl = float(rdr.f.read_ui16(1) * 0.01) + if ("cell_size_sl" not in cfg) or (cs_sl != cfg["cell_size_sl"]): + rdr.cs_sl_diff = ( + cs_sl if "cell_size_sl" not in cfg else (cs_sl - cfg["cell_size_sl"]) + ) + cfg["cell_size_sl"] = cs_sl + if rdr._debug_level > 0: + logging.debug(f"Surface layer cell size set to {cs_sl}") + # Only save maximum bin 1 distance + b1d = round(float(rdr.f.read_ui16(1) * 0.01), 4) + if ("bin1_dist_m_sl" not in cfg) or (b1d > cfg["bin1_dist_m_sl"]): + cfg["bin1_dist_m_sl"] = b1d + if rdr._debug_level > 0: + logging.debug(f"Surface layer Bin 1 distance set to {b1d}") if rdr._debug_level > -1: logging.info("Read Surface Layer Config") From 2205786c8e40a6133f5c2bb7115acc0f5e6ff1ef Mon Sep 17 00:00:00 2001 From: jmcvey3 <53623232+jmcvey3@users.noreply.github.com> Date: Mon, 10 Feb 2025 10:29:29 -0800 Subject: [PATCH 2/5] Drop 'bin1_dist_m' attribute and replace it with dolfyn standard 'range_offset'; only save global attributes in reader into 'cfg' dictionary --- mhkit/dolfyn/io/rdi.py | 63 ++++++++++++++----------------------- mhkit/dolfyn/io/rdi_defs.py | 7 ++++- 2 files changed, 29 insertions(+), 41 deletions(-) diff --git a/mhkit/dolfyn/io/rdi.py b/mhkit/dolfyn/io/rdi.py index e9061d53..cac1d195 100644 --- a/mhkit/dolfyn/io/rdi.py +++ b/mhkit/dolfyn/io/rdi.py @@ -346,47 +346,32 @@ def load_data(self, nens=None): # Finalize dataset (runs through both nb and bb) for dat, cfg in zip(datl, cfgl): dat, cfg = self.cleanup(dat, cfg) - dat = self.finalize(dat) + dat = self.finalize(dat, cfg) if "vel_bt" in dat["data_vars"]: - dat["attrs"]["rotate_vars"].append("vel_bt") + cfg["rotate_vars"].append("vel_bt") datbb = self.outdBB if self._bb else None - return self.outd, datbb + return dat, datbb def init_data(self): """Initiate data structure""" outd = { "data_vars": {}, "coords": {}, - "attrs": {}, "units": {}, "long_name": {}, "standard_name": {}, "sys": {}, } - outd["attrs"]["inst_make"] = "TRDI" - outd["attrs"]["inst_type"] = "ADCP" - outd["attrs"]["rotate_vars"] = [ - "vel", - ] - # Currently RDI doesn't use IMUs - outd["attrs"]["has_imu"] = 0 if self._bb: outdbb = { "data_vars": {}, "coords": {}, - "attrs": {}, "units": {}, "long_name": {}, "standard_name": {}, "sys": {}, } - outdbb["attrs"]["inst_make"] = "TRDI" - outdbb["attrs"]["inst_type"] = "ADCP" - outdbb["attrs"]["rotate_vars"] = [ - "vel", - ] - outdbb["attrs"]["has_imu"] = 0 # Preallocate variables and data sizes for nm in defs.data_defs: @@ -877,35 +862,31 @@ def cleanup(self, dat, cfg): # Set cell size and range cfg["n_cells"] = self.ensemble["n_cells"] cfg["cell_size"] = round(cs[:, 1].max(), 3) + bin1_dist = cfg.pop("bin1_dist_m") dat["coords"]["range"] = ( - cfg["bin1_dist_m"] + np.arange(cfg["n_cells"]) * cfg["cell_size"] + bin1_dist + np.arange(cfg["n_cells"]) * cfg["cell_size"] ).astype(np.float32) - cfg["range_offset"] = round( - cfg["bin1_dist_m"] - cfg["blank_dist"] - cfg["cell_size"], 3 - ) - - # Save configuration data as attributes - for nm in cfg: - dat["attrs"][nm] = cfg[nm] + cfg["range_offset"] = round(bin1_dist - cfg["blank_dist"] - cfg["cell_size"], 3) # Clean up surface layer profiles if "surface_layer" in cfg: # RiverPro/StreamPro # Set SL cell size and range cfg["cell_size_sl"] = round(cs_sl[:, 1].max(), 3) cfg["n_cells_sl"] = self.n_cells_sl - # RDI doesn't include stored range offset in SL profiles for some reason - cfg["blank_dist_sl"] = round(cfg["bin1_dist_m_sl"] - cfg["cell_size_sl"], 3) - cfg["bin1_dist_m_sl"] += cfg["range_offset"] + bin1_dist_sl = cfg.pop("bin1_dist_m_sl") + # Blank distance not recorded + cfg["blank_dist_sl"] = round(bin1_dist_sl - cfg["cell_size_sl"], 3) + # Range offset not added in "bin1_dist_m_sl" for some reason + bin1_dist_sl += cfg["range_offset"] dat["coords"]["range_sl"] = ( - cfg["bin1_dist_m_sl"] - + np.arange(0, self.n_cells_sl) * cfg["cell_size_sl"] + bin1_dist_sl + np.arange(0, self.n_cells_sl) * cfg["cell_size_sl"] ) # Trim off extra nan data dv = dat["data_vars"] for var in dv: if "sl" in var: dv[var] = dv[var][: self.n_cells_sl] - dat["attrs"]["rotate_vars"].append("vel_sl") + cfg["rotate_vars"].append("vel_sl") return dat, cfg @@ -974,7 +955,7 @@ def reshape(self, arr, n_bin=None): return out - def finalize(self, dat): + def finalize(self, dat, cfg): """ This method cleans up the dataset by removing any attributes that were defined but not loaded, updates configuration attributes, and sets the @@ -993,19 +974,21 @@ def finalize(self, dat): dict The finalized dataset dictionary with cleaned attributes and added metadata. """ + + # Drop empty data variables for nm in set(defs.data_defs.keys()) - self.vars_read: lib._pop(dat, nm) - for nm in self.cfg: - dat["attrs"][nm] = self.cfg[nm] # VMDAS and WinRiver have different set sampling frequency - da = dat["attrs"] - if ("sourceprog" in da) and ( - da["sourceprog"].lower() in ["vmdas", "winriver", "winriver2"] + if ("sourceprog" in cfg) and ( + cfg["sourceprog"].lower() in ["vmdas", "winriver", "winriver2"] ): - da["fs"] = round(1 / np.median(np.diff(dat["coords"]["time"])), 2) + cfg["fs"] = round(1 / np.median(np.diff(dat["coords"]["time"])), 2) else: - da["fs"] = 1 / (da["sec_between_ping_groups"] * da["pings_per_ensemble"]) + cfg["fs"] = 1 / (cfg["sec_between_ping_groups"] * cfg["pings_per_ensemble"]) + + # Save configuration data as attributes + dat["attrs"] = cfg for nm in defs.data_defs: shp = defs.data_defs[nm][0] diff --git a/mhkit/dolfyn/io/rdi_defs.py b/mhkit/dolfyn/io/rdi_defs.py index 0cfc5712..86d66ced 100644 --- a/mhkit/dolfyn/io/rdi_defs.py +++ b/mhkit/dolfyn/io/rdi_defs.py @@ -101,7 +101,7 @@ "pitch_std": ([], "data_vars", "float32", "degree", "Pitch Standard Deviation", ""), "roll_std": ([], "data_vars", "float32", "degree", "Roll Standard Deviation", ""), "adc": ([8], "sys", "uint8", "1", "Analog-Digital Converter Output", ""), - "error_status": ([], "attrs", "float32", "1", "Error Status", ""), + "error_status": ([], "sys", "float32", "1", "Error Status", ""), "pressure": ([], "data_vars", "float32", "dbar", "Pressure", "sea_water_pressure"), "pressure_std": ( [], @@ -373,6 +373,11 @@ def read_cfgseg(rdr, bb=False): tmp = fd.read_ui8(5) prog_ver0 = tmp[0] cfg["prog_ver"] = float(tmp[0] + tmp[1] * 0.01) + cfg["inst_make"] = "TRDI" + cfg["inst_type"] = "ADCP" + cfg["rotate_vars"] = ["vel"] + # Currently RDI doesn't use IMUs + cfg["has_imu"] = 0 cfg["inst_model"] = adcp_type.get(tmp[0], "unrecognized instrument") config = tmp[2:4] cfg["beam_angle"] = [15, 20, 30, [0, 25][int(tmp[0] in [11, 47, 66])]][ From a07ff4185f56ddaeb7c65fb600ce45b681a6d268 Mon Sep 17 00:00:00 2001 From: jmcvey3 <53623232+jmcvey3@users.noreply.github.com> Date: Mon, 10 Feb 2025 10:30:01 -0800 Subject: [PATCH 3/5] Update test data for 'range_offset' attribute, update RiverPro test file for range fixes --- examples/data/dolfyn/test_data/RDI_7f79.nc | Bin 91107 -> 91252 bytes examples/data/dolfyn/test_data/RDI_7f79_2.nc | Bin 41715 -> 41555 bytes examples/data/dolfyn/test_data/RDI_test01.nc | Bin 62466 -> 62611 bytes .../data/dolfyn/test_data/RDI_test01_clean.nc | Bin 64249 -> 64395 bytes .../data/dolfyn/test_data/RDI_test01_ofilt.nc | Bin 60999 -> 60895 bytes .../test_data/RDI_test01_rotate_beam2inst.nc | Bin 62604 -> 62500 bytes .../RDI_test01_rotate_earth2principal.nc | Bin 62609 -> 62505 bytes .../test_data/RDI_test01_rotate_inst2earth.nc | Bin 62605 -> 62501 bytes .../dolfyn/test_data/RDI_withBT.dolfyn.log | 8 ++++---- examples/data/dolfyn/test_data/RDI_withBT.nc | Bin 105447 -> 105671 bytes .../data/dolfyn/test_data/RiverPro_test01.nc | Bin 314861 -> 313637 bytes examples/data/dolfyn/test_data/dat_rdi_bt.mat | Bin 79976 -> 76160 bytes examples/data/dolfyn/test_data/dat_vm.mat | Bin 115776 -> 111912 bytes examples/data/dolfyn/test_data/vmdas01_wh.nc | Bin 145039 -> 145037 bytes examples/data/dolfyn/test_data/vmdas02_os.nc | Bin 279777 -> 279777 bytes examples/data/dolfyn/test_data/winriver01.nc | Bin 1067071 -> 1065937 bytes examples/data/dolfyn/test_data/winriver02.nc | Bin 339219 -> 338002 bytes .../test_data/winriver02_rotate_ship2earth.nc | Bin 339224 -> 337858 bytes .../dolfyn/test_data/winriver02_transect.nc | Bin 207943 -> 207943 bytes 19 files changed, 4 insertions(+), 4 deletions(-) diff --git a/examples/data/dolfyn/test_data/RDI_7f79.nc b/examples/data/dolfyn/test_data/RDI_7f79.nc index 0d07366491a795fd8905dde48791cd58c59842ce..f71b43417c18f513e72b7542dfe11006a94298f3 100644 GIT binary patch delta 6032 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 delta 6774 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 VcC3%UiVbvJQ4b7B%W0d-{{o*j7?A(~ diff --git a/examples/data/dolfyn/test_data/RDI_7f79_2.nc b/examples/data/dolfyn/test_data/RDI_7f79_2.nc index 4874189da212d9c7333b282761586cb65ff191f1..d794b1f48e6e3d23e3039b0f67dd94f6f2ae9d18 100644 GIT binary patch delta 7936 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 Ee^f-x-v9sr diff --git a/examples/data/dolfyn/test_data/RDI_test01.nc b/examples/data/dolfyn/test_data/RDI_test01.nc index bd5bbc7ff16ab3292d24ffcd2a535e9fcc509c78..cec11b0bc0ba69375132ce0227c8ed4f4dfd140b 100644 GIT binary patch delta 6201 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 EKk3Knk^lez delta 6702 zcmZ`-d0bUh9zXZK`#=_zO?dCIJ=O<;$b;BH5aF@9fJ$Z>`G9~BWK%&gedqhBsX z=GZ>dV$Pef(#mZnbFy+NHOny-9b8JCbeihpG{1B2InVoEpMHPb-~Ij0_x#TGTh6_3 zNwZ>D^JI{pc$3JKs4x=OH`jF_Q5V};peRxd3cr_ecaaEGGbV^g$TV>SZLh%$A#mVy z7Az2UOZTh`-VJ3LAwo7(h$bNp+5{8)K{Sqi^YX^i`7??O$Os}5;*C~nW2~-4s zFXWX}lP_Er4Srm4pujmCRX?i9@m8R_PJs2LPEwO zo1c7o9C?&ZF^1q!gk4Oc-Rt+y|JIg02DtPxwblQr~w&@G~oUGPhMm#m=(JOS#; zDT9ml+}R}vaxWKlL8E(Es)=qp_6kNe^UcNQNfw<@F(F~d9)0zde-l4C@m$%#NcFFo zzk~-xoWujLfz=~Y8?e?lax<>x1g>UeUoSIs=kT$sgKIb(v%^?K?NUU&Ee`H%cf%-Z zTD@lS*$6ymVj;vto7B^G@HV23pJQ|Xx)Iu3KCxLxmubXgJC(F=4CA3br=;N;OmBfoGa8xZM_|B0kI@Y?_23)fQ^v!6v=4T3|O^CQ- zh6;)mFpn80nRl(5hdt^A*Qvz?mEy=Gh)>T6;>pI1G%TeZ2>F?DV-J`E`~zr6$h3n# zzhueG3r{5#cIc}h#}MYx82Rub#i$Vu`$xdzqocFA;gKXA-Ivlo7{AW=2

BBV1rM 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 diff --git a/examples/data/dolfyn/test_data/RDI_test01_clean.nc b/examples/data/dolfyn/test_data/RDI_test01_clean.nc index 6f2e72ea752866bee1e333b5c7af5fb325f7cfaf..26b8389c1a3074da23daeedb1d64dde2011c0ba2 100644 GIT binary patch delta 6064 zcmZ`730PFs`kXtLWdIe1b=aH{kVQ}jC0P;>*%Vv=7s@3;2vKAm1W`d#$#XtyOzl|1}LN zXuJ54b4CHIUmQpqAx8+M5l}@#p-nJEtZ%6JC}m1!DsdzNA#Nz4D6G&yT7Z%W>4ki{ z{@!@#6@1+l!W)f$F{kI@G_nc2H5uZ8m5u0(B5T>s z!U(QHNJ4x0F!DNEV-z7l*nQBo!$cD7@NFU?dh9g2KaV9|_(D?HgODo|7RM7ogKv)$ zG61{Zj-AaQO}Jx{L`XmEx`$uLATybG5iNkQ)PKCq=Q1C)@P&_(`q{3BKc^1*LG6NG>a<@!tUk0+jkHz5#KTh zamViHmTz{GM%bn`2B{BLKlICk#GBnQp411s!k`_8$&1jfHEONe0B5IcdIa*Fj2=HT zU1t(vz;5lHSAWb-dAJ9v>`y?UbFiIP-4om2#0`Fh8|=5DiCrPG*<7&AWf8SBqBabh zv)C9VQ6JlCSs`ql7nwrPx(73)(=iO6sGd-UscnX+z2Lyr{9CyH3zotGSsLMvHyqS? zd2IYo!l0BX+39#GuFNii2(g2&bqT&B7={9w5U)L~L)YOc`FANua1Hl z{jz4#*vu?NMpiVK{E~EK^|8m)kjug>PJWqb0tFO3uH5QzMA%JuIYJsX(U{}0NP4P1rHOYUx$aK zXQrl*m$-*ZYmv}|H8Y?kZZxz-+C!${D14yzge+qWP=rItZqRCct;uPu%q@3O*|zw} z3AXs@Nw)a$99#V2TwDBn@gsPN4cJ@>m-~j z3Saj)CX}I%sC$TBh>}vCB;uw zJpFV{u^C#!!yQNP_CXRn9(>A@8nRzNiyaPqp*k^UVX`O)xQuq!eZ93ppEu0?L4&@(@b63d~XNwl?1guY={ns6t{7!DDV5#}H)M`%H4 zLpX%+F2Y%a?+|Vyuw3Ve;ELdbU_b~%7>*E&kc^OtFc~2qVGhDPgi3^ZgyjgU5Y`~9 zcf&^u!X|_l5w?y2yJ&;OGx|p{M=^XBBPfD`4|@d1Txv6p>E8x_Ou-?4)M?aP3-pg0 zFSz)?lW{c|Vsd(8U}4}u=fdIwW-fzUZi--v4{<^d;VnEK-g66t#`wg-C5aM=kh{sw z&g%MxV12Vh_AMvkB(sfQ(lLZ{X^9}!6Uc>y1Z%%@t@F57EEPSi6qameXUlFvAV!p)6kx`7~4@Uvs9(HR2g{AYE;Os@Npwh@VC~@ELbgAu`s-`DlQ{ z0x1|1SW)8->&Au(n^VA4R=;tAF-i)t>3C|^PD`Dv4;i_WaCS|4Zsuf6n>*ZmoVKts z1sjUrnmY5z5pqz$0DJ1RiC@1RyMAY6DGE!+1kYL^uNT?d)`nB}IhQ@-!Z6ObGT4Zk z>*t>S`@lZ!G2vAR3yGCwiHe_Sib|`0V$~ZqD)OQW z--LS8TRohHL{?q1Ce%lNh6#=}DjIl?W?WoQZJsxvS3;>6YLo}W(()Q}xh#;1>s;k=Mh>WLH^go;&X}RAqThR5BG6m4d=yUU5NDX?cl~ zvoI5L(dc02;)Rt;>Y}1fCOg&?l$Dm3nirohfiJR*^c3973J6d#78N~ZJ}qDNsTy-p z9hkDG3SX|4Ec2vZxfrw(Y-{orBE^KfJ0C7m*Xmjxs< zV8?%~zH7D1;zXv)OhO;lOFqgm=+E!%oU=)$J6vcPx&*}4M}b_Vc#p4 zqz%2xPq0#Ae4}#3Y{d{+>LBD^vt`_$2NfDi$;V8w%Tk8!vW+fCy^)vPOGP=R5XWj% zK68^)D6jIR^WeFvz%-?RqoQJ0nnlHB)=VSH*GV)53oEVpMwH_T5$9G^SFb$*H>>nQ zbq6?92Mdl@A*$L}aJ~uSssr^(`9{THei954Ma7lod9T3o>Q6k?kuYk!#4rM$s__=T zow9#6G}Pn@=b28plUg3uJoWn}^yAzI=1%v5%Gz8S0*C9o;r12g%5T7)MXRlsAqA)N z7xM>0VqG;|gp6i8=HC=vE}Mv6KiCdy6b->F8wAT%`HN8)kf30k4@6CJbe~>eF0M9A zD=w>;i-E|c4EGQ1zhD5oTw;FozHqTip-gt55Clk#+9~8#^Zc`TEQY)$6ewpvL(>Ddb>@wgTL~ z{5wqOa)HL~VHU%e52%c|Tk0-)YAo|FPO_)_*{8a0UDnwr)cVwnWJRQI`p09N)Z`fw z`QV&wU23vLBCoiRXjYS*W4MsDW7~bzPt z1h+1a(g{o32B?Q4{s}#o6TH}^e$}8kp&rtmWJ8{8=Q#&taYZ0nFGtNXKR%uBj9L2qh)e$2o>x9x+(=0-!Kbt zeU`o(MKn?2Nx+HfZL##O#z!OG+J5<2_3|~3LF=u`LCPmPa`5)Wg|^*lww;{KLt#_4 zd0qSXCd-~5rZ@^6k6Hfvvqo@L_JY<;daiZo!1ewV?GW~HiY*_yuSD=F%5{MOQXlNL Nvg6;gq+TOB{ST__#`pjL delta 6303 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 delta 6962 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 diff --git a/examples/data/dolfyn/test_data/RDI_test01_rotate_earth2principal.nc b/examples/data/dolfyn/test_data/RDI_test01_rotate_earth2principal.nc index 95ee620906e43efc1783e13dcf6dce918fc6e3d0..9b862d8a13ff6269dcac0258e3d62b3c90aa623a 100644 GIT binary patch delta 6649 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%0D&UIWi+(TSARa zm;cw{b*pZdmi>&vPQI{cnwEV*VQ0KLX}6Z0o*@t7-SFZvE&GKG{s)X7Qf!9kyi&4gX-@ahyOfRD?EDaLt$T4SY4#s{S%99%LfB> F{|j>HN3Z|@ delta 7191 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 diff --git a/examples/data/dolfyn/test_data/RDI_test01_rotate_inst2earth.nc b/examples/data/dolfyn/test_data/RDI_test01_rotate_inst2earth.nc index db36c437f230529e830a4d957b94d49503d4dda1..1b6aec9f5f01469bd12b05b5364d07a12e1907e8 100644 GIT binary patch delta 6518 zcmZWN30Ra@lJEWfH_#jk%?(X+GziEI4IZGh+(ASIG)6H9(gG?pLaQJcG%;wRF)}so zr!j-(a?NhkxIKyM#3+dwlZj*0=x8)c5RE4xiaKj1n@y(Pf3$xy)nE1dtNyBYRMo3j z?|YdxFZ91Q*M?`>Ru_0>JQQDIn5NoOs8DC57Pg3j35z5~9>IjdGYJAU%eLdgJ z1q(gSN4?HY5fW0 zWj3=If};?UdAuo!9AslmAjE*piGkfIBukA?rGx}xqk8A-iNp^dNDliW34s-SVE(5_kaQy0?x1(rN@8G(NED_`HXYo!irAPuE;$sNp~sKf$y7EY z6Cs}1RE~tMA;;hhAEr|G-Gyr3W=NW+hOc~_)1^g_c__vfEO@CyBG?*8FZ+wcg|k+i z2)w1XmPm^u$Cwn3Jchkj+QDH8w=@@(y_p{-6mrC>Ph3c<~?!V6Mj124GWT*nNoXfI&^T#%>XCb1k8V zVV-Na&tqotB0|EjdHLV>KG^8<_5Z^Pr_Z3qEmG~b`kCGjagvv$NqTg4F>j)%gRdR@ zMwC4gWsEqi$00t6a_ROUi(=#KU`D|}AIFG(ml*s<6Gbyh89qe0A)M2<-N!Y2W2+fE zUB!*~!$GZ|Pu_`y)r_PY*UCEz* zuXUrX$2n6p!B;*-!Auh+h*D8ff)w8be$xxz1)xS9b)H$2SH^khfD16dtF;kXa^mnH z)6uOA`lVKdam2ud1rt%xzezc18zUL)z=ZO8-0Z_vO+k5iK3OfuVWh7hcv2!|d z#Btc#KDsQo(XFTdS{LYF4s41h(6+4@yQvJ9wcTa=9(H;f;Dfh}V7KgDEG@?4;EB zCn~Wj-G>&8~*TzP`@(F$RmQ6X%OaWmKF$I%8`E)lF6>+e%*p0 zW2GRXJ(O5jLL&{AV`B=6@^Z*dA!9KXg715;or3DNX;2XM5x`wvm>!-E6w$le3wpx0 zQUYNS`YvO+C@%j`sg$3@_R>N}y1&Yi?yGjB4=r}2_m~~&opla$7unh1z#v?giu?=YMb(U*l$aV{U%MoIN=jmiF)_{7ld+V8 zd(m3Hlg^rHQ^)vlwr9t`NI@Mr0a|Gg+>6ulz9*C4hPUJMz&U=m?RNYw3dV*QN^I{Z zX49TMJX~#6!=t3ZE}WkUlRKgbaS`G=#BGRs5Z_1aLp+Ok74beIJHTBKJrM&C!w_Q- zlMyE(nh=W+XCcl*T!dJU*o@eQxDIgx;wHo`Uih~S@%M;35MQ4L({g<#$YlnM|^9SBkS-s-!25qNk0bO?DcFi!Mmn+MA^UjXOI!5pKb2 zfy*fep~LBr6%>g(dEB-i*eT3_)qAeE*93^23|`YKYdWTiBq5JXZf?rLk6_`~A?;9C z;wp(1cbtzCq%?#R3oVqw3X8!Lsm(r*&0;m!L!nDs;NIJ-rP68kEQFW%QWN~7)lm;6T)cutjwC!4-Bv&1A8XT*a^ z;t41ma}K>d%ihG}*@%r;b4neO^X$#*gt%jqu;ir??Ac1;oUJ(*xyaDKZy@hp*Q_$E!If_$Rp&3z|0Iku3Qgw8RNKQH%u*guCUJO+8E`@ zW=?@$O|#M9gD>hcWdln+*;AfO%PCK$lj2PUE!O&-0}p~Bu%eiQAmI${verOTQaaYNcZDNczJ;=m`m+KiLEM7y zbhU7t{6)CBVY1`pk@y;Ob)y`rl$W!Ms*Wdtc&aWs-e2lw^XhWC@+^Q&h_T%+J>e&xmKXOR_d9z znj4$tl7aHx65FMr?NKP}7}hXz#P&k5^n4B1+1d$U=%lCk*3$RITq%X0S;_~dRfWY_v=W$%hM z`;`CXAF%n^GA=zBcgissSW^tQs&?3=SpFpB)LV%I(6gwF>lUS!-VK8j)w=`bzC`=( zf{fpb^Sy!d)j@N85_k5R(Cun-H0)oz*RCL3Y)N12k^`c`b-P0NbxGlrU08I^+uuE0 zBnl7Pg1-h`%`N8E)|D;h1TeMesR625 ze4nzPa=f%3iK@D>Sx&{2$Fp1jezB#c#eU@R(k5knE^e|`)zzxtmnri_m3S#D{x%BMZTaOr(K&sxbGUheIc;6mSx+1- z+JU>8vJ3`SmT~Vgkz;VDEeZlw@3%YLUl`1I?eJQ$&rj`r{w%v_A1eKa-I1d4h7W79 z;GOmsZu(8^HU)nCF-Oh(LZN4kmB+dZZ{;8{Aww;KBy5OzLh z*XRPz^4w^tGaK6X!MV;1t}Tdtt>C{b92&40)~b0g`3f#*4CEZS%Bm--g2q`UIJ`bh zg%*IpiV$#p{xf!jN9wteHazEz92j1#<6eJaDz+2~XBLiUrs9~X@N&M}91O+XQD9pZ z0$aN0GFwfSZ4<#15M`Q0lah`^nves@TmM^h<7x`~+cV+n#z@zhCxv&UfE-h( zKT)zlWOqNTXjHO?(uE7Cx&ZxnVZP%f%q6kUjP#oyQ1l(YW7 p3>djDFL7X497_JbHSX#zrEuJYC&E6mu)M@GuT0)-TR9S-`X|q!K2iVx delta 6930 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 FzX4FT1nd9+ diff --git a/examples/data/dolfyn/test_data/RDI_withBT.dolfyn.log b/examples/data/dolfyn/test_data/RDI_withBT.dolfyn.log index d79f07fc..a3bfaedc 100644 --- a/examples/data/dolfyn/test_data/RDI_withBT.dolfyn.log +++ b/examples/data/dolfyn/test_data/RDI_withBT.dolfyn.log @@ -3,8 +3,9 @@ root - INFO - cfgid0: [7f, 7f] root - INFO - {'nbyte': 579, 'dat_offsets': array([ 20, 79, 144, 282, 352, 422, 492])} root - INFO - pos 20 root - INFO - id 0 offset 20 -root - INFO - Number of cells set to 17 -root - INFO - Cell size set to 1.0 +root - DEBUG - Number of cells set to 17 +root - DEBUG - Cell size set to 1.0 +root - DEBUG - Bin 1 distance set to 2.09 root - INFO - Read Config root - INFO - Read Fixed root - INFO - id 128 offset 79 @@ -13,7 +14,7 @@ root - INFO - id 512 offset 282 root - INFO - id 768 offset 352 root - INFO - id 1024 offset 422 root - INFO - id 1536 offset 492 -root - INFO - Done: {'prog_ver': 51.41, 'inst_model': 'Workhorse', 'beam_angle': 20, 'freq': 600, 'beam_pattern': 'convex', 'orientation': 'down', 'n_beams': 4, 'n_cells': 17, 'pings_per_ensemble': 1, 'cell_size': 1.0, 'blank_dist': 0.88, 'profiling_mode': 1, 'min_corr_threshold': 64, 'n_code_reps': 5, 'min_prcnt_gd': 0, 'max_error_vel': 2.0, 'sec_between_ping_groups': 0.5, 'coord_sys': 'earth', 'use_pitchroll': 'yes', 'use_3beam': 'yes', 'bin_mapping': 'yes', 'heading_misalign_deg': 0.0, 'magnetic_var_deg': 0.0, 'sensors_src': '01111101', 'sensors_avail': '00111101', 'bin1_dist_m': 2.09, 'transmit_pulse_m': 1.18, 'water_ref_cells': [1, 5], 'false_target_threshold': 50, 'transmit_lag_m': 0.24, 'bandwidth': 0, 'power_level': 255, 'serialnum': 18655} +root - INFO - Done: {'prog_ver': 51.41, 'inst_make': 'TRDI', 'inst_type': 'ADCP', 'rotate_vars': ['vel'], 'has_imu': 0, 'inst_model': 'Workhorse', 'beam_angle': 20, 'freq': 600, 'beam_pattern': 'convex', 'orientation': 'down', 'n_beams': 4, 'n_cells': 17, 'pings_per_ensemble': 1, 'cell_size': 1.0, 'blank_dist': 0.88, 'profiling_mode': 1, 'min_corr_threshold': 64, 'n_code_reps': 5, 'min_prcnt_gd': 0, 'max_error_vel': 2.0, 'sec_between_ping_groups': 0.5, 'coord_sys': 'earth', 'use_pitchroll': 'yes', 'use_3beam': 'yes', 'bin_mapping': 'yes', 'heading_misalign_deg': 0.0, 'magnetic_var_deg': 0.0, 'sensors_src': '01111101', 'sensors_avail': '00111101', 'bin1_dist_m': 2.09, 'transmit_pulse_m': 1.18, 'water_ref_cells': [1, 5], 'false_target_threshold': 50, 'transmit_lag_m': 0.24, 'bandwidth': 0, 'power_level': 255, 'serialnum': 18655} root - INFO - self._bb False root - INFO - self.cfgbb: {} root - INFO - taking data from pings 0 - 1721 @@ -98,4 +99,3 @@ root - DEBUG - pos: 865, pos_: 0, nbyte: 138, k: 0, byte_offset: -1 root - DEBUG - Trying to Read 512 root - INFO - Reading code 0x200... root - INFO - Read Corr -root - INFO - success! diff --git a/examples/data/dolfyn/test_data/RDI_withBT.nc b/examples/data/dolfyn/test_data/RDI_withBT.nc index 5864a5851532395dfce56d219944b6b93d4faea2..4dceb180aafb204bbdcf39c6e7219df095671b30 100644 GIT binary patch delta 6975 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 Y_Z4N6Mkw6MoP_&F#`Ru)g*w{*KX@sc!vFvP delta 7295 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 diff --git a/examples/data/dolfyn/test_data/RiverPro_test01.nc b/examples/data/dolfyn/test_data/RiverPro_test01.nc index 719ad6102d62ac952c044dfec2d5b3e5f6d40b06..2eb6a1dd3ceaf0a16a116164d64a06db1e30bfd5 100644 GIT binary patch delta 14307 zcmeG?heH&{*R#6=o`4Ec1*9rq2NgR9SO68G0G~-!EAkNo6sZaBK6A=!} zyY&eQ81Eu%LK{VIp^rx6jrNYW>o{s0lOh27BRAhc7Lw!8J`4l?aFHgAj1C(O+5-`Q z4p?fU4{+w}oNM39>gtdv%mtcJtkh3@Fc?)zc3nd*@4YiJIy?lZKoA*@4*({(>TqSO zDY%HvN$%}E%rHC#fZpht)TOeSR3;CLK zu@Q;L9sqdbs(bSD((L~C!Zn(RDwlS{l*#~8F&%gUX5wXffan6$kVhIeIH}o?(NmLb zPrZ_i24JL5P>AwOyF<@IQCS+z>u_pv6*0LL7L@4YgnJ{!9RIQMPs8GuO2?pFMDMt? zay=PeUDEPPyAK6FIsr^06DGyAH>>SgWx$`0WC#Z|UuEy7_cR0bYEMQbb|QsKn1 zD-T9APMc~dGj3oX1yKK`DBirmaB+w)%fQ2u^x_&L=VO)~Q~ z@D3on!a(};r;?h?EYV7pN*GL_9PGQVgG_3{x5jEnrPv(;&K8Q zdisBKzynX)2H3&=tDvBN!3U#l=HBjHi6L#c#`!QrC{cpn_%>9o%J4RL-YSB&n$(8M zTj~AFFf-mNiYh$1O)IXD$!+i#s!3c0U`iYOK^zfCp-Ytgq|a%J-{j}?Ht<^v=AMh= zg`RakopAAAyW z?_}?nqNj2fxT<&cx7*-X4`PV9M6qaPCzaTwYSDC>r_$68u5xJC-Vnu*rGtZswbPk^ zXU&=$LY1RKulXbphSFFF{(iZ=0`wvX>?Oo6E{uCn1J09Ri&udMa(5gap$vPA``$bN zW}9F#UhWRKO7Ps;3?j&A@ha$stGnUDTEK0>fg`>nuKYJGJPizS6diX=w;4m^hXLS* ztKx>8KP7jx)M_*>RnFZ^x?C#mbD~*uOQ>?O5iTNIm((2n&SA8#80`l@DGw<3qt=<= zo`7KoB!F_vMq69!wn5m$_HW=Pj!!f;C^ZF?dIU#_4)KDgAym100mCkg8RGxiCkOYJ zW@>7qtK3Y5UUKj@X_EgEJVR1^^+xA;MNcqT@3MP{!f?5!ufYzXS+i4s$y!YpoO5`I zA9$do@iRKkn9dfC0D>;dMaU_9Q14AL-LB}aO+@H-5%7DztLOCTgC%iAY)=!kJbbw0 z00QCJl1=;K;(n1}IziygxgGjAdv*V6t&2Vg=cJdodk}E=Qc#{o`SR5$Z>f51D z-{=G1D(qC-teGv4NqeHWN>6!24D>=1-Bbf@z^759DFCze;h{`lt2z^`B$&jLx>Y@3 zlSZ=@UQC(&z1%qlP8HW>$*D2W!D(U~Wdp0I4FK4!uR%Rl)-GYn^K@;8wp(w(Jl4hx zn6V$Ap>dp3+pX81x-Y;yoNMw|y{cH+I2u)Zk1{Km&zjE>kXyI80z?@-{L$NfuIOPm zQ+a+J>}|yiQ}4C^8`f?VZWl0?o7x=A`-e&BsNaK-`#?)h`z$Q!Z1&)roRlt!>NIZOl8} zkgnGt=iT~!jl?rjc-_^%UP6|=rwU6^O7F!&Ec&AN2v{?Eba##B2V~jTG>5U{r!D?( zZ*U(#@-rtxx<{fhj;0p)NekI%oM_@r!KL_VPt#foYVgyJ=IIo~V+UP;!7aLAup3P* zF%|b8fMG{Kml9#0fEx^h=3K9d*Qh-5wI#vqS(6&6e1V<^A=ak?o2A$|8K$&f^ zB0cd)^koPJU4jjo0+TW9jQRB?6N66ttOGz91$p8Lc45#JjJkF63ytOkvh=kO50oJn z-#{3#d!IXs_l>q7Dq>y|U5n26KF{$!`^1vO;Bj6_0U=RQW585qO(5XB z!bSnirfXSeb#Hjvpb+(%4YEBxm$4Ff#p4g+TzJO#A83w$kscB@dL-Z{L_jz@#cjSQ zK!9Qg+U4*#p~_B4ONyPHk;PLT0rDK*Br`sJb`sB$1<0+hqWIXXRGvEtkQ~8CfeA_R zX*|^uAUWueA|<9|@?=kdBz|DK;|Q?Wk0(+B#Jf2y;^O{1ixME-vS~3%iqFiR!&40b z^28OUq-SOGOhbU=Xh@1_`hv8Cq)h)@1`3cnpH;$wl+^5$^w^y2q^#`NO1O7@cA)0~7OC@s>$q*V96 z*l%ibz9mysp5NU+k!Er*IzRCQYB^_%KA7Y$C#H)2^3o(|g*rv<&*55PA^_kD;V@SN zhxzn5%%{y^K3@*=NphIaP7mh*J}1sF=tKUC)#LP`lViJFl;pdY5 z3Iv8t4j99$nk3mh5n7}0K^@@!rY9!o@}QkvNJ1mwAZ&yGz^tUy)Yz<)rAc^QqTG}o zu;T2`0jP_*hpmByE!%m?$yrI+==z8rPK}|DmfAGl3Y2i@ra}@@;)7%C|&NI2vvC8?P=7m^^G$wE~id8>uDGJ;yApd$VGE_B+3Vx-jg(!4n=We5L zs!z(Ok@{NA>eu@6@vbAaEooDIRUR~sKJsH^0cVbPiBi6)G}A)1c>}c2!xL>i>oI~S zG8VujhVje#`jo!rsfWKlk%?n$0KB8otb}96e$nIp{6 z3dvHc6rubgL$tMdxbVP4eUfZL#^s5fN1oCs4R;(&KyO8sJd+^&arBY*HA*vJvQ_CC zMVcI9NRgEd0c#{5Xp;KC;9CICxhOT;MpTB&mod!L#j$Wqg8y8G#MhQRjs&zdwf{^;ZOz25ZAjYQ*3|wf zZMlA4{armX^)_Qu|B(r(sXg*H4GYwpnpy>CXe4O}-{ocrE)#J{8Y5^qEcsTU_ zrRP)`7(m3^l@o`O752cy=31k z(J?%T-KYY(rm%0)Gn&!Jl~V=Ev4a~#b}7lA@r~-&AK5i)vh}XX7dRc-sVfV5Q`d}H zAXcIvO;7nz9rTwcE)<`6@|{3GGs8x}VZ0G&;}(f~1RR;<`>}A4=Z6oZ%9m<3mywF<7w=n{O?#Xb1)C7<9&OMQcX@fi|qb}KMAjO-nu zj{o_3q{S+0OC@z9kqh9iIlV5L?;uf#`&Oyi_K4 z_*(Kpfm6<#k=qFXzIFbkre#}PSFz=I!kfO-Qlm;^rApo%Xe6Yg~O(zvv znHedj_dze_=uqHpZ*(lH(TsIk_t&fQE%UP@RpPs??&(Kp(m=BlukZB=F}Nmtoslyf)TK@+M> zp?6#w9UqxabX~aANkbS<;aQx^VMmL7&pZ|zA84?)$Whe5iQh@xd+@5CfgvK*W0Xorx3hqHgQh7q-*`@$- zaHU0sJI%^kkeS32PXTt-lPoxiwB&iH0A2NDDLyTOC!Ydz(_`VRd6}6!2h9kRBvybp$)JUjGPAN$cseUUA0;ViVSFmjYz5duPckC{v$Er} z7i8fymm&p-_cmJEB_r2erU5(&2nidjJksI}k(?!QvAx9V$1O|(&lI0N+tU~I*%c|p zQIGlxCGRdZW2aK9??;S6f9;Nxnl-Rx(w=m|ik%*>1LsgV{-toKjE~8qF@gzl zzqJ_R6k0;pZUwp5)-E3_j$&=$U%jmwGmk5L9M{~si z5)QF)?gFW+JTO)K!mv5(MFZ~L9LCWfzfZ6cv07xyC1Si3f(+p$Mu2kq1F3q{)1%f#>m%Wr>W zt%DM1F92=3++9BXKy;-emH&DmCeTr$wA(f`$>%Sx$XZSc`y*7lE>9O}gx%PqRCQle6ISVt8)oow-A^zz?R=0A#Y)QA1^1{i@DGE9lDknY? z2m8{j;{y*iPN7Bs33QtiI*8yUZGY2d)kH=G$L=+~qiqV2&RR;3|6^n(cw}$T&9ZfP z2G3NC%#nl%<;Z$c=~9i0t9IBlNoy$$U2Cv9pSApSiP+O%dbIs=w>IijbRbV(CfeXh z1lpOqXm_PbQ&dv%|0VHXok=0rv0s~k`_h5C-f~LQ9$iGbx%=O{@iFagVer~s)N4Ol zDLHVjovi3Xe*RFj!Iw&B-_Lrgyy3o|1<)jKc6Hu)%^DjsCGqD)$Z2X|?+FV;Z)0ng z3m~(NHKQU_Z%sV^6~3s~KFPzGd;6<(EWYlMg$H6!d18qaE=`{y$y-aLf&KhyY&0XI z$G!nf*>b@Xeu7PB2L=qJa|gCpx3lK1kN5rYS+nL-fm}h$_sgXAIq%~&Ujc7AJ_Va%H(xn-hkkl_MC$+a+MI3;D`~m1P)oA>X2~ z(ts;l!)tqRl7jlp0Dz5{*^9iMWQAO3IgnR%tbB(ndl10EcQLawzBA4V-l)-Z$EOe2 ziRH7s*Wtn8GD+?cA_XC_FhcJ1NHm4wo)MDvR)rL*l9sQ7TKtYBa@iIsi40Hwd4uQLVW*5!J3Noi7WVv8fNZhjL_Re> zJ0*KTBE6{QHwFUaM(dC|FMYOw&TkL|venVjK0P)o9;Y-JS^V}ufPL{^bFxP2C>}p9 zU#gK@#21(3?`tGy@$gOAY^&5wEPE*XZk0S-`2BzY@p+Dkqj^|*T2lPe-{g#~l6{Wh zAOe|Q$sICDys}aaM-s?A#grsoS*iGJLWK#C`;7UV#6|ov9$!M}soY7d$<2Cya@`#} zFEb@6Jv%KvJ83iHvKJtCkM;(l>o%y-^dvb$Y<0MF=HE;rc%k@uduwut#%l~DCe6-F zN{UU2&&rnLk4TNO+cXK{s4ywF-x9ft7CS&^nY|~YMwNeBB6`YyX{9By?=;C2`h5D! zXL8O_%r?u2E%2DM--wnN_?6sjg zB?lU*8_3jlC#Esw9&Q z#3?g*2chJMBx|lqg=S25j@biWYdt?Etdswf)kB_gSE@F{ff*O|v1mK(pLYps17+2x zZQRx6ZW2tB2YfAEF$<&(W;9MW)tY}Jg{$P6&5}xb`lE!*`?IkmvsvtZ&eT9JKX4<4 z{cQuA8-F=sc;7?Cf{%aNCDVv&@MB9ULjITBUKrcVxu@~D^6MO6@Pk<~x! z6Rq_tGHt(&M49A(<|dE%TPko1rhU%Lz0$$>9RwNvfw@Am{Ai&VE)V$!-}wFi`v!jG zBMXice%9l#;ef};hRm1dK^SK^&FSfeL!2J|U*9*7106r0>G}WL`vy*;_0!*&CvhZ? zcYMG+%5j(nHxA=iM4J-0d2JQBk3oSqZRGJHoGRr}U!qGW#sqI}_?+^;^{f!HV$_4x~=)`J4i7M;2QFteujIHKR1DH@((6ZrTxbQ{wTe*JJv`0v3Olto~wY zv^sIPt2*RJmfCt1P<#6oYR8(v`O^5`qE@NBZQqQ~js=J#8tAqSM4+uFjKtAIDW3&k! zVTL51b$}PO)t%ub^S8YGcIp0D@wN_5F4x`Kk)ezGx>6T;v_^-=s0;G1(Pg8f7@n#7 zv0;sFnN7Ox_}G2AaTaHFr$0QS%bKIX{7t&_&Z~4GM_P1)i*j`{D)MwA9$eM!y6}Jac;{6sb$Eul8xeWB$A1>-Y8@+d{qC>U-M+F&*BF|sTk9~I*0*u*1$NWu2mn}# zd+Vz^@^ZQE;Ffv1sY3_qev9(dp{);RXg~A7b3i$dFKRn`lPMhBQlY-MP^UJ{J&aX* zPJQ=xo%-sp2&=t8{b=bS^@9of)x8RiU_~8Nk1i=y&krb8FUF?xygL*tC|7MEmZE76=&g$gk zZvqZo9HgFke5^Xb(m@^eXc!)eEp>+6b&~qGs4oM)^J)%Q^4-pWZ?0_*pi_t(Y%oLd za59I~Z~xR~1nkjW_qdDAu?MUBf{rNe)!(0Bbso?qCtuK6PTibJTlUK-51Q&+w54mHgJY_95!$88~aISf5isM~ygB{p0~Z(hj}0NZea?ySiict6Dg^4Diu_>DFN<3|DX3UUCDh+z@EzeN9&K*@7TMw^vIS)hvc12 z4TsL`*sw$1H5cBqUR76HQLCXj)M*L3%9lq376(G37=&W z3AH;y!Z7WJXeu?Dit^Hu%JRy!^7cY3pt7j6xHP|HO<{Ri!J5K?f;D-CM8K{h zCg4ahwxL~qNoiq8K|yJ0QE^dzesM`r$r{Wozgq_HTd!HYdR5+vmCN#0=dQ@f$yu>{ zX)Y0Pp_~c$q=Gm>L3v3&k?)HZ z>ZtgBZ_ruA^0RJCvq)1ePTNmfZz!yLpK|zAN$hi5K^*+|!Jn1HG4~Wi+dm3EQxany zDu}<1xW7b6jC!IR(R&f+pDU^EuM|zaF4;RNiBaZ)?2;%Bvm@!r#HRG~M#QzU#Ug3A z9SL$pXjzbwW)UODaN3n*^Cl&2{X9k^GB+jLzpbQA&y&j_4D3AN_gm3Qd{ZgIU%MWu zRpQUd3~yC>Dn*H3Qcv*1=|_~Ey()j0uO$At7{z$$X<>^)O_VhJy`X`%v-#uql(a3y zt+cbEb(E6!_yq0Hjx2uv3r)^S8aUlbdwAncS0!yn36V*g?fb22p^~(_)IcgO5$-5S zFV3Th-mF!AP1tKC>F^Z;X`90*i}>g24QpS8D#s1fzbL#u#b8hO2^D-CFJn&Q%XM9a>{4J`S^r(Hu%49U(`e6`0S=3T>LD5@VvKRutQr%O`1&Qrh5Vghxg0(+lXW^@S}6unYdEdUFd5tbjNp|xwa1tW~~J@+wZzJwi7!I@5^e? z7EV3<)Z6LtG|jEA3QTG z1nE%_VW$T|7Vv0yZM-GAg5ME+tQXq=JQg8;{DauhI#&7gh6hq^BMsd)2;wL=VsNflmJBU}N4{KyZK;p7JZ!XuhX zei9H_9%RNPVgkh9TcrApW)i(UXsyYjkg_0}vW|Qi z2+G1rqE_LD@7i?txdQVg#h*R?gQ_ncW&46^&_7TO#G$zS;hD^^&@JT zoIz=6;T-V#iT_X^_7C-wSbbWn7ICd88FAJ>V<|- zRRa2J>Upa;x=KshV7aj3+tlOk ztOD$l7S4G?4+byO>iHv)zi7{-Ht=!=b5lVmStFpX0N!8K;1oQqy<2!{8!UKQT2^RJ z{#eOhwCAce@ai`38r;&}t>ap)mX95-!RzqD_HF~xG>A|688|jl(&_JuWs21HxeOv$ zJk?&WOV>9=+OO1CxLaAbx;^aR?rz~6=5lO8qv1oLqLaJzB+@b1t{)!VY2zDMvgX@zmP*P8Wk= zSA}O6i%x&+jla}rxG7Y4ISW^?i&uP_)|J`bW41Gy?I>oWA=4cVwMqhpMXh@%0Ziv? zwmHJaLnKCa9ztg-3S_zqA(c!Cd|)p^W;#E!{SUS7<3P1$VzINqu)D(BQs|7QUGu}e zyt}=^1Cd@RK=Vx3wdb$eQ}0NI5QT(U zPp2gh4^K7aYD745?h70gpV`tN<>#%EK@XmC1S1JSAtFGz(1a$NgWQQO;LM z6RdaCF*jeK1m;QcczM5BO5g3$Ap7bpgE#BNR}h?$l5Q=y;k`o#IuWnx;6T=*|8Caw z-}w8X@pxDNp+wv^c7ACMA=AfAMOHXn=WgS`78R+zaqj_h+gEGBgMe0UPWHuj2MqP} zA51!9p276FF|^}JJZRu7VKy!vxLPR27K2`q{+O}5!eIEZqLW3Mr44OHe!xj~gg{Cw zF7R|ib{y;o*e*1Tr8NNncA`Nd1z!iyokqPBOr#*49)a@!bVD5|3VwFbw$zpoaly?L z?Zna70rWu59CU%H`ys*&EiVJ;g{add@M{2iLg!jZ2GD~#R9aC&!HyieAHdGkchZ{g zV4y*+K(7@NCcE;J1C8sUC*n$Jc@G-9A{W0~K?cL6_NIzsAB#r~4YXIv)@)^K9cs4L zc4RAKYwfuQ|JTr;oPPf%csOxd6S~C&uofSK7xGjbYy@lNQI+KE`WyH}c7|p7`$mL}8y}4Lp^MOjYMSA{mp}mTV3te9 zAmyzo^{Z)!tS2EdS*7S6q4kW$wpAaly?!MKp?jk4hmaXF#-dpaj|3R@DcNMwkN{0t z{4LBB&>^ZH$1n5~L9ty>9iuh91)xAV{zi(P9x3nVcHSLkd9((CVeQ zWhtpVq7Wo*ewNEtBt*p|zcql736dR-7~U~0VJ3&$Y3;2RMx-RJSQc&d8ppKPFc#4< zNvW~bvAmufLP@bmic4J>o36!Sg2e4oN=}TAU%s9Z2@+X(QmkTQBBSG$EnbjIcV8lU zW~(5})R=^%@Nz~cNZe%gDUtDU%i>bkgjaDC2~bE8SH{E-{{#of?ovv-m==6vY!VKa z_u|rEJ+=yT#$N|_^J@0W`F>h+eV_;q#F-d=RNS%w5z%oesSybgDfn)1FROn~BSbCu z&%i);M{r6&1Ray*i&&VLoE)<-H6~gy{2_M5!-A59{*8v20v;XgDD^yj;$l;HaFou0 zv@z`(-x$+dzdI?w=4RcEz@|6HbQExCV0SEsxJes-KRp$13;7Pu2?=h>3EeK>t|PnY z8JAxK;)&yb!J{WQb_tc)6hk#V2p!5`W>wFhqsXCQO?OhfEYiTw5YwUubK>mzu=SyL z*E-kV4^E@@ug{PyGj5*O3Dj=7gPF|JEhXHO2jKBOm0i%cW0O$ zU-TW?=dcCa#lgMN!k=HP8s@C!m&Ov2_<_I1z5PZy#u5l3TjDz}tnN1*IpC!EF1W;R zinLOID$PD!xBg~s-{|Lh_7qmgPFcRaKS{BXy^VeW1?%-sx! zxqIO-_bVJG-o&(UFQV0@A?`ak(d6CyjXnMMo5Oz{Fo!Q5G>2E5HHVj8F^7kL!eFLD z5Qo^TVXy2LA;TBu@V(JogIGg{*UjOoICFS^syW=8W)5F2WH9Zm8~ol>Oez3gSZNO5 ztrC@*XQH!EN}`1=&0-g^-7KWMpCG#6noCg-8TjH0S%+;bX^(wkbE0ut_H=RcVM^0q zN%})9QFh)HyJ2I_IXu7I($RAJ$#tfY%;pefmLdi^9lLOx_F?kVv}QtoeUl;AMTd9f z+F`Fk2i&(HzR9;>ozNt#wGx_k6x!;#YkoSgiaLsmf!x!rqb}*AK<2S-;kQzJ@R5=* zpHvvZ)KjFifs+jeA2_AqqS7$2x6g}t9Kmmv?ZH#3ETzORj{O2>aR`pyFLuH|6zlQ1 z;_sDY7crVMEw)E%;6 z8+3Y*RM0eTH&A)`zF>p(lyUfk4U1X4y1CA28dVQed67D@FihxphVj2_?5Hr`yMA?F z)2L>kxMfb!@~I7TSk>i+?dl@!^@Q_RE`^Cbqi9bqO*NO63fTUJrDyfM(L2pUCs5R2 z8~Fo4a>o8w+|#(}2$GAog0|Y89+8q7%?(MAcoc0-0|bKOMkPo*q}G!lfuOj32@=Uy zkfKjYj!8*bksQNKO^|4)jn7?iNaN-vNIZfTBNLLijR{g`)(4Wv{>@EIki4~OE4uwh zrM4QK50FKz znrWpV_0f=4i{e(3kfx)NVeo`&)5W#g^5dx=T*q10i#xEW?)Saxrm>?#3pj&`;$>5^ z>F*bIU_o9|(TX5Oc7~F9F4UB1>Ibs~cNX#W&1-2ebpq83Xue_WpG#|YwcPI9SI}vOL6siQYh*J4aA0OUi|51&zn81eBtReBiZEF@${@!<&BJ>qUfvKLc zA_^b=C`?o}9>J&W$B7TR;=;!zHZ0T}ap|+Z+%~%Z6))OHYgYDyl@P2ru+xpT-f4$;Bay{J++3Yc`AA6M5?~eLqu4({<8~!Fa zjer1t#M~Cj$oa{Dr^0Me99v3cKao*JFnGZvl?^_-;TtN5voKZ}+{x;M>uZXtExL(>88 z4f^^43u4Yncy4%ra$gi!(n*;N#?sUEd#zrgM_s|DPW>4c{ydJK8< zAA~z{c!%LyG#W)%1kXd_&#?X84(KYbN%RpqKomOAF@zxDWKAQ9xE+n?CbmrSaV{m* z<5`#=dLsLeEyKzNHX6cO1JyZkox;Yj+fdYj(DJC&tUuF{k!hFcCTUYlqHu(s3|^Gk zXh_upTAtkm1VS0*8SzvXN`ozN>C(a`kBw7>*2O1%kkY!wpa_VwecWIP^ReYN(a(1zMRZmc?hzgJM-KaUC5nxO z%c07ix#BR&_HE?b*LeSlZda6U$|^FR(s{Eu4|2Z5gHDff2trhjz~J_>0v+6IyyCoZ4fYohiPq7Z01W|37Ok;kkbxbYaSK z5be^+dS|>T&vkd1o6#Jf7h#~wWJd>6nuZX@mUaQ)O`znH{?+Ik@+Mpn&|os-UVmTt z5Lu4t{hqO*n6UiJl;s{`SG(R!r>(Y#?wYyjl`&hy$!%1wM=avw+Kd;sWdZcb~H|y%Fv(u&E~>WH~iVBZ@Yr~%M6Cj*uBmU zFBmNuYNoz;_2#b-zRb`WKduskEUaBMvE<>eN|Th*8qrehcvq(=HR9lYXJ2hu7(8?Q zWMs*clV~ibYtq1(Lpv=o1~-wA!{|glpJ62mz>ef&7*^H+=*4a{ zNyR?+b3x2x;q@&Fj)Y%YDuK8gx%Ok_eR#Mdo?}H10CYn#&s(Cmf!Y%#&wUhVFt{4m z>=8rty3iWx^T>q`q(&^15%pqAhq1J~vIWDnYq4aWnD3(7`k(ZE%7Y_fd4~|%=$J#+ zN6d-GylC{GO`|c5;$9mTZJmAa+=xe=33KF8Sm<65D-<}({(I4BR) zIT{j^jE-5H921kG^l1`f6h|!ep%+~N%;ARbX6=bi(E^j!%7w>IN1GoRVadK)G~kRN z_1tnybk&DUhM|yUyE}0o_>V1w!zrfA?@%Qgcai?M^js^t# zkLQOlRq3b0k-L21{<-gv(34C?{8pI<;m&A99m9N}2`?$0!Dt@@;cp01^Nn+}Nf2(^ zjygyP>UN7f?zF-lGiBG%qgo3z`nBlyS-jY;HD2u6q^&v+!uhjLx9i`NIgo26D|*c| z3Bo^ABn|9LV_+DE3QT~39~1pVM=nMs5UDS=o%PI|q(ne0cztK}zmKrVzf8`g)}be~ z*@4H5XIigVHi_MAQzBv_Qy@dM?dQpgAw+aCetSxEClUO&Vnrt_>+xi=ek7mj^6E&3 zcmjdLvVsT6r{Xh-gYl+U2TGrWAKu5asjsY?(Vnyb8pImlgxCGWpQHvdz^KNW?pnOb zB~A#@%Jyr{LcBQ&M-J*jkT!ign-gshKisT1%#ZjS z=BCBrvh(KcBW{?(ez(oxr}xZYXT%MTcL=u7Xy_!+th-~H#0+DahPCUVH2$XZP=bx3 z!Da%jT+_Q>u5!mHhU$h|wBCCQl5!VPAj+9$ag9PNV&XREoCcs-hxoYIX( zX)g4#T#&Y$6dRNpAcvDpY-Kef8U>MPh&0PF)uTxlIY@uvjM!1Kq#ux;BRV10Xgxp< zU>=M*s#=OyUOgvPC=KC~r8MD)KG^v1oCsO8hyOviMDe>O=G(AT{nujhbmQ@Bgfh50 zW9mhhOO*RJ#qBoiE3q$^coi5+ZULq4+8mg13TR@7zmt@A?~2!KSeTIg=)(qM^}ob0 zy%Ka(wA6K;OX%W>ESUrT?M=1{Y;0cZ_L$ZF#n*!63OR((fH|f1G%T?ASI8I1h;7sk za5f{w-R&W3?l~)T(b`7Crz9j$>VFVx?C3s=E`~2Sh59J7e-wv84#e=II9*EJa$~8% zaMqHVt`FHju)~M;ipS651wC2w^wNMQ#_xY7b4?<1a0QuMP+s~|%=4a32kj-@%QnAA zAd{@Tx>={3k%TbC;i>5G|8ERhkC@c+fq-}#lf$jaODa^*hyRy11|-ADlaE^e|J{uN zN71KKo1+BZayi3%qvbH)UpWlhA?=62jhiY2vyCw!OSxMqjdUdHdSI8$cPxlb@c!yY z?DJPA<-#*@mac`U+W>l|rRh3l^fGY;Tu1!(iMl!1uC#N8f|zgi5~!jMoTD;3MHwfC3nLu+NYz?B`d(&eMoiE`Q574+RP>r6n_nF;dc+8p`g)p4>%zj^Z2 zD`5d6znmhcEqO(rTH+?Z@o+ly_cS1SWQ5VjN?IeM;}a*ZEpI> z!;f7ESb^PT=lVPuuBTyyAbIA!uCkr3w|wI9291Lt`Ol3@WdEbp0dV6ZXKWrVzchQd zd~c73ob$awesAJ1d3N+E`PoOSY5%|cJyYJhEnDt6w@m)@+LHj_s;3;~uoc*ztE)Te*2H3n#`yuaspRF-gdJsYTG$aGoMuj_e^^oUm_3qkDYT%IhYQd-l zYLvq)by&eD6$GVDu*+28!vOW(o^2|~M6K!6PhIj>s(S3gO5kLq3XH1{x;3f|$+7CE z*H!@+Q-RYG6_!*5l~B7{W~kWx9B`DUCfr}AW^B#^&QA7J2MuacSKwPPje209N*#VI zU-jr$t-{K~`#9Ay<74&9DeY9_(auEBq&=DKXMb!|*F4y(&Oce8synM_zrFLes6X!u zQSWrgg)ZjNIgs~Z1sNbIe>x`NkG$&-c`81BAn5P>h@d}SeL((j(k{@YJ#yHvi?D_V zWDt@(y?F;L{b{+q|515&(rFon09}fvDnQm1!~mKfDHDBdxl}99Ez6X@c#t!|7pmn{isD@y730D8p0J8eTZn_W9%NJLw0Yqbm%pXB}-0@R)8J01i<&qE4 z2-+LiQ$X0Tf`F7*LjchR=&ITBd~yjGAsanHYD!{8$2RQuU!L$-AlOb z38r!;fT$jHAcOwMTbET(BMn{9^C zd_n#C#xC{u8FebmUClakN$q!Mw+hl%!CGPQYCtL9Re$U8xe9#&z7TX_GkuRW90s#E zq=uYm0#kTTZMk%pn1Qii43RWQ3N*@H1#hIfeL7jqbFHN6LJWzhBlrpxB&ZVAhZz7T zdP)Z>dKyffsyxxS6OaEs{oceUYKc-0z5l3!4uG0JQ1_oNf_}av>I*9Mjw-!Y3L1J9 zRJ;XdbFU|5k*M#d*Ni}XnOY-=Lj7_5+v>^jS3u<-Q+qP*8b?%`sO^Tp<0^PTFquiz zJmAJ!1#M8@_no7HzoPG#Ysab(Em3njIo?i%+iP`|y7Tn@^Ao`ox)HTzDt$Xlx?yX} z&+)e3yx5wY4*qd*x#_0i^ot2H)Oz`wrpQk$B=Y&H?0DnlFBh63ezaD~VQ;0^IMSM1 zhI%}q$1MN%7PH-h=Vkbb(GE@2F5_-!k$#?q)O5W^gCIR0X7?o=6}yRWUB{1zV_o}2 zvmFYdpTBi;Wyiy+*5je4T|FCz9}D?&>Cc5eb$N+8_)w+km37aA4t!WjK5W7MOq!;D zE?X*xL}4VpxZ!2N0zY5ck!9?8^r0PE5syAN4ABS6*jJE@y>M7L{!Dy@d?e}Bnldpg zWsI+OhHoQ#(zwEc#2*&_XX#vWE$9;o?dZ@nISyZ;wSgBZ!X~Ld{U+Ie{CTtMxuQxX zt4jMOxx;Cj;%8*-*qK1c6cwNC(uf{(cSn!XhIvE3Jw6_DynM&$x`xBs_if*Ku4YM7 zZso4c2jAVBxmh_lTl&1$BD^nYJ3eqAwdMTIOD*RQB$VUw)5rF`yW?QPuC@EOWgp*v zOg(w}bnTI&O5+^qbEn!9RrPCkR8`cSI$d_6ep~JFoehw-G`>AodaQFR-E%P0xPJdO zy#1ZL6NbGdb%{GllWO-U7b9S#BXK(x?|b{eX2Z@?l?9dCs+a9QTGL!wspQw!?y5hs z_59oC4wfmUdrMCrRjx09k=Er@6dTT+X;2Ow+M-@QR=;t}F*4GfNHWr?<1M>tcN$Oc ztbJqu(&h`<6?-=2XKZUy?nlE&1$#Fi&pl?`y~o&a{OIw`6>F3|xm%mJyivRT=%M!x zR_-f1&~*H2!=~(}gUSyvFj8~l@ugQzZ!I~yXXkO_5nOpFmCotuA~I6-Cd2jJxNh6& z4Nd1?J5Y0A?Hgw{)zt4&ESA7Xi_acwI)5~wI<=

UWeqWw3kP8`ZUzo)Kt>&6nL zVUzLLj>^jP#^X&@itSPu3FG=j<;|6N_nSx0@7-i5X!u|OnN!DjX||~QL}-m!O?2yj z&b1ST>P4*6RH0(qz;OUWGQ#DH`AY6`X;B)#v7*)R!;cdj=En&R^AC%&PZQPJmP+C@2R#8$`R#0A4P-XzAytuTiTq#KbxfT}WLt&&tUz&dtim zBy!!BD*d8!-BNDYRJ_Ts$xu;lFqD;*6cv{jmt$qmDi{domE;%a7UbrZmKNsa|-s++R<$nPj Cl*wHH diff --git a/examples/data/dolfyn/test_data/dat_rdi_bt.mat b/examples/data/dolfyn/test_data/dat_rdi_bt.mat index 6fd6d2ffaac4db98c6084970bf139f65bfca04ba..fc14b0067de783efb0be092f5f69bbdd1861265d 100644 GIT binary patch delta 4258 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 delta 7982 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 Yic#A$$~2aEx>YgO?`~Sv=#c+^0C{|cRR910 diff --git a/examples/data/dolfyn/test_data/dat_vm.mat b/examples/data/dolfyn/test_data/dat_vm.mat index 32c263ec09fd1f9ccb6ea7b32214be6f9b02dda9..ceaeeb61d58dbc548643d725d9cfe59e0ac677b3 100644 GIT binary patch delta 41620 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 LHDZZtPnG`zC@=4` diff --git a/examples/data/dolfyn/test_data/vmdas01_wh.nc b/examples/data/dolfyn/test_data/vmdas01_wh.nc index 0ef4a7bca7c322f61f49bf6a799623d4b64ba46b..2185e144fa503425d1edee6a74d2c7609839e408 100644 GIT binary patch delta 35702 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 N;*nK%bWAmF_Z=-1R%g-joeWZM!@!^lq@*QV zd>FVv>VZ6vvh~}#0vO8Kfh?ejia=_=tx7nxC6c8P0>O&|_dw15zF9+shbUgVeh)Fvw4S#A3x#XnE-34$Gq;(V^|0Bn1}9Dst3l9U z{$@1;T^5#CWjiV-PcX3*;$;v4LWZKmy!6!g{Is;<)X9PNS{ys%T3-k5cxJ!(xJfRv zn45=-6GH(w0)VD~qW0HbR^iRz7CuayUs(AtP7XJ*oa_)NiKY-_rTR<7i<9+jT_#7` Y+-NSgZ7;TE1Y#y2X5Lh($ delta 754 zcmaFZDfqBca6=yxPoZ^%%>3S{{)Fh~L^=B1Y`7~TOH3{DITER)q)w0zq@>TMVpRDqPV zWQz|2H%L8@CkCX}Z|e$R*uxHF0Zmi_Qu}RH!WrJP0a=a=4Dvv#?KFQR!%~od7XyRb zfcynroTkQ3x^kXDAt z0uqueuc{7JY*ysG%s5F(f>R9S5}?t_lZ~XTIpM}mE|b#YgxffIrBt430?13Q3=FbB zDs*l6V}=rtn>`p96oFLN@@1bc{%$=7boJFuGL202P=$zq04hQWCWMzkGRS731TO>J zfgokbQOSTDPbeYE@PUI5s2J!3bs%+8`%^8@S)Vp3@C%6ZGBA7wIh%p;G!ug|-foMs}%rlHn$t*63&jsn7yuq54Ia}Ld^Fk{>#>ozW=w^W2 k@P%JBWb#a#TazPgoSKVm+ly@(ftU%1nYS0)vgEM?0OFjG*#H0l diff --git a/examples/data/dolfyn/test_data/winriver01.nc b/examples/data/dolfyn/test_data/winriver01.nc index b49bc62056ef4d2b59e5161fcdd796124de1246b..81240296a5b3db5ebc404fb1853773ab8a23c242 100644 GIT binary patch delta 11103 zcma)C30zgxx?g*<51ey2hqIYSWkwVTP;tTmQ2|995GTSA1c8)6K-1JvBlUT`7dOk= zhH0o|=1mh(ap;=m)r`7cZO{fPt?Zh5HLWyrdf!@WufvAw{oZ$e|GoA%taVK&Ct&~Y%h5mylIK&2Q?8hu(wN!XG@bYKJ@J5H8 zLM=Yw5N!I@1o}}3Md2F`z9ugtaQzVq#jcWXUoR3hnLH5sK4Z}!G{gbk1|wvH;NhER zQqf^35E@1bh0w*gPgBtm{Dc%d_-QBLA(>zZ-Wn1%72P4}LJfOBu<68wsc4rYybVXF zI|M7=w@pX0h+qst-S82~cho&#Py(V&_lA4WeAGsY`4~dIAXxpzss-pev4_eALU8rY z&x_C^Qnn<7NY~}u415~h#lD7Mj|`G?Btl^jgwMXQcJbV#6N-{i-`#1DzItdH=us$Q zowitGNbS&O@|Xc#NJ3UH+-|6j)2fZ`5-TW)3(@Oas8f;9A-v4dM~d1e-cgiCV`+aH zNq@RRtb#~?$eNHd{1`oab>UC?UZ+;!OxIy`CB5My zno3Wkcl2b$u4Zpv(!zvjJs~Wttfagd4>x-Y&Um?tw_w4;jovuUv`%m*Z-NJXdeWyC zeR|WU4}JR5ryqI7la3}tx`R+W=}92ce}uSv#ze*k(O9I{2-&sJlZ3Q(=#Xo%B4{iv z=?<+HD~d(#kZZA`X)He5yXF=DC$W0tE#@Ak8Cu#2Bn@8}^OSfRyp{uqw%%E`nt*_T25 znqQemZ;}#pdJqI_Ufq7nQdE_rDF3Vv2s8K`k~asoEZ=cnsPDeKhOFXX(`k+Gv|b~9 zQb@m9bQG5)VBd`hqhH98zMAL=sWa?K5yb3{kxUdQCY>I`wB0R|sA>rVZPSx5`V9ry zH$hN*Z5!BKQI6IJIf_vtcC8D+y@DbJ8{J4G2O&Wl-H{|uAilkaqW&RFvXL|s(A!#w zw&9DTJ(?S_AjO&e`q16qOg2VB?}e!A{AF)-+<21{P8>7T^U(mNfQ9k#*Uqy2JQyn< zc;M?}{G)d~&b0oT5f4{|&B{v78k+(`NhaeNHWLF*NKf?ZLpW#&M+i^BV~N-eyv$agkE#P(HSXZ6Cxu4>7!{;@Lw}xq!)9(iELJi1ZW(=U%hCS1Jq(~ zIeaj01y{5%lf*~JtWB>tE#&RDLmTw8n8a|SqP!dtc)a?@lu46Dp(&cVFi${rusI?$ zPpWNXzLyJb=rO`1X$dUAfni(mgt*}0?KR`x=(?RsuwN50!;ew=U6<|SN2I08u;^IO zl-o>tiv()hIMZM?AV?nKyy4t{6qeg%$SpwK<1ZU<&z{j4WK-m|G^1ayu;^|5SQy*J zLSD;H^BJGS0)(cKX17ZfWq@RX&4>&PrP0@5fz44=lt2R!Iw(rC!2<4`q$u4C7Fa6` ziV|zEK&Lq>NKY0eujLddBwQXaa zK3>`id^B>Hl=#{F2rTr>vXGUWv^&gbKb+Tdr_^gp!Az4(dE?exg@nEW9z z+J~w`EdvH^D;W{^-5w zGmoGJcu7o@kcxN2q)Jb=7p6k5Vfit~8kz-pcmlk^ch`tT<--!Cg4oCI^wB-R8wRLG z3n28O-Zd3mf~PNYGztF@5JsJG!l4itWPa5D1qSjT47?BZFR40^9M(&(_ zmPYpA>?W!uMW?h6Sbr#qM*jvj6k==S2~FFbZXQ(72iSn#P*9D=1Md$d)96Xc@}&zs z2W%h;oxjUlQQEK^XBNZ!aX{SUnybc~aZmW|r0c?HGXH=CaI$aFcL54>g)XteaRCjX z?YZ?z%;~NxLHkt}(`4^~eEGlikdnWENOPhAzkJ!0k~T6K@sk`8h7bO^W`rP-S3**C zNogSpqVGtMcwZWcIJc;xiu+cA#QW7ynO9a+$eme1BIA>glwX)v%H2Fc;vMZ!P*TZ# zMM0ttP#IW@3*)($BuJXq0K(qfMS?AbrV49BVP0i*G50J4i94-QNm*4jcPs?Ss+l{M z%`eR_th`yuctLWh@9SH$rJS>Dg1|O0E4QkAepx}{BCes+7#KrAVMTTE@Wov2%3hG6 zqNI9OaoBTQ&c~ZnSw45JXB`*wapzQAm{(9zRwTVhy%gvdiH||4y0En3!B!rFk40lu z-rSP1lIledUgs(=e73KTcXf(vzL}fu}n2?O%1~cV1>ZOhq7AI@*8I3t+KW z%my$sfaC54Hj+3m?B`1=i&y(@Xa3=5o%#IlI`apw>v%FLZuql-2HRpJ^r@Tl%whjJ zJT4*6-HJTmhv@vuEuTHRs<0X#OYCV(yZE%n?$ooxT6QJ43iv_43ZYN4a$LZV2DnK} zxBRrX#dF|zvE{YIu>$r?7^tlG!jA^KNeMYy1^nM3BeD08Pg~-LZW8dNZIQyVmV3h_ zVGyZHO4{gTG>6xdNFHe?t4B$M10GyY8a`qaeRAHimhh>OMknS;AiN+X6qoM{vAaoD z^qaPgJw<&{gx2P;H29`|a3i42}9 zo4c-qJ2cO#!y{U9;jjIvm3FN}HqafDS;8Gwma*6RGBr+#QM^{2_I&WMNG zr}g++^Fz-N4fvCiI$xA~`O)zNjwo?2sUzw~s*nIaje1CwbEMjLFZOR%#u86doh!)$ zi7QH%UwuTxBB{qDIYv6P)hn!7sfG@Q8PDBLk|`R{%h8X`__$#*Zu~$}KO18jqLw+y z0~{b%b>0J;&z~&-yK02HY$(#C;IZdnXZ{tw!)gZ3B3}}jV1+|xKGUf)?`7)DUpIH+ zTc2^0qXeZfRm~k^GNiv3!crB2;bcNLzNmYxTj`+G?^lodF|)>ZSeR*GiE2ag(dh?A zB2?>mQ;=EFhR)ucj-fMnM+u9D&_`!dPW*0A6ftebpfJtOc4dP?u@8ztJG9M&4+b9A zs?%UJ(!ICE-mTg-)02!C;xgDaY4d13i3E=ITVXxaP2)^)uu6G<8L)x+5EtXs zT30#PG2(0god~r=q{>3g?o`*L-Ki6k&Tm@{*a0{NxSVutqBQ*4L=Qk1pf6w~APZ0c zs2+Yhas^-wpdQcw*b3MQ*b6uecn8o1_z>_p;2Xddz%9UU!xwu9$%{PSl zC%_lb4G;_n2lNEQ0OA1&fPsJ^fZ>2qfYE>qz(l}gz;wV2KpvnFPy#3g%md5^ECMV| z9UIJ_eGy=8)ngH7YI{-TYuLE`i z_5k(*_5lt64gwAX-UJ*497`Tjv*sOm`6u8c;1r+@@B!d7;0)kHz{h}dfKLIR1KI&! z0WJW(0elDe9&j0O1#k^;9q=RI7T{;VZNRU9-vIXk50e8&p%FEKql6KGqeOrMKmr&> zka0$qT{7Fq5=3}@M?-c&Jx|;{Jx^{0=qx2KKqkNiz(v3}fNufc0f^`MJq*GL!|yua zx6=agmub_KMgu#C2dagcCcm*s+6rhT8NfIq4!4Gy8vT z+80W`@sPC86HYbv?F*$^pJiHyf2`}JE??ptYIlpS_TkO}ttZ6dz5(aCZ@_u*4e;`T z?)b)N$L7Z81h$Ut)iyW*)}M0Hy2$szwQxEw*JvKP;4PvbXd*LfvM+!IX?$W@Ra{cB zw|rR{+fJLXTo<4|cHL&eO>sU(c6tntRs~tE!e{CXcxe3dIAm{zE2%rQ+WQl}WD)A^p@(yv^oc)~Ba?Ab zOC>I;+^uagQHwnyTY{@HjpC(0u*+WZx|#X$-KIF*X_1$LT|evZ(;L0=fSLLAH9L=s zEv8jqx2m&U%bB`Z!R$^dh}^>W<+PX-F#5Es(Tib%nfd#VE&FQ_)FOvmbT&D_1rwIG zjTL*kklabXrenG3xS1US{&8^53wX=+k$Bg34}b;#&=dw?n$j2vK{R_UXxX)Wg`@bi zmI7%9uia~F*crCs!`q8GANpXR&3U=|U_s)iT4(KKl3P_>!2NAOA~&RjO!SyTblmqA zBwwaNMsn04D(;305#)?YZ_=aOK_ud65NYgkKlvGvc=2zSOcqv%Z zI6}6dusifp2#-SY0FB+XmqK|IC=)31zr!wj0>p#YarB;U)3{qDND-Qub#8fCQAzdu z0(ykzZk8Z{mq^KJcF96=xaJO*AZcDFGL_|4*Pz#Yg}0$Ht%U# z$)^4>nEL5rfQ=2Nq?UWGtRFYbiS=X_SExlPweYe}9y08Hdp{g6*}uOp>)q6=KgeDE zqxS!@0(V?7^nU5dRB|DPhc<*;#^zPiT6%ZezLt-0dY}KAL(AoNU{)N}%EfZqYi5Jx zl$+GIW*X9yDB{K-OTC=3EMI7kjt%TCz>$lZa&Jlxn*HgEOV66cIw zWLW4|C^8=Od=M@F_vzbyVYkz;5K~%n)$SuYkuMQLUD|Ij4Y+5i7sjgA6jQ%|Yx7WNrkk$1 z^U=<;gfR#W5+;({=Q8zgs&%F~v!glGZqrS%q&38j)({5Zqy~Src)BSZmp61%cTP7= zp-m!$;m1<~eb`Vu)?Pbbe|>o>U;Q=PR8hm{70;hfD9-a~#Cbk>IL~JW=lP+R^Zd}u z`JthIKS9c2Nh00jfW7x8sn?w42y<>(Ib81CI}@@BKJ`BP!ueG%oEHEhzyTlu3;;)f zQ|k-ojY%b|a%Y+V=GNSq&aHl8^Z(sUIPilo^{d6sfwYnQmN@6rM#5Lld3fo^33%>6 zdz_PJuj;?l8DMGcztjrpi>~%jNxC7%G2GInBcfG|FyOSEj=fxfD;+3KmrzGQP;WoxhkTv}}nHq}p@#Bx{nd}f=CeT$2`P6;^2Yg1y! zep{F-AFySpO18-ZP8gR?-TJ)ssROpXve?v-3Yl82#p7V3j_8_Jm+3{)^6THF$m|o& ztEZFqw%$BtdsP;H=}3BYml660O;5{bUFuBAHzud5f9oq>*rpoA6gS$&q?TP1`NLsO zi#DW7(V$m=48LVIwcfi#QdK)rUHSj(HCnv37pz35}4e^ zSnz!r@k>mQl9ZOzIjf;!=z&1N8f zTk%p0?%7t5U3u0U~|QLS7x{-Q+ZykwVLgBKaj6?>Eb|lK5?11 z2wj3du1ggnuxpdICuwi86%-T}RTdWJ7Uoq|TO#R1PO!*|c?3yU1bU7hPhAmLPTB2CKJfv&rktqiD>tb&);Q zT{byWjP@Xft)e$N)gE$@`n4>tuSua+WA5Hg>Fm%!6FpMT)eDk#HGqu81?3gQY2Y_B zg4Bz~g}*Nq&MjO3+jMyu(eoP{L5kA!&Xv`3a`TF)qr&fR1c~-E@&28Q3!dVi0{C@~ zAjN8t-N}`IZ*mWxTV7dGSXNz{S8elV-6cr8Pfd2+4gc18Zt@yIT-v$5H_WLt#bB?W zlhsmBXpqyL4T{v4y`aI1R*3T~nP3_439xCLdEZD^M@rcbdu5ZO1m~<)=QRa(DAD{f_J9 z?dSBlUyK^GU$5PHfu;83oY+pS(SAquA7M)LhQWt^dAMbiK2AWM3C{^1>TbMSvr#Yq zd8spzyCrWOChO(R4fx6MVQyc{R$BGqzOC32k>~{r6Uu!*nYx+0FLu92RV4Gsxa>}! za`W5OGY@UU+_KkA|3#nL!S9*;m)zJP5)~gDh!V`M1ydKY9l%-c)>rid{wc$T{RrNx9 ztbo3Pqh2*&xw_F;PBfCzr%eC0PW{SP9wXlJQG5Bx59LXRs|8}swxn8Lb#tJcXog)5 zDDcHvqq@{z&KFlc)_T!jE)*iuK}-_jS3_gTJMwz+TOWOv6-6&}mn%Z}e5W?>cw>P7 z6usFpY8J%JXu4o_a#=)rN0IJ!Q`dEef}V3eHjL{^rxm^==W3ooqc&tZUqwcE1abAz^EVJ2@;kz8oIwX;j zzz8G*=#!i0+?3=+OP1H;nYt)xJzlL#l#*375r3--_OTOD1T|JKNN>S+bzzywtOWf# zN?({gHg700Ass?KAX1TpA{bLbLTdNFHfdf$^BNE+4aN*$uYb&3^qUECJrRA2ReKxfp+2Mwc-a_$i?^;X zL`#XR9U(GrC0C;tp}RQL5F4m|YQYLu- zK_{$)5K|BtZG>D^L2N|uDMLfb5cbySE|CI7e2K8@0J&*|-o%f2gvfVlt1DIYegU0M z1L?pEYE>jDJxFcxdSaTsyFBP8D&;|>EOgRG-zEc3loV3&!H3SPYUl=I9{$y+NHV@^ z43-S^=|P{K^l79|6MdTL(~CUu72~duaN1PDX(akEeG zq>4^l*coYZa1`)}$Z)LeM9=6%R}njr{y^_M0$Yzjc~W^ zdSMG1Ekh0#vOmCUn@_$7ds9JJY@F+^x1i@&d(jvJ2!Lsa0F=jVX-2*AQ(>{D_N@}X z9#)+`o$T8%N|6BL_RRkQ&G&>{9-=$P>X%=-hTbH0KA0JL>HU6pl;JP`O;uYqM8q3H zPo(vD6JF+PX+zX9CvT99kjkM-^8lWaJFmRf6A)E`w zLU@ASbeZ)gI)gq*gf*WK!w{kqexn{Q9FjLeNX6D`i!I7vzp_3n zd%Kn^OKG_^by?{i*K(7#&0Deic^v$BvRkoA#l8BaPVdcJoFZING4raYBk=Mv>iv6CgA$?SbyJ>vzEJR z)OV?uX09+}*fO?`&yu%e>x^lJ^{F zB^(`{H0=<$j$8V4m$LD(KDqMpC;tADszz=IGdMliRD;})@C!v|c+wOI&tU5KQ1Tu; zPb!@~xX6-FIOS~3905awJFdMqW`83*JnAcLvPM}?Qux>lNZ!t;5`rbb1|_5&GC zw>>KH8IW-(fac*52!2)+BFfR!2gnFS_f$haVQ z4W7s#20?Y6vH?Sos#K}!NzLb;#jM*9jR&WX^Zl&p@C#GJUSSsVC2SlKIQqH?M^=aU z2|G*6VvPjIc+UD-t?!Q(8~(bw9%uJRF?bgs0pX)lDre$B&Pt9R0-A4d0+mvXBR5_7I$4G@RzT_1fcvw`TK|E4Ru#@^x>p_k}Ot? z+)y>!fnrFD(55VgRbNq6C;Tr-7NcvZE30-^I)sBL$>d}rNiKJk%@*FAB-33VijAc4 z(#qO;;W|ljPbv@o|AJKEj!1H^_QKx66_MmrUTAQX)iulzN4V5m=EIESs_Oa%afC~< z7(kEexwFe1bql!tO0w66j8JC+_vR#7ScB*E()yaY)fI1Zo0en}X^~{8aMU);7+J|E zNv7ckDX*<+m_8$gm?tDj7N#QC)y$d|yI2%6BS*+{hNG;as=88H!DApvX66Iq)!>+2 zYg#XA2rDwym(8lGu4-6l+9+85xGf_@cW=9@2H^Vx{Nz;Yiv4)s&`caSu&m{cffgym z59}KZZJuKm8R^pLHFb54=?#twoSK=4j}5AoQkqp&!uRcd@=5#H&sqYr3Uz*@3REhu zs!lDfsH$%$osGZG>}u>agb}d^WR(bfx81t}LZfOPC33x;@>8qo1Vv85|$t$W7r3&mpFkkm&((Gd4)ts-qTf zh-8v)MjMDDrN^;1{k=(ZWWCcfWbC|EExSq;37?v`3a3^^Vtb_lkE$H!>$>BoRMEqB znqzxHBDFIf(^EUk>uhJni&cN2R`dCArkfOt&}nLI!vh~(Nm-ZpK`gD6P(6LWppjE0 zRrSXUilfXRPt)ha@z&xf?e=YpqHYa=3x}YxghI|kzb&k}-r49AMlh~d`$oN__qrcC ztDL}NnhvS#sXwk_*ATJVRihGsKPd^?jG0Q zZw8^j@gkeXM+wKqZt)&^dl zkSx!;{A6^qS_$hZ!(bJ@7Lh^r&GV0GSI=3J@z&}9JU;Uf{@0ZOIP-=tUOzES`&_43 zv3b(-cu;@EDQuJ0gNHCqK?{=yZ_}Ma&{EDk11bjcrDP9=e}xHe@nM zI`W}Ao%O9d{o)Vq^qosCG@0NjG5ExQUf@LImus^0AB;yh_4IspMp(5L0MYp!*V zRAO-bl9$c&07bgplTWt9FO85}GM_x9SGO8Too*`%^xb1cozL);l}%=*mbU|0TLK%4 zjrt{w-{M@qSTeJDytMYyxh=8^%uie@58TvhHiL2qwY~P#t(Lo+fFETOjqk#io#)JK z-Z$(`dbZ{6PT+rKH?eVP@;* zA7lD{(b9Gh+FQT`u=7YFHov#V$quuc-K}}L^ z2`B7Gk|Vg5`m))z!k8pEikHgd6x_QAFFPEnYt-;_heN{KEl7^#LLTJEEN?jSA^z-e zNM^eQ$*^_OyBQ`k7j1_NZRxJJuk*B2l-tw4C}1R@ocbaB*_FMlv&3=HFkP zP&-8Va@}`+mfmNGSl!{c@aJqCb5oXd_}v|&U|SikWgN9w41>s-kFQ>d!hHBEMtv zK77G-=)T*j9Vd4MO4M^lT+4U2vhr0C$Je=*zwv1Np6f5 zLXw?6J3gqG(c&C7yz6>1*2;V?vP^1LpOED7yT9=wA6vX&fzSji2FG4}*!S__tRj3o zn31v@ufCYBThmIM6uIoR=pVhqN)@9*Z)WH<6O7 zJZn;9e1F0~TzjRD9$rgJ-RKj6-@EdIzt|ACYUEsmbr-Lrp`S_qnw3ASwFM~;X=nTt zgVaZx6Rw17zIw%oPjw9dRY&fRCvQOC1spw^!1Ke~iXSc?JXX9*DRu zJpf^G4>#t(9<_t*7n?b>bqG*jcBz6IV_Y>A~E#f?Y8R`UL01 z#Y$Fi-g<`(BTU!<=`mdOLNofB6g&q;f$d{M0?|4`=Ch06+}0;<-}qiy*{l{YN3Sxo zU?_8|k(I~^kI$`9*Y4e#>*xxq?jP~j;%2phIfLRB3(66iuJ4!DK7II3)l(2Jq<}-1 zhM($Z)$C>%e8bGY_7T%Z^dPByCud~4TO|147U5-C{>?8mN^k&5TX6IF0T9MV`HSUT zI*pC>=rA2#wjzn_FK&Ob{7@F+?O}S?m1z0%-at!4dX*Ykpqjuox7>+iM z@f^EwOyby$V-Jo!?JF)89gNCJ;h5^=ncf`xaD0ek8pm{weK}@u%;eaQV}FhVI1c1E zh~r@U;TuUM>uq+1+nqdP%i;wbZP}dWXdA+5j<%tk=4i{|G)LPoPII*7a+;$pkI~NU zJY&n}0vv6_InB{Fg3}yr1)Sz+8_8*owo#nsXe;D&p&jP8Dc3rhqBFOMWpY)HZ5*vd zOt6Tf%CU{3wV3lcsvO%mTE}ocN0nn6N9$O^cQ)k~(M(gW%CU{3bsTSiqsp<3qjfyz zb5uFDakNh0e2yx|HjdVbz<0t>6p;*|%CU{3brNrYqsp<3qjfUpb5uFDakM_n`5aY_ zZ5*v7_OnjXaS>#w0vy{oTBq;^II0}mI9jK2K1Y>f8%Jv?=W|p!ww2oF3X(TN{$`U}o28i#C><(ztW8Z$$czvlC{JalbU+M#$mHc;Sz2xrD6)syDqV3)2 z6T*8sx6$YKw&;Ic>C{s;-5S^Ry*0nFd6N(Pd=E5lvb-9m-_y~P_Rn*c5%}niVKh|I z&-U(z=Nt{kz0Mf5=2lCD`wMABKUqeG!7=F;m$LBo(Z(}(4m@f+* zENe5jQ=55I^~{ote;#N$YI#}F$K12<_%EEOJX`)B=YTa&;%(Q%YXoh6c%63jK=~=l z1fzaV=jQ+aW0AE?ZlhdV9z|Q$9W40vz`>tL%kR0jJkuk=`+u8L*8b>D?HAGZd%kX4 zqNZdg3D+t;D`>F=O=%w69^h-lu_gIl3_ z-nJB&N8e>()(Q6g$DS)Euun#(9%e2E8vyYksg%2#>DtxXmXKZ(CK{j49-BW3d5A!j z{+}lZDLv_XA^*{LSo^^zRvUbp)i2?DvccjZF4WOv5DV5~f3rO9B=^nX?As}+`y$*? z#;~uag!}-=F!ueFkmLq4qWzB_C{QMKVIEjY0WzljyA%Cd9o7CXCsYmGDDqDrmev3S zqF&-X(Kbq_a4uQ{(p^xhAX_05f_SWe(5FBKqdtQBDhNlQ2`^u~t*XyQxH?fU@Bm~L z7sWM46Y!%S8+G3BFO{ZfE$^Pis_A@`9vRRC|7z#(U@k2rAt?;P*x7Kwoi*unJ58uY1a&7oI1nBF^IYZ=4hs34sdWm3ZNpu~iM!t3lp ztQryxxd6r2Xe&ySn5IWKUgC(Jg&=C9B>#C`#%vmR%%Qdge;m*$H1IgdUlBetE*EuUAu)rDe;ZRG|Lf^}8`>j_ahc@$m`oE~0m6ecLI~Cd){jq? z!+b8OBw{d82ets>8}dyplYE?sx^?C?dh-B7Kx!cg#$-K>Ew%g23u%ZbhLiG-UZ{9Z z#27(1?Mi<6~CUy7~D!8nj%{B2CH&ePI`I;!eS^xnTKdF2=XI80$+NW%UhkeF3M_GiF7#j-~yt z+cSSJTY!^E{Rpk6PKnoV<&7LmW{vExj?-32%0lxvTB+BnKTg%WbV{!Ns=J`UI|jxV z7cGj={;5;eSjSWG(H3nf>*IZN7gCvXX$W&8T<*06$UDhxq zMrl_2l6lc4dMX9Fiy`>k59`GXS87ifl~v}6w3{av=-<_U$Jc$Y| z+3c*+elaVfbZbNTUlZue7`)+RCIcRzed?vW5yEz^k$i8m^SJ40kQxOFeK@`OW&9`OUeIvz{l9 zd#(r^k!Mm6O>yjrP|T5uX+tyn=gBUyvK-EshHje75YJy$Y586)H_Aw&60bmnAv1Jr znDs!ywF&N7WQH6pZ6URCwA9gJi6-C6J}#Nuh=f${yL-v+vVYHxoP(N6H(X8|p4lHc zA{ikUFj{CrfkItqeKvW}=L3d;7TQg646%Xhx^sB}VnA~9$`oIp}QV|M zM32cs9OjWtOTqwkfGl$AugmruV@ZQ-veakR1>5)1_Y#c;6%>K^j4jXz+DWvLJ|@8Y z(VRDqoKq^}wBDn~R0~?;O6B^2vNnsh3TCC+&KJjQksn$tErZ#7I?(xa2U(#h0IH_R z3I2F${_DKE`dMdMkzCfQb#2hv*DV&mI)_YhF2)E=(kH%zTRC*t^ob6+J~5>8hs=uQse3)Ig?Ze9}?%dLh_(*k|%q5v8OkC`mm=jd-}1bKYhm2 zg+LRX8JY%l;yIm5ngl;5m(!uF6rDhtgw$-}v^E}Az9<#NN@=F8Qc)^~7q;?6sm`pF zaQU`%XdNg$=X$*6kvD9heCu$mECjJNZG@9~xW*yjHw5@s)op17ktAm{5*tDq(4{)sW zwRf~`RK(5KS8+f7MEz%j<&;$C@9RI8T88Bw9DrJh}>KFnt*WVL^N?@r6U4J#~`Z|VX&C|)O%$cMBQ-$`}BHC5UU zZnMAJ?8``R3+c~=)>c6+$a?NjLcd=leQ(e{+BGET1R^i>5!JAEmDK!JqbrS zj6OzBY-1Rgqko30JN*?Ob?YOX?$y#m=fX;4qRq-ILtR3Xro*>aBaSw`XL^ zo;7L12M>TrcB3l|wtIyn4odRxMyY6o=-zx}UThv3OBrzd*^}Bq<8k(BkLwMVBp7ph z(m8toJtmm9=!;1dPCQ3GGoq9+-u6SIhmhb??xg zat+cenp>`*)zh@jVtG5N#5_2Az_4NI&}Gh*!VtQ^PKKDLO`CZ{be61*PIYodd4JRsz(I?#h8`?+_)~sU&&vVQ%6ym519~kiymAFlIw2xE4!y#Ti;7SuC9uXE=Xk zizS3{42%Pj6t-A`urn+u)#9kcDb6s;_7+PA|L?v!@^omw%t4~2IhswAq=xw_-B$ls z#(u|B9=xO1*`RGdS?VlbB>_|v_uY3M>orQIt2LM9zU}{&+h9|2bMo4s) z{JNKV(OL0UCt+m*$uo^@A3ktOmflj2b>x7lFaDXVjw4dX;m&lcbYs!RkG`a!<2Iag z`P@k+p}QHEbn8yaI&E_u>p9{iAFnGT`eM>KCQ7~-Plm^gAA9q4&X>@`ahuMu5JaJY ziW9I4P2IY3X$*oPW$Cc*&OoMRN446)Hd|;~a|<(>WYu~_+Eh;t#B>k5`;?11YsE!g z-SyH4;?_A$%5NOjIY@G*`~dXNF_ZS9xnyCN7%78n?UI3~pEGB`Y!SET?5Z>iuvXyB z2f|}5@uEgSX26TDHLhaYtq*b*(z)>B&Ei8PI`+y_7=Xu(JFS8)1Z? z{@y_QvJj4mhcl8bOG=jj>4Q9&2p%u9!k&WMz@)V4Ed3qG0BDJpjsY0~rM2V*LmLcL zX{j5KfnA}YS{e#;0JKa?(-}!ONtRv#G6Y4;`M}3wIZE8(jPh+i5*Rn4s_=|Q_lf@7 zn1>H!UJY*IiqIYQEB*R#pi#ja;Ge{{6Yz^cZxy);YE4fO7Y zo7Dp{`==psQ=+X}Vy>7nRQzVT**tyebt1rA1~D zyGfX?Pnz&#bHPjzK}lFlw4t!LLWE%wX0b&nXv_2BMF1jU*a29Q=XDj)hlJxareZFr zsGKGaZ3&Bb5Eqxut`ujsgk3asyV5x`Cz~q*&7797Yh8k0)xW0-vYn=9KP7*5*__hC zsndi+TV6;hG?!OSE2$8Ccddj{UR*h4+R#eD7wZjIl$DgE(De*S!eZUoPcs)37MB*q z&SS9v6^S*7E6p>@O)rWPVl6t%E+{E3Ev}qzS|~)`JABrhB>6 zjYfj2WYW^3J$`A^-Cd1dJ%`GTe@hxH5wFCamX+S5rFVOrIDWH4ZY1|7KFMbqe=0G^~S@RZUPcq&!!a0Ivj+yPzyKR^&53=j$E2KsF#3Faj_JFab~iFawGKGXb*za{%)JFQp~dRs*UQ!{aZ2C4i-X zTEH^E8-NvnI>1W6YQS57wSe`2jevT>0{{b*e)PukMM9_8`oCGcdOHt>5t$nvLF%W6_ZBg*3$ly@Q;;IY^L(I|i^$ZA zhJKLTgfA_$SgP>~r=;uT*1!lO)WTBVVXZfpu@>uwB7#S^|)!ye=Aa$+vO``qZ1{Z^p7pJ^j=54L2LCjZFE#(Bywk9n2~)f1$NnZK97F)AZJ)ww=dA z+Db7Z5jb5uT~g3?9uH0AHd?jZg2#{Kw^@rsHjVUP*V#jbY)Zoyt~U_0e#dops-76=<48;kmOAiYg=ik4ZASjgXH>T97KJlwa^NehF9`Y{B-#wBSenS+tBSVG-%L|_= z7ET<7e_-U1YhBgC26AwCp8OS4^Cq#QwvxToStMX&y|XLp{=}R9tEtzdM>mG14>dF{ z9Y4>|IB$x#Bz*@p4U&Vq&~|w@#*QkJ+0Z_H(;QsBg{w#@kZr-qg>SYK9AKDpjo@Z_Hd)#qW9ti)%Ww zg>W&R4K9*kZ9k<)5W9)d6(Mg5J!pG>f+ckM(z!zt78gV(Ey&NGU0En1SP6^!q9eO8 zP??BkCG01z&kpq3KxHDbm9Rf=334c}FwdSnr@}0PTnURyrLz#xk|O4nF!(o1hPmbv ztJmNl!7Z3sZuOlQ9IUbNl(LEns}JE2jSaO=DXq*eDhy2}p=G`a)<77CX&QD=OaA0a zYebC0HGw^~2$EV-Qs!G_jfimvP3|O2gN`*m#*v!Txul@7xN=S*yLgJtAHD->VwaM# z(ju!|90n4GgN!Bnsm1f?l~o)I6C`ZXM2@BTvkRb0<+E+h2o?tGFUKw2d4Zd+@jT== zenN;SxaMfUZN9V)v8DBvZfQ-JRcqwS;>GHccyfDwo_tj&?zG@FBVQNIWmjUz{snn* zFV|KdI=1kvJO8YZzkW>%uj4SQ<8`LRRysMhFp^wbwA{!S%Akl`IHpZfQ`c{CJ#Mtj zHA$;4J4N*F% z2j4aX(u+DK1+#p~@6|qPyB0aS6J0fIpVZ9K<)WuUfkx=q=sLtc+QPQV(vpo@=yOd@ zPdKxgGZC6U?qrX)hvAueE^YmwvHp9*3H9kUxx0LhpMd!Lf@Iv3{fn$%ckz9a6J^B*Xx?5iYxkW zhLJd8%=6odU5dC~tl8ok(PlwHNqY%~(z zHcVy%K|ZSS^wzHph*KbSFZ|+aQ(ir_eazPOEV}&k;~c{*`}M-UVw^|vRY<=I=`GXE zTTgeT6`_UBpL(k&l5t;k=XCu1>Y3Ob5DoAHIH~PM;ZXH>e{9z@sy8;iC5O7Pc~@h9 z!Bf=>r}4D5-T;?o<_#+J)j^%{4GvU4ypFTg@h!3^9N*i9$7FGr4OWA0;LhZS1+nt1 zR->>J{lEN-+Vp?EO^AzQ)24cZrycy-RhTtO{q!0hC40DAhwm9H zf9f!-ugPs12de?|H#;QXLc&2@*UvrP|`JbpmZ(-lqq8+L4rVSrB1lfr*7QF*on>Xr~ zz>9gVxx)*1-*+7t*I@ZZq94g!#o5dLWy4#ox`P*2(JxM+?EfiP(Jz4XN8*fPzwZRn zf1BXR3#|2j;7v8++K1}x8K9PNZQ!!c4?q| zZs4Fv+zqbMpTGvmcJ0M}%7&d3j?0ju)Z6xoj~D$OKu?H5b5VuaoNq3eUFmFMPCwP4 zSd9Hx-8n&q5vqih40#l{#D9{38C386E=Q<8VP(F1f2QhrDfcL^dj_pLP_0#z4)WGE z#boDD(l_2mO|er}8q-<9yue2->UldQPkzjl;h+WcE1i@g)y+X!={|sIO~-`)Aa^ld zJ^efU$4%6QfNi$1Aq1j20&~>m&M-pjY!!;sgD%Q?VR{UG_6R-sIt?#M#qRbuFKXrLIbhe4Q25ep7=HmYuWMOr*C{_W8ms6q4_S^l1Hw zxvzx(Uf0zvzMr1|(@f5vHhHDHp6^`7`MdkO?9uZR$~oVy@M?mdAGC<^{o8+xUe)u{ zwFq7JYoq_c&6jOX^O@DG$w;r`|L)^Y^mbO&JgeifezUCC*}wQ1o%a9udPRm_=km+E zo!?IWC`Zq)CeN02+w@rFU#ZQ$N|t=kN6qq6n%zEl z9P%U8=0{hquX-R@NixDI2kEb4zWZL?;IB-Ump#`6p8(8~X%MifA@TinFnvcmKdL#c zuX1FC8XBaOhl}ljDZ%3(9$x$OdiG10UZ~JxmO*d(XXig{ZPb^6>dqi&>RWRTWVUig z2hpbP#pCZ5PElV9Q7Vnsg7{`M&8Y5oRXVcUh&nY?dE9*>*wnW=zYRSJ=#RF2ZnMPG uuBg%BN_m9%c?DEh+7>rqt-cTc%|WUuTq*MuilP(8r!896^nSQ9&G^4{YJSlG delta 11254 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 ZT6Bm~}I1Y!($xv8Xysl ze;9xmv?HuxBo7ez>AXtkz~l%Obm(CMN8Pi+RPErIi?s|(OCnvkIhj027g z|FAG~Qf?M-0~!E&;Z`f-L6}e%TIZEJ+U#Pi1zJ&oc7W#XfoO>~03JASxgXl79p*OG z4c8b0Kwor08|;>^!_*J}V%uTx;O|LWnSh#kb;5#SAVZ58!vXNZ@bH~aa=_d8!C*9b zH~^QE|DFR5q6skCdX&5>ZiV#7krA;|z#SKShu7#0oiDFq7Y zlYsz`nwtmL)PlG04R{Lo4~B!jQS(3oF|gG30{FP;$WpF$I*6 z%M3ue7C0CKSht`rWJ~gB_UhmlqJ>TIB+B-^WV4Bw1l~o9U4r0)#`-Enc{HAmolG9! zj%Ahc-ibs9fPVOol`n6Oyh^oPh?W-};l^8J)(|6w*2n8^q$x^pyDk^~r1O>_`au^c z$@J<%udei}qgOY2)zhmxxuRRT-9e%3dA2JVCsNRM&p;!HW`yl(wB50r7^LU|gJU_D z3<4?U=4Oh$(J@_MUL3vWeT(n$jH3k)3oT@bNGbT1bR_^{`U-vne`r5c?%pT*BR*t! ze$e8qm5PqpX{A3wYdDJbc-&UT6SOi(F9qYlrA0hRSTKf4bDX5&Epn+8&-4GY?l>x) z@C4~ZDlK?|w2(-xMNU$0GR1KzW&nh>gMMU_X3`V*lb^tU`U(6gjBowb1ExNq!n7yw zr$2#Dy${R83uuF7s)-$v7RDckXJ{YBn8^hKO2rMwGAFv+iLM}XSeixV>a%EfhVvp zhPO7J--%bL@gdP}w)GFSh9tPzmPWKEq&~Hhtlqd+!ZA$VKmTjc=8Erf0bMCp?|St% zxK5rj3IH-XrH_U^I6bT|PEkH+4~vxpLVMnyPE0)~wMQ(m@@5<&fP*6gt}63tYUzjA^>d zP~|AB@sij&9>o?808T2($L`A~H@?Z*9E9?dM!Oa9R#u}w$Nvv%NsadX;hpNM_SQ_< zrd79k$s>IlZ+`lvy`VB(-QtB`_lvZu1bhCFv#QBkPWLB|-_uaH(q2}sj`Eg=tKL2` z3_0Uwxot1I(nk9joB*o9QyvsR>>mBy_l5R4S(WO1A32@M&c15yZ7IFXEv)g8_*$}Iq{s7Vu~PiEr=-s^|@rIdIM<#SU4pMM@ug)XP0hJE@A8&jTc z0D+7CzIHzvG%!<|-q|`ZT=HnbjfaAh)5;EmM6`8KKPeOabx;mmw*0GC6(wBVb{o1_ z-G~LGT*3drKu_=S#UK9%(!7Rp9^z{(@SykjV#I4-2u&I(XE-K&Hq83yQLN$7k` zhT>=OGKZ2uf?R>gNc@hx{1KA@M*JGQkX{VH)p^Op7z7mW8bvv;Zo3Qhnyv^mDs{4F z&74QaW`^u#Gw5%4H3?IHa|61eW^<5_aK51#td)34y>%1LMW%T&($9VgH76#^9^(OU zQI-2J&q{`|oJQZxV;=^UuqxaC7CdYAjQv{nKw*le6bzqWTDO)PaJ zu_T>Y8Q*rFO$&G1u(?!!XaT?U`xwwx^7zD(@R;|I_1+33Jl;Q2wlqrvHq*)Q=E-|| zss4LBKb3G&d>an~$UB_(Ms{viCJ;L#%maR}ggua;m^aW;Q)dQIM1WI8C^}bLS<@_1 zDhY}{w#v=r^;Kq(8A_0ZBT`_6xx7v!Xc82ur;apUTGiMhvLOlL?F22FwiJ#Wk2hI#ds$GK}uknE{Qkt@xOmgfAtT18ELN@-0&P~Ser0B|F zFoVu_9cwfe1JNQ6Bz)pQXw*iN)xIk3aH=Gln&m`SV44+by}fs62Qfi>J;PHpfB+zj zzqk5zqkXjL$YOfZSQ>7SDG4Ur``7v%&c0rBopq5LK09D#)EV>?8C6tK6t0iv%yVN= zsj;NIZ$78Nsr9vIoZIS)vv5)#uNyZ8E-+FpelS5+m%e>OU+AEt_vZL#Ay;Bh$UD!oz7bd=V}# zXyMp`77i_F;mCp(9xQ0$xAsN&E9Y5(@KT|)aE`cRIIY%^j&F3N?=5hok1cYfyPk8T zSK#1F3Y$ro@S>+6f&swk&D2%60uCB!#62F%;b)8{!$-=H3yyU8w~q8*t~t`7H|%IK zzDpy~C&LGjEPb7bt1c+ADne7ArylZ`Q#u=~0wg`131GQ#qC479U8Fs;1gGN}Fc~#g z<)HN&vemU0VH`S9^MQeEasartt?~j3*5`1e!gpKo!Siaw-$!J7saSRamh{}i+7E>)j@MdR?!sB+Oi4er$ZyvqYx znd)~`^~A4KpZkY_1+5p4zjleKo}sG2S2b#fzx=o-anD4d1*>)#SSXv@G~^wof1K*i zanh$om;QE*l|{I%;TNBGOc(G>LsEUI1VujQ&SP3>i=|RbZwZpzlN2`^Ac;&&bqR`G zPe+0z5s6tZL6P_Ao^EV5x3tV_HVY4sphyBegosoX4k1C26l!tY6K)~FFlGkOme)06 z-#|xK`-KaikYFU2>KdD8)muudDtpq<537R)+q?osa}5^~O)D%m_kcz&a3$dtOUluR z7lN!d_kgin?k<|fIyPs4y}8t*w%k%f*lq`MVR?^R7|l z8CY3(dFT2KQ4-2;b8-JE=D{$g^*+@);Mn9`bgO->o~1)O=KrY!t=ibEeZ*R7mL$}$ zsSPg_u_%AD7aWO$zqd(CG1N4I|x;ZaZzt6kp93qQu zI0xl}E6Y~VTpI9rEd^-6HM(A^!66Gs!(^A}0p5PZs@~=!phgADBlMBmPku~vJmOK| z-oOyzg+#5=T-9tgx0Kd5;7m5+)g61MExWjP)y2J1*Tub>#TB0R_I@#w9Wvxqj4ZL| z!!pKypiB3#=O>n{(>?L7ep|^t7kmDs3dYy#Ub<$_zt_b0d%V2d?D^p>j6Zy<|7Z66 zF&6gR8^e7o?fG@{n11aChurP?JxkSno^m=pGVm}rHjQG#?V~{jNujFMUzSmLa$*MA zQi#o0OD^j~69e0K8a=4L#(Mck9uvhbZ9bfy3^@cx@L{Z{DF&et-^fGfBpJ8$|vwwd`!ZPaaI}`^vzxMY| zpqWL{?s#iR3*IYIlg~Xfvcl`WF!}1Lu4&GBpVvJm)!TOc4_Y^sIZtY@9%n6G@z7o@ z?^`ROZexFqg(iIAFRuS2nJ0V|#F#{u;*H-O<&8g$9WIWR4Cv>Qfj-$ph}Tvco@=&r zfOE(+Bie5rVdH@zVKwK?<@fJhkXCjm<7pmvV&>5CSu8sT2BIetLWj2Op9<`o1LsJc zO~ldg0mHaYi#ikw%N4~b8s-C#?(3gJ2h6X01DZcIndOV?hWVnSEp8~XqI-}SE7BY( zB4ZM?EjlnU$(YcR4Bw6|t0a=uY*qVb!0EPAf&ntiueQC63U<8$)3A3VWl@ki{$H>+ znl(FIUH32ewBy30PPhR59QHM-$U7-HfHbszS>yNiuG5)|s`fNmg^k=KTUIA%k<|%W z#4kaMEKblOObJ>9CPBZ_b(VUzhl%W(w5Yme6rAc~2~`w-tJn`R)SLVcexNq=rf#bmrgI$5aRkSa97mas--|Ca*Z z=4j03G)H3&r#TvP8EyRozcJ=<1&+qCoaSg8$7znn@to#poWN<0#)+KfXw2tyz6p=- zfgD2tMQctWyU9^Fc5^foGQ~oU3de4ah9WNKsBrA&Xej1#jta+aj)qA@Zat7wNN*10 zC>*;v8Yc4wI4T^wIU1hka*hheZjOd2T+UJ9*v-)}70a!-D+gh~4(W%jeH=P>Iq>V1$i|~j0k?NtDFh>34RT!pv=R!Rrlcz#i-Ifc3)LRpw zyZX_7Xi&?Fp`W^;49Z;_vY^Y$+WpLuWYu~dj#G0k!fcgpMsKyps{i~FhCR08cNgG< z5F7y=&Y{LoBNl)D!uigFFK&a1azQQo6#A%_{shxHSB%>rCE54GT&LRPbirPZ54soO zAf?t_fF;_8c9vzTr?2668GR8p{yJNxhUGXl#S*ZtBPVxvDVN|jh^()?t{#e$b)H8@ z0kGKiuP*rpo=~5a+L2ebOs+@V^;&Vnp;_v^ieic$e+;K4Bk}OgXSO`_l9pJJ|%xGV%TC=u+Ao zNJU$Vf(9IVaH>9YQr<-1A~v`5CqMzfyFXL&ZM@Bz54?70!L1JEZxZ=Vm>;}}`9b6dNvxd05D55bEC8=# zFhp!0o}I;NoZvM*`k<8cq3HK}Gt?9hIcW&4$v^G2@$Yc_sGgru z(rWuIZ=GhJi@nsUD&BZob>NFvmf7>)olp6`uTI`I-=2T&JXBNMk>7IJ@Ik5(S4RmHc{z;k-sQ-yc){7qCABVs$yw%w&!8A9EAKvQ3 zY2)rgykB@`u=hh&0f3~eZ%#Sy0@@xh>EqMi1pku$XjE}(VkbY+7GHG)8lTC(%(nx1 z#Jm`C{=2<6J%oG@bU6R@BMf@}`(tqljQ_ED;p6k)Y}?tdtr4sYSR3g63HL?yv>Z zr}$B)&~Nu}l+W>WpgT7Ar@M@64(o+BKhAcvn2GRefwJc1pn|<|Qj0qFN7$*KM4O*n z8ds^h_P`wNHmqOR1DlDi>Xiwj)o**?BK>5lwq?(u&(yk~u-XrHY8sCy)sP7T)$IH5 zMFacLHFa~qa5iZ_aIi;{*@vFx;^SJIIV9>usR0k*i&pl-B+bvW+UT(1*-4*ELfIKQ zTr+oW%yc|e#2Wjq^t>;@1m01)>dJ;ja(X2?R3f3CmR{ysb1ObJYp5r3(ZLeLdsSKj z-J30QOUtY1nVRTt2_~t9KSN)4(cuzIRvUhXp^<+GVIv?xv9h=|G}oBxEp_FVrIB)n zGDK1@{Q`@$-a)cBT6K79qw4nvt~9W3fN@)&{|D=`j~u#8TmFRFQ7@g9H|eKQ%OB2( zTBAPeCQsD79>jjnK*n#hUjCb&txvymiw^0^(#UD9%C-~KS=_~vcar}+g8p`*blZZr z?3W_tD*NpO{n5p9|33e3d!e_tde~P^*O5`$aHjXy>O)_7tY$@+I@V8q=-u#iz%8Q9 z;!|L_S{E#*>)ElqkH&qiI^JKd&>V{I!iW22DZT_ZLKiZgxy_(2b~Ja1YX8XAO7(Q0 z+-MYiPnGb+a25pG>s?$x^`e9xZ5ivC(CfvIjan0}mIh%{@3hT0_Lv)CB&HsQA9~iC z)x;3lqCaG0BVDam-}?#nMTwg-RsT@=erf}5(%xwDQO2Go(el&8K!=~PX!F#wVRB;( oo+4QKxU73A{X6?tSpOwd&xOeienL^a!_4QV8@i^4%hme-0P_y09{>OV diff --git a/examples/data/dolfyn/test_data/winriver02_transect.nc b/examples/data/dolfyn/test_data/winriver02_transect.nc index f6ea605903fe6091f1fef9383927b9372bdf45e0..3ae5b5ceb306a2e299b4c46507e4ad53717feeaf 100644 GIT binary patch delta 731 zcmY*XT}YEr7=FHQN4Jk0$(&19&8@kz1=VC)T0_lkhL~YD)`f}5CRsSB4AKjUC}VZ= z?LOv-Oq;u~u)nK>x~ymy#jff?%^<5?1g-bjSo3_G_j%us_xE|ve5zzVRq`k- zOZWISIm8-2c6abU@)79?@6xofpKNv=pU^Z)4*o%7Q%pJldjLC^Sfyej0|)4GJ9A2N zyp!3+MzsGtYy>Yn)!m2}lhy)Q2(G+Ye+>QNM?0{YV04$E7ZHiHT0lhJai2Vm-=v@p zU8>)3durY=a>^?><6|Aw~THh z$=nX$P{{DDk_`7$&!DP)p0UPEHa)PiN}5D(V?oRU>86Z9;f|H1f&0nV^=-xML^S=5 zcY6BD^f1zgGkrq?f!Ir3nj_X3~W6HEdL%LeULSJ+atvMgSA)uTTR;ndM06)OU$tsl* zYGRJQDZ@Hrhkz+>c?(wb!t()T0{Y)?I)i8O;TT{OaAUtIjHn{KDnS1E@L=R3UI_=) zfKEVsv;8U-W!ZheE&+Gq13fq(xdFf~VCnClYq&1C^#CQ=p5lHeU}d p5*-aq3QhYNkLf8LFtLe(nh>=#&eN7g|7~}0z#UXxx`V3u_kUFIn?3*l From fabb0354e31cc9359af021e3b9c37b8a6a31ac2d Mon Sep 17 00:00:00 2001 From: jmcvey3 <53623232+jmcvey3@users.noreply.github.com> Date: Wed, 12 Feb 2025 08:46:14 -0800 Subject: [PATCH 4/5] Update newest black formatting --- mhkit/acoustics/__init__.py | 12 +++---- mhkit/acoustics/analysis.py | 2 +- mhkit/acoustics/graphics.py | 8 ++--- mhkit/acoustics/io.py | 18 +++++----- mhkit/dolfyn/adv/clean.py | 3 +- mhkit/loads/__init__.py | 2 +- mhkit/loads/extreme/__init__.py | 2 +- mhkit/loads/extreme/extremes.py | 28 +++++++-------- mhkit/loads/extreme/mler.py | 6 ++-- mhkit/loads/extreme/peaks.py | 16 ++++----- mhkit/loads/extreme/sample.py | 4 +-- mhkit/loads/general.py | 6 ++-- mhkit/loads/graphics.py | 6 ++-- mhkit/mooring/graphics.py | 24 ++++++------- mhkit/mooring/io.py | 8 ++--- mhkit/power/characteristics.py | 18 +++++----- mhkit/power/quality.py | 34 +++++++++--------- mhkit/tests/utils/test_cache.py | 6 ++-- mhkit/tests/wave/io/hindcast/test_hindcast.py | 10 +++--- mhkit/utils/__init__.py | 4 +-- mhkit/utils/cache.py | 28 +++++++-------- mhkit/utils/stat_utils.py | 8 ++--- mhkit/utils/time_utils.py | 4 +-- mhkit/utils/type_handling.py | 6 ++-- mhkit/utils/upcrossing.py | 6 ++-- mhkit/wave/io/hindcast/wind_toolkit.py | 36 +++++++++---------- 26 files changed, 152 insertions(+), 153 deletions(-) diff --git a/mhkit/acoustics/__init__.py b/mhkit/acoustics/__init__.py index 35cb2b7f..65af875a 100644 --- a/mhkit/acoustics/__init__.py +++ b/mhkit/acoustics/__init__.py @@ -1,17 +1,17 @@ """ The passive acoustics module provides a set of functions -for analyzing and visualizing passive acoustic monitoring +for analyzing and visualizing passive acoustic monitoring data deployed in water bodies. This package reads in raw -*.wav* files and conducts basic acoustics analysis and +*.wav* files and conducts basic acoustics analysis and visualization. To start using the module, import it directly from MHKiT: ``from mhkit import acoustics``. The analysis functions -are available directly from the main import, while the -I/O and graphics submodules are available from +are available directly from the main import, while the +I/O and graphics submodules are available from ``acoustics.io`` and ``acoustics.graphics``, respectively. -The base functions are intended to be used on top of the I/O submodule, and -include functionality to calibrate data, create spectral densities, sound +The base functions are intended to be used on top of the I/O submodule, and +include functionality to calibrate data, create spectral densities, sound pressure levels, and time or band aggregate spectral data. """ diff --git a/mhkit/acoustics/analysis.py b/mhkit/acoustics/analysis.py index bd0e2007..334bd3c9 100644 --- a/mhkit/acoustics/analysis.py +++ b/mhkit/acoustics/analysis.py @@ -337,7 +337,7 @@ def sound_pressure_spectral_density_level(spsd: xr.DataArray) -> xr.DataArray: def _validate_method( - method: Union[str, Dict[str, Union[float, int]]] + method: Union[str, Dict[str, Union[float, int]]], ) -> Tuple[str, Optional[Union[float, int]]]: """ Validates the 'method' parameter and returns the method name and its argument (if any) diff --git a/mhkit/acoustics/graphics.py b/mhkit/acoustics/graphics.py index 888cec83..f56db845 100644 --- a/mhkit/acoustics/graphics.py +++ b/mhkit/acoustics/graphics.py @@ -1,6 +1,6 @@ """ -This submodule provides essential plotting functions for visualizing passive acoustics -data. The functions allow for customizable plotting of sound pressure spectral density +This submodule provides essential plotting functions for visualizing passive acoustics +data. The functions allow for customizable plotting of sound pressure spectral density levels across time and frequency dimensions. Each plotting function leverages the flexibility of Matplotlib, allowing for passthrough @@ -11,12 +11,12 @@ ------------- 1. **plot_spectrogram**: - - Generates a spectrogram plot from sound pressure spectral density level data, + - Generates a spectrogram plot from sound pressure spectral density level data, with a logarithmic frequency scale by default for improved readability of acoustic data. 2. **plot_spectra**: - - Produces a spectral density plot with a log-transformed x-axis, allowing for clear + - Produces a spectral density plot with a log-transformed x-axis, allowing for clear visualization of spectral density across frequency bands. """ diff --git a/mhkit/acoustics/io.py b/mhkit/acoustics/io.py index 5e04b82d..c1743b0e 100644 --- a/mhkit/acoustics/io.py +++ b/mhkit/acoustics/io.py @@ -1,7 +1,7 @@ """ This submodule provides input/output functions for passive acoustics data, focusing on hydrophone recordings stored in WAV files. The main functionality -includes reading and processing hydrophone data from various manufacturers +includes reading and processing hydrophone data from various manufacturers and exporting audio files for easy playback and analysis. Supported Hydrophone Models @@ -14,28 +14,28 @@ 1. **Data Reading**: - - `read_hydrophone`: Main function to read a WAV file from a hydrophone and - convert it to either a voltage or pressure time series, depending on the + - `read_hydrophone`: Main function to read a WAV file from a hydrophone and + convert it to either a voltage or pressure time series, depending on the availability of sensitivity data. - - `read_soundtrap`: Wrapper for reading Ocean Instruments SoundTrap hydrophone + - `read_soundtrap`: Wrapper for reading Ocean Instruments SoundTrap hydrophone files, automatically using appropriate metadata. - - `read_iclisten`: Wrapper for reading Ocean Sonics icListen hydrophone files, - including metadata processing to apply hydrophone sensitivity for direct + - `read_iclisten`: Wrapper for reading Ocean Sonics icListen hydrophone files, + including metadata processing to apply hydrophone sensitivity for direct sound pressure calculation. 2. **Audio Export**: - - `export_audio`: Converts processed sound pressure data back into a WAV file + - `export_audio`: Converts processed sound pressure data back into a WAV file format, with optional gain adjustment to improve playback quality. 3. **Data Extraction**: - - `_read_wav_metadata`: Extracts metadata from a WAV file, including bit depth + - `_read_wav_metadata`: Extracts metadata from a WAV file, including bit depth and other header information. - - `_calculate_voltage_and_time`: Converts raw WAV data into voltage values and + - `_calculate_voltage_and_time`: Converts raw WAV data into voltage values and generates a time index based on the sampling frequency. """ diff --git a/mhkit/dolfyn/adv/clean.py b/mhkit/dolfyn/adv/clean.py index 69a03587..95fba743 100644 --- a/mhkit/dolfyn/adv/clean.py +++ b/mhkit/dolfyn/adv/clean.py @@ -1,5 +1,4 @@ -"""Module containing functions to clean data -""" +"""Module containing functions to clean data""" import warnings import numpy as np diff --git a/mhkit/loads/__init__.py b/mhkit/loads/__init__.py index 4c21c739..1016f49c 100644 --- a/mhkit/loads/__init__.py +++ b/mhkit/loads/__init__.py @@ -1,7 +1,7 @@ """ The `loads` package of the MHKiT (Marine and Hydrokinetic Toolkit) library provides tools and functionalities for analyzing and visualizing loads data -from marine and hydrokinetic (MHK) devices. This package is designed to +from marine and hydrokinetic (MHK) devices. This package is designed to assist engineers, researchers, and analysts in understanding the forces and stresses applied to MHK devices under various operational and environmental conditions. diff --git a/mhkit/loads/extreme/__init__.py b/mhkit/loads/extreme/__init__.py index 318a2cdc..f5ac42ae 100644 --- a/mhkit/loads/extreme/__init__.py +++ b/mhkit/loads/extreme/__init__.py @@ -3,7 +3,7 @@ and wave data statistics. It includes methods for calculating peaks over threshold, estimating -short-term extreme distributions,and performing wave amplitude +short-term extreme distributions,and performing wave amplitude normalization for most likely extreme response analysis. """ diff --git a/mhkit/loads/extreme/extremes.py b/mhkit/loads/extreme/extremes.py index 81353127..6a5831b9 100644 --- a/mhkit/loads/extreme/extremes.py +++ b/mhkit/loads/extreme/extremes.py @@ -1,29 +1,29 @@ """ This module provides functionality for estimating the short-term and -long-term extreme distributions of responses in a time series. It -includes methods for analyzing peaks, block maxima, and applying -statistical distributions to model extreme events. The module supports -various methods for short-term extreme estimation, including peaks -fitting with Weibull, tail fitting, peaks over threshold, and block -maxima methods with GEV (Generalized Extreme Value) and Gumbel -distributions. Additionally, it offers functionality to approximate -the long-term extreme distribution by weighting short-term extremes +long-term extreme distributions of responses in a time series. It +includes methods for analyzing peaks, block maxima, and applying +statistical distributions to model extreme events. The module supports +various methods for short-term extreme estimation, including peaks +fitting with Weibull, tail fitting, peaks over threshold, and block +maxima methods with GEV (Generalized Extreme Value) and Gumbel +distributions. Additionally, it offers functionality to approximate +the long-term extreme distribution by weighting short-term extremes across different sea states. Functions: -- ste_peaks: Estimates the short-term extreme distribution from peaks +- ste_peaks: Estimates the short-term extreme distribution from peaks distribution using specified statistical methods. - block_maxima: Finds the block maxima in a time-series data to be used in block maxima methods. -- ste_block_maxima_gev: Approximates the short-term extreme distribution +- ste_block_maxima_gev: Approximates the short-term extreme distribution using the block maxima method with the GEV distribution. -- ste_block_maxima_gumbel: Approximates the short-term extreme +- ste_block_maxima_gumbel: Approximates the short-term extreme distribution using the block maxima method with the Gumbel distribution. -- ste: Alias for `short_term_extreme`, facilitating easier access to the +- ste: Alias for `short_term_extreme`, facilitating easier access to the primary functionality of estimating short-term extremes. -- short_term_extreme: Core function to approximate the short-term extreme +- short_term_extreme: Core function to approximate the short-term extreme distribution from a time series using chosen methods. -- full_seastate_long_term_extreme: Combines short-term extreme +- full_seastate_long_term_extreme: Combines short-term extreme distributions using weights to estimate the long-term extreme distribution. """ diff --git a/mhkit/loads/extreme/mler.py b/mhkit/loads/extreme/mler.py index f77f7d88..63ecb8b4 100644 --- a/mhkit/loads/extreme/mler.py +++ b/mhkit/loads/extreme/mler.py @@ -1,5 +1,5 @@ """ -This module provides functionalities to calculate and analyze Most +This module provides functionalities to calculate and analyze Most Likely Extreme Response (MLER) coefficients for wave energy converter design and risk assessment. It includes functions to: @@ -7,10 +7,10 @@ spectrum and a response Amplitude Response Operator (ARO). - Define and manipulate simulation parameters (`mler_simulation`) used across various MLER analyses. - - Renormalize the incoming amplitude of the MLER wave + - Renormalize the incoming amplitude of the MLER wave (`mler_wave_amp_normalize`) to match the desired peak height for more accurate modeling and analysis. - - Export the wave amplitude time series (`mler_export_time_series`) + - Export the wave amplitude time series (`mler_export_time_series`) based on the calculated MLER coefficients for further analysis or visualization. """ diff --git a/mhkit/loads/extreme/peaks.py b/mhkit/loads/extreme/peaks.py index cd2c1164..9b31bb33 100644 --- a/mhkit/loads/extreme/peaks.py +++ b/mhkit/loads/extreme/peaks.py @@ -1,15 +1,15 @@ """ This module provides utilities for analyzing wave data, specifically for identifying significant wave heights and estimating wave peak -distributions using statistical methods. +distributions using statistical methods. Functions: -- _calculate_window_size: Calculates the window size for peak +- _calculate_window_size: Calculates the window size for peak independence using the auto-correlation function of wave peaks. -- _peaks_over_threshold: Identifies peaks over a specified +- _peaks_over_threshold: Identifies peaks over a specified threshold and returns independent storm peak values adjusted by the threshold. -- global_peaks: Identifies global peaks in a zero-centered +- global_peaks: Identifies global peaks in a zero-centered response time-series based on consecutive zero up-crossings. - number_of_short_term_peaks: Estimates the number of peaks within a specified short-term period. @@ -20,13 +20,13 @@ - automatic_hs_threshold: Determines the best significant wave height threshold for the peaks-over-threshold method. - peaks_distribution_peaks_over_threshold: Estimates the peaks - distribution using the peaks over threshold method by fitting a + distribution using the peaks over threshold method by fitting a generalized Pareto distribution. References: -- Neary, V. S., S. Ahn, B. E. Seng, M. N. Allahdadi, T. Wang, Z. Yang, - and R. He (2020). "Characterization of Extreme Wave Conditions for - Wave Energy Converter Design and Project Risk Assessment.” J. Mar. +- Neary, V. S., S. Ahn, B. E. Seng, M. N. Allahdadi, T. Wang, Z. Yang, + and R. He (2020). "Characterization of Extreme Wave Conditions for + Wave Energy Converter Design and Project Risk Assessment.” J. Mar. Sci. Eng. 2020, 8(4), 289; https://doi.org/10.3390/jmse8040289. """ diff --git a/mhkit/loads/extreme/sample.py b/mhkit/loads/extreme/sample.py index 3da0377d..078b0521 100644 --- a/mhkit/loads/extreme/sample.py +++ b/mhkit/loads/extreme/sample.py @@ -2,10 +2,10 @@ This module provides statistical analysis tools for extreme value analysis in environmental and engineering applications. It focuses on estimating values corresponding to specific return periods based on -the statistical distribution of observed or simulated data. +the statistical distribution of observed or simulated data. Functionality: -- return_year_value: Calculates the value from a given distribution +- return_year_value: Calculates the value from a given distribution corresponding to a specified return year. This function is particularly useful for determining design values for engineering structures or for risk assessment in environmental studies. diff --git a/mhkit/loads/general.py b/mhkit/loads/general.py index 11973144..75646919 100644 --- a/mhkit/loads/general.py +++ b/mhkit/loads/general.py @@ -2,7 +2,7 @@ This module provides tools for analyzing and processing data signals related to turbine blade performance and fatigue analysis. It implements methodologies based on standards such as IEC TS 62600-3:2020 ED1, -incorporating statistical binning, moment calculations, and fatigue +incorporating statistical binning, moment calculations, and fatigue damage estimation using the rainflow counting algorithm. Key functionalities include: @@ -11,8 +11,8 @@ for each bin, following IEC TS 62600-3:2020 ED1 guidelines. It supports output in both pandas DataFrame and xarray Dataset formats. - - `blade_moments`: Calculates the flapwise and edgewise moments of turbine - blades using derived calibration coefficients and raw strain signals. + - `blade_moments`: Calculates the flapwise and edgewise moments of turbine + blades using derived calibration coefficients and raw strain signals. This function is crucial for understanding the loading and performance characteristics of turbine blades. diff --git a/mhkit/loads/graphics.py b/mhkit/loads/graphics.py index 9cd835b8..c458e8d9 100644 --- a/mhkit/loads/graphics.py +++ b/mhkit/loads/graphics.py @@ -1,6 +1,6 @@ """ This module provides functionalities for plotting statistical data -related to a given variable or dataset. +related to a given variable or dataset. - `plot_statistics` is designed to plot raw statistical measures (mean, maximum, minimum, and optional standard deviation) of a @@ -9,8 +9,8 @@ - `plot_bin_statistics` extends these capabilities to binned data, offering a way to visualize binned statistics (mean, maximum, minimum) - along with their respective standard deviations. This function also - supports label and title customization, as well as saving the plot to + along with their respective standard deviations. This function also + supports label and title customization, as well as saving the plot to a specified path. """ diff --git a/mhkit/mooring/graphics.py b/mhkit/mooring/graphics.py index 0ba9bd52..6298e546 100644 --- a/mhkit/mooring/graphics.py +++ b/mhkit/mooring/graphics.py @@ -1,20 +1,20 @@ """ -This module provides a function for creating animated visualizations of a -MoorDyn node position dataset using the matplotlib animation API. +This module provides a function for creating animated visualizations of a +MoorDyn node position dataset using the matplotlib animation API. -It includes the main function `animate`, which creates either 2D or 3D -animations depending on the input parameters. +It includes the main function `animate`, which creates either 2D or 3D +animations depending on the input parameters. -In the animations, the position of nodes in the MoorDyn dataset are plotted -over time, allowing the user to visualize how these positions change. +In the animations, the position of nodes in the MoorDyn dataset are plotted +over time, allowing the user to visualize how these positions change. -This module also includes several helper functions that are used by -`animate` to validate inputs, generate lists of nodes along each axis, -calculate plot limits, and set labels and titles for plots. +This module also includes several helper functions that are used by +`animate` to validate inputs, generate lists of nodes along each axis, +calculate plot limits, and set labels and titles for plots. -The user can specify various parameters for the animation such as the -dimension (2D or 3D), the axes to plot along, the plot limits for each -axis, the interval between frames, whether the animation repeats, and the +The user can specify various parameters for the animation such as the +dimension (2D or 3D), the axes to plot along, the plot limits for each +axis, the interval between frames, whether the animation repeats, and the labels and title for the plot. Requires: diff --git a/mhkit/mooring/io.py b/mhkit/mooring/io.py index 85a3e222..f608e467 100644 --- a/mhkit/mooring/io.py +++ b/mhkit/mooring/io.py @@ -2,12 +2,12 @@ This module provides functions to read and parse MoorDyn output files. The main function read_moordyn takes as input the path to a MoorDyn output file and optionally -the path to a MoorDyn input file. It reads the data from the output file, stores it in an -xarray dataset, and then if provided, parses the input file for additional metadata to store +the path to a MoorDyn input file. It reads the data from the output file, stores it in an +xarray dataset, and then if provided, parses the input file for additional metadata to store as attributes in the dataset. -The helper function _moordyn_input is used to parse the MoorDyn output file. It loops through -each line in the output file, parses various sets of properties and parameters, and stores +The helper function _moordyn_input is used to parse the MoorDyn output file. It loops through +each line in the output file, parses various sets of properties and parameters, and stores them as attributes in the provided dataset. Typical usage example: diff --git a/mhkit/power/characteristics.py b/mhkit/power/characteristics.py index 0ae45a78..24f80713 100644 --- a/mhkit/power/characteristics.py +++ b/mhkit/power/characteristics.py @@ -1,21 +1,21 @@ """ -This module contains functions for calculating electrical power metrics from -measured voltage and current data. It supports both direct current (DC) and -alternating current (AC) calculations, including instantaneous frequency -analysis for AC signals and power calculations for three-phase AC systems. -The calculations can accommodate both line-to-neutral and line-to-line voltage -measurements and offer flexibility in output formats, allowing results to be +This module contains functions for calculating electrical power metrics from +measured voltage and current data. It supports both direct current (DC) and +alternating current (AC) calculations, including instantaneous frequency +analysis for AC signals and power calculations for three-phase AC systems. +The calculations can accommodate both line-to-neutral and line-to-line voltage +measurements and offer flexibility in output formats, allowing results to be saved as either pandas DataFrames or xarray Datasets. Functions: instantaneous_frequency: Calculates the instantaneous frequency of a measured voltage signal over time. - + dc_power: Computes the DC power from voltage and current measurements, providing both individual channel outputs and a gross power calculation. - + ac_power_three_phase: Calculates the magnitude of active AC power for three-phase - systems, considering the power factor and voltage measurement configuration + systems, considering the power factor and voltage measurement configuration (line-to-neutral or line-to-line). """ diff --git a/mhkit/power/quality.py b/mhkit/power/quality.py index 3e020f7a..9d5ce00e 100644 --- a/mhkit/power/quality.py +++ b/mhkit/power/quality.py @@ -1,31 +1,31 @@ """ -This module contains functions for calculating various aspects of power quality, -particularly focusing on the analysis of harmonics, interharmonics and distortion -in electrical power systems. These functions are designed to assist in power -quality assessments by providing tools to analyze voltage and current signals -for their harmonic and interharmonic components based on the guidelines and methodologies +This module contains functions for calculating various aspects of power quality, +particularly focusing on the analysis of harmonics, interharmonics and distortion +in electrical power systems. These functions are designed to assist in power +quality assessments by providing tools to analyze voltage and current signals +for their harmonic and interharmonic components based on the guidelines and methodologies outlined in IEC 61000-4-7:2008 ED2 and in IEC 62600-30:2018 ED1. Functions in this module include: -- harmonics: Calculates the harmonics from time series of voltage or current. - This function returns the amplitude of the time-series data harmonics indexed by - the harmonic frequency, aiding in the identification of harmonic distortions +- harmonics: Calculates the harmonics from time series of voltage or current. + This function returns the amplitude of the time-series data harmonics indexed by + the harmonic frequency, aiding in the identification of harmonic distortions within the power system. -- harmonic_subgroups: Computes the harmonic subgroups as per IEC 61000-4-7 standards. - Harmonic subgroups provide insights into the distribution of power across - different harmonic frequencies, which is crucial for understanding the behavior +- harmonic_subgroups: Computes the harmonic subgroups as per IEC 61000-4-7 standards. + Harmonic subgroups provide insights into the distribution of power across + different harmonic frequencies, which is crucial for understanding the behavior of non-linear loads and their impact on the power quality. -- total_harmonic_current_distortion (THCD): Determines the total harmonic current - distortion, offering a summary metric that quantifies the overall level of - harmonic distortion present in the current waveform. This metric is essential +- total_harmonic_current_distortion (THCD): Determines the total harmonic current + distortion, offering a summary metric that quantifies the overall level of + harmonic distortion present in the current waveform. This metric is essential for assessing compliance with power quality standards and guidelines. -- interharmonics: Identifies and calculates the interharmonics present in the - power system. Interharmonics, which are frequencies that occur between the - fundamental and harmonic frequencies, can arise from various sources and +- interharmonics: Identifies and calculates the interharmonics present in the + power system. Interharmonics, which are frequencies that occur between the + fundamental and harmonic frequencies, can arise from various sources and potentially lead to power quality issues. """ diff --git a/mhkit/tests/utils/test_cache.py b/mhkit/tests/utils/test_cache.py index 3cd5fff4..b7bd85e8 100644 --- a/mhkit/tests/utils/test_cache.py +++ b/mhkit/tests/utils/test_cache.py @@ -1,8 +1,8 @@ """ Unit Testing for MHKiT Cache Utilities -This module provides unit tests for the caching utilities present in the MHKiT library. -These utilities help in caching and retrieving data, ensuring efficient and repeatable +This module provides unit tests for the caching utilities present in the MHKiT library. +These utilities help in caching and retrieving data, ensuring efficient and repeatable data access without redundant computations or network requests. The tests cover: @@ -11,7 +11,7 @@ 3. Usage of appropriate file extensions based on the type of data being cached. 4. Clearing of cache directories as specified. -By running these tests, one can validate that the caching utilities of MHKiT are functioning +By running these tests, one can validate that the caching utilities of MHKiT are functioning as expected, ensuring that users can rely on cached data and metadata when using the MHKiT library. Usage: diff --git a/mhkit/tests/wave/io/hindcast/test_hindcast.py b/mhkit/tests/wave/io/hindcast/test_hindcast.py index 26847dc6..456ea05b 100644 --- a/mhkit/tests/wave/io/hindcast/test_hindcast.py +++ b/mhkit/tests/wave/io/hindcast/test_hindcast.py @@ -1,17 +1,17 @@ """ -This module contains unit tests for the WPTO hindcast data retrieval +This module contains unit tests for the WPTO hindcast data retrieval functions in the mhkit.wave package. The tests are designed to verify the correct functioning of the following functionalities: 1. Retrieval of multiple years of data for a single data type, latitude-longitude pair, and parameter. -2. Retrieval of multiple parameters for a single data type, year, +2. Retrieval of multiple parameters for a single data type, year, and latitude-longitude pair. 3. Retrieval of data for multiple locations for point data and directional spectrum at a single data type, year, and parameter. -The tests use the unittest framework and compare the output of the -hindcast retrieval functions with expected output data. The expected +The tests use the unittest framework and compare the output of the +hindcast retrieval functions with expected output data. The expected data is read from CSV files located in the examples/data/wave directory. Functions tested: @@ -19,7 +19,7 @@ - wave.io.hindcast.hindcast.request_wpto_directional_spectrum Usage: -Run the script directly as a standalone program, or import the +Run the script directly as a standalone program, or import the TestWPTOhindcast class in another test suite. """ diff --git a/mhkit/utils/__init__.py b/mhkit/utils/__init__.py index 328a3320..c89a6430 100644 --- a/mhkit/utils/__init__.py +++ b/mhkit/utils/__init__.py @@ -1,6 +1,6 @@ """ -This module initializes and imports the essential utility functions for data -conversion, statistical analysis, caching, and event detection for the +This module initializes and imports the essential utility functions for data +conversion, statistical analysis, caching, and event detection for the MHKiT library. """ diff --git a/mhkit/utils/cache.py b/mhkit/utils/cache.py index eadfe2ec..c4897c12 100644 --- a/mhkit/utils/cache.py +++ b/mhkit/utils/cache.py @@ -1,28 +1,28 @@ """ This module provides functionality for managing cache files to optimize network requests and computations for handling data. The module focuses -on enabling users to read from and write to cache files, as well as -perform cache clearing operations. Cache files are utilized to store data -temporarily, mitigating the need to re-fetch or recompute the same data multiple +on enabling users to read from and write to cache files, as well as +perform cache clearing operations. Cache files are utilized to store data +temporarily, mitigating the need to re-fetch or recompute the same data multiple times, which can be especially useful in network-dependent tasks. The module consists of two main functions: 1. `handle_caching`: - This function manages the caching of data. It provides options to read from - and write to cache files, depending on whether the data is already provided - or if it needs to be fetched from the cache. If a cache file corresponding - to the given parameters already exists, the function can either load data - from it or clear it based on the parameters passed. It also offers the ability - to store associated metadata along with the data and supports both JSON and - pickle file formats for caching. This function returns the loaded data and + This function manages the caching of data. It provides options to read from + and write to cache files, depending on whether the data is already provided + or if it needs to be fetched from the cache. If a cache file corresponding + to the given parameters already exists, the function can either load data + from it or clear it based on the parameters passed. It also offers the ability + to store associated metadata along with the data and supports both JSON and + pickle file formats for caching. This function returns the loaded data and metadata from the cache file, along with the cache file path. 2. `clear_cache`: - This function enables the clearing of either specific sub-directories or the - entire cache directory, depending on the parameter passed. It removes the - specified directory and then recreates it to ensure future caching tasks can - be executed without any issues. If the specified directory does not exist, + This function enables the clearing of either specific sub-directories or the + entire cache directory, depending on the parameter passed. It removes the + specified directory and then recreates it to ensure future caching tasks can + be executed without any issues. If the specified directory does not exist, the function prints an indicative message. Module Dependencies: diff --git a/mhkit/utils/stat_utils.py b/mhkit/utils/stat_utils.py index 972a84f2..e6cea5c9 100644 --- a/mhkit/utils/stat_utils.py +++ b/mhkit/utils/stat_utils.py @@ -1,9 +1,9 @@ """ -This module contains functions to perform various statistical calculations +This module contains functions to perform various statistical calculations on continuous data. It includes functions for calculating statistics such as mean, max, min, and standard deviation over specific windows, as well as functions -for vector/directional statistics. The module also provides utility functions -to unwrap vectors, compute magnitudes and phases in 2D/3D, and calculate +for vector/directional statistics. The module also provides utility functions +to unwrap vectors, compute magnitudes and phases in 2D/3D, and calculate the root mean squared values of vector components. Functions: @@ -144,7 +144,7 @@ def get_statistics( def vector_statistics( - data: Union[pd.Series, np.ndarray, list] + data: Union[pd.Series, np.ndarray, list], ) -> Tuple[np.ndarray, np.ndarray]: """ Function used to calculate statistics for vector/directional channels based on diff --git a/mhkit/utils/time_utils.py b/mhkit/utils/time_utils.py index 3eb69f7e..a30bd455 100644 --- a/mhkit/utils/time_utils.py +++ b/mhkit/utils/time_utils.py @@ -18,7 +18,7 @@ def matlab_to_datetime( - matlab_datenum: Union[np.ndarray, list, float, int] + matlab_datenum: Union[np.ndarray, list, float, int], ) -> pd.DatetimeIndex: """ Convert MATLAB datenum format to Python datetime @@ -55,7 +55,7 @@ def matlab_to_datetime( def excel_to_datetime( - excel_num: Union[np.ndarray, list, float, int] + excel_num: Union[np.ndarray, list, float, int], ) -> pd.DatetimeIndex: """ Convert Excel datenum format to Python datetime diff --git a/mhkit/utils/type_handling.py b/mhkit/utils/type_handling.py index 09ad5cca..b58fee52 100644 --- a/mhkit/utils/type_handling.py +++ b/mhkit/utils/type_handling.py @@ -1,7 +1,7 @@ """ This module provides utility functions for converting various data types to xarray structures such as xarray.DataArray and xarray.Dataset. It also -includes functions for handling nested dictionaries containing pandas +includes functions for handling nested dictionaries containing pandas DataFrames by converting them to xarray Datasets. Functions: @@ -9,7 +9,7 @@ - to_numeric_array: Converts input data to a numeric NumPy array. - convert_to_dataset: Converts pandas or xarray data structures to xarray.Dataset. - convert_to_dataarray: Converts various data types to xarray.DataArray. -- convert_nested_dict_and_pandas: Recursively converts pandas DataFrames +- convert_nested_dict_and_pandas: Recursively converts pandas DataFrames in nested dictionaries to xarray Datasets. """ @@ -237,7 +237,7 @@ def convert_to_dataarray( def convert_nested_dict_and_pandas( - data: Dict[str, Union[pd.DataFrame, Dict[str, Any]]] + data: Dict[str, Union[pd.DataFrame, Dict[str, Any]]], ) -> Dict[str, Union[xr.Dataset, Dict[str, Any]]]: """ Recursively searches inside nested dictionaries for pandas DataFrames to diff --git a/mhkit/utils/upcrossing.py b/mhkit/utils/upcrossing.py index 1c5eea03..7ab06a0e 100644 --- a/mhkit/utils/upcrossing.py +++ b/mhkit/utils/upcrossing.py @@ -1,7 +1,7 @@ """ Upcrossing Analysis Functions ============================= -This module contains a collection of functions that facilitate upcrossing +This module contains a collection of functions that facilitate upcrossing analyses. Key Functions: @@ -12,8 +12,8 @@ - `heights`: Calculates the height between zero crossings. - `periods`: Calculates the period between zero crossings. - `custom`: Applies a custom, user-defined function between zero crossings. - -Author: + +Author: ------- mbruggs akeeste diff --git a/mhkit/wave/io/hindcast/wind_toolkit.py b/mhkit/wave/io/hindcast/wind_toolkit.py index 2205e2be..7eeead3d 100644 --- a/mhkit/wave/io/hindcast/wind_toolkit.py +++ b/mhkit/wave/io/hindcast/wind_toolkit.py @@ -2,27 +2,27 @@ Wind Toolkit Data Utility Functions =================================== -This module contains a collection of utility functions designed to facilitate -the extraction, caching, and visualization of wind data from the WIND Toolkit -hindcast dataset hosted on AWS. This dataset includes offshore wind hindcast data +This module contains a collection of utility functions designed to facilitate +the extraction, caching, and visualization of wind data from the WIND Toolkit +hindcast dataset hosted on AWS. This dataset includes offshore wind hindcast data with various parameters like wind speed, direction, temperature, and pressure. Key Functions: -------------- -- `region_selection`: Determines which predefined wind region a given latitude +- `region_selection`: Determines which predefined wind region a given latitude and longitude fall within. - -- `get_region_data`: Retrieves latitude and longitude data points for a specified + +- `get_region_data`: Retrieves latitude and longitude data points for a specified wind region. Uses caching to speed up repeated requests. - -- `plot_region`: Plots the geographical extent of a specified wind region and + +- `plot_region`: Plots the geographical extent of a specified wind region and can overlay a given latitude-longitude point. - -- `elevation_to_string`: Converts a parameter (e.g., 'windspeed') and elevation + +- `elevation_to_string`: Converts a parameter (e.g., 'windspeed') and elevation values (e.g., [20, 40, 120]) to the formatted strings used in the WIND Toolkit. - -- `request_wtk_point_data`: Fetches specified wind data parameters for given - latitude-longitude points and years from the WIND Toolkit hindcast dataset. + +- `request_wtk_point_data`: Fetches specified wind data parameters for given + latitude-longitude points and years from the WIND Toolkit hindcast dataset. Supports caching for faster repeated data retrieval. Dependencies: @@ -34,15 +34,15 @@ Notes: ------ -- To access the WIND Toolkit hindcast data, users need to configure `h5pyd` +- To access the WIND Toolkit hindcast data, users need to configure `h5pyd` for data access on HSDS (see the metocean_example or WPTO_hindcast_example notebook for more details). - -- While some functions perform basic checks (e.g., verifying that latitude - and longitude are within a predefined region), it's essential to understand + +- While some functions perform basic checks (e.g., verifying that latitude + and longitude are within a predefined region), it's essential to understand the boundaries of each region and the available parameters and elevations in the dataset. -Author: +Author: ------- akeeste ssolson From f76df1b34ec650a27c95db73f1cdb50f1087d498 Mon Sep 17 00:00:00 2001 From: jmcvey3 <53623232+jmcvey3@users.noreply.github.com> Date: Fri, 14 Feb 2025 11:42:26 -0800 Subject: [PATCH 5/5] Fix docstrings --- .../dolfyn/test_data/RDI_withBT.dolfyn.log | 4 +- mhkit/dolfyn/io/rdi.py | 63 ++++++++++--------- 2 files changed, 37 insertions(+), 30 deletions(-) diff --git a/examples/data/dolfyn/test_data/RDI_withBT.dolfyn.log b/examples/data/dolfyn/test_data/RDI_withBT.dolfyn.log index a3bfaedc..178650f3 100644 --- a/examples/data/dolfyn/test_data/RDI_withBT.dolfyn.log +++ b/examples/data/dolfyn/test_data/RDI_withBT.dolfyn.log @@ -15,8 +15,8 @@ root - INFO - id 768 offset 352 root - INFO - id 1024 offset 422 root - INFO - id 1536 offset 492 root - INFO - Done: {'prog_ver': 51.41, 'inst_make': 'TRDI', 'inst_type': 'ADCP', 'rotate_vars': ['vel'], 'has_imu': 0, 'inst_model': 'Workhorse', 'beam_angle': 20, 'freq': 600, 'beam_pattern': 'convex', 'orientation': 'down', 'n_beams': 4, 'n_cells': 17, 'pings_per_ensemble': 1, 'cell_size': 1.0, 'blank_dist': 0.88, 'profiling_mode': 1, 'min_corr_threshold': 64, 'n_code_reps': 5, 'min_prcnt_gd': 0, 'max_error_vel': 2.0, 'sec_between_ping_groups': 0.5, 'coord_sys': 'earth', 'use_pitchroll': 'yes', 'use_3beam': 'yes', 'bin_mapping': 'yes', 'heading_misalign_deg': 0.0, 'magnetic_var_deg': 0.0, 'sensors_src': '01111101', 'sensors_avail': '00111101', 'bin1_dist_m': 2.09, 'transmit_pulse_m': 1.18, 'water_ref_cells': [1, 5], 'false_target_threshold': 50, 'transmit_lag_m': 0.24, 'bandwidth': 0, 'power_level': 255, 'serialnum': 18655} -root - INFO - self._bb False -root - INFO - self.cfgbb: {} +root - INFO - self._BB False +root - INFO - self.cfgBB: {} root - INFO - taking data from pings 0 - 1721 root - INFO - 1721 ensembles will be produced. diff --git a/mhkit/dolfyn/io/rdi.py b/mhkit/dolfyn/io/rdi.py index cac1d195..9e93a15c 100644 --- a/mhkit/dolfyn/io/rdi.py +++ b/mhkit/dolfyn/io/rdi.py @@ -181,7 +181,7 @@ def __init__( self.cs = [] self.cs_sl = [] self.cfg = {} - self.cfgbb = {} + self.cfgBB = {} self.hdr = {} self.f = lib.bin_reader(self.fname) @@ -191,17 +191,17 @@ def __init__( self._npings = self._filesize // space if self._debug_level > -1: logging.info("Done: {}".format(self.cfg)) - logging.info("self._bb {}".format(self._bb)) - logging.info("self.cfgbb: {}".format(self.cfgbb)) + logging.info("self._BB {}".format(self._BB)) + logging.info("self.cfgBB: {}".format(self.cfgBB)) self.f.seek(self._pos, 0) self.n_avg = navg self.ensemble = lib._ensemble(self.n_avg, self.cfg["n_cells"]) - if self._bb: - self.ensembleBB = lib._ensemble(self.n_avg, self.cfgbb["n_cells"]) + if self._BB: + self.ensembleBB = lib._ensemble(self.n_avg, self.cfgBB["n_cells"]) self.vars_read = lib._variable_setlist(["time"]) - if self._bb: + if self._BB: self.vars_readBB = lib._variable_setlist(["time"]) def code_spacing(self, iternum=50): @@ -214,7 +214,7 @@ def code_spacing(self, iternum=50): # Get basic header data and check dual profile if not self.read_hdr(): raise RuntimeError("No header in this file") - self._bb = self.check_for_double_buffer() + self._BB = self.check_for_double_buffer() # Turn off debugging to check code spacing debug_level = self._debug_level @@ -305,21 +305,21 @@ def load_data(self, nens=None): self.remove_end(iens) break self.ensemble.clean_data() - if self._bb: + if self._BB: self.ensembleBB.clean_data() ens = [self.ensemble] vars = [self.vars_read] datl = [self.outd] cfgl = [self.cfg] - if self._bb: + if self._BB: ens += [self.ensembleBB] vars += [self.vars_readBB] datl += [self.outdBB] - cfgl += [self.cfgbb] + cfgl += [self.cfgBB] - for var, en, dat in zip(vars, ens, datl): + for var, en, dat, cfg in zip(vars, ens, datl, cfgl): for nm in var: - dat = self.save_profiles(dat, nm, en, iens) + dat = self.save_profiles(dat, cfg, nm, en, iens) # reset flag after all variables run self.n_cells_diff = 0 @@ -343,14 +343,14 @@ def load_data(self, nens=None): else: dat["coords"]["time"][iens] = np.median(dates) - # Finalize dataset (runs through both nb and bb) + # Finalize dataset (runs through both NB and BB) for dat, cfg in zip(datl, cfgl): dat, cfg = self.cleanup(dat, cfg) dat = self.finalize(dat, cfg) if "vel_bt" in dat["data_vars"]: cfg["rotate_vars"].append("vel_bt") - datbb = self.outdBB if self._bb else None + datbb = self.outdBB if self._BB else None return dat, datbb def init_data(self): @@ -363,7 +363,7 @@ def init_data(self): "standard_name": {}, "sys": {}, } - if self._bb: + if self._BB: outdbb = { "data_vars": {}, "coords": {}, @@ -380,10 +380,10 @@ def init_data(self): ) self.outd = outd - if self._bb: + if self._BB: for nm in defs.data_defs: outdbb = lib._idata( - outdbb, nm, sz=lib._get_size(nm, self._nens, self.cfgbb["n_cells"]) + outdbb, nm, sz=lib._get_size(nm, self._nens, self.cfgBB["n_cells"]) ) self.outdBB = outdbb if self._debug_level > 1: @@ -391,14 +391,14 @@ def init_data(self): if self._debug_level > 1: logging.info("{} ncells, not BB".format(self.cfg["n_cells"])) - if self._bb: - logging.info("{} ncells, BB".format(self.cfgbb["n_cells"])) + if self._BB: + logging.info("{} ncells, BB".format(self.cfgBB["n_cells"])) def read_buffer(self): """Read through the file""" fd = self.f self.ensemble.k = -1 # so that k+=1 gives 0 on the first loop. - if self._bb: + if self._BB: self.ensembleBB.k = -1 # so that k+=1 gives 0 on the first loop. self.print_progress() hdr = self.hdr @@ -758,7 +758,7 @@ def remove_end(self, iens): for nm in self.vars_read: lib._setd(dat, nm, lib._get(dat, nm)[..., :iens]) - def save_profiles(self, dat, nm, en, iens): + def save_profiles(self, dat, cfg, nm, en, iens): """ Reformats profile measurements in the retrieved measurements. @@ -769,7 +769,11 @@ def save_profiles(self, dat, nm, en, iens): Parameters ---------- dat : dict - Raw data dictionary + Contains data for the final dataset. This variable has the same pointer + as the data dictionary `self.outd` or `self.outdBB`. + cfg : dict + Global attributes for the final dataset. This variable has the same pointer + as the configuration dictionary `self.cfg` or `self.cfgBB`. nm : str The name of the profile variable en : dict @@ -836,10 +840,11 @@ def cleanup(self, dat, cfg): Parameters ---------- dat : dict - The dataset dictionary containing data variables and coordinates to be cleaned up. + Contains data for the final dataset. This variable has the same pointer + as the data dictionary `self.outd` or `self.outdBB`. cfg : dict - Configuration dictionary, which is updated with cell size, range, and additional - attributes after cleanup. + Global attributes for the final dataset. This variable has the same pointer + as the configuration dictionary `self.cfg` or `self.cfgBB`. Returns ------- @@ -965,9 +970,11 @@ def finalize(self, dat, cfg): Parameters ---------- dat : dict - The dataset dictionary to be finalized. This dictionary is modified - in place by removing unused attributes, setting configuration values - as attributes, and calculating `fs`. + Contains data for the final dataset. This variable has the same pointer + as the data dictionary `self.outd` or `self.outdBB`. + cfg : dict + Global attributes for the final dataset. This variable has the same pointer + as the configuration dictionary `self.cfg` or `self.cfgBB`. Returns -------