Parameters
NEMO includes a number of parameters that define data and set the terms of constraints for scenarios. As with model dimensions, parameters are specified in a NEMO scenario database. NEMO reads them from the database and uses them to build constraints at run-time. Generally, NEMO does not create separate Julia variables for parameters.
Most parameters are subscripted by one or more dimensions. Parameter tables in a scenario database refer to dimensions by their abbreviation (r
for region, t
for technology, and so on). The abbreviation serves as the name of the dimension's column, and the column should be populated with unique identifiers for the dimension (val
, name
, or id
, depending on the dimension).
Accumulated annual demand
Exogenous demand that is not time sliced. NEMO ensures the demand is met, but it may be met at any point in the specified year.
Scenario database
Table: AccumulatedAnnualDemand
Name | Type | Description |
---|---|---|
id | integer | Unique identifier for row |
r | text | Region |
f | text | Fuel |
y | text | Year |
val | real | Demand (region's energy unit) |
Annual emission limit
Maximum emissions allowed in the specified year.
Scenario database
Table: AnnualEmissionLimit
Name | Type | Description |
---|---|---|
id | integer | Unique identifier for row |
r | text | Region |
e | text | Emission |
y | text | Year |
val | real | Amount of emissions (scenario's emissions unit) |
Annual exogenous emission
Exogenously specified emissions, assumed to occur regardless of what else is happening in the energy system.
Scenario database
Table: AnnualExogenousEmission
Name | Type | Description |
---|---|---|
id | integer | Unique identifier for row |
r | text | Region |
e | text | Emission |
y | text | Year |
val | real | Amount of emissions (scenario's emissions unit) |
Availability factor
Fraction of time a technology is available to operate.
Scenario database
Table: AvailabilityFactor
Name | Type | Description |
---|---|---|
id | integer | Unique identifier for row |
r | text | Region |
t | text | Technology |
l | text | Time slice |
y | text | Year |
val | real | Fraction (0 to 1) |
Capacity of one technology unit
Increment in which endogenously determined capacity is added for a technology.
If this parameter is defined, NEMO uses an integer variable to solve for the technology's endogenous capacity. This can substantially increase model run-time. If the parameter is not defined, a continuous variable is used instead.
Scenario database
Table: CapacityOfOneTechnologyUnit
Name | Type | Description |
---|---|---|
id | integer | Unique identifier for row |
r | text | Region |
t | text | Technology |
y | text | Year |
val | real | Increment for endogenous capacity additions (region's power unit) |
Capacity to activity unit
Factor relating a region's power unit to its energy unit. See Units of measure.
Scenario database
Table: CapacityToActivityUnit
Name | Type | Description |
---|---|---|
id | integer | Unique identifier for row |
r | text | Region |
t | text | Technology |
val | real | Factor value (region's energy unit / (power unit * year)) |
Capital cost
Cost to build a unit of capacity for the specified technology.
Scenario database
Table: CapitalCost
Name | Type | Description |
---|---|---|
id | integer | Unique identifier for row |
r | text | Region |
t | text | Technology |
y | text | Year |
val | real | Cost (scenario's cost unit / region's power unit) |
Capital cost storage
Cost to build a unit of capacity for the specified storage.
Since storage is typically linked to charging and discharging technologies (see TechnologyToStorage
and TechnologyFromStorage
), and capital costs are typically defined for those technologies, it may not be necessary to use this parameter. If it is used, the costs specified by CapitalCostStorage
are added to the technology costs.
Scenario database
Table: CapitalCostStorage
Name | Type | Description |
---|---|---|
id | integer | Unique identifier for row |
r | text | Region |
s | text | Storage |
y | text | Year |
val | real | Cost (scenario's cost unit / region's energy unit) |
Note that capacity for storage is denominated in energy terms.
Default parameters
Default value for the parameter identified by tablename
.
Scenario database
Table: DefaultParams
Name | Type | Description |
---|---|---|
id | integer | Unique identifier for row |
tablename | text | Name of parameter table |
val | real | Default value |
Depreciation method
Method for calculating the salvage value of technology, storage, and transmission line capacity existing at the end of the modeling period.
1: Sinking fund depreciation (assuming the applicable discount rate is not 0; if it is, straight line depreciation is used instead)
2: Straight line depreciation
Scenario database
Table: DepreciationMethod
Name | Type | Description |
---|---|---|
id | integer | Unique identifier for row |
r | text | Region |
val | real | Depreciation method (1 or 2) |
Discount rate
Rate used to discount costs in a region.
Scenario database
Table: DiscountRate
Name | Type | Description |
---|---|---|
id | integer | Unique identifier for row |
r | text | Region |
val | real | Rate (0 to 1) |
Emission penalty
Cost of emissions.
Scenario database
Table: EmissionsPenalty
Name | Type | Description |
---|---|---|
id | integer | Unique identifier for row |
r | text | Region |
e | text | Emission |
y | text | Year |
val | real | Cost (scenario's cost unit / scenario's emissions unit) |
Emissions activity ratio
Emission factor for the indicated technology and mode.
Emission factors can be negative, and if you specify a negative emission factor for a pollutant with an externality cost, your scenario may result in negative emission penalties. In this case, you may need to constrain the associated technology's operation to avoid an unbounded (infeasible) optimization problem. For example, if a technology can generate negative emissions of a pollutant with an externality cost, the cost of building and running the technology is lower than the externality value, and there are no limits on the technology's deployment and use, the optimization problem will be unbounded.
Scenario database
Table: EmissionActivityRatio
Name | Type | Description |
---|---|---|
id | integer | Unique identifier for row |
r | text | Region |
t | text | Technology |
e | text | Emission |
m | text | Mode of operation |
y | text | Year |
val | real | Factor (scenario's emissions unit / region's energy unit) |
Fixed cost
Fixed operation and maintenance costs for a technology.
Scenario database
Table: FixedCost
Name | Type | Description |
---|---|---|
id | integer | Unique identifier for row |
r | text | Region |
t | text | Technology |
y | text | Year |
val | real | Cost (scenario's cost unit / region's power unit) |
Interest rate storage
Interest rate used to calculate financing costs for endogenously built storage capacity.
Scenario database
Table: InterestRateStorage
Name | Type | Description |
---|---|---|
id | integer | Unique identifier for row |
r | text | Region |
s | text | Storage |
y | text | Year |
val | real | Rate (0 to 1) |
Interest rate technology
Interest rate used to calculate financing costs for endogenously built technology capacity.
Scenario database
Table: InterestRateTechnology
Name | Type | Description |
---|---|---|
id | integer | Unique identifier for row |
r | text | Region |
t | text | Technology |
y | text | Year |
val | real | Rate (0 to 1) |
Input activity ratio
Factor multiplied by dispatched capacity to determine the use (input) of the specified fuel. InputActivityRatio
is used in conjunction with OutputActivityRatio
. A common approach is to:
- Set the
InputActivityRatio
for input fuels to the reciprocal of the technology's efficiency. - Set the
OutputActivityRatio
for output fuels to 1.
For example, if a technology had an efficiency of 80%, the InputActivityRatio
for inputs would be 1.25, and the OutputActivityRatio
for outputs would be 1.0.
NEMO will not simulate activity for a region, technology, mode of operation, and year unless you define a corresponding non-zero OutputActivityRatio
or InputActivityRatio
. In other words, activity is only simulated when it produces or consumes a fuel.
Scenario database
Table: InputActivityRatio
Name | Type | Description |
---|---|---|
id | integer | Unique identifier for row |
r | text | Region |
t | text | Technology |
f | text | Fuel |
m | text | Mode of operation |
y | text | Year |
val | real | Factor |
Maximum annual transmission between nodes
For the indicated fuel and year, maximum energy that can be received at the second node (n2
) via transmission from the first node (n1
). Energy received is net of any transmission losses.
Scenario database
Table: MaxAnnualTransmissionNodes
Name | Type | Description |
---|---|---|
id | integer | Unique identifier for row |
n1 | text | Node sending energy |
n2 | text | Node receiving energy |
f | text | Fuel |
y | text | Year |
val | real | Energy (energy unit for regions containing n1 and n2 ) |
Minimum annual transmission between nodes
For the indicated fuel and year, minimum energy that must be received at the second node (n2
) via transmission from the first node (n1
). Energy received is net of any transmission losses.
Scenario database
Table: MinAnnualTransmissionNodes
Name | Type | Description |
---|---|---|
id | integer | Unique identifier for row |
n1 | text | Node sending energy |
n2 | text | Node receiving energy |
f | text | Fuel |
y | text | Year |
val | real | Energy (energy unit for regions containing n1 and n2 ) |
Minimum production share
For the specified region, fuel, and year, minimum fraction of production (excluding production from storage) that must be delivered by the indicated technology.
Scenario database
Table: MinShareProduction
Name | Type | Description |
---|---|---|
id | integer | Unique identifier for row |
r | text | Region |
t | text | Technology |
f | text | Fuel |
y | text | Year |
val | real | Fraction (0 to 1) |
Minimum storage charge
Minimum fraction of a storage's capacity that must be charged. NEMO ensures the charge never drops below this level.
When this parameter is set, NEMO assumes that new storage capacity (endogenous and exogenous) is delivered with the minimum charge.
If you set a minimum storage charge, make sure the corresponding storage start level is at least as large as the minimum. Otherwise your model will be infeasible.
Scenario database
Table: MinStorageCharge
Name | Type | Description |
---|---|---|
id | integer | Unique identifier for row |
r | text | Region |
s | text | Storage |
y | text | Year |
val | real | Fraction (0 to 1) |
Minimum utilization
Minimum fraction of a technology's available capacity that must be utilized (dispatched) in a region, time slice, and year. NEMO calculates available capacity by multiplying installed capacity by the applicable availability factor parameter. If the technology is involved in nodal transmission modeling, the minimum utilization rule applies equally to all nodes in the region.
It is not necessary to specify 0 for this parameter. NEMO assumes the minimum utilization is 0 if the parameter is not set.
Scenario database
Table: MinimumUtilization
Name | Type | Description |
---|---|---|
id | integer | Unique identifier for row |
r | text | Region |
t | text | Technology |
l | text | Time slice |
y | text | Year |
val | real | Fraction (0 to 1) |
Model period emission limit
Maximum emissions allowed in the modeling period (i.e., the period bounded by the first and last years defined in the scenario database).
Scenario database
Table: ModelPeriodEmissionLimit
Name | Type | Description |
---|---|---|
id | integer | Unique identifier for row |
r | text | Region |
e | text | Emission |
val | real | Amount of emissions (scenario's emissions unit) |
Model period exogenous emission
Exogenously specified emissions, counted toward the model period emission limit regardless of what else is happening in the energy system.
Scenario database
Table: ModelPeriodExogenousEmission
Name | Type | Description |
---|---|---|
id | integer | Unique identifier for row |
r | text | Region |
e | text | Emission |
val | real | Amount of emissions (scenario's emissions unit) |
Nodal distribution demand
For the specified node and the region containing it, fraction of the region's exogenously defined demands for the specified fuel that is assigned to the node. Exogenously defined demands include specified annual demand and accumulated annual demand.
If in a given year transmission modeling is enabled for a fuel and region (see TransmissionModelingEnabled
), and the fuel has exogenous demands in the region, the sum of NodalDistributionDemand
across the nodes in the region should be 1.
Scenario database
Table: NodalDistributionDemand
Name | Type | Description |
---|---|---|
id | integer | Unique identifier for row |
n | text | Node |
f | text | Fuel |
y | text | Year |
val | real | Fraction (0 to 1) |
Nodal distribution storage capacity
For the specified node and the region containing it, fraction of the specified storage's capacity in the region that is assigned to the node.
Scenario database
Table: NodalDistributionStorageCapacity
Name | Type | Description |
---|---|---|
id | integer | Unique identifier for row |
n | text | Node |
s | text | storage |
y | text | Year |
val | real | Fraction (0 to 1) |
To enable nodal modeling for a storage, you must define NodalDistributionStorageCapacity
and activate transmission modeling for the storage's input and output fuels. Use the TransmissionModelingEnabled parameter to activate transmission modeling.
Nodal distribution technology capacity
For the specified node and the region containing it, fraction of the specified technology's capacity in the region that is assigned to the node.
Scenario database
Table: NodalDistributionTechnologyCapacity
Name | Type | Description |
---|---|---|
id | integer | Unique identifier for row |
n | text | Node |
t | text | Technology |
y | text | Year |
val | real | Fraction (0 to 1) |
Operational life
Lifetime of a technology in years. NEMO uses this parameter to:
- Retire endogenously determined capacity. If a unit of capacity is built endogenously in year
y
, NEMO will retire the capacity in yeary + OperationalLife
. - Calculate the salvage value of endogenously determined capacity remaining at the end of the modeling period (see
DepreciationMethod
).
In this way, the parameter serves as both an operational and an economic lifetime.
NEMO does not automatically retire exogenously specified technology capacity, which is defined by ResidualCapacity
. It is up to you to do so in the values you provide for ResidualCapacity
.
Scenario database
Table: OperationalLife
Name | Type | Description |
---|---|---|
id | integer | Unique identifier for row |
r | text | Region |
t | text | Technology |
val | real | Lifetime (years) |
Operational life storage
Lifetime of a storage in years. NEMO uses this parameter to:
- Retire endogenously determined capacity. If a unit of capacity is built endogenously in year
y
, NEMO will retire the capacity in yeary + OperationalLife
. - Calculate the salvage value of endogenously determined capacity remaining at the end of the modeling period (see
DepreciationMethod
).
In this way, the parameter serves as both an operational and an economic lifetime.
NEMO does not automatically retire exogenously specified storage capacity, which is defined by ResidualStorageCapacity
. It is up to you to do so in the values you provide for ResidualStorageCapacity
.
Scenario database
Table: OperationalLifeStorage
Name | Type | Description |
---|---|---|
id | integer | Unique identifier for row |
r | text | Region |
s | text | Storage |
val | real | Lifetime (years) |
Output activity ratio
Factor multiplied by dispatched capacity to determine the production (output) of the specified fuel. OutputActivityRatio
is used in conjunction with InputActivityRatio
. A common approach is to:
- Set the
InputActivityRatio
for input fuels to the reciprocal of the technology's efficiency; and - Set the
OutputActivityRatio
for output fuels to 1.
For example, if a technology had an efficiency of 80%, the InputActivityRatio
for inputs would be 1.25, and the OutputActivityRatio
for outputs would be 1.0.
NEMO will not simulate activity for a region, technology, mode of operation, and year unless you define a corresponding non-zero OutputActivityRatio
or InputActivityRatio
. In other words, activity is only simulated when it produces or consumes a fuel.
Scenario database
Table: OutputActivityRatio
Name | Type | Description |
---|---|---|
id | integer | Unique identifier for row |
r | text | Region |
t | text | Technology |
f | text | Fuel |
m | text | Mode of operation |
y | text | Year |
val | real | Factor |
Ramp rate
Fraction of a technology's available capacity that can be brought online or taken offline in a time slice and year. Ramp rates determine how quickly a technology's utilization can change. NEMO ignores ramp rates of 1.0 (i.e., 100%) since they effectively don't impose a limit.
Scenario database
Table: RampRate
Name | Type | Description |
---|---|---|
id | integer | Unique identifier for row |
r | text | Region |
t | text | Technology |
y | text | Year |
l | text | Time slice |
val | real | Fraction (0 to 1) |
Ramping reset
Indicator that determines which time slices are exempt from ramp rate limitations. NEMO can set technology utilization to any level in these time slices. The following values are supported for this parameter:
- 0 - Exempts the first time slice in each year.
- 1 - Exempts the first time slice in each time slice group 1 and year.
- 2 - Exempts the first time slice in each time slice group 2, time slice group 1, and year.
Note that because of the way time slices and groups are configured in NEMO, these values build on one another. For example, the first time slice in each year is exempted in all cases, and the first slice in each group 1 and year is exempted when the value is 2. If you don't specify a value for this parameter, NEMO assumes the value is 2.
Scenario database
Table: RampingReset
Name | Type | Description |
---|---|---|
id | integer | Unique identifier for row |
r | text | Region |
val | integer | 0, 1, or 2 |
Region group assignment
Map of regions to region groups. A region can belong to zero or more groups.
Scenario database
Table: RRGroup
Name | Type | Description |
---|---|---|
id | integer | Unique identifier for row |
rg | text | Region group |
r | text | Region |
Renewable energy minimum production target (by region)
For the specified region, fuel, and year, fraction of production that must be from renewable sources. The renewability of production is determined by RETagTechnology
: this parameter defines what fraction of a technology's production counts as renewable.
NEMO ignores production from storage when calculating target and actual levels of renewable production.
Scenario database
Table: REMinProductionTarget
Name | Type | Description |
---|---|---|
id | integer | Unique identifier for row |
r | text | Region |
f | text | Fuel |
y | text | Year |
val | real | Fraction (0 to 1) |
Renewable energy minimum production target (by region group)
For the specified region group, fuel, and year, fraction of production that must be from renewable sources. The renewability of production is determined by RETagTechnology
: this parameter defines what fraction of a technology's production counts as renewable.
NEMO ignores production from storage when calculating target and actual levels of renewable production.
Scenario database
Table: REMinProductionTargetRG
Name | Type | Description |
---|---|---|
id | integer | Unique identifier for row |
rg | text | Region group |
f | text | Fuel |
y | text | Year |
val | real | Fraction (0 to 1) |
Renewable energy tag technology
Fraction of a technology's production that counts as renewable.
Scenario database
Table: RETagTechnology
Name | Type | Description |
---|---|---|
id | integer | Unique identifier for row |
r | text | Region |
t | text | Technology |
y | text | Year |
val | real | Fraction (0 to 1) |
Reserve margin
Multiplier that defines the level of reserve production capacity for a region, fuel, and year - i.e., capacity beyond what is needed to meet production requirements. When a reserve margin is specified, NEMO ensures the total capacity of technologies tagged with ReserveMarginTagTechnology
(for the region, fuel, and year) is at least the margin times the rate of production of the fuel in each time slice. Technology capacity is pro-rated by ReserveMarginTagTechnology
in these calculations, allowing technologies to qualify differentially toward the reserve.
Scenario database
Table: ReserveMargin
Name | Type | Description |
---|---|---|
id | integer | Unique identifier for row |
r | text | Region |
f | text | Fuel |
y | text | Year |
val | real | Multiplier (e.g., 1.15 for a 15% reserve margin) |
Reserve margin tag technology
Fraction of a technology's installed capacity that counts toward the reserve margin.
Scenario database
Table: ReserveMarginTagTechnology
Name | Type | Description |
---|---|---|
id | integer | Unique identifier for row |
r | text | Region |
t | text | Technology |
f | text | Fuel |
y | text | Year |
val | real | Fraction (0 to 1) |
Residual capacity
Exogenously specified capacity for a technology. Note that NEMO does not automatically retire this capacity; it is up to you to do so in the values you provide for ResidualCapacity
.
Scenario database
Table: ResidualCapacity
Name | Type | Description |
---|---|---|
id | integer | Unique identifier for row |
r | text | Region |
t | text | Technology |
y | text | Year |
val | real | Capacity (region's power unit) |
Residual storage capacity
Exogenously specified capacity for a storage. Note that NEMO does not automatically retire this capacity; it is up to you to do so in the values you provide for ResidualStorageCapacity
.
Scenario database
Table: ResidualStorageCapacity
Name | Type | Description |
---|---|---|
id | integer | Unique identifier for row |
r | text | Region |
s | text | Storage |
y | text | Year |
val | real | Capacity (region's energy unit) |
Specified annual demand
Time-sliced exogenous demand. Use this parameter to specify the total demand in a year, and SpecifiedDemandProfile
to assign the demand to time slices. NEMO ensures the demand is met in each time slice.
Scenario database
Table: SpecifiedAnnualDemand
Name | Type | Description |
---|---|---|
id | integer | Unique identifier for row |
r | text | Region |
f | text | Fuel |
y | text | Year |
val | real | Demand (region's energy unit) |
Specified demand profile
Fraction of specified annual demand assigned to a time slice. For a given fuel and year, the sum of SpecifiedDemandProfile
across time slices should be 1.
Scenario database
Table: SpecifiedDemandProfile
Name | Type | Description |
---|---|---|
id | integer | Unique identifier for row |
r | text | Region |
f | text | Fuel |
l | text | Time Slice |
y | text | Year |
val | real | Fraction (0 to 1) |
Storage full load hours
Factor relating endogenously determined capacity for a storage and technologies that discharge it (see TechnologyFromStorage). When this parameter is specified, each unit of endogenous discharging capacity is accompanied by enough endogenous storage capacity to power it for the full load hours.
Scenario database
Table: StorageFullLoadHours
Name | Type | Description |
---|---|---|
id | integer | Unique identifier for row |
r | text | Region |
s | text | Storage |
y | text | Year |
val | real | Hours |
Storage maximum charge rate
Maximum charging rate for a storage.
When storage is linked to charging technologies (see TechnologyToStorage
), the capacity of these technologies also limits the charging rate of the storage. This can obviate StorageMaxChargeRate
in many cases.
Scenario database
Table: StorageMaxChargeRate
Name | Type | Description |
---|---|---|
id | integer | Unique identifier for row |
r | text | Region |
s | text | Storage |
val | real | Charging rate (region's energy unit / year) |
Storage maximum discharge rate
Maximum discharging rate for a storage.
When storage is linked to discharging technologies (see TechnologyFromStorage
), the capacity of these technologies also limits the discharging rate of the storage. This can obviate StorageMaxDischargeRate
in many cases.
Scenario database
Table: StorageMaxDischargeRate
Name | Type | Description |
---|---|---|
id | integer | Unique identifier for row |
r | text | Region |
s | text | Storage |
val | real | Discharging rate (region's energy unit / year) |
Storage start level
Fraction of exogenous storage capacity that is charged at the start of the first modeled year.
Scenario database
Table: StorageLevelStart
Name | Type | Description |
---|---|---|
id | integer | Unique identifier for row |
r | text | Region |
s | text | Storage |
val | real | Fraction (0 to 1) |
Technology from storage
Indicator of whether a technology can discharge a storage.
Scenario database
Table: TechnologyFromStorage
Name | Type | Description |
---|---|---|
id | integer | Unique identifier for row |
r | text | Region |
t | text | Technology |
s | text | Storage |
m | text | Mode of operation |
val | real | Indicator (0 for no, 1 for yes) |
It is not necessary to populate zeros in TechnologyFromStorage
for technologies that aren't connected to a storage. NEMO assumes no connection if a technology isn't represented in the table.
Technology to storage
Indicator of whether a technology can charge a storage.
Scenario database
Table: TechnologyToStorage
Name | Type | Description |
---|---|---|
id | integer | Unique identifier for row |
r | text | Region |
t | text | Technology |
s | text | Storage |
m | text | Mode of operation |
val | real | Indicator (0 for no, 1 for yes) |
It is not necessary to populate zeros in TechnologyToStorage
for technologies that aren't connected to a storage. NEMO assumes no connection if a technology isn't represented in the table.
Time slice group assignment
Map of time slices to time slice groups. Each time slice must belong to one time slice 1 and one time slice group 2.
Scenario database
Table: LTsGroup
Name | Type | Description |
---|---|---|
id | integer | Unique identifier for row |
l | text | Time slice |
lorder | integer | Order of time slice within time slice group 2 (1 for first time slice, incremented by 1 for each succeeding time slice) |
tg2 | text | Time slice group 2 |
tg1 | text | Time slice group 1 |
Total annual maximum capacity
Maximum capacity for a technology in a year (including both exogenous and endogenous capacity). Only specify this parameter if you want to enforce a particular limit.
Scenario database
Table: TotalAnnualMaxCapacity
Name | Type | Description |
---|---|---|
id | integer | Unique identifier for row |
r | text | Region |
t | text | Technology |
y | text | Year |
val | real | Capacity (region's power unit) |
Total annual maximum capacity investment
Maximum addition of endogenously determined capacity for a technology in a year. Only specify this parameter if you want to enforce a particular limit. This parameter is scaled up to account for non-modeled years when the calcyears
argument of calculatescenario
or writescenariomodel
is invoked. See Calculating selected years for details.
Scenario database
Table: TotalAnnualMaxCapacityInvestment
Name | Type | Description |
---|---|---|
id | integer | Unique identifier for row |
r | text | Region |
t | text | Technology |
y | text | Year |
val | real | Capacity (region's power unit) |
Total annual maximum capacity storage
Maximum capacity for a storage in a year (including both exogenous and endogenous capacity). Only specify this parameter if you want to enforce a particular limit.
Scenario database
Table: TotalAnnualMaxCapacityStorage
Name | Type | Description |
---|---|---|
id | integer | Unique identifier for row |
r | text | Region |
s | text | Storage |
y | text | Year |
val | real | Capacity (region's energy unit) |
Total annual maximum capacity investment storage
Maximum addition of endogenously determined capacity for a storage in a year. Only specify this parameter if you want to enforce a particular limit. This parameter is scaled up to account for non-modeled years when the calcyears
argument of calculatescenario
or writescenariomodel
is invoked. See Calculating selected years for details.
Scenario database
Table: TotalAnnualMaxCapacityInvestmentStorage
Name | Type | Description |
---|---|---|
id | integer | Unique identifier for row |
r | text | Region |
s | text | Storage |
y | text | Year |
val | real | Capacity (region's energy unit) |
Total annual minimum capacity
Minimum capacity for a technology in a year (including both exogenous and endogenous capacity). Only specify this parameter if you want to enforce a particular limit (other than 0, which NEMO assumes by default).
Scenario database
Table: TotalAnnualMinCapacity
Name | Type | Description |
---|---|---|
id | integer | Unique identifier for row |
r | text | Region |
t | text | Technology |
y | text | Year |
val | real | Capacity (region's power unit) |
Total annual minimum capacity investment
Minimum addition of endogenously determined capacity for a technology in a year. Only specify this parameter if you want to enforce a particular limit (other than 0, which NEMO assumes by default). This parameter is scaled up to account for non-modeled years when the calcyears
argument of calculatescenario
or writescenariomodel
is invoked. See Calculating selected years for details.
Scenario database
Table: TotalAnnualMinCapacityInvestment
Name | Type | Description |
---|---|---|
id | integer | Unique identifier for row |
r | text | Region |
t | text | Technology |
y | text | Year |
val | real | Capacity (region's power unit) |
Total annual minimum capacity storage
Minimum capacity for a storage in a year (including both exogenous and endogenous capacity). Only specify this parameter if you want to enforce a particular limit (other than 0, which NEMO assumes by default). This parameter is scaled up to account for non-modeled years when the calcyears
argument of calculatescenario
or writescenariomodel
is invoked. See Calculating selected years for details.
Scenario database
Table: TotalAnnualMinCapacityStorage
Name | Type | Description |
---|---|---|
id | integer | Unique identifier for row |
r | text | Region |
s | text | Storage |
y | text | Year |
val | real | Capacity (region's energy unit) |
Total annual minimum capacity investment storage
Minimum addition of endogenously determined capacity for a storage in a year. Only specify this parameter if you want to enforce a particular limit (other than 0, which NEMO assumes by default).
Scenario database
Table: TotalAnnualMinCapacityInvestmentStorage
Name | Type | Description |
---|---|---|
id | integer | Unique identifier for row |
r | text | Region |
s | text | Storage |
y | text | Year |
val | real | Capacity (region's energy unit) |
Total technology annual activity lower limit
Minimum nominal energy produced by a technology in a year. Nominal energy is calculated by multiplying dispatched capacity by the length of time it is dispatched. Only specify this parameter if you want to enforce a particular limit (other than 0, which NEMO assumes by default).
Scenario database
Table: TotalTechnologyAnnualActivityLowerLimit
Name | Type | Description |
---|---|---|
id | integer | Unique identifier for row |
r | text | Region |
t | text | Technology |
y | text | Year |
val | real | Nominal energy (region's energy unit) |
Total technology annual activity upper limit
Maximum nominal energy produced by a technology in a year. Nominal energy is calculated by multiplying dispatched capacity by the length of time it is dispatched. Only specify this parameter if you want to enforce a particular limit.
Scenario database
Table: TotalTechnologyAnnualActivityUpperLimit
Name | Type | Description |
---|---|---|
id | integer | Unique identifier for row |
r | text | Region |
t | text | Technology |
y | text | Year |
val | real | Nominal energy (region's energy unit) |
Total technology model period activity lower limit
Minimum nominal energy produced by a technology over the modeling period (i.e., the period bounded by the first and last years defined in the scenario database). Nominal energy is calculated by multiplying dispatched capacity by the length of time it is dispatched. Only specify this parameter if you want to enforce a particular limit (other than 0, which NEMO assumes by default).
Scenario database
Table: TotalTechnologyModelPeriodActivityLowerLimit
Name | Type | Description |
---|---|---|
id | integer | Unique identifier for row |
r | text | Region |
t | text | Technology |
val | real | Nominal energy (region's energy unit) |
Total technology model period activity upper limit
Maximum nominal energy produced by a technology over the modeling period (i.e., the period bounded by the first and last years defined in the scenario database). Nominal energy is calculated by multiplying dispatched capacity by the length of time it is dispatched. Only specify this parameter if you want to enforce a particular limit.
Scenario database
Table: TotalTechnologyModelPeriodActivityUpperLimit
Name | Type | Description |
---|---|---|
id | integer | Unique identifier for row |
r | text | Region |
t | text | Technology |
val | real | Nominal energy (region's energy unit) |
Trade route
Indicator of whether region r
can trade a fuel with region rr
.
Scenario database
Table: TradeRoute
Name | Type | Description |
---|---|---|
id | integer | Unique identifier for row |
r | text | First region connected by trade route |
rr | text | Second region connected by trade route |
f | text | Fuel |
y | text | Year |
val | real | Indicator (0 for no, 1 for yes) |
To enable trade between two regions, only one row in TradeRoute
is needed. Either region can be assigned to r
, and the second region should be assigned to rr
. Be sure to set val
to 1.
It is not necessary to populate zeros in TradeRoute
for cases where trade is disallowed. NEMO assumes trade is not allowed unless a route is explicitly defined in the table.
Transmission availability factor
Fraction of time a transmission line is available to operate.
Scenario database
Table: TransmissionAvailabilityFactor
Name | Type | Description |
---|---|---|
tr | text | Transmission line |
l | text | Time slice |
y | text | Year |
val | real | Fraction (0 to 1) |
This parameter must be used when modeling transmission. If you don't want to represent reduced availability for lines, set a default of 1.0 for TransmissionAvailabilityFactor
in the default parameters table or by using the setparamdefault
function.
Transmission capacity to activity unit
Multiplier to convert 1 megawatt-year to a region's energy unit (e.g., 0.031536 if the energy unit is petajoules). This parameter is required if transmission modeling is enabled (see TransmissionModelingEnabled).
Scenario database
Table: TransmissionCapacityToActivityUnit
Name | Type | Description |
---|---|---|
id | integer | Unique identifier for row |
r | text | Region |
f | text | Fuel |
val | real | Multiplier |
Transmission modeling enabled
Indicator of whether transmission modeling is enabled for a region, fuel, and year. The type
field specifies the approach to simulating energy flow:
- 1 - Direct current optimized power flow (DCOPF) (classical formulation).[1]
- 2 - DCOPF with a disjunctive relaxation.[2]
- 3 - Pipeline flow. This approach treats transmission lines as pipelines whose flow is limited only by their maximum flow and efficiency.
If you choose type 1, NEMO will add a quadratic term to the optimization problem for your scenario. This will make the scenario incompatible with linear programming (LP)-only solvers such as GLPK and Cbc. To use DCOPF with an LP-only solver, choose type 2. This type produces equivalent results to type 1 but implements DCOPF with linear constraints.
At present, NEMO does not endogenously simulate line losses for types 1 and 2.
Scenario database
Table: TransmissionModelingEnabled
Name | Type | Description |
---|---|---|
id | integer | Unique identifier for row |
r | text | Region |
f | text | Fuel |
y | text | Year |
type | integer | Indicator (1, 2, or 3) |
You should not put rows in TransmissionModelingEnabled
for regions/fuels/years for which you don't want to model transmission. NEMO does not support a type 0 for this parameter.
Variable cost
Running cost for a technology, defined in terms of cost per unit of nominal energy produced. Nominal energy is calculated by multiplying dispatched capacity by the length of time it is dispatched.
Scenario database
Table: VariableCost
Name | Type | Description |
---|---|---|
id | integer | Unique identifier for row |
r | text | Region |
t | text | Technology |
m | text | Mode of operation |
y | text | Year |
val | real | Cost (scenario's cost unit / region's energy unit) |
Year split
Width of a time slice as a fraction of the specified year.
Scenario database
Table: YearSplit
Name | Type | Description |
---|---|---|
id | integer | Unique identifier for row |
l | text | Time slice |
y | text | Year |
val | real | Fraction (0 to 1) |
- 1See, e.g., Krishnan, V., Ho, J., Hobbs, B. F., Liu, A. L., McCalley, J. D., Shahidehpour, M. and Zheng, Q. P. (2016). Co-optimization of electricity transmission and generation resources for planning and policy analysis: review of concepts and modeling approaches. Energy Systems, 7(2). 297–332. DOI:10.1007/s12667-015-0158-4.
- 2Hui Zhang, Heydt, G. T., Vittal, V. and Mittelmann, H. D. (2012). Transmission expansion planning using an ac model: Formulations and possible relaxations. 2012 IEEE Power and Energy Society General Meeting 1–8. Proceedings of the 2012 IEEE Power & Energy Society General Meeting. New Energy Horizons - Opportunities and Challenges, San Diego, CA. IEEE. DOI:10.1109/PESGM.2012.6345410.