Skip to content

A tool for calculating, understanding, and optimizing the value of distributed energy resources based on their technical merits and constraints. The graphical interface is https://github.com/epri-dev/DER-VET-GUI . To get involved with the community of DER-VET users, please visit www.der-vet.com.

License

Notifications You must be signed in to change notification settings

gautha7/DER-VET-fork

 
 

Repository files navigation

DER-VET™

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.

Getting Started

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.

New Installation

Follow these steps to run DER-VET through your command line on your local computer.

  1. Clone/download this repository onto 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 required StorageVET 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, and run_DERVET.py.

  2. Install Anaconda for python 3.**

    It is recommended for Windows users to install and use Anaconda.

  3. Install system requirements

    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

    Install Xcode and GLPK

  4. Open Anaconda Prompt

    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.

  5. Navigate to your dervet folder.

    This is the location of the repository or downloaded folder on your local computer. We refer to this location as the "root directory"

  6. Create Python environment

    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

  7. Activate Python 3.8.16 environment

    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"
    
  8. Install project dependencies

    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
    

Update Old Installation - For Windows

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.

  1. Delete all folders in C:\DERVET except C:\DERVET\DervetBackEnd

  2. Clone/download this repository onto your local computer as dervet.

    Place this new dervet folder in C:\DERVET\DervetBackEnd, thus replacing the existing one. Use the --recurse-submodules flag with the git clone command to also download the required StorageVET repo. The root directory is C:\DERVET\DervetBackEnd\dervet

  3. Open Anaconda Prompt

  4. Activate Python 3.8.16 environment

    conda activate "C:\DERVET\DervetBackEnd\"
    cd C:\DERVET\DervetBackEnd\dervet
    
  5. Update project dependencies

    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
    

Running Your First Case

Follow these steps to run DER-VET from the command prompt

  1. Open a shell/terminal/console/prompt and activate Python environment.

    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.

  2. Navigate to the root "dervet" folder.

  3. Enter the following into your command prompt:

    python run_DERVET.py Model_Parameters_Template_DER.csv
    

Running the tests

  1. Activate Python environment.

    Skip this step if your python environment is already active. Refer to installation or update installation steps for activation instructions.

  2. Enter the following into your terminal from inside the root "dervet" folder:

    python -m pytest test
    

Deployment

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

Migrating DER-VET GUI project.json files

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

Versioning

For the versions available, please see the list of releases on out GitHub repository. This is version 1.2.3

Authors

  • 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

=======

Contributing

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.

License

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.

About

A tool for calculating, understanding, and optimizing the value of distributed energy resources based on their technical merits and constraints. The graphical interface is https://github.com/epri-dev/DER-VET-GUI . To get involved with the community of DER-VET users, please visit www.der-vet.com.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%