def run_simulation(json_dict, **kwargs): r""" Starts MVS tool simulation from an input json file Parameters ----------- json_dict: dict json from http request Other Parameters ---------------- pdf_report: bool, optional Can generate an automatic pdf report of the simulation's results (True) or not (False) Default: False. display_output : str, optional Sets the level of displayed logging messages. Options: "debug", "info", "warning", "error". Default: "info". lp_file_output : bool, optional Specifies whether linear equation system generated is saved as lp file. Default: False. """ welcome_text = ( "\n \n Multi-Vector Simulation Tool (MVS) V" + version_num + " " + "\n Version: " + version_date + " " + '\n Part of the toolbox of H2020 project "E-LAND", ' + "Integrated multi-vector management system for Energy isLANDs" + "\n Coded at: Reiner Lemoine Institute (Berlin) " + "\n Contributors: Martha M. Hoffmann \n \n ") logging.info(welcome_text) logging.debug("Accessing script: B0_data_input_json") dict_values = data_input.convert_from_json_to_special_types(json_dict) print("") logging.debug("Accessing script: C0_data_processing") data_processing.all(dict_values) print("") logging.debug("Accessing script: D0_modelling_and_optimization") results_meta, results_main = modelling.run_oemof(dict_values) print("") logging.debug("Accessing script: E0_evaluation") evaluation.evaluate_dict(dict_values, results_main, results_meta) logging.debug("Convert results to json") epa_dict_values = data_parser.convert_mvs_params_to_epa(dict_values) output_processing.select_essential_results(epa_dict_values) json_values = output_processing.store_as_json(epa_dict_values) return json.loads(json_values)
def test_parse_pandas_series_provided_longer_time_index(self, caplog): pd_series = B0.convert_from_json_to_special_types( self.test_dict_series, time_index=self.ti_long) # collect warning message log_msg = caplog.record_tuples[0] # check it is a warning assert log_msg[1] == 30 assert ( "The time index inferred from simulation_settings is shorter as the timeserie under the field series" in log_msg[2]) assert (pd_series["series"].values == self.test_result_series.values ).all()
def test_parse_pandas_series_provided_time_index(self): pd_series = B0.convert_from_json_to_special_types( self.test_dict_series, time_index=self.ti) assert (pd_series["series"] == self.test_result_series).all()
def run_simulation(json_dict, epa_format=True, **kwargs): r""" Starts MVS tool simulation from an input json file Parameters ----------- json_dict: dict json from http request epa_format: bool, optional Specifies whether the output is formatted for EPA standards Default: True Other Parameters ---------------- pdf_report: bool, optional Can generate an automatic pdf report of the simulation's results (True) or not (False) Default: False. display_output : str, optional Sets the level of displayed logging messages. Options: "debug", "info", "warning", "error". Default: "info". lp_file_output : bool, optional Specifies whether linear equation system generated is saved as lp file. Default: False. """ display_output = kwargs.get("display_output", None) if display_output == "debug": screen_level = logging.DEBUG elif display_output == "info": screen_level = logging.INFO elif display_output == "warning": screen_level = logging.WARNING elif display_output == "error": screen_level = logging.ERROR else: screen_level = logging.INFO # Define logging settings and path for saving log logger.define_logging(screen_level=screen_level) welcome_text = ( "\n \n Multi-Vector Simulation Tool (MVS) V" + version_num + " " + "\n Version: " + version_date + " " + '\n Part of the toolbox of H2020 project "E-LAND", ' + "Integrated multi-vector management system for Energy isLANDs" + "\n Coded at: Reiner Lemoine Institute (Berlin) " + "\n Reference: https://zenodo.org/record/4610237 \n \n ") logging.info(welcome_text) logging.debug("Accessing script: B0_data_input_json") dict_values = B0.convert_from_json_to_special_types(json_dict) print("") logging.debug("Accessing script: C0_data_processing") C0.all(dict_values) print("") logging.debug("Accessing script: D0_modelling_and_optimization") results_meta, results_main = D0.run_oemof(dict_values) print("") logging.debug("Accessing script: E0_evaluation") E0.evaluate_dict(dict_values, results_main, results_meta) logging.debug("Convert results to json") if epa_format is True: epa_dict_values = data_parser.convert_mvs_params_to_epa(dict_values) json_values = F0.store_as_json(epa_dict_values) answer = json.loads(json_values) else: answer = dict_values return answer