Skip to content

Commit

Permalink
iss #386 updated freq_table coverage filter to consider concurrent sp…
Browse files Browse the repository at this point in the history
…eed and direction data
  • Loading branch information
BiancaMorandi committed May 31, 2023
1 parent 13e7204 commit 4698d48
Show file tree
Hide file tree
Showing 2 changed files with 5 additions and 7 deletions.
10 changes: 4 additions & 6 deletions brightwind/analyse/analyse.py
Original file line number Diff line number Diff line change
Expand Up @@ -1224,19 +1224,17 @@ def freq_table(var_series, direction_series, var_bin_array=np.arange(-0.5, 41, 1
var_series = _convert_df_to_series(var_series).copy()
direction_series = _convert_df_to_series(direction_series).copy()

data_concurrent = pd.concat([var_series, direction_series], axis=1).dropna()

# derive monthly coverage considering var_series, direction_series inputs
monthly_coverage = coverage(pd.concat([var_series.rename('var_data'), direction_series],
axis=1)).min(axis=1).replace(np.nan, 0.0)
monthly_coverage = coverage(data_concurrent)[var_series.name + '_Coverage']

var_series, text_msg_out = _filter_out_months_based_on_coverage_threshold(pd.concat([var_series, direction_series],
axis=1)[var_series.name],
var_series, text_msg_out = _filter_out_months_based_on_coverage_threshold(data_concurrent[var_series.name],
monthly_coverage,
coverage_threshold,
analysis_type='frequency table',
seasonal_adjustment=seasonal_adjustment)

data_concurrent = pd.concat([var_series, direction_series], axis=1).dropna()

# If `target_freq_table_mean` is given as input to function then derive scale factor as ratio of
# `target_freq_table_mean` and `data_concurrent` means.
# This scale factor is used to correct `var_series` when concurrent with `direction_series`.
Expand Down
2 changes: 1 addition & 1 deletion tests/test_analyse.py
Original file line number Diff line number Diff line change
Expand Up @@ -314,7 +314,7 @@ def test_freq_table():

rose, freq_table = bw.freq_table(DATA.Spd40mN, DATA.Dir38mS, return_data=True, coverage_threshold=0.5,
target_freq_table_mean=8)
assert round(bw.export.export._calc_mean_speed_of_freq_tab(freq_table), 3) == 8
assert round(bw.export.export._calc_mean_speed_of_freq_tab(freq_table), 2) == 8


def test_dist():
Expand Down

0 comments on commit 4698d48

Please sign in to comment.