From 766e45e645c07ffd58ec35fa0529a58ebeb1ffd4 Mon Sep 17 00:00:00 2001 From: Ann-Kathrin Edrich <edrich@mbd.rwth-aachen.de> Date: Mon, 2 Dec 2024 15:40:54 +0100 Subject: [PATCH] Fix user input check to accept csv for non-landslide database --- docs/source/index.rst | 9 ---- src/gui_version/create_training_data_gui.py | 9 ++-- .../utilities/properties_user_input.csv | 2 +- src/plain_scripts/create_training_data.py | 41 ++++++++++++++----- .../utilities/properties_user_input.csv | 2 +- 5 files changed, 38 insertions(+), 25 deletions(-) diff --git a/docs/source/index.rst b/docs/source/index.rst index 25295b8..0b9ed08 100644 --- a/docs/source/index.rst +++ b/docs/source/index.rst @@ -10,12 +10,3 @@ Susceptibility and Hazard mappIng fRamEwork SHIRE example example-plain - - - -Indices and tables -================== - -* :ref:`genindex` -* :ref:`modindex` -* :ref:`search` diff --git a/src/gui_version/create_training_data_gui.py b/src/gui_version/create_training_data_gui.py index a83ff3c..2c36e2d 100644 --- a/src/gui_version/create_training_data_gui.py +++ b/src/gui_version/create_training_data_gui.py @@ -265,16 +265,17 @@ class create_training_data: """ if self.properties_train['nonls_path'].split('.')[-1] == 'csv': - self.absence = pd.read_csv(self.properties_train['nonls_path']) + self.df_absence = pd.read_csv(self.properties_train['nonls_path']) - self.absence = self.absence.rename( + self.df_absence = self.df_absence.rename( columns={ self.properties_train['x_nonls']: self.properties_train['x'], self.properties_train['y_nonls']: self.properties_train['y']}) nonls_id = [ - 'nonls_event_' + str(i) for i in range(len(self.absence))] - self.absence.insert(0, self.properties_train['id'], nonls_id) + 'nonls_event_' + str(i) for i in range(len(self.df_absence))] + if self.properties_train['id'] not in self.df_absence.columns.tolist(): + self.df_absence.insert(0, self.properties_train['id'], nonls_id) self.logger.info('Absence locations added') diff --git a/src/gui_version/utilities/properties_user_input.csv b/src/gui_version/utilities/properties_user_input.csv index 80f4fef..f7f1bab 100644 --- a/src/gui_version/utilities/properties_user_input.csv +++ b/src/gui_version/utilities/properties_user_input.csv @@ -1,6 +1,6 @@ key,type,range,extension,path ls_path,str,None,csv,1 -nonls_path,str,None,nc,1 +nonls_path,str,None,"nc,csv",1 train_path,str,None,csv,1 geo_path,str,None,csv,1 feat_path,str,None,csv,1 diff --git a/src/plain_scripts/create_training_data.py b/src/plain_scripts/create_training_data.py index 87233f0..03f251c 100644 --- a/src/plain_scripts/create_training_data.py +++ b/src/plain_scripts/create_training_data.py @@ -199,19 +199,37 @@ class create_training_data: Supplement presence data with absence data. It needs to be pre-generated. """ + + if settings.path_nonls_locations.split('.')[-1] == 'csv': + self.df_absence = pd.read_csv(settings.path_nonls_locations) + + self.df_absence = self.df_absence.rename( + columns={ + settings.nonls_database_x: settings.landslide_database_x, + settings.nonls_database_y: settings.landslide_database_y}) - ds = nc.Dataset(settings.path_nonls_locations) + nonls_id = [ + 'nonls_event_' + str(i) for i in range(len(self.df_absence))] + if settings.ID not in self.df_absence.columns.tolist(): + self.df_absence.insert(0, settings.ID, nonls_id) - x = ds[settings.nonls_database_x][:].data - y = ds[settings.nonls_database_y][:].data - - self.df_absence = pd.DataFrame(index=range(len(x)), - columns=list(self.df_train.columns)) + self.logger.info('Absence locations added') + + elif settings.path_nonls_locations.split('.')[-1] == 'nc': + ds = nc.Dataset(settings.path_nonls_locations) + + x = ds[settings.nonls_database_x][:].data + y = ds[settings.nonls_database_y][:].data - self.df_absence[settings.ID] = ['nonls_event_' + str(i) - for i in range(len(x))] - self.df_absence[settings.landslide_database_x] = list(x) - self.df_absence[settings.landslide_database_y] = list(y) + self.df_absence = pd.DataFrame(index=range(len(x)), + columns=list(self.df_train.columns)) + + self.df_absence[settings.ID] = [ + 'nonls_event_' + str(i) for i in range(len(x))] + self.df_absence[settings.landslide_database_x] = list(x) + self.df_absence[settings.landslide_database_y] = list(y) + + self.logger.info('Absence locations added') def label_training_data(self): @@ -576,6 +594,9 @@ class create_training_data: """ Determine if the extent of one or several clusters are too large for local interpolation + + Input: + - Output: num_bb: list, names of clusters that need reclustering diff --git a/src/plain_scripts/utilities/properties_user_input.csv b/src/plain_scripts/utilities/properties_user_input.csv index 95a1a6c..7e159fc 100644 --- a/src/plain_scripts/utilities/properties_user_input.csv +++ b/src/plain_scripts/utilities/properties_user_input.csv @@ -1,6 +1,6 @@ key,type,range,extension,path ls_path,str,None,csv,1 -nonls_path,str,None,nc,1 +nonls_path,str,None,"nc,csv",1 train_path,str,None,csv,1 geo_path,str,None,csv,1 feat_path,str,None,csv,1 -- GitLab