Exemplo n.º 1
0
def create_and_run_model(override, iterative_warmstart=False):
    locations = """
        locations:
            1:
                techs: ['ccgt', 'demand_power']
                override:
                    ccgt:
                        constraints:
                            e_cap.max: 100
                    demand_power:
                        constraints:
                            r: -10
        links:
    """
    config_run = """
        mode: plan
        model: ['{techs}', '{locations}']
        subset_t: ['2005-01-01', '2005-01-02']
    """
    override = AttrDict.from_yaml_string(override)
    override.set_key('solver', solver)
    override.set_key('solver_io', solver_io)
    with tempfile.NamedTemporaryFile(delete=False) as f:
        f.write(locations.encode('utf-8'))
        f.read()
        model = common.simple_model(config_run=config_run,
                                    config_locations=f.name,
                                    override=override,
                                    path=_add_test_path('common/t_constraints_from_file'))
    model.run(iterative_warmstart)
    return model
Exemplo n.º 2
0
 def model(self):
     locations = """
         locations:
             1:
                 techs: ['ccgt', 'demand_power']
                 override:
                     ccgt:
                         constraints:
                             e_cap.max: 100
                     demand_power:
                         constraints:
                             r: -50
         metadata:
             map_boundary: [-10, 35, 5, 45]
             location_coordinates:
                 1: [40, -2]
         links:
     """
     config_run = """
         mode: plan
         model: ['{techs}', '{locations}']
         subset_t: ['2005-01-01', '2005-01-02']
     """
     with tempfile.NamedTemporaryFile(delete=False) as f:
         f.write(locations.encode('utf-8'))
         f.read()
         override_dict = AttrDict({
             'solver': solver,
             'solver_io': solver_io,
         })
         model = common.simple_model(config_run=config_run,
                                     config_locations=f.name,
                                     override=override_dict)
     model.run()
     return model
Exemplo n.º 3
0
def create_and_run_model(override, iterative_warmstart=False,
                         demand_file='demand-static_r.csv'):
    locations = """
        locations:
            1:
                techs: ['ccgt', 'demand_power', 'unmet_demand_power']
                override:
                    ccgt:
                        constraints:
                            e_cap.max: 100
                    demand_power:
                        x_map: '1: demand'
                        constraints:
                            r: file={demand_file}
        links:
    """
    config_run = """
        mode: operate
        model: ['{techs}', '{locations}']
    """
    override = AttrDict.from_yaml_string(override)
    override.set_key('solver', solver)
    override.set_key('solver_io', solver_io)
    with tempfile.NamedTemporaryFile(delete=False) as f:
        f.write(locations.format(demand_file=demand_file).encode('utf-8'))
        f.read()
        model = common.simple_model(config_run=config_run,
                                    config_locations=f.name,
                                    override=override,
                                    path=_add_test_path('common/t_time'))
    model.run(iterative_warmstart)
    return model
Exemplo n.º 4
0
def create_and_run_model(override=""):
    locations = """
        locations:
            1:
                techs: ['ccgt', 'test_storage', 'demand_power',
                        'unmet_demand_power']
                override:
                    ccgt:
                        constraints:
                            e_cap.max: 9.5
                    demand_power:
                        x_map: '1: demand'
                        constraints:
                            r: file=demand-sin_r.csv
        links:
    """
    config_run = """
        mode: plan
        model: ['{techs}', '{locations}']
        subset_t: ['2005-01-01', '2005-01-03']
    """

    override = AttrDict.from_yaml_string(override)
    override.set_key('solver', solver)
    override.set_key('solver_io', solver_io)
    with tempfile.NamedTemporaryFile(delete=False) as f:
        f.write(locations.encode('utf-8'))
        f.read()
        model = common.simple_model(config_run=config_run,
                                    config_locations=f.name,
                                    override=override)
    model.run()
    return model
Exemplo n.º 5
0
 def model(self):
     locations = """
         locations:
             1:
                 techs: ['ccgt', 'demand_power']
                 override:
                     ccgt:
                         constraints:
                             e_cap.max: 100
                     demand_power:
                         x_map: '1: demand'
                         constraints:
                             r: file=demand-sin_r.csv
         links:
     """
     config_run = """
         mode: plan
         model: ['{techs}', '{locations}']
         subset_t: ['2005-01-01', '2005-01-03']
     """
     with tempfile.NamedTemporaryFile(delete=False) as f:
         f.write(locations.encode('utf-8'))
         f.read()
         override_dict = AttrDict({
             'solver': solver,
             'solver_io': solver_io,
         })
         model = common.simple_model(config_run=config_run,
                                     config_locations=f.name,
                                     override=override_dict)
     model.run()
     return model
