A Discrete-Event Network Simulator
API
Loading...
Searching...
No Matches
two-ray-to-three-gpp-ch-calibration Namespace Reference

Classes

class  FtrParams
 FtrParams class. More...
 

Functions

str append_ftr_params_to_cpp_string (str text, FtrParams params)
 
float compute_anderson_darling_measure (list ref_ecdf, list target_ecdf)
 Computes the Anderson-Darling measure for the specified reference and targets distributions.
 
np.ndarray compute_ecdf_value (list ecdf, float data_points)
 Given an ECDF and data points belonging to its domain, returns their associated EDCF value.
 
 compute_ftr_mean (FtrParams params)
 Computes the mean of the FTR fading model, given a specific set of parameters.
 
 compute_ftr_th_mean (FtrParams params)
 Computes the mean of the FTR fading model using the formula reported in the corresponding paper, given a specific set of parameters.
 
str fit_ftr_to_reference (pd.DataFrame ref_data, tuple ref_params_combo, int num_params, int num_refinements)
 Estimate the FTR parameters yielding the closest ECDF to the reference one.
 
 get_ftr_ecdf (FtrParams params, int n_samples, db=False)
 Returns the ECDF for the FTR fading model, for a given parameter grid.
 
float get_sigma_from_k (float k)
 Computes the value for the FTR parameter sigma, given k, yielding a unit-mean fading process.
 
 print_cplusplus_map_from_fit_results (pd.DataFrame fit, str out_fname)
 
 tqdm_joblib (tqdm_object)
 

Variables

float ad_meas = compute_anderson_darling_measure(np.sort(ref_data["gain"]), ftr_ecdf)
 
list ad_measures = []
 
 args = parser.parse_args()
 
 avg_mean = np.mean(mean_list)
 
 bbox_inches
 
 c_plus_plus_out_fname = args.c_plus_plus_out_fname
 
 data
 
tuple data_query
 
 default
 
 delta
 
 df = pd.read_csv(ref_data_fname, sep="\t")
 Data pre-processing ##.
 
 dpi
 
 encoding
 
 epsilon = float(args.epsilon)
 
 exist_ok
 
 figs_folder = args.figs_folder
 
 fit = pd.read_csv(fit_out_fname, delimiter="\t")
 
 fit_ftr_to_threegpp = bool(args.fit_ftr_to_threegpp)
 
 fit_line = fit.query(data_query)
 
 fit_out_fname = args.fit_out_fname
 
 frequencies = np.sort(list(set(df["fc"])))
 
 ftr_ecdf = get_ftr_ecdf(params, len(ref_data), db=True)
 
 help
 
 is_los = set(df["cond"])
 
 k
 
 label
 
 m
 
list mean_list = []
 
list mean_th_list = []
 
 num
 
 num_refinements = int(args.num_refinements)
 
 num_search_grid_params = int(args.num_search_grid_params)
 
 output_ns3_table = bool(args.output_ns3_table)
 
 params = FtrParams()
 Fit Fluctuating Two Ray model to the 3GPP TR 38.901 using the Anderson-Darling goodness-of-fit ##.
 
 parents
 
 parser = argp.ArgumentParser(formatter_class=argp.ArgumentDefaultsHelpFormatter)
 
 plot_fit_results = bool(args.plot_fit_results)
 
 preliminary_fit_test = bool(args.preliminary_fit_test)
 
 rc
 
 ref_data = df.query(data_query)
 
 ref_data_fname = args.ref_data_fname
 
 res
 
 scenarios = set(df["scen"])
 
float sigma = get_sigma_from_k(k)
 
 start
 
 stop
 
 True
 
 x
 

Function Documentation

◆ append_ftr_params_to_cpp_string()

str two-ray-to-three-gpp-ch-calibration.append_ftr_params_to_cpp_string ( str text,
FtrParams params )

Definition at line 423 of file two-ray-to-three-gpp-ch-calibration.py.

Referenced by print_cplusplus_map_from_fit_results().

+ Here is the caller graph for this function:

◆ compute_anderson_darling_measure()

float two-ray-to-three-gpp-ch-calibration.compute_anderson_darling_measure ( list ref_ecdf,
list target_ecdf )

Computes the Anderson-Darling measure for the specified reference and targets distributions.

In particular, the Anderson-Darling measure is defined as: $A^2 = -N -S$, where $S = \sum_{i=1}^N \frac{2i - 1}{N} \left[ ln F(Y_i) + ln F(Y_{N + 1 - i}) \right]$.

See https://www.itl.nist.gov/div898/handbook/eda/section3/eda35e.htm for further details.

Parameters
ref_ecdfThe reference ECDF.
target_ecdfThe target ECDF we wish to match the reference distribution to.
Returns
The Anderson-Darling measure for the specified reference and targets distributions.

