'vali_time_end') self.calc_validation = True if self.vali_stime and self.vali_etime else False if self.cali_stime >= self.cali_etime or ( self.calc_validation and self.vali_stime >= self.vali_etime): raise ValueError("Wrong time settings in [CALI_Settings]!") # 3. Parameters settings for specific optimization algorithm self.opt_mtd = method self.opt = None if self.opt_mtd == 'nsga2': self.opt = ParseNSGA2Config(cf, self.model.model_dir, 'CALI_NSGA2_Gen_%d_Pop_%d') # 4. (Optional) Plot settings for matplotlib self.plot_cfg = PlotConfig(cf) if __name__ == '__main__': cf, method = get_optimization_config("Execute parameters calibration.") cfg = CaliConfig(cf, method=method) print(cfg) # test the picklable of SAConfig class. import pickle s = pickle.dumps(cfg) # print(s) new_cfg = pickle.loads(s) print(new_cfg.model.model_dir)
self.initial_byinput = cf.getboolean(self.opt_mtd.upper(), 'inputpopulation') if \ cf.has_option(self.opt_mtd.upper(), 'inputpopulation') else False self.input_pareto_file = None self.input_pareto_gen = -1 if cf.has_option(self.opt_mtd.upper(), 'paretofrontsfile'): self.input_pareto_file = cf.get(self.opt_mtd.upper(), 'paretofrontsfile') if cf.has_option(self.opt_mtd.upper(), 'generationselected'): self.input_pareto_gen = cf.getint(self.opt_mtd.upper(), 'generationselected') self.scenario_dir = self.opt.out_dir + os.path.sep + 'Scenarios' UtilClass.rmmkdir(self.scenario_dir) # 5. (Optional) Plot settings for matplotlib self.plot_cfg = PlotConfig(cf) if __name__ == '__main__': cf, method = get_optimization_config('Execute scenario analysis.') cfg = SAConfig(cf, method=method) # type: SAConfig # test the picklable of SAConfig class. import pickle s = pickle.dumps(cfg) new_cfg = pickle.loads(s) # type: SAConfig print(new_cfg.model.model_dir) print('BMPs configuration unit %s, method %s' % (new_cfg.bmps_cfg_unit, new_cfg.bmps_cfg_method))