Technology of a technological process in the model is used to convert input commodities into output commodities with consumption or production of auxiliary commodities linked to other parameters or variables of the technology. A broad set of parameters provides flexibility to model various technological processes, including efficiency, availability, costs, and exogenous shocks (weather factors).
Slots
namecharacter. Name of the technology, used in sets.
desccharacter. Optional description of the technology for reference.
inputdata.frame. Main commodities input. Main commodities are linked to the process capacity and activity. Their parameters are defined in the
ceffslot.- comm
character. Name of the input commodity.
- unit
character. Unit of the input commodity.
- group
character. Name of input-commodities-group.
- combustion
numeric. combustion factor from 0 to 1 (default 1) to calculate emissions from fuels combustion (commodities intermediate consumption, more broadly)
outputdata.frame. Main commodities output. Main commodities are linked to the process capacity and activity. Their parameters are defined in the
ceffslot.- comm
character. Name of the output commodity.
- unit
character. Unit of the output commodity.
- group
character. Name of output-commodities-group.
auxdata.frame. Auxilary commodities, both input and output, their parameters are defined in the
aeffslot.- acomm
character. Name of the auxilary commodity.
- unit
character. Unit of the auxilary commodity.
unitsdata.frame. Key units of the process activity and capacity (for reference).
- capacity
character. Unit of capacity
- use
character. Unit of 'use' (grouped input) if applicable.
- activity
character. Unit of activity variable of the technology.
- costs
character. Currency of costs variable of the technology.
groupdata.frame. Details for commodity groups if defined in input and output slots (for reference).
- group
character. Name of the group. Must match the group names in the input and output slots.
- desc
character. Description of the group.
- unit
character. Unit of the group.
cap2actnumeric. Capacity to activity ratio. Default is 1. Specifies how much product (activity, or output commodity if identical) will be produced per unit of capacity.
geffdata.frame. Input-commodity-group efficiency parameters.
- vintage
character. Vintage label selecting the technology variant this row applies to, NA for every vintage. See the
vintageslot.- cluster
character. Cluster label selecting the technology variant this row applies to, NA for every cluster. See the
vintageslot.- region
character. Name of region to apply the parameter, NA for every region.
- year
integer. Year to apply the parameter, NA for every year.
- timeslice
character. Name of timeslice to apply the parameter, NA for every timeslice.
- group
character. Name of group to apply the parameter. Required, must match the group names in the input and output slots.
- ginp2use
numeric. Group-input-to-use coefficient, default is 1.
ceffdata.frame. Main commodity and activity efficiency parameters.
- vintage
character. Vintage label selecting the technology variant this row applies to, NA for every vintage. See the
vintageslot.- cluster
character. Cluster label selecting the technology variant this row applies to, NA for every cluster. See the
vintageslot.- region
character. Region name to apply the parameter, NA for every region.
- year
integer. Year to apply the parameter, NA for every year.
- timeslice
character. Name of timeslice to apply the parameter, NA for every timeslice.
- comm
character. Name of commodity to apply the parameter, different parameters require specification either input or output commodity.
- cinp2use
numeric. Commodity-input-to-use coefficient, default is 1.
- use2cact
numeric. Use-to-commodity-activity coefficient, default is 1.
- cact2cout
numeric. Commodity-activity-to-commodity-output coefficient, default is 1.
- cinp2ginp
numeric. Commodity-input-to-group-input coefficient, default is 1.
- share.lo
numeric. Lower bound on a share of commodity within a group, default is 0.
- share.up
numeric. Upper bound on a share of commodity within a group, default is 1.
- share.fx
numeric. Fixed share of commodity within a group, ignored if NA. This parameter overrides
share.loandshare.up.- afc.lo
numeric. Lower bound on the per-commodity availability factor: bounds this commodity's input or output flow relative to installed capacity (times
cap2act), the commodity-level analogue ofaf.lo. Ignored if NA.- afc.up
numeric. Upper bound on the per-commodity availability factor: bounds this commodity's input or output flow relative to installed capacity (times
cap2act), the commodity-level analogue ofaf.up. Ignored if NA.- afc.fx
numeric. Fixed per-commodity availability factor, ignored if NA. This parameter overrides
afc.loandafc.up.
aeffdata.frame. Parameters linking main commodities, activities, and capacities to auxiliary commodities.
- vintage
character. Vintage label selecting the technology variant this row applies to, NA for every vintage. See the
vintageslot.- cluster
character. Cluster label selecting the technology variant this row applies to, NA for every cluster. See the
vintageslot.- region
character. Region name to apply the parameter, NA for every region.
- year
integer. Year to apply the parameter, NA for every year.
- timeslice
character. Name of timeslice to apply the parameter, NA for every timeslice.
- acomm
character. Name of auxilary commodity to apply the parameter.
- cinp2ainp
numeric. Main-commodity-input-to-auxilary-commodity-input coefficient, ignored if NA.
- cinp2aout
numeric. Main-commodity-input-to-auxilary-commodity-output coefficient, ignored if NA.
- cout2ainp
numeric. Main-commodity-output-to-auxilary-commodity-input coefficient, ignored if NA.
- cout2aout
numeric. Main-commodity-output-to-auxilary-commodity-output coefficient, ignored if NA.
- act2ainp
numeric. Technology-activity-to-auxilary-commodity-input coefficient, ignored if NA.
- act2aout
numeric. Technology-activity-to-auxilary-commodity-output coefficient, ignored if NA.
- cap2ainp
numeric. Technology-capacity-to-auxilary-commodity-input coefficient, ignored if NA.
- cap2aout
numeric. Technology-capacity-to-auxilary-commodity-output coefficient, ignored if NA.
- ncap2ainp
numeric. Aux commodity consumed per unit of NEW capacity – a one-time charge at construction (materials, embodied energy), ignored if NA. NO
pTimesliceShareis applied and the aux balance is PER TIMESLICE, so a value given withtimeslice = NAapplies in EVERY slice and the annual total comes out multiplied by the slice count – 8760x on an hourly calendar. Give a per-slice value, or name a single slice.- ncap2aout
numeric. Technology-new-capacity-to-auxilary-commodity-output coefficient, ignored if NA.
- pho2ainp
numeric. Aux commodity CONSUMED when capacity reaches the END OF ITS LIFE (demolition energy, labour). Multiplies the per-year phase-out FLOW, so the charge lands ONCE – in the milestone where the capacity disappears – not every year it stood. NO
pTimesliceShareis applied and the aux balance is PER TIMESLICE, so a value given withtimeslice = NAapplies in EVERY slice and the annual total comes out multiplied by the slice count – 8760x on an hourly calendar. Give a per-slice value, or name a single slice.- pho2aout
numeric. Aux commodity RELEASED when capacity reaches the END OF ITS LIFE (demolition waste, recovered material). Fires even when
optimizeRetirementis FALSE, which is the usual case. NOpTimesliceShareis applied and the aux balance is PER TIMESLICE, so a value given withtimeslice = NAapplies in EVERY slice and the annual total comes out multiplied by the slice count – 8760x on an hourly calendar. Give a per-slice value, or name a single slice.- ret2ainp
numeric. Aux commodity CONSUMED when capacity is retired EARLY. Separate from
pho2ainpbecause the two differ physically: scrapping an intact plant is not the same job as demolishing a worn-out one. NOpTimesliceShareis applied and the aux balance is PER TIMESLICE, so a value given withtimeslice = NAapplies in EVERY slice and the annual total comes out multiplied by the slice count – 8760x on an hourly calendar. Give a per-slice value, or name a single slice.- ret2aout
numeric. Aux commodity RELEASED when capacity is retired EARLY (scrap). Usually LARGER than
pho2aout: a plant retired before its time is still largely intact, so more material is recoverable. NOpTimesliceShareis applied and the aux balance is PER TIMESLICE, so a value given withtimeslice = NAapplies in EVERY slice and the annual total comes out multiplied by the slice count – 8760x on an hourly calendar. Give a per-slice value, or name a single slice.
afdata.frame. Timeslice-level availability factor parameters, bounding activity in each timeslice relative to installed capacity.
af.upis the maximum capacity factor per timeslice (what PyPSA callsp_max_puand OSeMOSYS callsCapacityFactor);af.lois a must-run floor. Seeafsfor timeframe-level (e.g. annual) bounds andceff$afc.*for per-commodity bounds.- vintage
character. Vintage label selecting the technology variant this row applies to, NA for every vintage. See the
vintageslot.- cluster
character. Cluster label selecting the technology variant this row applies to, NA for every cluster. See the
vintageslot.- region
character. Region name to apply the parameter, NA for every region.
- year
integer. Year to apply the parameter, NA for every year.
- timeslice
character. Name of timeslice to apply the parameter, NA for every timeslice.
- af.lo
numeric. Lower bound on the availability factor, default is 0.
- af.up
numeric. Upper bound on the availability factor, default is 1.
- af.fx
numeric. Fixed availability factor, ignored if NA. This parameter overrides
af.loandaf.up.- rampup
numeric. Ramping-up time constraint RHS value, ignored if NA. Depends on the technology timeframe.
- rampdown
numeric. Ramping-down time constraint RHS value, ignored if NA. Depends on the technology timeframe.
afsdata.frame. Timeframe-level availability factor constraints, bounding activity summed over all child timeslices of the named timeslice relative to installed capacity. With
timeslice = "ANNUAL"this is the annual capacity-factor bound (TIMESNCAP_AFS, OSeMOSYSAvailabilityFactor), e.g.afs.lo = 0.4requires at least 40% annual utilization. Unlikeaf,afsrows are not disaggregated to finer timeslices; they always constrain the sum over the given timeframe.- vintage
character. Vintage label selecting the technology variant this row applies to, NA for every vintage. See the
vintageslot.- cluster
character. Cluster label selecting the technology variant this row applies to, NA for every cluster. See the
vintageslot.- region
character. Region name to apply the parameter, NA for every region.
- year
integer. Year to apply the parameter, NA for every year.
- timeslice
character. Name of timeslice to apply the parameter, required.
- afs.lo
numeric. Lower bound on the availability factor for the timeframe, default is 0.
- afs.up
numeric. Upper bound on the availability factor for the timeframe, default is
Inf(unbounded), in contrast toaf.upwhich defaults to 1.- afs.fx
numeric. Fixed availability factor for the timeframe, ignored if NA. This parameter overrides
afs.loandafs.up.
weatherdata.frame. Parameters linking
weather factors(external shocks specified byweatherclass) to the availability parametersaf,afs, andafc.- vintage
character. Vintage label selecting the technology variant this row applies to, NA for every vintage. See the
vintageslot.- cluster
character. Cluster label selecting the technology variant this row applies to, NA for every cluster. See the
vintageslot.- weather
character. Name of the applied weather factor, required, must match the weather factor names in a
weatherclass in the model.- comm
character. Name of the commodity with specified
afc.*to be affected by the weather factor, required ifafc.*parameters are specified.- wafc.lo
numeric. Multiplying coefficient to the lower bound on the commodity availability parameter
afc.lo, ignored if NA.- wafc.up
numeric. Multiplying coefficient to the upper bound on the commodity availability parameter
afc.up, ignored if NA.- wafc.fx
numeric. Multiplying coefficient to the fixed value of the commodity availability parameter
afc.fx, ignored if NA. This parameter overrideswafc.loandwafc.up.- waf.lo
numeric. Multiplying coefficient to the lower bound on the availability factor parameter
af.lo, ignored if NA.- waf.up
numeric. Multiplying coefficient to the upper bound on the availability factor parameter
af.up, ignored if NA.- waf.fx
numeric. Multiplying coefficient to the fixed value on the availability factor parameter
af.fx, ignored if NA. This parameter overrideswaf.loandwaf.up.- wafs.up
numeric. Multiplying coefficient to the upper bound on the availability factor parameter
afs.up, ignored if NA.- wafs.lo
numeric. Multiplying coefficient to the lower bound on the availability factor parameter
afs.lo, ignored if NA.- wafs.fx
numeric. Multiplying coefficient to the fixed value on the availability factor parameter
afs.fx, ignored if NA. This parameter overrideswafs.loandwafs.up.
fixomdata.frame. Fixed operational and maintenance cost (per unit of capacity a year).
- vintage
character. Vintage label selecting the technology variant this row applies to, NA for every vintage. See the
vintageslot.- cluster
character. Cluster label selecting the technology variant this row applies to, NA for every cluster. See the
vintageslot.- region
character. Region name to apply the parameter, NA for every region.
- year
integer. Year to apply the parameter, NA for every year.
- fixom
numeric. Fixed operational and maintenance cost, default is 0.
varomdata.frame. Variable operational and maintenance cost (per unit of activity or commodity).
- vintage
character. Vintage label selecting the technology variant this row applies to, NA for every vintage. See the
vintageslot.- cluster
character. Cluster label selecting the technology variant this row applies to, NA for every cluster. See the
vintageslot.- region
character. Region name to apply the parameter, NA for every region.
- year
integer. Year to apply the parameter, NA for every year.
- timeslice
character. Name of the time-timeslice or (grand-)parent timeframe to apply the parameter, NA for every time-timeslice of the technology timeframe.
- varom
numeric. Variable operational and maintenance cost per unit of activity, default is 0.
- comm
character. Name of the commodity for which the parameter will be applied, required for
cvaromparameter.- cvarom
numeric. Variable operational and maintenance cost per unit of commodity, default is 0.
- acomm
character. Name of the auxilary commodity for which the
avaromwill be applied, required foravaromparameter.- avarom
numeric. Variable operational and maintenance cost per unit of auxilary commodity, default is 0.
invcostdata.frame. Total overnight investment costs of the project (per unit of capacity).
- vintage
character. Vintage label selecting the technology variant this row applies to, NA for every vintage. See the
vintageslot.- cluster
character. Cluster label selecting the technology variant this row applies to, NA for every cluster. See the
vintageslot.- region
character. Region name to apply the parameter, NA for every region.
- year
integer. Year to apply the parameter, NA for every year.
- invcost
numeric. Total overnight investment costs of the project (per unit of capacity), default is 0.
- wacc
numeric. Weighted average cost of capital used to annuitise
invcostfor this technology. Overrides the model-widewacc(see the modeldiscountargument). The social discount rate is never used here.- payback
numeric. Cost-recovery period in years. Where given it replaces
olifein the annuity AND in the years over which the annuity is charged, so the investment is repaid overpaybackyears while the capacity keeps operating for its full operational life. Must be positive and not exceedolife. Unset (or 0) means recover overolife. Implemented for the GLPK solver only.- eac
numeric. Equivalent annual cost, supplied directly instead of being computed from
invcost,waccand the lifetime. Where given it wins; where absent the annuity is computed. Mutually exclusive withinvcostper row.- retcost
numeric. Costs of early retirement of the technology, default is 0.
clusterdata.frame. Declaration of the technology's clusters. A cluster is a parallel sub-process of the same technology – a resource class, geography or fleet type – with its own capacity, availability and costs. This slot declares WHAT the clusters are and WHERE they exist; the per-cluster values live in the
clustercolumn of the variant-varying slots (capacity,invcost,afs,weather, ...), exactly asgroupdeclares input groups whose data lives ininput$group. Optional: when empty, cluster labels are harvested from those columns. When populated it is authoritative – a label used in a slot but not declared here raises an error instead of silently creating an extra technology with default (often unbounded) parameters.- cluster
character. Cluster label. Must match the
clustercolumn values used in the other slots.- desc
character. Human-readable description of the cluster, used in reports.
- region
character. Region the cluster exists in, NA for every region. Several rows restrict a cluster to several regions.
- order
integer. Optional display/ranking order (e.g. best to worst resource class); controls the order variants are created and reported in.
vintagedata.frame. Investment window and operational life of the technology, one row per (vintage, region, cluster). Replaces the former
start,endandolifeslots. A vintage is a separately investable variant of the technology that keeps the characteristics of its build year for its whole life; a cluster is a parallel sub-process (resource class, geography, fleet type) with its own capacity, availability and costs.- vintage
character. Vintage label, normally the build year as a string. NA for an un-vintaged technology (a single variant).
- region
character. Region name to apply the parameter, NA for every region.
- cluster
character. Cluster label, NA for every cluster.
- start
integer. The first year the technology can be installed. NA means unbounded (all horizon years up to
end); windows are user-defined and may overlap across vintages.- end
integer. The last year the technology can be installed. NA means unbounded (all horizon years from
starton).- olife
integer. Operational life of the technology if installed during optimization, in years, default is 1.
capacitydata.frame. Capacity of the installed technology (in units of capacity).
- vintage
character. Vintage label selecting the technology variant this row applies to, NA for every vintage. See the
vintageslot.- cluster
character. Cluster label selecting the technology variant this row applies to, NA for every cluster. See the
vintageslot.- region
character. Region name to apply the parameter, NA for every region.
- year
integer. Year to apply the parameter, required, values between specified years will be interpolated.
- stock
numeric. Predefined capacity of the technology in units of capacity, default is 0. This parameter also defines the exogenous capacity retirement (age-based), or exogenous capacity additions, not optimized by the model, and not included in investment costs.
- cap.lo
numeric. Lower bound on the total capacity (preexisting stock and new installations), ignored if NA.
- cap.up
numeric. Upper bound on the total capacity (preexisting stock and new installations), ignored if NA.
- cap.fx
numeric. Fixed total capacity (preexisting stock and new installations), ignored if NA. This parameter overrides
cap.loandcap.up.- ncap.lo
numeric. Lower bound on the new capacity (new installations), ignored if NA.
- ncap.up
numeric. Upper bound on the new capacity (new installations), ignored if NA.
- ncap.fx
numeric. Fixed new capacity (new installations), ignored if NA. This parameter overrides
ncap.loandncap.up.- ret.lo
numeric. Lower bound on the capacity retirement (age-based), ignored if NA.
- ret.up
numeric. Upper bound on the capacity retirement (age-based), ignored if NA.
- ret.fx
numeric. Fixed capacity retirement (age-based), ignored if NA. This parameter overrides
ret.loandret.up.
optimizeRetirementlogical. Incidates if the retirement of the technology should be optimized. Also requires the same parameter in the
modelorscenarioclass to be set to TRUE to be effective.fullYearlogical. Indicates if the technology operates on a full-year basis, i.e. where its timeslice cycle closes. Currently it affects RAMPING only (
rampslot): with TRUE (default) the preceding timeslice of the first timeslice of a group is the last timeslice of the previous group; with FALSE each parent timeframe is an independent loop. A technology without ramping constraints is unaffected. See thestorageclass, where the same flag governs the state-of-charge balance.timeframecharacter. Name of timeframe level the technology is operating. By default, the lowest level of timeframe of commodities used in the technology is applied.
regioncharacter. Vector of regions where the technology exists or can be installed. Optional. If not specified, the technology is applied to all regions. If specified, must include all regions used in other slots.
misclist. List of additional parameters that are not used in the model but can be used for reference or user-defined functions. For example, links to the source of the technology data, or other metadata. Two names are conventional:
misc$image, a path or URL to an illustration used in reports (theimagescalar of a techspec YAML file lands here), andmisc$icon, a path or URL to a small icon.
