From 8860ca9aff5b9b54ccdd0afda9f3f17e9b480976 Mon Sep 17 00:00:00 2001
From: Michael Rudolf <rudolf@geo.tu-darmstadt.de>
Date: Thu, 28 Nov 2024 15:06:23 +0100
Subject: [PATCH] Fixed a bug where nan values were not removed correctly

---
 u4py/analysis/inversion.py                      | 17 +++++++++--------
 .../regional_case_studies/NeoTect_URG_PSI.py    |  4 ++--
 2 files changed, 11 insertions(+), 10 deletions(-)

diff --git a/u4py/analysis/inversion.py b/u4py/analysis/inversion.py
index db79228..ac87443 100644
--- a/u4py/analysis/inversion.py
+++ b/u4py/analysis/inversion.py
@@ -270,7 +270,7 @@ def invert_time_series(
     including *ALL* stations and not solve this for each single station. You do
     that by concatenating all stations and components into one big G-Matrix.
     """
-    _clean_inputs(data)
+    data = _clean_inputs(data)
     if not ind:
         ind = slice(len(data["t"]))
         ori = True
@@ -340,15 +340,16 @@ def _clean_inputs(data: dict):
     :type data: dict
     """
     logging.info("Cleaning inputs.")
-    ind = np.nonzero(
-        np.isfinite(data["dataN"])
-        | np.isfinite(data["dataE"])
-        | np.isfinite(data["dataU"])
-    )
-
     for kk in data.keys():
         if isinstance(data[kk], np.ndarray) and kk != "inversion_results":
-            data[kk] = data[kk][ind]
+            ind = np.isfinite(data[kk])
+            for ll in data.keys():
+                if (
+                    isinstance(data[ll], np.ndarray)
+                    and kk != "inversion_results"
+                ):
+                    data[ll] = data[ll][ind]
+    return data
 
 
 def _invert(
diff --git a/u4py/scripts/examples/regional_case_studies/NeoTect_URG_PSI.py b/u4py/scripts/examples/regional_case_studies/NeoTect_URG_PSI.py
index dc2b4cf..1b2bf10 100644
--- a/u4py/scripts/examples/regional_case_studies/NeoTect_URG_PSI.py
+++ b/u4py/scripts/examples/regional_case_studies/NeoTect_URG_PSI.py
@@ -21,7 +21,7 @@ import u4py.utils.projects as u4proj
 def main():
     project = u4proj.get_project(
         proj_path=Path(
-            r"~\Documents\ArcGIS\U4_projects\Examples\PSI_Fit_FFM_Regions_BBD+EGMS.u4project"
+            r"~/Documents/umwelt4/Bericht_FFM_BBD_EGMS.u4project"
         ).expanduser(),
         required=[
             "base_path",
@@ -62,7 +62,7 @@ def main():
     )
     results_log = []
     os.makedirs(processing_path, exist_ok=True)
-
+    os.makedirs(project["paths"]["output_path"], exist_ok=True)
     # Loading Data
     regions = u4files.get_rois(project["paths"]["piloten_path"])
     for name, roi in tqdm(regions, desc="Reading Data and Creating Plots"):
-- 
GitLab