Variable Renewable Energy resources (VRE)

Graph structure

A Variable Renewable Energy asset is represented in Macro using the following graph structure:

A Variable Renewable Energy asset is made of:

  • 1 Transformation component, representing the VRE transformation.
  • 1 Edge component:
    • 1 outgoing Electricity Edge, representing the electricity production.

Attributes

The structure of the input file for a VRE asset follows the graph representation. Each global_data and instance_data will look like this:

{
    "transforms":{
        // ... transformation-specific attributes ...
    },
    "edges":{
        "edge": {
            // ... electricity edge-specific attributes ...
        }
    }
}

Transformation

The definition of the transformation object can be found here MacroEnergy.Transformation.

AttributeTypeValuesDefaultDescription
timedataStringStringRequiredTime resolution for the time series data linked to the transformation. E.g. "Electricity".
constraintsDict{String,Bool}Any Macro constraint type for verticesEmptyList of constraints applied to the transformation. E.g. {"BalanceConstraint": true}.

Edges

The definition of the Edge object can be found here MacroEnergy.Edge.

AttributeTypeValuesDefaultDescription
typeStringElectricityRequiredCommodity of the edge.
end_vertexStringAny electricity node id present in the systemRequiredID of the ending vertex of the edge. The node must be present in the nodes.json file. E.g. "elec_node_1".
constraintsDict{String,Bool}Any Macro constraint type for EdgesCapacityConstraintList of constraints applied to the edge. E.g. {"MustRunConstraint": true}.
availabilityDictAvailability file path and headerEmptyPath to the availability file and column name for the availability time series to link to the edge. E.g. {"timeseries": {"path": "assets/availability.csv", "header": "SE_solar_photovoltaic_1"}}.
can_expandBoolBoolfalseWhether the edge is eligible for capacity expansion.
can_retireBoolBoolfalseWhether the edge is eligible for capacity retirement.
capacity_sizeFloat64Float641.0Size of the edge capacity.
existing_capacityFloat64Float640.0Existing capacity of the edge in MW.
fixed_om_costFloat64Float640.0Fixed operations and maintenance cost (USD/MW-year).
has_capacityBoolBoolfalseWhether capacity variables are created for the edge.
integer_decisionsBoolBoolfalseWhether capacity variables are integers.
investment_costFloat64Float640.0Annualized capacity investment cost (USD/MW-year)
max_capacityFloat64Float64InfMaximum allowed capacity of the edge (MW). Note: add the MaxCapacityConstraint to the constraints dictionary to activate this constraint.
min_capacityFloat64Float640.0Minimum allowed capacity of the edge (MW). Note: add the MinCapacityConstraint to the constraints dictionary to activate this constraint.
min_flow_fractionFloat64Number $\in$ [0,1]0.0Minimum flow of the edge as a fraction of the total capacity. Note: add the MinFlowConstraint to the constraints dictionary to activate this constraint.
ramp_down_fractionFloat64Number $\in$ [0,1]1.0Maximum decrease in flow between two time steps, reported as a fraction of the capacity. Note: add the RampingLimitConstraint to the constraints dictionary to activate this constraint.
ramp_up_fractionFloat64Number $\in$ [0,1]1.0Maximum increase in flow between two time steps, reported as a fraction of the capacity. Note: add the RampingLimitConstraint to the constraints dictionary to activate this constraint.
unidirectionalBoolBooltrueWhether the edge is unidirectional.
variable_om_costFloat64Float640.0Variable operation and maintenance cost (USD/MWh).
Default constraint

Default constraint for the electricity edge of the VRE is the Capacity constraint.

Example

The following input file example shows how to create four existing VRE assets (two utility-scale solar and two onshore wind facilities) and four new VRE assets (one offshore wind, one onshore wind, and two utility-scale solar facilities).

