From 969b9e633d4895c25f64c2b4d5c177fe19037afb Mon Sep 17 00:00:00 2001 From: JuLa96 <206707905+JuLa96@users.noreply.github.com> Date: Wed, 19 Aug 2026 17:19:49 +0200 Subject: [PATCH] adapt getInput.getAndCheckInputFiles() in order to support csv-files generalize DFAtools.normalize() in order to handle 2D-vectors modify test_com1DFA.py due to modified function DFAtls.normalize() --- avaframe/com1DFA/DFAtools.py | 15 +++++++++++---- avaframe/in1Data/getInput.py | 6 ++++-- avaframe/tests/test_com1DFA.py | 20 +++++++++++++++++--- 3 files changed, 32 insertions(+), 9 deletions(-) diff --git a/avaframe/com1DFA/DFAtools.py b/avaframe/com1DFA/DFAtools.py index 532ee565e..e22176c4f 100644 --- a/avaframe/com1DFA/DFAtools.py +++ b/avaframe/com1DFA/DFAtools.py @@ -128,10 +128,17 @@ def normalize(x, y, z): z component of the normalized vector """ norme = norm(x, y, z) - ind = np.where(norme > 0) - x[ind] = x[ind] / norme[ind] - y[ind] = y[ind] / norme[ind] - z[ind] = z[ind] / norme[ind] + # elementwise division by norme + factor = np.divide( + 1.0, + norme, + out=np.zeros_like(norme, dtype=float), + where=norme > 0, + ) + + x = x * factor + y = y * factor + z = z * factor return x, y, z diff --git a/avaframe/in1Data/getInput.py b/avaframe/in1Data/getInput.py index 31e6f6f62..bc1fa8d9d 100644 --- a/avaframe/in1Data/getInput.py +++ b/avaframe/in1Data/getInput.py @@ -355,7 +355,7 @@ def getAndCheckInputFiles(inputDir, folder, inputType, fileExt="shp", fileSuffix inputType : str type of input (used for the logging messages). fileExt: str, list - file extension e.g. shp, asc, tif - optional; default is shp + file extension e.g. shp, asc, tif, csv - optional; default is shp fileSuffix: str file name part before extension @@ -365,10 +365,12 @@ def getAndCheckInputFiles(inputDir, folder, inputType, fileExt="shp", fileSuffix path to file checked available: str Yes or No depending on if there is a file available (if No, OutputFile is None) + fileTypeFormat: str + file type format """ available = "No" - supportedFileFormats = [".shp", ".asc", ".tif"] + supportedFileFormats = [".shp", ".asc", ".tif", ".csv"] # Define the directory to search and the extensions if fileExt == "": diff --git a/avaframe/tests/test_com1DFA.py b/avaframe/tests/test_com1DFA.py index 9e136e9f4..73db01ce3 100644 --- a/avaframe/tests/test_com1DFA.py +++ b/avaframe/tests/test_com1DFA.py @@ -3313,10 +3313,24 @@ def test_adaptDEM(): demAdapted, fieldsAdapted = com1DFA.adaptDEM(demInput, fieldsInput, cfg["GENERAL"]) for key in demAdapted.keys(): - assert np.all(demAdapted[key] == dem[key]) + if isinstance(demAdapted[key], np.ndarray): + assert np.allclose( + demAdapted[key], + dem[key], + equal_nan=True, + ) + else: + assert np.all(demAdapted[key] == dem[key]) for key in fieldsAdapted.keys(): - assert np.all(fieldsAdapted[key] == fields[key]) - + if isinstance(fieldsAdapted[key], np.ndarray): + assert np.allclose( + fieldsAdapted[key], + fields[key], + equal_nan=True, + ) + else: + assert np.all(fieldsAdapted[key] == fields[key]) + fields["FTEnt"] = np.zeros_like(fields["FTDet"]) fields["FTDet"] = np.array( [