Source code for huracanpy.subset._where

import xarray as xr


[docs] def trackswhere(tracks, condition): """Subset tracks from the input e.g select all tracks that are solely in the Northern hemisphere >>> tracks_subset = huracanpy.subset.trackswhere(tracks, lambda x: (x.lat > 0).all()) Parameters ---------- tracks : xarray.Dataset condition : function A function that takes an `xarray.Dataset` of an individual track and returns True or False Returns ------- xarray.Dataset A dataset with the subset of tracks from the input that match the given criteria """ track_groups = tracks.groupby("track_id") if callable(condition): is_match = track_groups.map(condition) track_groups = [ track for n, (track_id, track) in enumerate(track_groups) if is_match[n] ] assert len(tracks.time.dims) == 1 return xr.concat(track_groups, dim=tracks.time.dims[0])