diff --git a/openeo_processes_dask/process_implementations/math.py b/openeo_processes_dask/process_implementations/math.py index 55e2d7c2..e8d8b31b 100644 --- a/openeo_processes_dask/process_implementations/math.py +++ b/openeo_processes_dask/process_implementations/math.py @@ -1,3 +1,5 @@ +import logging + import dask import dask.array as da import numpy as np @@ -62,6 +64,8 @@ "normalized_difference", ] +logger = logging.getLogger(__name__) + def e(): return np.e @@ -290,10 +294,23 @@ def quantiles( "The process `quantiles` only allows that either the `probabilities` or the `q` parameter is set." ) - if isinstance(probabilities, list): + if isinstance(probabilities, int): + probabilities = np.arange(1.0 / probabilities, 1, 1.0 / probabilities) + + elif ( + isinstance(probabilities, list) + and len(probabilities) == 1 + and isinstance(probabilities[0], int) + ): + probabilities = np.arange(1.0 / probabilities[0], 1, 1.0 / probabilities[0]) + + elif isinstance(probabilities, list): probabilities = np.array(probabilities) if q is not None: + logger.warning( + "This parameter has been **deprecated**. Please use the parameter `probabilities` instead." + ) probabilities = np.arange(1.0 / q, 1, 1.0 / q) if data.size == 0: diff --git a/tests/test_math.py b/tests/test_math.py index 9eea0d1b..93f1037f 100644 --- a/tests/test_math.py +++ b/tests/test_math.py @@ -13,10 +13,10 @@ def test_quantiles(): ) quantiles_1 = [_round(quantile, p=2) for quantile in quantiles_1] assert quantiles_1 == [2.07, 2.14, 2.28, 2.7, 3.4, 4.5] - quantiles_2 = quantiles(data=np.array([2, 4, 4, 4, 5, 5, 7, 9]), q=4) + quantiles_2 = quantiles(data=np.array([2, 4, 4, 4, 5, 5, 7, 9]), probabilities=4) quantiles_2 = [_round(quantile, p=2) for quantile in quantiles_2] assert quantiles_2 == [4, 4.5, 5.5] - quantiles_3 = quantiles(data=np.array([-1, -0.5, np.nan, 1]), q=2) + quantiles_3 = quantiles(data=np.array([-1, -0.5, np.nan, 1]), probabilities=[2]) quantiles_3 = [_round(quantile, p=2) for quantile in quantiles_3] assert quantiles_3 == [-0.5] quantiles_4 = quantiles(