Definition at line 238 of file two-ray-to-three-gpp-ch-calibration.py.

References compute_ecdf_value().

Referenced by fit_ftr_to_reference().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ compute_ecdf_value()

np.ndarray two-ray-to-three-gpp-ch-calibration.compute_ecdf_value ( list ecdf,
float data_points )

Given an ECDF and data points belonging to its domain, returns their associated EDCF value.

Parameters
ecdfThe ECDF, represented as a sorted list of samples.
data_pointsA list of data points belonging to the same domain as the samples.
Returns
The ECDF value of the domain points of the specified ECDF

Definition at line 266 of file two-ray-to-three-gpp-ch-calibration.py.

Referenced by compute_anderson_darling_measure().

+ Here is the caller graph for this function:

◆ compute_ftr_mean()

two-ray-to-three-gpp-ch-calibration.compute_ftr_mean ( FtrParams params)

Computes the mean of the FTR fading model, given a specific set of parameters.

Parameters
paramsThe FTR fading model parameters.

Definition at line 215 of file two-ray-to-three-gpp-ch-calibration.py.

◆ compute_ftr_th_mean()

two-ray-to-three-gpp-ch-calibration.compute_ftr_th_mean ( FtrParams params)

Computes the mean of the FTR fading model using the formula reported in the corresponding paper, given a specific set of parameters.

Parameters
paramsThe FTR fading model parameters.

Definition at line 229 of file two-ray-to-three-gpp-ch-calibration.py.

◆ fit_ftr_to_reference()

str two-ray-to-three-gpp-ch-calibration.fit_ftr_to_reference ( pd.DataFrame ref_data,
tuple ref_params_combo,
int num_params,
int num_refinements )

Estimate the FTR parameters yielding the closest ECDF to the reference one.

Uses a global search to estimate the FTR parameters yielding the best fit to the reference ECDF. Then, the search is refined by repeating the procedure in the neighborhood of the parameters identified with the global search. Such a neighborhood is determined as the interval whose center is the previous iteration best value, and the lower and upper bounds are the first lower and upper values which were previously considered, respectively.

Parameters
ref_dataThe reference data, represented as a DataFrame of samples.
ref_params_comboThe specific combination of simulation parameters corresponding to the reference ECDF
num_paramsThe number of values of each parameter in the global and local search grids.
num_refinementsThe number of local refinement search to be carried out after the global search.
Returns
An estimate of the FTR parameters yielding the closest ECDF to the reference one.

Definition at line 291 of file two-ray-to-three-gpp-ch-calibration.py.

References compute_anderson_darling_measure(), get_ftr_ecdf(), and get_sigma_from_k().

+ Here is the call graph for this function:

◆ get_ftr_ecdf()

two-ray-to-three-gpp-ch-calibration.get_ftr_ecdf ( FtrParams params,
int n_samples,
db = False )

Returns the ECDF for the FTR fading model, for a given parameter grid.

Parameters
paramsThe FTR parameters grid.
n_samplesThe number of samples of the output ECDF
dbWhether to return the ECDF with the gain expressed in dB
Returns
The ECDF for the FTR fading model

Definition at line 165 of file two-ray-to-three-gpp-ch-calibration.py.

Referenced by fit_ftr_to_reference().

+ Here is the caller graph for this function:

◆ get_sigma_from_k()

float two-ray-to-three-gpp-ch-calibration.get_sigma_from_k ( float k)

Computes the value for the FTR parameter sigma, given k, yielding a unit-mean fading process.

Parameters
kThe K parameter of the FTR fading model, which represents the ratio of the average power of the dominant components to the power of the remaining diffuse multipath.
Returns
The value for the FTR parameter sigma, given k, yielding a unit-mean fading process.

Definition at line 281 of file two-ray-to-three-gpp-ch-calibration.py.

Referenced by fit_ftr_to_reference().

+ Here is the caller graph for this function:

◆ print_cplusplus_map_from_fit_results()

two-ray-to-three-gpp-ch-calibration.print_cplusplus_map_from_fit_results ( pd.DataFrame fit,
str out_fname )
Prints to a file the results of the FTR fit, as C++ code.

Args:
  fit (pd.DataFrame): A Pandas Dataframe holding the results of the FTR fit.
  out_fname (str): The name of the file to print the C++ code to.

Definition at line 430 of file two-ray-to-three-gpp-ch-calibration.py.

References append_ftr_params_to_cpp_string().

+ Here is the call graph for this function:

◆ tqdm_joblib()

two-ray-to-three-gpp-ch-calibration.tqdm_joblib ( tqdm_object)
Context manager to patch joblib to report into tqdm progress bar given as argument.
Taken from: https://stackoverflow.com/questions/24983493/tracking-progress-of-joblib-parallel-execution

