The Distributed Generation Market Demand (dGen) model simulates customer adoption of distributed energy resources (DERs) for residential, commercial, and industrial entities in the United States or other countries through 2050.
The dGen model can be used for:
- Identifying the sectors, locations, and customers for whom adopting DERs would have a high economic value
- Generating forecasts as an input to estimate distribution hosting capacity analysis, integrated resource planning, and load forecasting
- Understanding the economic or policy conditions in which DER adoption becomes viable
- Illustrating sensitivity to market and policy changes such as retail electricity rate structures, net energy metering, and technology costs.
For access to technical papers and publications, more information, and to contact the dGen team please visit dGen's NREL website
There are zipped .sql database files and zipped .pkl agent files. These are described in more detail below.
-
diffusion_load_profiles: This schema contains tables relating to the load profiles used by agents generated by the NREL Buildings team. These load profiles in parquet format, along with their metadata, are included in the data submission.
-
diffusion_resource_solar: This schema contains a table, solar_resource_hourly, which contains the solar capacity factor for a given geographic-azimuth-tilt combination that matches to the same geographic-azimuth-tilt combination found in the pre-generated agents pickle file.
-
diffusion_shared: This schema contains tables used for inputs in the input sheet. Please browse these tables as the names of these tables are representative of what these data are.
-
diffusion_storage: This schema contains a single table related to PySAM storage inputs.
-
diffusion_solar: This schema contains tables with additional data pertaining to modeling solar constraints, incentives, and costs.
-
diffusion_template: This schema contains tables that are copied to make a new schema upon completing a dgen model run. Many of these are populated with data from the input sheet, from various joins/functions done within the database, and of course data from the model run.
Every dGen analysis starts with a base agent file that uses statistically-sampled agents meant to be comprehensive and representative of the modeled population. They are comprehensive in the sense they are intended to represent the summation of underlying statistics, e.g. the total retail electricity consumed in the state. They are representative in that agents are sampled to represent heterogeneity of the population, e.g. variance in the cost of electricity. As described in ( Sigrin et al. 2018) “during agent creation, each county in United States is seeded with sets of residential, commercial, and industrial agents, each instantiated at population-weighted random locations within the county’s geographic boundaries. Agents are referenced against geographic data sets to establish a load profile, solar resource availability, a feasible utility rate structure, and other techno-economic attributes specific to the agent’s location. Each agent is assigned a weight that is proportional to the number of customers the agent represents in its county. In this context, agents can be understood as statistically representative population clusters and do not represent individual entities.”
Variable definitions and data types can be found in the data dictionary.
Example scripts to restore unzipped database files are provided below. For full documentation of the dGen Model and setting up and using the dGen Model, please visit our open source repository
- Create the docker container and postgreSQL server:
$ docker run --name postgis_1 -p 5432:5432 -e POSTGRES_USER=postgres -e POSTGRES_PASSWORD=postgres -d mdillon/postgis
- Connect to the postgreSQL server on the docker container and create a new database:
$ docker container ls
$ docker exec -it <container id> psql -U postgres
$ postgres=# CREATE DATABASE dgen_db;
- After downloading and unzipping the data, run the following in the command line (replacing 'path_to_where_you_saved_database_file' below with the actual path where you saved your database file):
$ cat /path_to_where_you_saved_data/dgen_db.sql | docker exec -i <container id> psql -U postgres -d dgen_db
Note, make sure linux commands are enabled in order to properly restore the database. Also note that the full database can take around an hour to restore. All of the database files will take time to restore, so please be patient and plan accordingly.
The open source dGen model is licensed under the BSD 3-Clause License
Copyright (c) 2020, Alliance for Sustainable Energy, LLC All rights reserved.
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
-
Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
-
Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
-
Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
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 THE COPYRIGHT HOLDER OR CONTRIBUTORS 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