Source code for huracanpy.diags.lifecycle

"""
Module containing functions to compute lifecycle stage
"""


[docs] def time_from_genesis(data): """ Output the time since genesis for each TC point Parameters ---------- data : TYPE DESCRIPTION. Returns ------- xarray.DataArray The time_from_genesis series. You can append it to your tracks by running tracks["time_from_genesis"] = time_from_genesis(tracks) """ data_df = data[["track_id", "time"]].to_dataframe() data_df = data_df.merge( data_df.groupby("track_id").time.min(), on="track_id", suffixes=["_actual", "_gen"], ) time_from_start = data_df.time_actual - data_df.time_gen return ( time_from_start.to_xarray().rename({"index": "obs"}).rename("time_from_genesis") )
[docs] def time_from_extremum(data, varname, stat=max): """ Parameters ---------- data varname stat Returns ------- """ if stat == "max": asc = False elif stat == "min": asc = True else: raise NotImplementedError("stat not recognized. Please use one of {min, max}") data_df = data[["track_id", "time", varname]].to_dataframe() extr = data_df.sort_values(varname, ascending=asc).groupby("track_id").first() data_df = data_df.merge(extr, on="track_id", suffixes=["_actual", "_extr"]) time_from_extr = data_df.time_actual - data_df.time_extr return ( time_from_extr.to_xarray().rename({"index": "obs"}).rename("time_from_extremum") )