Definition at line 100 of file two-ray-to-three-gpp-ch-calibration.py.

Variable Documentation

◆ ad_meas

float two-ray-to-three-gpp-ch-calibration.ad_meas = compute_anderson_darling_measure(np.sort(ref_data["gain"]), ftr_ecdf)

Definition at line 590 of file two-ray-to-three-gpp-ch-calibration.py.

◆ ad_measures

two-ray-to-three-gpp-ch-calibration.ad_measures = []

Definition at line 567 of file two-ray-to-three-gpp-ch-calibration.py.

◆ args

two-ray-to-three-gpp-ch-calibration.args = parser.parse_args()

Definition at line 74 of file two-ray-to-three-gpp-ch-calibration.py.

◆ avg_mean

two-ray-to-three-gpp-ch-calibration.avg_mean = np.mean(mean_list)

Definition at line 514 of file two-ray-to-three-gpp-ch-calibration.py.

◆ bbox_inches

two-ray-to-three-gpp-ch-calibration.bbox_inches

Definition at line 600 of file two-ray-to-three-gpp-ch-calibration.py.

◆ c_plus_plus_out_fname

two-ray-to-three-gpp-ch-calibration.c_plus_plus_out_fname = args.c_plus_plus_out_fname

Definition at line 84 of file two-ray-to-three-gpp-ch-calibration.py.

◆ data

two-ray-to-three-gpp-ch-calibration.data

Definition at line 593 of file two-ray-to-three-gpp-ch-calibration.py.

◆ data_query

tuple two-ray-to-three-gpp-ch-calibration.data_query
Initial value:
1= (
2 "scen == @params_comb[0] and cond == @params_comb[1] and fc == @params_comb[2]"
3 )

Definition at line 570 of file two-ray-to-three-gpp-ch-calibration.py.

◆ default

two-ray-to-three-gpp-ch-calibration.default

Definition at line 28 of file two-ray-to-three-gpp-ch-calibration.py.

◆ delta

two-ray-to-three-gpp-ch-calibration.delta

Definition at line 511 of file two-ray-to-three-gpp-ch-calibration.py.

◆ df

two-ray-to-three-gpp-ch-calibration.df = pd.read_csv(ref_data_fname, sep="\t")

Data pre-processing ##.

Definition at line 490 of file two-ray-to-three-gpp-ch-calibration.py.

◆ dpi

two-ray-to-three-gpp-ch-calibration.dpi

Definition at line 599 of file two-ray-to-three-gpp-ch-calibration.py.

◆ encoding

two-ray-to-three-gpp-ch-calibration.encoding

Definition at line 546 of file two-ray-to-three-gpp-ch-calibration.py.

◆ epsilon

two-ray-to-three-gpp-ch-calibration.epsilon = float(args.epsilon)

Definition at line 88 of file two-ray-to-three-gpp-ch-calibration.py.

◆ exist_ok

two-ray-to-three-gpp-ch-calibration.exist_ok

Definition at line 566 of file two-ray-to-three-gpp-ch-calibration.py.

◆ figs_folder

two-ray-to-three-gpp-ch-calibration.figs_folder = args.figs_folder

Definition at line 86 of file two-ray-to-three-gpp-ch-calibration.py.

◆ fit

two-ray-to-three-gpp-ch-calibration.fit = pd.read_csv(fit_out_fname, delimiter="\t")

Definition at line 553 of file two-ray-to-three-gpp-ch-calibration.py.

◆ fit_ftr_to_threegpp

two-ray-to-three-gpp-ch-calibration.fit_ftr_to_threegpp = bool(args.fit_ftr_to_threegpp)

Definition at line 92 of file two-ray-to-three-gpp-ch-calibration.py.

◆ fit_line

two-ray-to-three-gpp-ch-calibration.fit_line = fit.query(data_query)

Definition at line 578 of file two-ray-to-three-gpp-ch-calibration.py.

◆ fit_out_fname

two-ray-to-three-gpp-ch-calibration.fit_out_fname = args.fit_out_fname

Definition at line 82 of file two-ray-to-three-gpp-ch-calibration.py.

◆ frequencies

two-ray-to-three-gpp-ch-calibration.frequencies = np.sort(list(set(df["fc"])))

Definition at line 497 of file two-ray-to-three-gpp-ch-calibration.py.

◆ ftr_ecdf

two-ray-to-three-gpp-ch-calibration.ftr_ecdf = get_ftr_ecdf(params, len(ref_data), db=True)

Definition at line 587 of file two-ray-to-three-gpp-ch-calibration.py.

◆ help

two-ray-to-three-gpp-ch-calibration.help

Definition at line 29 of file two-ray-to-three-gpp-ch-calibration.py.

◆ is_los

two-ray-to-three-gpp-ch-calibration.is_los = set(df["cond"])

