DER-VET™ provides a free, publicly accessible, open-source platform for calculating, understanding, and optimizing the value of distributed energy resources (DER) based on their technical merits and constraints. An extension of EPRI's StorageVET® tool, DER-VET supports site-specific assessments of energy storage and additional DER technologies—including solar, wind, demand response, electric vehicle charging, internal combustion engines, and combined heat and power—in different configurations, such as microgrids. It uses load and other data to determine optimal size, duration, and other characteristics for maximizing benefits based on site conditions and the value that can be extracted from targeted use cases. Customers, developers, utilities, and regulators across the industry can apply this tool to inform project-level decisions based on sound technical understanding and unbiased cost-performance data.
DER-VET was developed with funding from the California Energy Commission. EPRI plans to support continuing updates and enhancements.
These instructions will get you a copy of the project up and running on your local machine for development and testing purposes. See deployment for notes on how to deploy the project on a live system.
Follow these steps to run DER-VET through your command line on your local computer.
-
Navigate to a folder on your computer where you place git repositories. Normally this is a folder named
git
that lives in your home directory, but it can be any folder.Enter the following command from a terminal/prompt to 'clone' the repo and download it to your computer. Note that using the
--recurse-submodules
flag will also clone the requiredStorageVET
submodule automatically:git clone --recurse-submodules https://github.com/epri-dev/DER-VET.git
When cloning a repo with 'git clone', if you do not specify a new directory as the last argument (as shown above), it will be named
DER-VET
. Alternatively, you can specify this and name it as you please. Regardless of what the downloaded folder is named or located, this new directory becomes the 'root directory' of dervet.The root directory refers to the folder with folders/files such as
dervet
,data
,test
,README.md
(this file),Model_Parameters_Template_DER.csv
, andrun_DERVET.py
. -
Install Anaconda for python 3.**
It is recommended for Windows users to install and use Anaconda.
-
On Windows Install the Build Tools for Visual Studio. When prompted by the installer, select C++ build tools and the appropriate Windows SDK specified in the table below and install.
Windows OS SDK Windows 7 Windows 8.1 Windows 8.1 Windows 8.1 Windows 10 Windows 10 On Mac
-
or a corresponding shell/terminal/console/prompt, in administrator mode
You will need administrator access on your computer.
Refer to step 7 for more guidance on which prompt to open.
-
This is the location of the repository or downloaded folder on your local computer. We refer to this location as the "root directory"
-
It is recommended that the latest Python 3.8 version be used. As of this writing, that version is Python 3.8.16 We give the user 2 routes to create a python environment for python 3.8.16
Most Windows users have success with the Conda route.
Each route results in a siloed python environment, but with different properties. Choose the conda OR pip route and stick to it. Commands are not interchangeable.
Please remember the route which created the python environment in order to activate it again later. You will need to activate the python environment to run the model, always.
Conda Route - Recommended route for Windows OS
This route requires you to open Anaconda Prompt in step 5.
Enter the following command:
conda create -n dervet-venv python=3.8.16
The python version is specified, meaning conda does not have to be associated with a python 3.8.16.
Pip Route
If you have Python 3.8.16 installed directly on your computer, then we recommend trying this route.
This route lets you to open the prompt of your choice in step 5.
Enter the following commands:
pip install virtualenv virtualenv dervet-venv
The
pip
should be associated to the python 3.8.16 installation -
Conda Route
Enter the following command into anaconda prompt:
conda activate dervet-venv
Pip Route
Enter the corresponding command into the open prompt:
On Linux/Mac
source dervet-venv/bin/activate
On Windows
"./dervet-venv/Scripts/activate"
-
Conda Route
Enter the following commands in anaconda prompt:
pip install setuptools==52.0.0 conda install conda-forge::blas=*=openblas --file requirements.txt --file requirements-dev.txt pip install numpy_financial==1.0.0 pip install -e ./storagevet
Pip Route
Enter the following commands into the open prompt:
pip install setuptools==52.0.0 pip install -r requirements.txt -r requirements-dev.txt pip install numpy_financial==1.0.0 pip install -e ./storagevet
Are you a Beta Tester? Have an old graphical interface installed on your computer? Follow these instructions to replace
the beta
version. We assume you installed the code previously with the "Happy Path" -- which assumes you installed
DER-VET on you local C:\
drive.
-
Place this new
dervet
folder inC:\DERVET\DervetBackEnd
, thus replacing the existing one. Use the--recurse-submodules
flag with thegit clone
command to also download the requiredStorageVET
repo. The root directory isC:\DERVET\DervetBackEnd\dervet
-
conda activate "C:\DERVET\DervetBackEnd\" cd C:\DERVET\DervetBackEnd\dervet
-
pip install setuptools==52.0.0 conda install conda-forge::blas=*=openblas --file requirements.txt --file requirements-dev.txt pip install numpy_financial==1.0.0 pip install -e ./storagevet
Follow these steps to run DER-VET from the command prompt
-
Skip this step if your python environment is already active.
Refer to New Installation steps 5 and 8 OR to Update Old Installation step 5.
-
python run_DERVET.py Model_Parameters_Template_DER.csv
-
Skip this step if your python environment is already active. Refer to installation or update installation steps for activation instructions.
-
python -m pytest test
To use this project as a dependency in your own, clone this repo directly into the root of your project. Open terminal or command prompt from your project root, and input the following command:
pip install -e ./dervet
We have created a new folder titled "migrations" that is in the root "dervet" folder. In this folder, we have provided a command-line Python script which will convert an existing version 1.1 DER-VET GUI project.json file into a version 1.2 DER-VET GUI project.json file. This script should be used with Python 3.2 or greater.
To view the usage statement for this script, open terminal or command prompt from your project root, and input the following command:
python migrations/migrate_project_dervet_GUI.py -h
The script accepts a single positional argument: the name of a folder which must contain a "project.json" file
For the versions available, please see the list of releases on out GitHub repository. This is version 1.2.3
- Halley Nathwani
- Miles Evans
- Suma Jothibasu
- Ramakrishnan Ravikumar
- Andrew Etringer
- Andres Cortes
- Evan Giarta
- Thien Nguyen
- Micah Botkin-Levy
- Yekta Yazar
- Kunle Awojinrin
- Arindam Maitra
- Giovanni Damato
=======
Pull requests are welcome. For major changes, please contact the team to discuss what you would like to change.
Please make sure to update tests as appropriate.
This project is licensed under the BSD (3-clause) License - see LICENSE.txt.
DER-VET v1.2.3
Copyright © 2023 Electric Power Research Institute, Inc. All Rights Reserved.
Permission to use, copy, modify, and distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL EPRI BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Third-Party Software EPRI does not own any portion of the software that is attributed below.
<CVXPY/1.1.11> - <Steven Diamond>, diamond@cs.stanford.edu Copyright © 2017 Steven Diamond
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
CVXPY is provided by the copyright holders and contributors "as is" and any express or implied warranties, including, but not limited to, the implied warranties of merchantability and fitness for a particular purpose are disclaimed.
This software relies on CVXPY to interface with work(s) covered by the following copyright and permission notice(s):
GLPK 5.0 - Andrew Makhorin, mao@gnu.org Copyright © 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 Andrew Makhorin, Department for Applied Informatics, Moscow Aviation Institute, Moscow, Russia. All rights reserved.
Licensed under GNU Public License v3.0; you may not use GLPK except in compliance with the License. You may obtain a copy of the License at https://www.gnu.org/licenses/gpl-3.0.en.html.
GLPK is a free program and is provided by the copyright holders and contributors "as is" and any express or implied warranties, including, but not limited to, the implied warranties of merchantability and fitness for a particular purpose are disclaimed.