diff --git a/code/enums.py b/code/enums.py index 7abeb4e..144d24e 100644 --- a/code/enums.py +++ b/code/enums.py @@ -95,7 +95,7 @@ class Dimension(): } # outlider factor - IQR_FACTOR = 3 + ALPHA = 0.1 _filter_thresholds = { PM2_5: (0, 999) diff --git a/code/routers/city.py b/code/routers/city.py index dbce015..10510c6 100644 --- a/code/routers/city.py +++ b/code/routers/city.py @@ -91,12 +91,9 @@ async def get_average_measurements_by_city( data = [] for dim, val_list, val_count, s_cnt in q.all(): a = np.array(val_list) - q1 = np.percentile(a, 25) - q3 = np.percentile(a, 75) - iqr = (q3 - q1) - l = q1 - iqr * Dimension.IQR_FACTOR - r = q3 + iqr * Dimension.IQR_FACTOR + l = np.percentile(a, 100 * (Dimension.ALPHA / 2)) + r = np.percentile(a, 100 * (1 - (Dimension.ALPHA / 2))) b = a[(a >= l) & (a <= r)]