From 8355b420030add05fd59a44b71cbec056df24dd9 Mon Sep 17 00:00:00 2001 From: ValentinaHutter <85164505+ValentinaHutter@users.noreply.github.com> Date: Tue, 19 Apr 2022 17:53:51 +0200 Subject: [PATCH 1/4] change model to id parameter --- src/openeo_processes/cubes.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/openeo_processes/cubes.py b/src/openeo_processes/cubes.py index 5b31178a..01b50f32 100644 --- a/src/openeo_processes/cubes.py +++ b/src/openeo_processes/cubes.py @@ -2142,11 +2142,11 @@ def load_ml_model(): class LoadMLModel: @staticmethod - def exec_num(model, input_filepath = 'path'): - date = os.listdir(f'{input_filepath}/jobs/{model}') + def exec_num(id, input_filepath = 'path'): + date = os.listdir(f'{input_filepath}/jobs/{id}') if len(date) > 0: date = date[0] - filepath = f'{input_filepath}/jobs/{model}/{date}/result/out_model.json' + filepath = f'{input_filepath}/jobs/{id}/{date}/result/out_model.json' model_xgb = xgb.Booster() model_xgb.load_model(filepath) return model_xgb From e13a3e96017addc170dbb3c8007d4eac91fad435 Mon Sep 17 00:00:00 2001 From: ValentinaHutter <85164505+ValentinaHutter@users.noreply.github.com> Date: Wed, 20 Apr 2022 19:37:11 +0200 Subject: [PATCH 2/4] add context parameter --- src/openeo_processes/cubes.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/openeo_processes/cubes.py b/src/openeo_processes/cubes.py index 01b50f32..25c0472b 100644 --- a/src/openeo_processes/cubes.py +++ b/src/openeo_processes/cubes.py @@ -2061,9 +2061,11 @@ def predict_random_forest(): class PredictRandomForest: @staticmethod - def exec_xar(data, model, dimension, client = None, input_filepath = None): + def exec_xar(data, model = None, dimension, client = None, context = None, input_filepath = None): if isinstance(model, str): model = load_ml_model(model, input_filepath = input_filepath) + if context is not None: + model = context if dimension in ['time', 't', 'times']: # time dimension must be converted into values dimension = get_time_dimension_from_data(data, dimension) predictor_cols = list(data.dims) From ef03a7a1e494d3f83635e017a33573a42e1b6f6b Mon Sep 17 00:00:00 2001 From: ValentinaHutter <85164505+ValentinaHutter@users.noreply.github.com> Date: Wed, 20 Apr 2022 19:39:05 +0200 Subject: [PATCH 3/4] sort prediction parameters --- src/openeo_processes/cubes.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/openeo_processes/cubes.py b/src/openeo_processes/cubes.py index 25c0472b..e4855943 100644 --- a/src/openeo_processes/cubes.py +++ b/src/openeo_processes/cubes.py @@ -2061,7 +2061,7 @@ def predict_random_forest(): class PredictRandomForest: @staticmethod - def exec_xar(data, model = None, dimension, client = None, context = None, input_filepath = None): + def exec_xar(data, dimension, model = None, context = None, client = None, input_filepath = None): if isinstance(model, str): model = load_ml_model(model, input_filepath = input_filepath) if context is not None: From 8d07d1e8b0f7f10a7794feb67d1f6dedf4021b39 Mon Sep 17 00:00:00 2001 From: ValentinaHutter <85164505+ValentinaHutter@users.noreply.github.com> Date: Mon, 25 Apr 2022 11:19:41 +0200 Subject: [PATCH 4/4] use flattendimensions --- src/openeo_processes/cubes.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/openeo_processes/cubes.py b/src/openeo_processes/cubes.py index e4855943..a2cbc4ad 100644 --- a/src/openeo_processes/cubes.py +++ b/src/openeo_processes/cubes.py @@ -2062,6 +2062,10 @@ class PredictRandomForest: @staticmethod def exec_xar(data, dimension, model = None, context = None, client = None, input_filepath = None): + unstack = False + if 'x' in data.dims and 'y' in data.dims: + data = flatten_dimensions(data=data, dimensions=["y", "x"], target_dimension="result") + unstack = True if isinstance(model, str): model = load_ml_model(model, input_filepath = input_filepath) if context is not None: @@ -2071,7 +2075,6 @@ def exec_xar(data, dimension, model = None, context = None, client = None, input predictor_cols = list(data.dims) if dimension in predictor_cols: predictor_cols.remove(dimension) - unstack = False if len(predictor_cols) == 1: stacked = data I = stacked[predictor_cols[0]].values