Definition at line 496 of file two-ray-to-three-gpp-ch-calibration.py.

◆ k

two-ray-to-three-gpp-ch-calibration.k

Definition at line 524 of file two-ray-to-three-gpp-ch-calibration.py.

◆ label

two-ray-to-three-gpp-ch-calibration.label

Definition at line 593 of file two-ray-to-three-gpp-ch-calibration.py.

◆ m

two-ray-to-three-gpp-ch-calibration.m

Definition at line 581 of file two-ray-to-three-gpp-ch-calibration.py.

◆ mean_list

list two-ray-to-three-gpp-ch-calibration.mean_list = []

Definition at line 508 of file two-ray-to-three-gpp-ch-calibration.py.

◆ mean_th_list

list two-ray-to-three-gpp-ch-calibration.mean_th_list = []

Definition at line 519 of file two-ray-to-three-gpp-ch-calibration.py.

◆ num

two-ray-to-three-gpp-ch-calibration.num

Definition at line 510 of file two-ray-to-three-gpp-ch-calibration.py.

◆ num_refinements

two-ray-to-three-gpp-ch-calibration.num_refinements = int(args.num_refinements)

Definition at line 78 of file two-ray-to-three-gpp-ch-calibration.py.

◆ num_search_grid_params

two-ray-to-three-gpp-ch-calibration.num_search_grid_params = int(args.num_search_grid_params)

Definition at line 76 of file two-ray-to-three-gpp-ch-calibration.py.

◆ output_ns3_table

two-ray-to-three-gpp-ch-calibration.output_ns3_table = bool(args.output_ns3_table)

Definition at line 94 of file two-ray-to-three-gpp-ch-calibration.py.

◆ params

two-ray-to-three-gpp-ch-calibration.params = FtrParams()

Fit Fluctuating Two Ray model to the 3GPP TR 38.901 using the Anderson-Darling goodness-of-fit ##.

Definition at line 504 of file two-ray-to-three-gpp-ch-calibration.py.

◆ parents

two-ray-to-three-gpp-ch-calibration.parents

Definition at line 566 of file two-ray-to-three-gpp-ch-calibration.py.

◆ parser

two-ray-to-three-gpp-ch-calibration.parser = argp.ArgumentParser(formatter_class=argp.ArgumentDefaultsHelpFormatter)

Definition at line 25 of file two-ray-to-three-gpp-ch-calibration.py.

◆ plot_fit_results

two-ray-to-three-gpp-ch-calibration.plot_fit_results = bool(args.plot_fit_results)

Definition at line 96 of file two-ray-to-three-gpp-ch-calibration.py.

◆ preliminary_fit_test

two-ray-to-three-gpp-ch-calibration.preliminary_fit_test = bool(args.preliminary_fit_test)

Definition at line 90 of file two-ray-to-three-gpp-ch-calibration.py.

◆ rc

two-ray-to-three-gpp-ch-calibration.rc

Definition at line 560 of file two-ray-to-three-gpp-ch-calibration.py.

◆ ref_data

two-ray-to-three-gpp-ch-calibration.ref_data = df.query(data_query)

Definition at line 575 of file two-ray-to-three-gpp-ch-calibration.py.

◆ ref_data_fname

two-ray-to-three-gpp-ch-calibration.ref_data_fname = args.ref_data_fname

Definition at line 80 of file two-ray-to-three-gpp-ch-calibration.py.

◆ res

two-ray-to-three-gpp-ch-calibration.res
Initial value:
1= joblib.Parallel(n_jobs=10)(
2 joblib.delayed(fit_ftr_to_reference)(
3 df, params_comb, num_search_grid_params, num_refinements
4 )
5 for params_comb in product(scenarios, is_los, frequencies)
6 )

Definition at line 539 of file two-ray-to-three-gpp-ch-calibration.py.

◆ scenarios

two-ray-to-three-gpp-ch-calibration.scenarios = set(df["scen"])

Definition at line 495 of file two-ray-to-three-gpp-ch-calibration.py.

◆ sigma

two-ray-to-three-gpp-ch-calibration.sigma = get_sigma_from_k(k)

Definition at line 522 of file two-ray-to-three-gpp-ch-calibration.py.

◆ start

two-ray-to-three-gpp-ch-calibration.start

Definition at line 510 of file two-ray-to-three-gpp-ch-calibration.py.

◆ stop

two-ray-to-three-gpp-ch-calibration.stop

Definition at line 510 of file two-ray-to-three-gpp-ch-calibration.py.

◆ True

two-ray-to-three-gpp-ch-calibration.True

Definition at line 566 of file two-ray-to-three-gpp-ch-calibration.py.

◆ x

two-ray-to-three-gpp-ch-calibration.x

Definition at line 593 of file two-ray-to-three-gpp-ch-calibration.py.