{
    "existing_vre": [
        {
            "type": "VRE",
            "global_data": {
                "transforms": {
                    "timedata": "Electricity"
                },
                "edges": {
                    "edge": {
                        "type": "Electricity",
                        "unidirectional": true,
                        "can_expand": false,
                        "can_retire": true,
                        "has_capacity": true,
                        "constraints": {
                            "CapacityConstraint": true
                        }
                    }
                },
                "storage": {}
            },
            "instance_data": [
                {
                    "id": "existing_solar_SE",
                    "edges": {
                        "edge": {
                            "fixed_om_cost": 22887,
                            "capacity_size": 17.142,
                            "existing_capacity": 8502.2,
                            "end_vertex": "elec_SE",
                            "availability": {
                                "timeseries": {
                                    "path": "assets/availability.csv",
                                    "header": "SE_solar_photovoltaic_1"
                                }
                            }
                        }
                    },
                },
                {
                    "id": "existing_solar_NE",
                    "edges": {
                        "edge": {
                            "fixed_om_cost": 22887,
                            "capacity_size": 3.63,
                            "existing_capacity": 1629.6,
                            "end_vertex": "elec_NE",
                            "availability": {
                                "timeseries": {
                                    "path": "assets/availability.csv",
                                    "header": "NE_solar_photovoltaic_1"
                                }
                            }
                        }
                    },
                },
                {

                    "id": "existing_wind_NE",
                    "edges": {
                        "edge": {
                            "fixed_om_cost": 43000,
                            "capacity_size": 86.17,
                            "existing_capacity": 3654.5,
                            "end_vertex": "elec_NE",
                            "availability": {
                                "timeseries": {
                                    "path": "assets/availability.csv",
                                    "header": "NE_onshore_wind_turbine_1"
                                }
                            }
                        }
                    },
                },
                {
                    "id": "existing_wind_MIDAT",
                    "edges": {
                        "edge": {
                            "fixed_om_cost": 43000,
                            "capacity_size": 161.2,
                            "existing_capacity": 3231.6,
                            "end_vertex": "elec_MIDAT",
                            "availability": {
                                "timeseries": {
                                    "path": "assets/availability.csv",
                                    "header": "MIDAT_onshore_wind_turbine_1"
                                }
                            }
                        }
                    },
                }
            ]
        }
    ],
    "new_vre": [
        {
            "type": "VRE",
            "global_data": {
                "transforms": {
                    "timedata": "Electricity"
                },
                "edges": {
                    "edge": {
                        "type": "Electricity",
                        "unidirectional": true,
                        "can_expand": true,
                        "can_retire": false,
                        "has_capacity": true,
                        "constraints": {
                            "CapacityConstraint": true,
                            "MaxCapacityConstraint": true
                        }
                    }
                },
            },
            "instance_data": [
                {
                    "id": "NE_offshorewind_class10_moderate_floating_1_1",
                    "edges": {
                        "edge": {
                            "fixed_om_cost": 56095.98976,
                            "investment_cost": 225783.4407,
                            "max_capacity": 32928.493,
                            "end_vertex": "elec_NE",
                            "availability": {
                                "timeseries": {
                                    "path": "assets/availability.csv",
                                    "header": "NE_offshorewind_class10_moderate_floating_1_1"
                                }
                            }
                        }
                    },
                },
                {
                    "id": "SE_utilitypv_class1_moderate_70_0_2_1",
                    "edges": {
                        "edge": {
                            "fixed_om_cost": 15390.48615,
                            "investment_cost": 49950.17548,
                            "max_capacity": 1041244,
                            "end_vertex": "elec_SE",
                            "availability": {
                                "timeseries": {
                                    "path": "assets/availability.csv",
                                    "header": "SE_utilitypv_class1_moderate_70_0_2_1"
                                }
                            }
                        }
                    },
                },
                {
                    "id": "MIDAT_utilitypv_class1_moderate_70_0_2_1",
                    "edges": {
                        "edge": {
                            "fixed_om_cost": 15390.48615,
                            "investment_cost": 51590.03227,
                            "max_capacity": 26783,
                            "end_vertex": "elec_MIDAT",
                            "availability": {
                                "timeseries": {
                                    "path": "assets/availability.csv",
                                    "header": "MIDAT_utilitypv_class1_moderate_70_0_2_1"
                                }
                            }
                        }
                    },
                },
                {
                    "id": "NE_landbasedwind_class4_moderate_70_3",
                    "edges": {
                        "edge": {
                            "fixed_om_cost": 34568.125,
                            "investment_cost": 86536.01624,
                            "max_capacity": 65324,
                            "end_vertex": "elec_NE",
                            "availability": {
                                "timeseries": {
                                    "path": "assets/availability.csv",
                                    "header": "NE_landbasedwind_class4_moderate_70_3"
                                }
                            }
                        }
                    }
                }
            ]
        }
    ]
}