def getArguments(self, parent=None): description = "The CSV export requires some information before it starts:" dialog = CustomDialog("CSV Export", description, parent) default_csv_output_path = self.getDataKWValue("CSV_OUTPUT_PATH", default="output.csv") output_path_model = DefaultPathModel(default_csv_output_path) output_path_chooser = PathChooser(output_path_model, path_label="Output file path") design_matrix_default = self.getDataKWValue("DESIGN_MATRIX_PATH", default="") design_matrix_path_model = DefaultPathModel(design_matrix_default, is_required=False, must_exist=True) design_matrix_path_chooser = PathChooser( design_matrix_path_model, path_label="Design Matrix path") all_case_list = self.getAllCaseList() list_edit = ListEditBox(all_case_list, "List of cases to export") infer_iteration_model = DefaultBooleanModel() infer_iteration_checkbox = CheckBox(infer_iteration_model, label="Infer iteration number", show_label=False) infer_iteration_checkbox.setToolTip(CSVExportJob.INFER_HELP) dialog.addOption(output_path_chooser) dialog.addOption(design_matrix_path_chooser) dialog.addOption(list_edit) dialog.addOption(infer_iteration_checkbox) dialog.addButtons() success = dialog.showAndTell() if success: design_matrix_path = design_matrix_path_model.getPath() if design_matrix_path.strip() == "": design_matrix_path = None case_list = ",".join(list_edit.getItems()) return [ output_path_model.getPath(), case_list, design_matrix_path, infer_iteration_model.isTrue() ] raise CancelPluginException("User cancelled!")
def getArguments(self, parent=None): description = "The CSV export requires some information before it starts:" dialog = CustomDialog("CSV Export", description, parent) default_csv_output_path = self.getDataKWValue("CSV_OUTPUT_PATH", default="output.csv") output_path_model = DefaultPathModel(default_csv_output_path) output_path_chooser = PathChooser(output_path_model, path_label="Output file path") design_matrix_default = self.getDataKWValue("DESIGN_MATRIX_PATH", default="") design_matrix_path_model = DefaultPathModel(design_matrix_default, is_required=False, must_exist=True) design_matrix_path_chooser = PathChooser(design_matrix_path_model, path_label="Design Matrix path") all_case_list = self.getAllCaseList() list_edit = ListEditBox(all_case_list, "List of cases to export") infer_iteration_model = DefaultBooleanModel() infer_iteration_checkbox = CheckBox(infer_iteration_model, label="Infer iteration number", show_label=False) infer_iteration_checkbox.setToolTip(CSVExportJob.INFER_HELP) dialog.addOption(output_path_chooser) dialog.addOption(design_matrix_path_chooser) dialog.addOption(list_edit) dialog.addOption(infer_iteration_checkbox) dialog.addButtons() success = dialog.showAndTell() if success: design_matrix_path = design_matrix_path_model.getPath() if design_matrix_path.strip() == "": design_matrix_path = None case_list = ",".join(list_edit.getItems()) return [output_path_model.getPath(), case_list, design_matrix_path, infer_iteration_model.isTrue()] raise CancelPluginException("User cancelled!")
def getArguments(self, parent=None): description = "The GEN_DATA RFT CSV export requires some information before it starts:" dialog = CustomDialog("Robust CSV Export", description, parent) output_path_model = DefaultPathModel("output.csv") output_path_chooser = PathChooser(output_path_model, path_label="Output file path") trajectory_model = DefaultPathModel("wellpath" , must_be_a_directory=True , must_be_a_file = False , must_exist = True) trajectory_chooser = PathChooser(trajectory_model, path_label="Trajectory file") fs_manager = self.ert().getEnkfFsManager() all_case_list = fs_manager.getCaseList() all_case_list = [case for case in all_case_list if fs_manager.caseHasData(case)] list_edit = ListEditBox(all_case_list, "List of cases to export") infer_iteration_model = DefaultBooleanModel() infer_iteration_checkbox = CheckBox(infer_iteration_model, label="Infer iteration number", show_label=False) infer_iteration_checkbox.setToolTip(GenDataRFTCSVExportJob.INFER_HELP) dialog.addOption(output_path_chooser) dialog.addOption(trajectory_chooser) dialog.addOption(list_edit) dialog.addOption(infer_iteration_checkbox) dialog.addButtons() success = dialog.showAndTell() if success: case_list = ",".join(list_edit.getItems()) try: return [output_path_model.getPath(), trajectory_model.getPath() , case_list, infer_iteration_model.isTrue()] except ValueError: pass raise CancelPluginException("User cancelled!")
def createAnalysisPage(configPanel, parent): configPanel.startPage("Analysis") r = configPanel.addRow(CheckBox(parent, "ENKF rerun", "config/analysis/enkf_rerun", "Perform rerun")) r.getter = lambda ert : ert.enkf.analysis_config_get_rerun(ert.analysis_config) r.setter = lambda ert, value : ert.enkf.analysis_config_set_rerun(ert.analysis_config, value) r = configPanel.addRow(IntegerSpinner(parent, "Rerun start", "config/analysis/rerun_start", 0, 100000)) r.getter = lambda ert : ert.enkf.analysis_config_get_rerun_start(ert.analysis_config) r.setter = lambda ert, value : ert.enkf.analysis_config_set_rerun_start(ert.analysis_config, value) r = configPanel.addRow(PathChooser(parent, "ENKF schedule file", "config/analysis/enkf_sched_file")) r.getter = lambda ert : ert.enkf.model_config_get_enkf_sched_file(ert.enkf.enkf_main_get_model_config(ert.main)) r.setter = lambda ert, value : ert.enkf.model_config_set_enkf_sched_file(ert.enkf.enkf_main_get_model_config(ert.main), str(value)) r = configPanel.addRow(ert_gui.widgets.tablewidgets.KeywordList(parent, "Local config", "config/analysis/local_config")) r.newKeywordPopup = lambda list : QtGui.QFileDialog.getOpenFileName(r, "Select a path", "") def get_local_config_files(ert): local_config = ert.enkf.enkf_main_get_local_config(ert.main) config_files_pointer = ert.enkf.local_config_get_config_files(local_config) return ert.getStringList(config_files_pointer) r.getter = get_local_config_files def add_config_file(ert, value): local_config = ert.enkf.enkf_main_get_local_config(ert.main) ert.enkf.local_config_clear_config_files(local_config) for file in value: ert.enkf.local_config_add_config_file(local_config, file) r.setter = add_config_file r = configPanel.addRow(PathChooser(parent, "Update log", "config/analysis/update_log")) r.getter = lambda ert : ert.enkf.analysis_config_get_log_path(ert.analysis_config) r.setter = lambda ert, value : ert.enkf.analysis_config_set_log_path(ert.analysis_config, str(value)) configPanel.startGroup("EnKF") r = configPanel.addRow(DoubleSpinner(parent, "Alpha", "config/analysis/enkf_alpha", 0, 100000, 2)) r.getter = lambda ert : ert.enkf.analysis_config_get_alpha(ert.analysis_config) r.setter = lambda ert, value : ert.enkf.analysis_config_set_alpha(ert.analysis_config, value) r = configPanel.addRow(CheckBox(parent, "Merge Observations", "config/analysis/enkf_merge_observations", "Perform merge")) r.getter = lambda ert : ert.enkf.analysis_config_get_merge_observations(ert.analysis_config) r.setter = lambda ert, value : ert.enkf.analysis_config_set_merge_observations(ert.analysis_config, value) enkf_mode_type = {"ENKF_STANDARD" : 10, "ENKF_SQRT" : 20} enkf_mode_type_inverted = {10 : "ENKF_STANDARD" , 20 : "ENKF_SQRT"} r = configPanel.addRow(ComboChoice(parent, enkf_mode_type.keys(), "Mode", "config/analysis/enkf_mode")) r.getter = lambda ert : enkf_mode_type_inverted[ert.enkf.analysis_config_get_enkf_mode(ert.analysis_config)] r.setter = lambda ert, value : ert.enkf.analysis_config_set_enkf_mode(ert.analysis_config, enkf_mode_type[str(value)]) r = configPanel.addRow(DoubleSpinner(parent, "Truncation", "config/analysis/enkf_truncation", 0, 1, 2)) r.getter = lambda ert : ert.enkf.analysis_config_get_truncation(ert.analysis_config) r.setter = lambda ert, value : ert.enkf.analysis_config_set_truncation(ert.analysis_config, value) configPanel.endGroup() configPanel.endPage()
must_be_a_directory=True, must_be_a_file=False, must_exist=True) trajectory_chooser = PathChooser(trajectory_model, path_label="Trajectory file") fs_manager = self.ert().getEnkfFsManager() all_case_list = fs_manager.getCaseList() all_case_list = [ case for case in all_case_list if fs_manager.caseHasData(case) ] list_edit = ListEditBox(all_case_list, "List of cases to export") infer_iteration_model = DefaultBooleanModel() infer_iteration_checkbox = CheckBox(infer_iteration_model, label="Infer iteration number", show_label=False) infer_iteration_checkbox.setToolTip(GenDataRFTCSVExportJob.INFER_HELP) dialog.addOption(output_path_chooser) dialog.addOption(trajectory_chooser) dialog.addOption(list_edit) dialog.addOption(infer_iteration_checkbox) dialog.addButtons() success = dialog.showAndTell() if success: case_list = ",".join(list_edit.getItems()) try:
def createSimulationsPage(configPanel, parent): configPanel.startPage("Simulations") r = configPanel.addRow( IntegerSpinner(parent, "Max submit", "config/simulation/max_submit", 1, 10000)) r.getter = lambda ert: ert.enkf.site_config_get_max_submit(ert.site_config) r.setter = lambda ert, value: ert.enkf.site_config_set_max_submit( ert.site_config, value) r = configPanel.addRow( IntegerSpinner(parent, "Max resample", "config/simulation/max_resample", 1, 10000)) r.getter = lambda ert: ert.enkf.model_config_get_max_resample(ert. model_config) r.setter = lambda ert, value: ert.enkf.model_config_set_max_resample( ert.model_config, value) r = configPanel.addRow(ForwardModelPanel(parent)) def get_forward_model(ert): site_config = ert.site_config installed_jobs_pointer = ert.enkf.site_config_get_installed_jobs( site_config) installed_jobs_stringlist_pointer = ert.job_queue.ext_joblist_alloc_list( installed_jobs_pointer) available_jobs = ert.getStringList(installed_jobs_stringlist_pointer, free_after_use=True) result = {'available_jobs': available_jobs} model_config = ert.model_config forward_model = ert.enkf.model_config_get_forward_model(model_config) name_string_list = ert.job_queue.forward_model_alloc_joblist( forward_model) job_names = ert.getStringList(name_string_list, free_after_use=True) forward_model_jobs = [] count = 0 for name in job_names: ext_job = ert.job_queue.forward_model_iget_job( forward_model, count) arg_string = ert.job_queue.ext_job_get_private_args_as_string( ext_job) help_text = ert.job_queue.ext_job_get_help_text(ext_job) forward_model_jobs.append((name, arg_string, help_text)) count += 1 result['forward_model'] = forward_model_jobs return result r.getter = get_forward_model def update_forward_model(ert, forward_model): forward_model_pointer = ert.enkf.model_config_get_forward_model( ert.model_config) ert.job_queue.forward_model_clear(forward_model_pointer) for job in forward_model: name = job[0] args = job[1] ext_job = ert.job_queue.forward_model_add_job( forward_model_pointer, name) ert.job_queue.ext_job_set_private_args_from_string(ext_job, args) r.setter = update_forward_model r = configPanel.addRow( PathChooser(parent, "Case table", "config/simulation/case_table")) def get_case_table(ert): return ert.enkf.model_config_get_case_table_file(ert.model_config) r.getter = get_case_table def set_case_table(ert, value): if os.path.exists(value): ert.enkf.enkf_main_set_case_table(ert.model_config, ert.nonify(value)) r.setter = set_case_table r = configPanel.addRow( PathChooser(parent, "License path", "config/simulation/license_path")) r.getter = lambda ert: ert.enkf.site_config_get_license_root_path( ert.site_config) def ls(string): if string is None: return "" else: return string r.setter = lambda ert, value: ert.enkf.site_config_set_license_root_path( ert.site_config, ls(value)) internalPanel = ConfigPanel(parent) internalPanel.startPage("Runpath") r = internalPanel.addRow( PathChooser(parent, "Runpath", "config/simulation/runpath", path_format=True)) r.getter = lambda ert: ert.enkf.model_config_get_runpath_as_char( ert.model_config) r.setter = lambda ert, value: ert.enkf.model_config_set_runpath_fmt( ert.model_config, str(value)) parent.connect(r, QtCore.SIGNAL("contentsChanged()"), lambda: r.modelEmit("runpathChanged()")) r = internalPanel.addRow( CheckBox(parent, "Pre clear", "config/simulation/pre_clear_runpath", "Perform pre clear")) r.getter = lambda ert: ert.enkf.enkf_main_get_pre_clear_runpath(ert.main) r.setter = lambda ert, value: ert.enkf.enkf_main_set_pre_clear_runpath( ert.main, value) r = internalPanel.addRow( RunpathMemberPanel(widgetLabel="Retain runpath", helpLabel="config/simulation/runpath_retain")) def get_runpath_retain_state(ert): ensemble_size = ert.enkf.enkf_main_get_ensemble_size(ert.main) result = [] for index in range(ensemble_size): state = ert.enkf.enkf_main_iget_keep_runpath(ert.main, index) result.append((index, keep_runpath_type.resolveValue(state))) return result r.getter = get_runpath_retain_state def set_runpath_retain_state(ert, items): for item in items: ert.enkf.enkf_main_iset_keep_runpath(ert.main, item.member, item.runpath_state.value()) r.setter = set_runpath_retain_state internalPanel.endPage() internalPanel.startPage("Run Template") r = internalPanel.addRow(RunTemplatePanel(parent)) def get_run_templates(ert): templates = ert.enkf.enkf_main_get_templates(ert.main) template_list = ert.enkf.ert_template_alloc_list(templates) template_names = ert.getStringList(template_list, free_after_use=True) result = [] for name in template_names: template = ert.enkf.ert_template_get_template(templates, name) template_file = ert.enkf.ert_template_get_template_file(template) target_file = ert.enkf.ert_template_get_target_file(template) arguments = ert.enkf.ert_template_get_args_as_string(template) result.append((name, template_file, target_file, arguments)) return result r.getter = get_run_templates def set_run_templates(ert, template_list): templates_pointer = ert.enkf.enkf_main_get_templates(ert.main) ert.enkf.ert_template_clear(templates_pointer) for template in template_list: ert.enkf.ert_template_add_template(templates_pointer, template[0], template[1], template[2], template[3]) r.setter = set_run_templates # r = internalPanel.addRow(MultiColumnTable(parent, "", "run_template", ["Template", "Target file", "Arguments"])) # r.getter = lambda ert : ert.getAttribute("run_template") # r.setter = lambda ert, value : ert.setAttribute("run_template", value) internalPanel.endPage() configPanel.addRow(internalPanel) configPanel.endPage()