From 2cfba1e5c50bbf3c368ee74d680ea245a23710da Mon Sep 17 00:00:00 2001
From: "raffaele.gaetano" <raffaele.gaetano@cirad.fr>
Date: Mon, 29 May 2023 22:22:45 +0200
Subject: [PATCH] WIP: normalization.

---
 OBIA/OBIABase.py | 17 ++++++++++++++++-
 1 file changed, 16 insertions(+), 1 deletion(-)

diff --git a/OBIA/OBIABase.py b/OBIA/OBIABase.py
index 8faa01e..276b359 100644
--- a/OBIA/OBIABase.py
+++ b/OBIA/OBIABase.py
@@ -218,6 +218,21 @@ class OBIABase:
         assert(self.ref_db is not None and len(self.raster_var_names)>0)
         vars = [item for sublist in self.raster_var_names for item in sublist]
         X = self.ref_db[vars].to_numpy()
+        # compute percentiles and normalize
+        p2 = np.zeros(X.shape[1])
+        p98 = np.zeros(X.shape[1])
+        for g in self.raster_groups:
+            tmp = X[:,g]
+            m,M = np.percentile(tmp, [2, 98])
+            print("For g = {}, m = {}, M = {}".format(g,m,M))
+            if isinstance(g, list):
+                for x in g:
+                    p2[x] = m
+                    p98[x] = M
+            else:
+                p2[g] = m
+                p98[g] = M
+            X[:,g] = (tmp - m)/(M - m)
         Y = self.ref_db['class'].to_numpy(dtype=int)
         G = self.ref_db['polygon_id'].to_numpy(dtype=int)
-        return X,Y,G
+        return X,Y,G,p2,p98
-- 
GitLab