bluemath_tk.teslakit package
Subpackages
- bluemath_tk.teslakit.io package
- bluemath_tk.teslakit.numerical_models package
- Subpackages
- bluemath_tk.teslakit.numerical_models.swan package
- Subpackages
- Submodules
- bluemath_tk.teslakit.numerical_models.swan.geo module
- bluemath_tk.teslakit.numerical_models.swan.io module
- bluemath_tk.teslakit.numerical_models.swan.storms module
- bluemath_tk.teslakit.numerical_models.swan.temp_plots module
- bluemath_tk.teslakit.numerical_models.swan.wrap module
- Module contents
- bluemath_tk.teslakit.numerical_models.swan package
- Module contents
- Subpackages
- bluemath_tk.teslakit.test package
- Submodules
- bluemath_tk.teslakit.test.SLR_timeseries module
- bluemath_tk.teslakit.test.roi_hy_sim_slr_storm module
- bluemath_tk.teslakit.test.roi_hycreww_historical module
- bluemath_tk.teslakit.test.roi_hycreww_sim module
- bluemath_tk.teslakit.test.test_alr module
- bluemath_tk.teslakit.test.test_climate_emulator module
- bluemath_tk.teslakit.test.test_custom_dateutils module
- bluemath_tk.teslakit.test.test_estela module
- bluemath_tk.teslakit.test.test_extremes module
- bluemath_tk.teslakit.test.test_hycreww module
- bluemath_tk.teslakit.test.test_intradaily module
- bluemath_tk.teslakit.test.test_kma module
- bluemath_tk.teslakit.test.test_mda module
- bluemath_tk.teslakit.test.test_mjo module
- bluemath_tk.teslakit.test.test_pca module
- bluemath_tk.teslakit.test.test_project_site module
- bluemath_tk.teslakit.test.test_rbf module
- bluemath_tk.teslakit.test.test_statistical module
- bluemath_tk.teslakit.test.test_storms module
- bluemath_tk.teslakit.test.test_tides module
- bluemath_tk.teslakit.test.test_waves module
- Module contents
- bluemath_tk.teslakit.util package
- Submodules
- bluemath_tk.teslakit.util.operations module
- bluemath_tk.teslakit.util.time_operations module
DateConverter_Mat2Py()add_max_storms_mask()date2datenum()date2yearfrac()datematlab2datetime()datevec2datetime()fast_reindex_hourly()fast_reindex_hourly_nsim()generate_datetimes()get_years_months_days()hours_since()npdt64todatetime()repair_times_hourly()xds2datetime()xds_common_dates_daily()xds_further_dates()xds_limit_dates()xds_reindex_daily()xds_reindex_monthly()
- Module contents
Submodules
bluemath_tk.teslakit.alr module
- class bluemath_tk.teslakit.alr.ALR_WRP(p_base)[source]
Bases:
objectAutoRegressive Logistic Model Wrapper
- GenerateALRTerms(d_terms_settings, bmus, time, cluster_size, time2yfrac=False)[source]
Generate ALR terms from user terms settings
- Report_Sim(py_month_ini=1, persistences_hists=False, persistences_table=False, show=True)[source]
Report that Compare fitting to simulated bmus
py_month_ini - start month for PerpetualYear bmus comparison
- Report_Sim_Log(n_sim=0, t_slice=None, show=True)[source]
Interactive plot for simulation log
n_sim - simulation log to plot
- SetFitData(cluster_size, xds_bmus_fit, d_terms_settings)[source]
Sets data needed for ALR fitting
cluster_size - number of clusters in classification xds_bmus_fit - xarray.Dataset vars: bmus, dims: time d_terms_settings - terms settings. See “SetFittingTerms”
- Simulate(num_sims, time_sim, xds_covars_sim=None, log_sim=False, overfit_filter=False, of_probs=0.98, of_pers=5)[source]
Launch ARL model simulations
num_sims - number of simulations to compute time_sim - time array to solve
- xds_covars_sim - xr.Dataset (time,), cov_values
Covariates used at simulation, compatible with “n_sim” dimension (“n_sim” dimension (optional) will be iterated with each simulation)
log_sim - Store a .nc file with all simulation detailed information.
filters for exceptional ALR overfit probabilities situation and patch:
overfit_filter - overfit filter activation of_probs - overfit filter probabilities activation of_pers - overfit filter persistences activation
bluemath_tk.teslakit.alr_AIC module
- class bluemath_tk.teslakit.alr_AIC.AutoLogisticRegression(cluster_size: int)[source]
Bases:
objectAuto-Regressive Logistic (ALR) model for categorical time series modeling.
This implementation focuses on statsmodels with AIC-based covariate selection. The model simulates transitions between discrete states (weather types, climate patterns, etc.) accounting for: - Markov dependencies (previous states) - Seasonality - Long-term trends - External covariates
- cluster_size
Number of discrete states or clusters in the model
- Type:
int
- model
Fitted multinomial logistic regression model
- Type:
statsmodels.MNLogit
- terms_fit
Dictionary of terms used for model fitting
- Type:
dict
- terms_fit_names
Names of the terms used for model fitting
- Type:
list
- fit(bmus: ndarray, time: ndarray, mk_order: int = 0, use_constant: bool = True, use_long_term: bool = False, seasonality: Tuple[bool, List[int]] = (False, []), covariates: Dataset | None = None, cov_seasonality: bool = False, max_iter: int = 1000) None[source]
Fit the ALR model to data.
- Parameters:
bmus (np.ndarray) – Array of categorical states (1-indexed)
time (np.ndarray) – Array of datetime objects
mk_order (int, optional) – Markov chain order (number of previous states to include)
use_constant (bool, optional) – Include intercept term
use_long_term (bool, optional) – Include long-term trend
seasonality (tuple(bool, list), optional) – Tuple of (use_seasonality, [phases])
covariates (xr.Dataset, optional) – Dataset with covariates
cov_seasonality (bool, optional) – Include seasonal modulation of covariates
max_iter (int, optional) – Maximum iterations for model fitting
- generate_terms(bmus: ndarray, time: ndarray, mk_order: int = 0, use_constant: bool = True, use_long_term: bool = False, seasonality: Tuple[bool, List[int]] = (False, []), covariates: Dataset | None = None, cov_seasonality: bool = False) Tuple[OrderedDict, List[str]][source]
Generate design matrix terms for the ALR model.
- Parameters:
bmus (np.ndarray) – Array of categorical states (1-indexed)
time (np.ndarray) – Array of datetime objects
mk_order (int, optional) – Markov chain order (number of previous states to include)
use_constant (bool, optional) – Include intercept term
use_long_term (bool, optional) – Include long-term trend
seasonality (tuple(bool, list), optional) – Tuple of (use_seasonality, [phases]). Example: (True, [1, 2]) for annual and semi-annual cycles
covariates (xr.Dataset, optional) – Dataset with covariates. Should have dimensions (time, cov_names) and variable cov_values
cov_seasonality (bool, optional) – Include seasonal modulation of covariates
- Returns:
OrderedDict – Dictionary of design matrix terms
list – List of term names
- get_summary() DataFrame[source]
Get model summary statistics.
- Returns:
DataFrame with parameter estimates, p-values, etc.
- Return type:
pd.DataFrame
- get_year_fraction(time_array)[source]
Convert datetime array to fractional year representation.
- Parameters:
time_array (array-like) – Array of datetime objects
- Returns:
Array of year fractions (0-1 for position within the year)
- Return type:
np.ndarray
- select_covariates_by_aic(bmus: ndarray, time: ndarray, covariates: Dataset, base_config: dict = None) Tuple[List[str], float][source]
Select optimal covariates using AIC criterion.
- Parameters:
bmus (np.ndarray) – Array of categorical states (1-indexed)
time (np.ndarray) – Array of datetime objects
covariates (xr.Dataset) – Dataset with all potential covariates
base_config (dict, optional) – Base configuration for other terms (mk_order, seasonality, etc.)
- Returns:
list – List of selected covariate names
float – AIC of the best model
- simulate(time_sim: ndarray, num_sims: int = 1, covariates_sim: Dataset | None = None) ndarray[source]
Generate simulations from the fitted ALR model.
- Parameters:
time_sim (np.ndarray) – Array of datetime objects for simulation
num_sims (int, optional) – Number of simulations to generate
covariates_sim (xr.Dataset, optional) – Covariates for simulation period
- Returns:
Array of simulated states with shape (time, num_sims)
- Return type:
np.ndarray
bluemath_tk.teslakit.climate_emulator module
- bluemath_tk.teslakit.climate_emulator.ChromMatrix(vs)[source]
Return chromosome matrix for np.array vs (n x nvars)
- class bluemath_tk.teslakit.climate_emulator.Climate_Emulator(p_base)[source]
Bases:
objectKMA - DWTs Climate Emulator
Fit Waves extremes model (GEV, Gumbel, Weibull distributions) and DWTs series Simulate (probabilistic) a new dataset of Waves from a custom DWTs series
This custom emulator uses Waves data divided by families (sea, swell_1, swell_2, …), each family is defined by 3 variables: Hs, Tp, Dir
Some configuration parameters:
A chromosomes methodology for statistical fit is available, it will handle on/off probabilities for each different waves family combination.
Aditional variables, outside of waves families, can be given to the emulator.
A variable has to be selected as the PROXY to calculate storms max. (default: AWL)
User can manually set a variable for an empircal / weibull / gev distribution.
- AllOn_Chromosomes(xds_KMA_MS)[source]
Generate Fake chromosomes and probabilities from KMA.bmus data in order to use only all-on chromosome combination
Returns xarray.Dataset vars: chrom, chrom_probs. dims: WT, wave_family
- CDF_Distribution(vn, vv, xds_GEV_Par, d_shape, i_wt)[source]
Switch function: GEV / Empirical / Weibull
Check variable distribution and calculates CDF
vn - var name vv - var value i_wt - Weather Type index xds_GEV_Par , d_shape: GEV data used in sigma correlation
- Calc_Chromosomes(xds_KMA_MS, xds_WVS_MS)[source]
Calculate chromosomes and probabilities from KMA.bmus data
Returns xarray.Dataset vars: chrom, chrom_probs. dims: WT, wave_family
- Calc_GEVParams(xds_KMA_MS, xds_WVS_MS)[source]
Fits each WT (KMA.bmus) waves families data to a GEV distribtion Requires KMA and WVS families at storms max. TWL
Returns xarray.Dataset with GEV shape, location and scale parameters
- Calc_SigmaCorrelation(xds_KMA_MS, xds_WVS_MS, xds_GEV_Par)[source]
Calculate Sigma Pearson correlation for each WT-chromosome combo
- Calc_SigmaCorrelation_AllOn_Chromosomes(xds_KMA_MS, xds_WVS_MS, xds_GEV_Par)[source]
Calculate Sigma Pearson correlation for each WT, all on chrom combo
- Calc_StormsMaxProxy(wvs_PROXY, lt_storm_dates)[source]
Returns xarray.Dataset with max. PROXY variable value and time
- ConfigVariables(config)[source]
Set waves families names Set optional extra variables names Set variables distribution: GEV, Empirical, Weibull Activate / Deactivate chromosomes methodology (if False, all-on combo)
- config = {
‘waves_families’: [‘sea’, ‘swell_1’, …], ‘extra_variables’: [‘wind’, ‘slp’, …] ‘distribution’: [
(‘sea_Tp’, ‘Empirical’), (‘wind’, ‘Weibull’), …
}, ‘do_chromosomes’: True,
}
- FitExtremes(KMA, WVS, config, proxy='AWL')[source]
GEV extremes fitting. Input data (waves vars series and bmus) shares time dimension
KMA - xarray.Dataset, vars: bmus (time,), cenEOFs(n_clusters, n_features) WVS - xarray.Dataset: (time,), Hs, Tp, Dir, TC_category
(time,), fam_V, {fam: sea, swell_1, … V: Hs, Tp, Dir} (time,), extra_var1, extra_var2, …
config - configuration dictionary: view self.ConfigVariables() proxy - variable used to get DWTs max. storms (default AWL).
proxy variable has to be inside WVS xarray.Dataset
- GEV_Parameters_Sampling(n_sims)[source]
Sample new GEV/GUMBELL parameters using GEV/GUMBELL asymptotic variances
num_sims - number of GEV parameters to sample
- GenerateTCs(n_clusters, DWT, DWT_time, TCs_params, TCs_simulation, prob_TCs, MU_WT, TAU_WT, xds_wvs_sim, extra_vars_update=[])[source]
Climate Emulator DWTs TCs simulation
n_clusters - KMA number of clusters DWT - np.array with DWT bmus sim series (dims: time,)
TCs_params - xr.Dataset. vars(storm): pressure_min TCs_simulation - xr.Dataset. vars(storm): mu, hs, ss, tp, dir prob_TCs - cumulative probabilities of TC category change MU_WT, TAU_WT - intradaily hidrographs for each WT xds_wvs_sim - xr.Dataset, waves simulated without TCs (for updating)
extra_vars_update - list(string), optional extra variables to update with value from “TCs_simulation”
- returns xarray.Datasets with updated Waves and simulated TCs data
- vars waves:
fam*_*vn (fam: sea, swell_1, swell_2 …, vn: Hs, Tp, Dir),
- vars TCS:
mu, tau, ss
dims: storm
- GenerateWaves(bmus, n_clusters, chrom, chrom_probs, sigma, xds_WVS_MS, xds_WVS_TCs, xds_GEV_Par_Sampled, DWT, DWT_time, filters={'hs': False, 'tp': False, 'ws': False})[source]
Climate Emulator DWTs waves simulation
bmus - KMA max. storms bmus series n_clusters - KMA number of clusters chrom, chrom_probs - chromosomes and probabilities sigma - pearson correlation for each WT xds_GEV_Par_Sampled - GEV/GUMBELL parameters sampled for simulation DWT - np.array with DWT bmus sim series (dims: time,) filters - filter simulated waves by hs, tp, and/or wave setpness
- Returns xarray.Dataset with simulated storm data
- vars:
fam*_*vn (fam: sea, swell_1, swell_2, vn: Hs, Tp, Dir), DWT_sim
dims: storm
- ICDF_Distribution(vn, vv, pb, xds_GEV_Par, i_wt)[source]
Switch function: GEV / Empirical / Weibull
Check variable distribution and calculates ICDF
vn - var name vv - var value pb - var simulation probs i_wt - Weather Type index xds_GEV_Par: GEV parameters
- LoadSim_All(n_sim_ce=0, TCs=True)[source]
Load all waves and TCs (1 DWT -> 1 output) simulations.
Each max. storm simulation has a different time dimension, returns a pandas.DataFrame with added columns ‘time’ and ‘n_sim’
output will merge WVS_upd and TCs_sim data variables
a unique n_sim_ce (inner climate emulator simulation) has to be chosen.
TCs - True / False. Load WVS (TCs updated) + TCs / WVS (without TCs) simulations
- Report_Fit(vns_GEV=['Hs'], show=True, plot_chrom=True, plot_sigma=True)[source]
Report for extremes model fitting
GEV parameters for vns_GEV
chromosomes probabilities
sigma correlation
- Report_Gev(vn='Hs', show=True)[source]
Plot vn variable GEV parameters for each WT. variables: Hs, Tp
- Set_Simulation_Folder(p_sim, copy_WAVES_noTCs=False)[source]
Modifies climate emulator default simulation path
p_sim - new simulation path copy_WAVES_noTCs - copies simulated waves (no TCs) from original path
- Simulate_TCs(xds_DWT, WVS_sims, xds_TCs_params, xds_TCs_simulation, prob_change_TCs, MU_WT, TAU_WT, extra_vars_update=[])[source]
Climate Emulator DWTs TCs simulation
xds_DWT - xarray.Dataset, vars: evbmus_sims (time,) WVS_sim - xarray.Dataset, output from Simulate_Waves()
xds_TCs_params - xr.Dataset. vars(storm): pressure_min xds_TCs_simulation - xr.Dataset. vars(storm): mu, hs, ss, tp, dir prob_change_TCs - cumulative probabilities of TC category change MU_WT, TAU_WT - intradaily hidrographs for each WT
extra_vars_update - list(string), optional extra variables to update with value from “xds_TCs_simulation”
bluemath_tk.teslakit.database module
- class bluemath_tk.teslakit.database.Database(data_folder)[source]
Bases:
objectTeslakit database
- Generate_HIST_Covariates()[source]
- Load, fix, and resample (hourly) all historical covariates:
AWTs, DWTs, MJO, MMSL, AT
- Load_RCP85()[source]
Load RCP85 longitude, latitude and ocurrence
# lon -> (0.5 , 359.5) dlon = 1º # lat -> (-89.5, 89.5) dlat = 1º
- class bluemath_tk.teslakit.database.PathControl(p_data)[source]
Bases:
objectauxiliar object for handling teslakit files paths
- class bluemath_tk.teslakit.database.SplitStorage(p_storage)[source]
Bases:
objectHandles teslakit hourly data split in multiple netCDF4 files
- class bluemath_tk.teslakit.database.atdict[source]
Bases:
dictmodified dictionary that works using “.key”
- bluemath_tk.teslakit.database.fill_metadata(xds, set_source=False)[source]
for each variable in xarray.Dataset xds, attributes will be set using resources/variables_attrs.json
set_source - True for adding package source and institution metadata
bluemath_tk.teslakit.estela module
- class bluemath_tk.teslakit.estela.Predictor(p_store)[source]
Bases:
objecttesla-kit custom dataset handler
used for 3D dataset (lon,lat,time) and related statistical classification calculations and figures.
- Calc_KMA_regressionguided(num_clusters, xds_waves, waves_vars, alpha, min_group_size=None, repres=0.95)[source]
KMA regression guided with waves data
- Calc_MU_TAU_Hydrographs(xds_WAVES)[source]
Calculates TWL hydrographs
returns list of xarray.Dataset with TWL hydrographs MU,TAU arrays for each WT
- Calc_PCA_EstelaPred(var_name, xds_estela)[source]
Principal components analysis using estela predictor
- Mod_KMA_AddStorms(storm_dates, storm_categories)[source]
Modify KMA bmus series adding storm category (6 new groups)
- Plot_DWTs(var_name, kind='mean', show=True)[source]
Plot KMA clusters generated in PCA_EstelaPred (DWTs)
kind = mean / anom
uses database means/anomalies at cluster location (bmus corrected)
- bluemath_tk.teslakit.estela.dynamic_estela_predictor(xdset, var_name, estela_D)[source]
Generate dynamic predictor using estela
- xdset:
(time, latitude, longitude), var_name, mask
- returns similar xarray.Dataset with variables:
(time, latitude, longitude), var_name_comp (time, latitude, longitude), var_name_gradient_comp
bluemath_tk.teslakit.extremes module
- bluemath_tk.teslakit.extremes.ACOV(f, theta, x)[source]
Returns asyntotyc variance matrix using Fisher Information matrix inverse Generalized functions, parameters and data.
f - function to evaluate: GEV, GUMBELL, … theta - function parameters: for GEV (shape, location, scale) x - data used for function evaluation
Second derivative evaluation - variance and covariance dxx = (f(x+dt_x) - 2f(x) + f(x-dt_x)) / (dt_x**2) dxy = (f(x,y) - f(x-dt_x,y) - f(x,y-dt_y) + f(x-dt_x, u-dt_y)) / (dt_x*dt_y)
- bluemath_tk.teslakit.extremes.FitGEV_KMA_Frechet(bmus, n_clusters, var)[source]
Returns stationary GEV/Gumbel_L params for KMA bmus and varible series
bmus - KMA bmus (time series of KMA centroids) n_clusters - number of KMA clusters var - time series of variable to fit to GEV/Gumbel_L
returns np.array (n_clusters x parameters). parameters = (shape, loc, scale) for gumbel distributions shape value will be ~0 (0.0000000001)
- bluemath_tk.teslakit.extremes.Peaks_Over_Threshold(xds, var_name, percentile=99, threshold=None, window_days=3)[source]
Peaks Over Threshold methodology to find extreme values.
xds - xarray.Dataset (time dim) var_name - variable to apply POT percentile - if threshold not given, calculate it with this percentile threshold - optional, threshold to apply POT window_days - minimum number of days between consecutive independent peaks
returns xarray.Dataset (‘time’, ) vars: peaks, excedeence, area, and duration
- bluemath_tk.teslakit.extremes.Smooth_GEV_Shape(cenEOFs, param)[source]
Smooth GEV shape parameter (for each KMA cluster) by promediation with neighbour EOFs centroids
cenEOFs - (n_clusters, n_features) KMA centroids param - GEV shape parameter for each KMA cluster
returns smoothed GEV shape parameter as a np.array (n_clusters)
bluemath_tk.teslakit.intradaily module
bluemath_tk.teslakit.kma module
- bluemath_tk.teslakit.kma.ChangeProbabilities(series, set_values)[source]
return series transition count and probabilities
- bluemath_tk.teslakit.kma.ClusterProbabilities(series, set_values)[source]
return series probabilities for each item at set_values
- bluemath_tk.teslakit.kma.KMA_regression_guided(xds_PCA, xds_Yregres, num_clusters, repres=0.95, alpha=0.5, min_group_size=None)[source]
KMeans Classification for PCA data: regression guided
- xds_PCA:
(n_components, n_components) PCs (n_components, n_features) EOFs (n_components, ) variance
- xds_Yregres:
(time, vars) Ym
num_clusters repres
- bluemath_tk.teslakit.kma.KMA_simple(xds_PCA, num_clusters, repres=0.95)[source]
KMeans Classification for PCA data
- xds_PCA:
(n_components, n_components) PCs (n_components, n_features) EOFs (n_components, ) variance
num_clusters repres
returns a xarray.Dataset containing KMA data
- bluemath_tk.teslakit.kma.SimpleMultivariateRegressionModel(xds_PCA, xds_WAVES, name_vars)[source]
Regression model between daily predictor and predictand
- xds_PCA: predictor: SLP GRD PCAS
(n_components, n_components) PCs (n_components, n_features) EOFs (n_components, ) variance
- xds_WAVES: predictand waves data
name_vars will be used as predictand (ex: [‘hs’,’t02’]) dim: time
returns a xarray.Dataset
bluemath_tk.teslakit.mda module
- bluemath_tk.teslakit.mda.DeNormalize(data_norm, ix_scalar, ix_directional, minis, maxis)[source]
DeNormalize data subset for MaxDiss algorithm
data - data to normalize, data variables at columns. ix_scalar - scalar columns indexes ix_directional - directional columns indexes
- bluemath_tk.teslakit.mda.MaxDiss_Simplified_NoThreshold(data, num_centers, ix_scalar, ix_directional)[source]
Normalize data and calculate centers using maxdiss simplified no-threshold algorithm
data - data to apply maxdiss algorithm, data variables at columns num_centers - number of centers to calculate ix_scalar - scalar columns indexes ix_directional - directional columns indexes
- bluemath_tk.teslakit.mda.Normalize(data, ix_scalar, ix_directional, minis=[], maxis=[])[source]
Normalize data subset - norm = val - min) / (max - min)
data - data to normalize, data variables at columns. ix_scalar - scalar columns indexes ix_directional - directional columns indexes
bluemath_tk.teslakit.mjo module
bluemath_tk.teslakit.pca module
- bluemath_tk.teslakit.pca.PCA_EstelaPred(xds, pred_name)[source]
Principal component analysis method: custom for estela predictor
- xds:
(time, latitude, longitude), pred_name_comp | pred_name_gradient_comp
returns a xarray.Dataset containing PCA data: PCs, EOFs, variance
- bluemath_tk.teslakit.pca.PCA_LatitudeAverage(xds, var_name, y1, y2, m1, m2)[source]
Principal component analysis method: remove monthly running mean and latitude average
- xds:
(longitude, latitude, time), pred_name | pred_name_runavg
returns a xarray.Dataset containing PCA data: PCs, EOFs, variance
- bluemath_tk.teslakit.pca.RunnningMean_Monthly(xds, var_name, window=5)[source]
Calculate running average grouped by months
- xds:
(longitude, latitude, time) variables: var_name
returns xds with new variable “var_name_runavg”
- bluemath_tk.teslakit.pca.running_mean(x, N, mode_str='mean')[source]
computes a running mean (also known as moving average) on the elements of the vector X. It uses a window of 2*M+1 datapoints
As always with filtering, the values of Y can be inaccurate at the edges. RUNMEAN(…, MODESTR) determines how the edges are treated. MODESTR can be one of the following strings:
- ‘edge’X is padded with first and last values along dimension
DIM (default)
‘zeros’ : X is padded with zeros ‘ones’ : X is padded with ones ‘mean’ : X is padded with the mean along dimension DIM
X should not contains NaNs, yielding an all NaN result.
bluemath_tk.teslakit.rbf module
- bluemath_tk.teslakit.rbf.RBF_Reconstruction(subset, ix_scalar_subset, ix_directional_subset, target, ix_scalar_target, ix_directional_target, dataset)[source]
Radial Basis Function (Gaussian) interpolator.
subset - subset used for fitting RBF (dim_input) ix_scalar_subset - scalar columns indexes for subset ix_directional_subset - directional columns indexes for subset target - target used for fitting RBF (dim_output) ix_scalar_target - scalar columns indexes for target ix_directional_target - directional columns indexes for target dataset - dataset used for RBF interpolation (dim_input)
- bluemath_tk.teslakit.rbf.RBF_Validation(subset, ix_scalar_subset, ix_directional_subset, target, ix_scalar_target, ix_directional_target, n_splits=3, shuffle=False)[source]
Radial Basis Function (Gaussian) k-fold mean squared error
subset - subset used for fitting RBF (dim_input) ix_scalar_subset - scalar columns indexes for subset ix_directional_subset - directional columns indexes for subset target - target used for fitting RBF (dim_output) ix_scalar_target - scalar columns indexes for target ix_directional_target - directional columns indexes for target
bluemath_tk.teslakit.statistical module
- bluemath_tk.teslakit.statistical.CopulaSimulation(U_data, kernels, num_sim)[source]
Fill statistical space using copula simulation
U_data: 2D nump.array, each variable in a column kernels: list of kernels for each column at U_data (KDE | GPareto) num_sim: number of simulations
- bluemath_tk.teslakit.statistical.Empirical_CDF(x)[source]
Returns empirical cumulative probability function at x.
- bluemath_tk.teslakit.statistical.Empirical_ICDF(x, p)[source]
Returns inverse empirical cumulative probability function at p points
- bluemath_tk.teslakit.statistical.GeneralizedPareto_CDF(x)[source]
Generalized Pareto fit Returns cumulative probability function at x.
- bluemath_tk.teslakit.statistical.GeneralizedPareto_ICDF(x, p)[source]
Generalized Pareto fit Returns inverse cumulative probability function at p points
- bluemath_tk.teslakit.statistical.copulafit(u, family='gaussian')[source]
Fit copula to data. Returns correlation matrix and degrees of freedom for t student
- bluemath_tk.teslakit.statistical.ksdensity_CDF(x)[source]
Kernel smoothing function estimate. Returns cumulative probability function at x.
bluemath_tk.teslakit.storms module
- bluemath_tk.teslakit.storms.Extract_Circle(xds_TCs, p_lon, p_lat, r, d_vns)[source]
Extracts TCs inside circle - used with NWO or Nakajo databases
- xds_TCs: tropical cyclones track database
lon, lat, pressure variables storm dimension
- circle defined by:
p_lon, p_lat - circle center r - circle radius (degree)
d_vns: dictionary to set longitude, latitude, time and pressure varnames
- Returns:
selection of xds_TCs inside circle xds_inside: contains TCs custom data inside circle
- Return type:
xds_area
- bluemath_tk.teslakit.storms.GeoAzimuth(lat1, lon1, lat2, lon2)[source]
Returns geodesic azimuth between point1 and point2
- bluemath_tk.teslakit.storms.GeoDistance(lat1, lon1, lat2, lon2)[source]
Returns great circle distance between points in degrees
bluemath_tk.teslakit.tides module
bluemath_tk.teslakit.waves module
- bluemath_tk.teslakit.waves.Aggregate_WavesFamilies(wvs_fams, a_tp='quadratic')[source]
Aggregate Hs, Tp and Dir from waves families data
- wvs_fams (waves families):
xarray.Dataset (time,), fam1_Hs, fam1_Tp, fam1_Dir, … {any number of families}
a_tp = ‘quadratic’ / ‘max_energy’, Tp aggregation formulae
returns Hs, Tp, Dir (numpy.array)
- bluemath_tk.teslakit.waves.GetDistribution_gow(xds_wps, swell_sectors, n_partitions=5)[source]
Separates wave partitions (0-n_partitions) into families. Default: sea, swl1, swl2
compatible with GOW.mat file
- xds_wps (waves partitionss):
xarray.Dataset (time,), phs, pspr, pwfrac… {0-5 partitions}
sectors: list of degrees to cut wave energy [(a1, a2), (a2, a3), (a3, a1)]
- returns
xarray.Dataset (time,), fam_V, {fam: sea,swell_1,swell2. V: Hs,Tp,Dir}
- bluemath_tk.teslakit.waves.GetDistribution_ws(xds_wps, swell_sectors, n_partitions=5)[source]
Separates wave partitions (0-5) into families. Default: sea, swl1, swl2
Compatible with wavespectra partitions
- xds_wps (waves partitionss):
xarray.Dataset (time,), phs, pspr, pwfrac… {0-5 partitions}
sectors: list of degrees to cut wave energy [(a1, a2), (a2, a3), (a3, a1)]
- returns
xarray.Dataset (time,), fam_V, {fam: sea,swell_1,swell2. V: Hs,Tp,Dir}
- bluemath_tk.teslakit.waves.Intradaily_Hydrograph(xds_wvs, xds_tcs)[source]
Calculates intradaily hydrograph (hourly) from a time series of storms. storms waves data (hs, tp, dir) and TCs data (mu, tau, ss) is needed.
- xds_wvs (waves aggregated):
xarray.Dataset (time,), Hs, Tp, Dir
- xds_tcs (TCs):
xarray.Dataset (time,), mu, tau, ss
returns xarray.Dataset (time,), Hs, Tp, Dir, SS (hourly)
- bluemath_tk.teslakit.waves.Snell_Propagation(T, H_I, dir_I, Prof_I, Prof_E, OrientBati)[source]
[H_E,dir_E]=PropagacionSNELL(T,H_I,dir_I,Prof_I,Prof_E,OrientBati) [H_E,dir_E,L_E,L_I]=PropagacionSNELL(T,H_I,dir_I,Prof_I,Prof_E,OrientBati) [H_E,dir_E,L_E,L_I,Ks,Kr]=PropagacionSNELL(T,H_I,dir_I,Prof_I,Prof_E,OrientBati)
Descripci?n: Funci?n que propaga el oleaje por SNELL con batimetr?a recta y paralela.
- Entradas:
T: Periodo. Segundos. H_I: Altura de ola en el punto inicial. Metros. dir_I: Direcci?n del oleaje inicial. Rumbo (0 en el N) prof_I: Profundidad inicial. Metros. prof_E: Profundidad final. Metros. OrientBati: Orientaci?n de la perpendicular a la batimetria. Rumbo (0 en el N)
- Salidas:
H_E: Altura de ola en el punto final. Metros. dir_E: Direccion del oleaje final. Rumbo (0 en el N) L_E: Longitud de onda final. Metros L_I: Longitud de onda inicial. Metros Ks: Coeficiente de asomeramiento (shoaling). Kr: Coeficiente de refraccion (Snell batimetria recta y paralela).
Autor:
Versi?n:Ene/19
Basada en el script de: Soledad Requejo Landeira & Jos? Antonio ?lvarez Antol?nez
Module contents
Project: BlueMath_tk Sub-Module: teslakit Author: GeoOcean Research Group, Universidad de Cantabria Repository: https://github.com/GeoOcean/BlueMath_tk.git Status: OLD VERSION WORKING (MUST be updated soon)