Skip to content
Snippets Groups Projects
Commit 112aa281 authored by paul.tresson_ird.fr's avatar paul.tresson_ird.fr
Browse files

pass sklearn related kwargs as string. closes #27

parent cbad2309
No related branches found
No related tags found
No related merge requests found
import os
import ast
import tempfile
import numpy as np
import inspect
......@@ -16,6 +17,7 @@ from qgis.core import (Qgis,
QgsProcessingParameterNumber,
QgsProcessingParameterEnum,
QgsProcessingParameterExtent,
QgsProcessingParameterString,
QgsProcessingParameterCrs,
QgsProcessingParameterDefinition,
)
......@@ -401,6 +403,7 @@ class SKAlgorithm(IAMAPAlgorithm):
SAVE_MODEL = 'SAVE_MODEL'
COMPRESS = 'COMPRESS'
RANDOM_SEED = 'RANDOM_SEED'
SK_PARAM = 'SK_PARAM'
TMP_DIR = 'iamap_reduction'
TYPE = 'proj'
......@@ -503,7 +506,6 @@ class SKAlgorithm(IAMAPAlgorithm):
)
default_index = self.method_opt.index('KMeans')
print(self.method_opt)
self.addParameter (
QgsProcessingParameterEnum(
name = self.METHOD,
......@@ -514,6 +516,16 @@ class SKAlgorithm(IAMAPAlgorithm):
)
)
self.addParameter (
QgsProcessingParameterString(
name = self.SK_PARAM,
description = self.tr(
'Arguments for the initialisation of the algorithm. If empty this goes to sklearn default. It will overwrite cluster or components arguments.'),
defaultValue = '',
optional=True,
)
)
# self.addParameter(
# QgsProcessingParameterNumber(
# name = self.THRESOLD_PCA,
......@@ -648,6 +660,13 @@ class SKAlgorithm(IAMAPAlgorithm):
parameters, self.METHOD, context)
self.method_name = self.method_opt[method_idx]
str_kwargs = self.parameterAsString(
parameters, self.SK_PARAM, context)
if str_kwargs != '':
self.passed_kwargs = ast.literal_eval(str_kwargs)
else:
self.passed_kwargs = {}
self.input_bands = [i_band -1 for i_band in self.selected_bands]
self.save_model = self.parameterAsBoolean(
......@@ -818,6 +837,10 @@ class SKAlgorithm(IAMAPAlgorithm):
if 'random_state' in kwargs_dict.keys():
kwargs_dict['random_state'] = self.seed
for key, value in self.passed_kwargs.items():
if key in kwargs_dict.keys():
kwargs_dict[key] = value
return kwargs_dict
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment