Module nemo.scenarios

Supply side scenarios.

Functions

def ccgt(context)
Expand source code
def ccgt(context):
    """All gas scenario."""
    context.generators = [CCGT(WILDCARD, 0), *_pumped_hydro(),
                          *_hydro(), OCGT(WILDCARD, 0)]

All gas scenario.

def ccgt_ccs(context)
Expand source code
def ccgt_ccs(context):
    """CCGT CCS scenario."""
    # pylint: disable=redefined-outer-name
    ccgt = CCGT_CCS(WILDCARD, 0)
    ocgt = OCGT(WILDCARD, 0)
    context.generators = [ccgt, *_pumped_hydro(), *_hydro(), ocgt]

CCGT CCS scenario.

def coal_ccs(context)
Expand source code
def coal_ccs(context):
    """Coal CCS scenario."""
    coal = Coal_CCS(WILDCARD, 0)
    ocgt = OCGT(WILDCARD, 0)
    context.generators = [coal, *_pumped_hydro(), *_hydro(), ocgt]

Coal CCS scenario.

def re100(context)
Expand source code
def re100(context):
    """100% renewable electricity."""
    result = []
    # The following list is in merit order.
    for g in [PV1Axis, Wind, WindOffshore, PumpedHydroTurbine,
              Battery, Hydro, CentralReceiver, Biofuel]:
        if g == PumpedHydroTurbine:
            result += _pumped_hydro()
        elif g == Hydro:
            result += _hydro()
        elif g == Battery:
            for duration in [1, 2, 4, 8, 12, 24]:
                result += _battery(24, 0, duration, "battery")
        elif g == WindOffshore:
            cfg = configfile.get('generation', 'offshore-wind-trace')
            for column, poly in enumerate([31, 36, 38, 40]):
                result.append(g(poly, 0, cfg, column,
                                build_limit=offshore_wind_limit[poly],
                                label=f'polygon {poly} offshore'))
        elif g in [Biofuel, PV1Axis, CentralReceiver, Wind]:
            result += _every_poly(g)
        else:
            raise UnreachableError
    context.generators = result

100% renewable electricity.

def re100_dsp(context)
Expand source code
def re100_dsp(context):
    """Mostly renewables with demand side participation."""
    re100(context)
    context.generators += _demand_response()

Mostly renewables with demand side participation.

def re100_nocst(context)
Expand source code
def re100_nocst(context):
    """100% renewables, but no CST."""
    re100(context)
    newlist = [g for g in context.generators if not isinstance(g, CST)]
    context.generators = newlist

100% renewables, but no CST.

def re100_nsw(context)
Expand source code
def re100_nsw(context):
    """100% renewables in New South Wales only."""
    re100_one_region(context, regions.nsw)

100% renewables in New South Wales only.

def re100_one_region(context, region)
Expand source code
def re100_one_region(context, region):
    """100% renewables in one region only."""
    re100(context)
    context.regions = [region]
    wind, pv, cst = _one_per_poly(region)
    newlist = wind
    newlist += pv
    newlist += [g for g in context.generators if
                isinstance(g, Hydro) and g.region() is region]
    newlist += cst
    newlist += [g for g in context.generators if
                isinstance(g, Biofuel) and g.region() is region]
    context.generators = newlist

100% renewables in one region only.

def re100_qld(context)
Expand source code
def re100_qld(context):
    """100% renewables in Queensland only."""
    re100_one_region(context, regions.qld)

100% renewables in Queensland only.

def re100_south_aus(context)
Expand source code
def re100_south_aus(context):
    """100% renewables in South Australia only."""
    re100_one_region(context, regions.sa)

100% renewables in South Australia only.

def re_plus_ccs(context)
Expand source code
def re_plus_ccs(context):
    """Mostly renewables with fossil and CCS augmentation."""
    re100(context)
    coal = Black_Coal(WILDCARD, 0)
    # pylint: disable=redefined-outer-name
    coal_ccs = Coal_CCS(WILDCARD, 0)
    # pylint: disable=redefined-outer-name
    ccgt = CCGT(WILDCARD, 0)
    ccgt_ccs = CCGT_CCS(WILDCARD, 0)
    ocgt = OCGT(WILDCARD, 0)
    context.generators = [coal, coal_ccs, ccgt, ccgt_ccs] + \
        context.generators[:-4] + [ocgt]

Mostly renewables with fossil and CCS augmentation.

def re_plus_fossil(context)
Expand source code
def re_plus_fossil(context):
    """Mostly renewables with some fossil augmentation."""
    re100(context)
    context.generators = \
        [Black_Coal(WILDCARD, 0), CCGT(WILDCARD, 0)] + \
        context.generators[:-4] + [OCGT(WILDCARD, 0)]

Mostly renewables with some fossil augmentation.

def re_plus_nuclear(context)
Expand source code
def re_plus_nuclear(context):
    """Renewables with nuclear and OCGT peakers."""
    re100(context)
    context.generators = \
        [Nuclear(WILDCARD, 0)] + context.generators[:-4] + \
        [OCGT(WILDCARD, 0)]

Renewables with nuclear and OCGT peakers.

def replacement(context)
Expand source code
def replacement(context):
    """Replace the current NEM fleet, more or less."""
    context.generators = \
        [Black_Coal(WILDCARD, 0), *_pumped_hydro(), *_hydro(),
         OCGT(WILDCARD, 0)]

Replace the current NEM fleet, more or less.