From c1361816eb4d883bdd9d010049bbdb9fcfddc253 Mon Sep 17 00:00:00 2001
From: Impact <pascal.mouquet@ird.fr>
Date: Fri, 29 Mar 2019 10:40:08 +0400
Subject: [PATCH] add try/except to multiprocessing for L2A / cloud_masks /
 Indices processing errors workaround

---
 sen2chain/multi_processing.py | 34 ++++++++++++++++++++++------------
 1 file changed, 22 insertions(+), 12 deletions(-)

diff --git a/sen2chain/multi_processing.py b/sen2chain/multi_processing.py
index c90a471..917ed61 100644
--- a/sen2chain/multi_processing.py
+++ b/sen2chain/multi_processing.py
@@ -14,17 +14,21 @@ logging.basicConfig(level=logging.INFO)
 logger.setLevel(logging.INFO)
 
 def multi(product):
-    fwd = os.path.dirname(os.path.realpath(__file__))
-    logger.info("Processing {}".format(product))
-    cmd= ["setsid", "/usr/bin/python3", fwd + "/multiprocess_l2a.py", product]
-    proc = subprocess.Popen(cmd)
+    try:
+        fwd = os.path.dirname(os.path.realpath(__file__))
+        logger.info("Processing {}".format(product))
+        cmd= ["setsid", "/usr/bin/python3", fwd + "/multiprocess_l2a.py", product]
+        proc = subprocess.Popen(cmd)
 
-    l1c = L1cProduct(product)
-    l2a_identifier = l1c.identifier.replace("L1C_", "L2A_").replace("_OPER_", "_USER_")
-    l2a_prod = L2aProduct(l2a_identifier)
-    while not(l2a_prod.in_library):
-        sleep(5)
-    logger.info("End {}".format(product))
+        l1c = L1cProduct(product)
+        l2a_identifier = l1c.identifier.replace("L1C_", "L2A_").replace("_OPER_", "_USER_")
+        l2a_prod = L2aProduct(l2a_identifier)
+        while not(l2a_prod.in_library):
+            sleep(5)
+        logger.info("End {}".format(product))
+    except:
+        logger.info("Plante {}".format(product))
+        pass
     
 def l2a_multiprocessing(process_list, nb_proc=4):
     """ """
@@ -49,7 +53,10 @@ def cldidx_multiprocessing(process_list, indice_list=["NDVI", "NDWIGAO", "NDWIMC
 
 def multi_cld(l2a_identifier):
     l2a = L2aProduct(l2a_identifier)
-    l2a.process_cloud_mask_v2()
+    try:
+        l2a.process_cloud_mask_v2()
+    except:
+        pass
 
 def cld_multiprocessing(process_list, nb_proc=4):
     """ """
@@ -63,7 +70,10 @@ def multi_idx(l2a_id_idx):
     l2a_identifier = l2a_id_idx[0]
     indice = [l2a_id_idx[1]]
     l2a = L2aProduct(l2a_identifier)
-    l2a.process_indices(indice, True, True)
+    try:
+        l2a.process_indices(indice, True, True)
+    except:
+        pass
 
 def idx_multiprocessing(process_list, nb_proc=4):
     """ """
-- 
GitLab