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
Not currently used.
Capacity factor
Fraction of time a technology is available to operate.
Scenario database
Table: CapacityFactor
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 |
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 capacity 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., over all years). This parameter is not used when the calcyears
argument of calculatescenario
or writescenariomodel
is invoked. See Calculating selected years for details.
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 demand for the specified fuel that is assigned to the node. 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) |
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 |
Renewable energy minimum production target
Fraction of production of fuels tagged with RETagFuel
that constitutes a renewable energy target. NEMO ensures that production by technologies tagged with RETagTechnology
meets or exceeds the target, pro-rating each technology's production by its RETagTechnology
. To take a specific example, suppose that in a given region and year,
There is one fuel - electricity - whose
RETagFuel
is 1;Total electricity production is 100 (in the region's energy unit);
REMinProductionTarget
is 0.5; andThere are two technologies,
t1
with anRETagTechnology
of 0.75 andt2
with anRETagTechnology
of 0.5.
Then NEMO will make sure that 75% of t1
's production + 50% of t2
's production is at least 50 energy units.
Scenario database
Table: REMinProductionTarget
Name | Type | Description |
---|---|---|
id | integer | Unique identifier for row |
r | text | Region |
y | text | Year |
val | real | Fraction (0 to 1) |
Renewable energy tag fuel
Indicator of whether a fuel is included when calculating the renewable energy minimum production target.
Scenario database
Table: RETagFuel
Name | Type | Description |
---|---|---|
id | integer | Unique identifier for row |
r | text | Region |
f | text | Fuel |
y | text | Year |
val | real | Indicator (0 for no, 1 for yes) |
It is not necessary to populate zeros in RETagFuel
for fuels that are excluded from the renewable energy minimum production target. NEMO assumes exclusion if a fuel isn't represented in the table.
Renewable energy tag technology
Fraction of a technology's production that counts toward meeting the renewable energy minimum production target.
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 causes NEMO to deploy extra technology capacity as a reserve. In each year and time slice, NEMO ensures that the capacity of technologies tagged with ReserveMarginTagTechnology
is at least ReserveMargin
times the rate of production of fuels tagged with ReserveMarginTagFuel
. Technology capacity is pro-rated by ReserveMarginTagTechnology
in these calculations.
Scenario database
Table: ReserveMargin
Name | Type | Description |
---|---|---|
id | integer | Unique identifier for row |
r | text | Region |
y | text | Year |
val | real | Multiplier (typically > 0; e.g., 1.15 for a 15% reserve margin) |
Reserve margin tag fuel
Indicator of whether a fuel is included in reserve margin calculations.
Scenario database
Table: ReserveMarginTagFuel
Name | Type | Description |
---|---|---|
id | integer | Unique identifier for row |
r | text | Region |
f | text | Fuel |
y | text | Year |
val | real | Indicator (0 for no, 1 for yes) |
It is not necessary to populate zeros in ReserveMarginTagFuel
for fuels that are excluded from reserve margin calculations. NEMO assumes exclusion if a fuel isn't represented in the table.
Reserve margin tag technology
Fraction of a technology's 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 |
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., all years). 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). This parameter is not used when the calcyears
argument of calculatescenario
or writescenariomodel
is invoked. See Calculating selected years for details.
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., all years). 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. This parameter is not used when the calcyears
argument of calculatescenario
or writescenariomodel
is invoked. See Calculating selected years for details.
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 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.