Ejemplo n.º 1
0
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()
Ejemplo n.º 4
0
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