A tutorial for the Renewable Energy Potential Model (reV).
This is a repository for learning to run reV, both through Commands-Line Interface (CLIs) and via the Python modules. It contains the sample input data found in the reV repository and sample run directories set up to create outputs for a study area in Rhode Island. Detailed instructions, example runs, and tests can be found in the official reV repository. This repository will supplement that material with a set of python scripts and preconfigured run folders specifically tailored for learning the basics of retrieving/generating the input datasets, configuring the settings, running the model, and troubleshooting common problems. The sample runs will point to the inputs automatically with the hope that it will help the user better understand the required formats needed for building custom inputs. This repo will also include a FAQ page that will be added to as questions arise along with a common gotcha page for common mistakes.
reV is split into four main components:
- Simulating renewable energy generation and cost potential across a landscape.
- Creating model generation plants within spatial constraints.
- Connecting plants to a transmission grid.
- Reaggregating generation profiles (timeseries) into representative profiles for each model generation plant.
reV is modular, outputs from one module serve as inputs to the next. Depending on the outputs needed, part or all of the reV pipeline can be used.
At its foundation reV serves a spatial coordinator for the Systems Advisor Model. It runs any number of simulated generators at any number of points for which resource data is availabe. The resource datasets most typically used with reV (at least thus far) include the National Solar Radiation Database (NSRDB) and the Wind Integration National Dataset Toolkit (WTK), however any resource dataset can be used if it is formatted correctly.
reV is designed as a set of Python modules, each of which take as inputs the outputs of previous modules. The basic work flow is to take input "resource" datasets, a specifically formatted gridded timeseries of wind or solar irradiance, pass them through module generators (in reV-Generation) (wind turbines or photovoltaic panels) to create gridded timeseries of energy outputs and production costs, pass that into an aggregation module (reV-Supply-Curve-Aggregation) which combines the resource scale generation values into model plants with plant-level costs and energy production, and finally pass that into a transmission module (reV-Supply-Curve) which connects these plants to transmission and updates costs:
Land use constraints can be added into the aggregation step to exclude development in parts of the study area, resulting in a range of plant sizes. It is also possible to create time series of plant-level power generation, or "representative profiles" as the final step, resulting in a modeling pipeline that looks like this:
Resource → Generation → Exclusions → Aggregation → Transmission → Potential Energy and Costs → Representative Profiles
The quickest and easiest way to get started with reV is to use the JSON-CLI workflow. This involves building a JSON configuration file for a module you want to run and running that module with the corresponding CLI command. You can also configure several modules in the input-output pipeline described above and run each sequentially with a single command. The configurations will tell reV which SAM generator configurations to run and where, what variables to generate, which land-use assumptions to use, etc. It will also tell reV how to work with your system to most efficiently build these outputs (e.g. how to split the work across CPUs, how to split work across nodes for distributed systems, what memory utilization limits to use, etc.). This method is convenient in that you don't need to edit any Python scripts, it is relatively straightforward to set up and run directly from your terminal, and it leaves a tidy way to keep track of run parameters when recreating or reviewing a reV run.
To learn about how to work with the reV JSON-CLI workflow, go into each tutorial_#_module
folder sequentially and follow the instruction in each.
Use this documentation in tandem with the tutorial series: https://nrel.github.io/reV/_cli/cli.html.
Tutorial #1 (tutorial_1_concepts
) will introduce key concepts (particularly that of "technical potential") needed to understand what the outputs of the reV model represent. It is recommended to start here, but if you understand all that and wish to get on with running the model, you may skip this one. Each subsequent tutorial folder contains reV configuration files and a README describing how to use them to run reV and generate outputs. The READMEs will also describe what each configuration parameter means. These tutorials are ordered by increasing complexity. Early tutorials should be setup such that you may simply run the model without editing configuration files, though later tutorials will require user input in order to work.