cost_class = costs.cost_switch(args.costs) context.costs = cost_class(args.discount_rate, args.coal_price, args.gas_price, args.ccs_storage_costs) context.costs.carbon = args.carbon_price if args.coal_ccs_costs is not None: context.costs.capcost_per_kw[generators.Coal_CCS] = args.coal_ccs_costs def txcost(x): """Transmission cost expression.""" return 0 if x == 0 else 965 if x > 5000 else 16319 * pow(x, -0.332) context.costs.transmission = transmission.Transmission(txcost, args.discount_rate) context.track_exchanges = args.transmission # Set up the scenario. scenarios.supply_switch(args.supply_scenario)(context) # Apply each demand modifier in the order given on the command line. if args.demand_modifier is not None: for arg in args.demand_modifier: scenarios.demand_switch(arg)(context) if args.verbose and __name__ == '__main__': docstring = scenarios.supply_switch(args.supply_scenario).__doc__ assert docstring is not None # Prune off any doctest test from the docstring. docstring = docstring.split('\n')[0] print "supply scenario: %s (%s)" % (args.supply_scenario, docstring) print context.generators if args.trace_file is not None: try:
assert context.nsp_limit >= 0 and context.nsp_limit <= 1, \ "NSP limit must be in the interval [0,1]" # Apply each demand modifier in the order given on the command line. if args.demand_modifier is not None: for arg in args.demand_modifier: scenarios.demand_switch(arg)(context) capacities = [] replayfile = open(args.f) for line in replayfile: if re.search(r'^\s*$', line): continue if re.search(r'^\s*#', line): print line, continue if not re.search(r'^\s*\w+:\s*\[.*\]\s*.?$', line): print 'skipping malformed input:', line continue m = re.match(r'^\s*(\w+):\s*\[(.*)\]\s*.?$', line) scenario = m.group(1) print 'scenario', scenario capacities = m.group(2).split(',') scenarios.supply_switch(scenario)(context) capacities = [float(elt) for elt in capacities] # str -> float run_one(capacities) print if args.x: # pragma: no cover nem.plot(context, spills=args.spills)