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
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
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
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
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
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
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
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']: