Functions for Writing the Different Results/Outputs to Separate Files
GenX.write_outputs
— Methodwrite_outputs(EP::Model, path::AbstractString, setup::Dict, inputs::Dict)
Function for the entry-point for writing the different output files. From here, onward several other functions are called, each for writing specific output files, like costs, capacities, etc.
Write Status
GenX.write_status
— Methodwrite_status(path::AbstractString, inputs::Dict, EP::Model)
Function for writing the final solve status of the optimization problem solved.
Write Costs
GenX.write_costs
— Methodwrite_costs(path::AbstractString, inputs::Dict, setup::Dict, EP::Model)
Function for writing the costs pertaining to the objective function (fixed, variable O&M etc.).
Write Emissions
Write Capacities
GenX.write_capacity
— Methodwrite_capacity(path::AbstractString, inputs::Dict, setup::Dict, EP::Model))
Function for writing the diferent capacities for the different generation technologies (starting capacities or, existing capacities, retired capacities, and new-built capacities).
Write Charge Values
GenX.write_charge
— Methodwrite_charge(path::AbstractString, inputs::Dict, setup::Dict, EP::Model)
Function for writing the charging energy values of the different storage technologies.
Write Non-served-energy
GenX.write_nse
— Methodwrite_nse(path::AbstractString, inputs::Dict, setup::Dict, EP::Model)
Function for reporting non-served energy for every model zone, time step and cost-segment.
Write Storage Dual
GenX.write_storagedual
— Methodwrite_storagedual(path::AbstractString, inputs::Dict, setup::Dict, EP::Model)
Function for reporting dual of storage level (state of charge) balance of each resource in each time step.
Write Power
GenX.write_power
— Methodwrite_power(path::AbstractString, inputs::Dict, setup::Dict, EP::Model)
Function for writing the different values of power generated by the different technologies in operation.
Write Curtailment
GenX.write_curtailment
— Methodwrite_curtailment(path::AbstractString, inputs::Dict, setup::Dict, EP::Model)
Function for writing the curtailment values of the different variable renewable resources.
Write Prices
GenX.write_price
— Methodwrite_price(path::AbstractString, inputs::Dict, setup::Dict, EP::Model)
Function for reporting marginal electricity price for each model zone and time step. Marginal electricity price is equal to the dual variable of the load balance constraint. If GenX is configured as a mixed integer linear program, then this output is only generated if WriteShadowPrices
flag is activated. If configured as a linear program (i.e. linearized unit commitment or economic dispatch) then output automatically available.
Write Reliability
GenX.write_reliability
— Methodwrite_reliability(path::AbstractString, inputs::Dict, setup::Dict, EP::Model)
Function for reporting dual variable of maximum non-served energy constraint (shadow price of reliability constraint) for each model zone and time step.
Write Energy Revenue
GenX.write_energy_revenue
— Methodwrite_energy_revenue(path::AbstractString, inputs::Dict, setup::Dict, EP::Model)
Function for writing energy revenue from the different generation technologies.
Write Subsidy Revenue
GenX.write_subsidy_revenue
— Methodwrite_subsidy_revenue(path::AbstractString, inputs::Dict, setup::Dict, EP::Model)
Function for reporting subsidy revenue earned if a generator specified Min_Cap
is provided in the input file, or if a generator is subject to a Minimum Capacity Requirement constraint. The unit is $.
Write Capacity Revenue
GenX.write_reserve_margin_revenue
— Methodwrite_reserve_margin_revenue(path::AbstractString, inputs::Dict, setup::Dict, EP::Model)
Function for reporting the capacity revenue earned by each generator listed in the input file. GenX will print this file only when capacity reserve margin is modeled and the shadow price can be obtained form the solver. Each row corresponds to a generator, and each column starting from the 6th to the second last is the total revenue from each capacity reserve margin constraint. The revenue is calculated as the capacity contribution of each time steps multiplied by the shadow price, and then the sum is taken over all modeled time steps. The last column is the total revenue received from all capacity reserve margin constraints. As a reminder, GenX models the capacity reserve margin (aka capacity market) at the time-dependent level, and each constraint either stands for an overall market or a locality constraint.
Write Energy Share Requirement Revenue
GenX.write_esr_revenue
— Methodwrite_esr_revenue(path::AbstractString, inputs::Dict, setup::Dict, dfPower::DataFrame, dfESR::DataFrame)
Function for reporting the renewable/clean credit revenue earned by each generator listed in the input file. GenX will print this file only when RPS/CES is modeled and the shadow price can be obtained form the solver. Each row corresponds to a generator, and each column starting from the 6th to the second last is the total revenue earned from each RPS constraint. The revenue is calculated as the total annual generation (if elgible for the corresponding constraint) multiplied by the RPS/CES price. The last column is the total revenue received from all constraint. The unit is $.
Write Net Revenue
GenX.write_net_revenue
— Methodwrite_net_revenue(path::AbstractString, inputs::Dict, setup::Dict, EP::Model, dfCap::DataFrame, dfESRRev::DataFrame, dfResRevenue::DataFrame, dfChargingcost::DataFrame, dfPower::DataFrame, dfEnergyRevenue::DataFrame, dfSubRevenue::DataFrame, dfRegSubRevenue::DataFrame)
Function for writing net revenue of different generation technologies.