Esempio n. 1
0
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
Esempio n. 2
0
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']
Esempio n. 3
0
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']
Esempio n. 4
0
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']