Exemplo n.º 6
0
def create_and_run_model(override=""):
    locations = """
        locations:
            1:
                techs: ['ccgt', 'test_conversion', 'test_conversion_plus',
                        'demand_power', 'unmet_demand_power', 'demand_heat',
                        'demand_low_T', 'demand_V_low_T', 'supply_gas',
                        'unmet_demand_heat', 'unmet_demand_low_T',
                        'unmet_demand_V_low_T']
                override:
                    ccgt:
                        constraints:
                            e_cap.max: 30
                    test_conversion:
                        constraints:
                            e_cap.max: 20
                    demand_power:
                        constraints:
                            r: -10
                    demand_heat:
                        constraints:
                            r: -6
            2:
                techs: ['demand_V_low_T', 'unmet_demand_V_low_T']
                override:
                    demand_low_T:
                        constraints:
                            e_cap.max: 0
    """
    config_run = """
        mode: plan
        model: ['{techs}', '{locations}']
        subset_t: ['2005-01-01', '2005-01-01']
    """

    override = AttrDict.from_yaml_string(override)
    override.set_key('solver', solver)
    override.set_key('solver_io', solver_io)
    with tempfile.NamedTemporaryFile(delete=False) as f:
        f.write(locations.encode('utf-8'))
        f.read()
        model = common.simple_model(config_run=config_run,
                                    config_locations=f.name,
                                    override=override)
    model.run()
    return model
Exemplo n.º 7
0
def create_and_run_model(override=""):
    locations = """
        locations:
            1:
                techs: ['ccgt', 'test_conversion', 'test_conversion_plus',
                        'demand_power', 'unmet_demand_power',
                        'demand_heat', 'unmet_demand_heat',
                        'demand_low_T', 'unmet_demand_low_T',
                        'demand_V_low_T', 'unmet_demand_V_low_T']
                override:
                    demand_power:
                            x_map: '1: demand'
                            constraints:
                                r_scale_to_peak: -10
                                r: file=demand-sin_r.csv
                    demand_heat:
                            x_map: '1: demand'
                            constraints:
                                r_scale_to_peak: -5
                                r: file=demand-sin_r.csv
                    demand_low_T:
                            constraints:
                                r: -12
                    demand_V_low_T:
                            constraints:
                                r: -12
        links:
    """
    config_run = """
        mode: plan
        model: ['{techs}', '{locations}']
        subset_t: ['2005-01-01', '2005-01-01']
    """

    override = AttrDict.from_yaml_string(override)
    override.set_key('solver', solver)
    override.set_key('solver_io', solver_io)
    with tempfile.NamedTemporaryFile(delete=False) as f:
        f.write(locations.encode('utf-8'))
        f.read()
        model = common.simple_model(config_run=config_run,
                                    config_locations=f.name,
                                    override=override)
    model.run()
    return model
Exemplo n.º 8
0
 def model(self):
     locations = """
         locations:
             1:
                 techs: []
             2:
                 techs: ['demand_power']
                 override:
                     demand_power:
                         constraints:
                             r: -90
             sub1,sub2:
                 within: 1
                 techs: ['ccgt']
                 override:
                     ccgt:
                         constraints:
                             e_cap.max: 60
         links:
             1,2:
                 hvac:
                     constraints:
                         e_eff: 0.90
                         e_cap.max: 100
     """
     config_run = """
         mode: plan
         model: ['{techs}', '{locations}']
         subset_t: ['2005-01-01', '2005-01-02']
     """
     with tempfile.NamedTemporaryFile(delete=False) as f:
         f.write(locations.encode('utf-8'))
         f.read()
         override_dict = AttrDict({
             'solver': solver,
             'solver_io': solver_io,
         })
         model = common.simple_model(config_run=config_run,
                                     config_locations=f.name,
                                     override=override_dict)
     model.run()
     return model
            else:
                y_type = 'con'
            if data[k][data_type]:
                data[k]['results'][data_type] = \
                    min_err.compare_pieces(data['Load'][data_type],
                                           data[k][data_type],
                                           [1, 2, 3, 4, 5],
                                           min_x=0,
                                           plot_results=False,
                                           y_type=y_type,
                                           slope_constraint=True)
            else:
                del data[k][data_type]

# translate result to AttrDict
resultsAttrDict = AttrDict({'pieces':{}})
for k in data.keys():
    if k is not 'Load':
        for y, v in data[k]['results']['elec']['y_eq'].items():
            resultsAttrDict.pieces.set_key(str(y) + '.eq.' + k + '.power.con',
                                           [float(i) for i in v])
        for y, v in data[k]['results']['elec']['x_eq'].items():
            resultsAttrDict.pieces.set_key(str(y) + '.eq.' + k + '.power.prod',
                                           [float(i) for i in v])
        for y, v in data[k]['results']['elec']['y_opt'].items():
            resultsAttrDict.pieces.set_key(str(y) + '.opt.' + k + '.power.con',
                                           [float(i) for i in v])
        for y, v in data[k]['results']['elec']['x_opt'].items():
            resultsAttrDict.pieces.set_key(str(y) + '.opt.' + k + '.power.prod',
                                           [float(i) for i in v])
        if 'gas' in data[k]['results']: