def process_spec_techs(raw_data: RawData, model_data: Data, year_vector: List[int], first_model_year: int, par_list: List[str], duration_period_sum: pd.DataFrame) -> dict: df = raw_data['base_input']['spec_techs'].copy() df = df.set_index('technology', drop=True) data = df_to_nested_dict(df) # load base techs default settings _base_tech = model_data['technology'] default = raw_data['base_tech']['default'] # load units units = model_data['units'] technology = {} for k, v in data.items(): if 'base_techs' in v.keys(): tech = _base_tech[v['base_techs']] else: tech = get_base_techs(default, v['commodity_out1'], year_vector, first_model_year, duration_period_sum) tech_dict = copy.deepcopy(dict(tech)) tech_dict = _parse_spec_techs(tech_dict, v, units, year_vector, first_model_year, par_list, duration_period_sum) technology[k] = tech_dict logger.debug('Created helper model_data structure: \'spec techs\'') return technology
def process_units(_data: RawData) -> dict: df = _data['base_input']['unit'].copy() df = df.set_index(['parameter'], drop=True) data = df_to_nested_dict(df) data = {'units': data} logger.debug('Created helper data structure: \'unit_techs\'') return data['units']
def process_spatial_locations(_data: RawData) -> dict: df = _data['base_input']['locations'].copy() df['tech'] = 'technology' df['override'] = 'override' df = df.set_index(['location', 'tech', 'technology', 'override'], drop=True) data = df_to_nested_dict(df) data = {'locations': data} logger.debug('Created helper data structure: \'locations\'') return data['locations']
def process_demand(raw_data: RawData) -> dict: df = raw_data['base_input']['demand'].copy() df = df.assign(y='year') df = df.assign(c=df.commodity) df = df.assign(d='demand') df = df.assign(n=df.node) df = df.set_index(['d', 'n', 'y', 'year', 'c']) # create nested dict from DataFrame data = df_to_nested_dict(df) logger.debug('Created helper data structure: \'demand\'') return data['demand']