Skip to content

Commit 96897ac

Browse files
committed
Include userdefined energy carrier if they are in the json file
1 parent af6a0f0 commit 96897ac

1 file changed

Lines changed: 46 additions & 0 deletions

File tree

src/multi_vector_simulator/C0_data_processing.py

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
import os
2626
import sys
2727
import pprint as pp
28+
import jsonschema
2829
import pandas as pd
2930
import warnings
3031
from multi_vector_simulator.version import version_num
@@ -37,6 +38,8 @@
3738
FILENAME,
3839
HEADER,
3940
JSON_PROCESSED,
41+
WEIGHTS_ENERGY_CARRIER,
42+
DEFAULT_WEIGHTS_ENERGY_CARRIERS,
4043
)
4144

4245
from multi_vector_simulator.utils.exceptions import MaximumCapValueInvalid
@@ -70,6 +73,8 @@ def all(dict_values):
7073
# C1.check_input_values(dict_values)
7174
# todo Check, whether files (demand, generation) are existing
7275

76+
process_user_energy_carrier_weights(dict_values)
77+
7378
# Adds costs to each asset and sub-asset, adds time series to assets
7479
process_all_assets(dict_values)
7580

@@ -1744,6 +1749,47 @@ def treat_multiple_flows(dict_asset, dict_values, parameter):
17441749
dict_asset[parameter].update({"values_info": values_info})
17451750

17461751

1752+
def process_user_energy_carrier_weights(dict_values):
1753+
"""
1754+
Parameters
1755+
----------
1756+
dict_asset:
1757+
dictionary of the asset
1758+
"""
1759+
if WEIGHTS_ENERGY_CARRIER in dict_values:
1760+
1761+
SCHEMA = {
1762+
"type": "object",
1763+
"properties": {
1764+
"objects": {
1765+
"type": "object",
1766+
"additionalProperties": {
1767+
"type": "object",
1768+
"properties": {
1769+
UNIT: {"type": "string"},
1770+
VALUE: {"type": "number"},
1771+
"energy_carrier_unit": {"type": "string"},
1772+
"information source": {"type": "string"},
1773+
"CO2 per energy_carrier_unit": {"type": "number"},
1774+
},
1775+
"required": [UNIT, VALUE,],
1776+
},
1777+
}
1778+
},
1779+
}
1780+
1781+
try:
1782+
jsonschema.validate(dict_values[WEIGHTS_ENERGY_CARRIER], SCHEMA)
1783+
valid_json = True
1784+
except jsonschema.exceptions.ValidationError:
1785+
valid_json = False
1786+
# TODO log validation error
1787+
1788+
if valid_json is True:
1789+
DEFAULT_WEIGHTS_ENERGY_CARRIERS.update(dict_values[WEIGHTS_ENERGY_CARRIER])
1790+
logging.info("Added user custom energy carrier weights")
1791+
1792+
17471793
# reads timeseries specifically when the need comes from a multiple or output busses situation
17481794
# returns the timeseries. Does not update any dictionary
17491795
def get_timeseries_multiple_flows(settings, dict_asset, file_name, header):

0 commit comments

Comments
 (0)