Skip to content
Draft
Show file tree
Hide file tree
Changes from 54 commits
Commits
Show all changes
77 commits
Select commit Hold shift + click to select a range
2851f06
feat: adding data processing script (#243)
isond Jan 5, 2022
8c92469
feat: generate profiles for immediate charging (#266)
isond Mar 12, 2022
a50d408
style: update style from #266
danielolsen Mar 14, 2022
2173fe0
feat: add function to calculate VMT share for each day of the year (#…
danielolsen May 26, 2022
c495e54
fix: negative dwell time calculation in data processing (#299)
isond Jun 13, 2022
183f7cd
feat: generate profiles for smart charging (#287)
isond Apr 8, 2022
86a6a89
refactor: calculate constraints all at once (#300)
dmuldrew Aug 23, 2022
3c6ebdc
feat: generate charging profiles for immediate charging HDV (#302)
dmuldrew Sep 13, 2022
906b757
feat: generate charging profiles for smart charging HDV (#301)
dmuldrew Sep 14, 2022
4223b77
refactor: move to common data columns (#311)
dmuldrew Sep 29, 2022
754e2f7
refactor: reconcile LDV and HDV implementations into one (#314)
dmuldrew Oct 7, 2022
8e4a49a
refactor: merge existing LDV and HDV implementations into a common co…
dmuldrew Oct 22, 2022
ebdb0b8
docs: create demand electrification section
rouille Jan 11, 2023
cd35848
refactor: change scaling of LDV model year profiles (#321)
dmuldrew Oct 31, 2022
80fd598
docs: write summary section of transportation electrification
rouille Jan 11, 2023
4f2e9f1
refactor: modify immediate adjust_bev (#323)
dmuldrew Nov 16, 2022
baeb485
Merge pull request #328 from Breakthrough-Energy/ben/docs
rouille Jan 11, 2023
736444c
feat: add demand profile interface
dmuldrew Jan 17, 2023
1768446
docs: write capabilities and data section of transportation electrifi…
rouille Jan 12, 2023
f14b4e2
refactor: merge LDV/HDV smart charging functions
dmuldrew Jan 17, 2023
273b57f
docs: write user manual section of transportation electrification (#330)
rouille Jan 12, 2023
c82ed86
Merge pull request #327 from Breakthrough-Energy/dmuldrew/demand_prof…
dmuldrew Jan 19, 2023
e6e4b4c
feat: write function to load NREL EFS annual data
rouille Jan 21, 2023
536dbd8
docs: fix docstrings (#334)
rouille Jan 24, 2023
cf558c4
feat: get VMT projections for states
rouille Jan 21, 2023
8b9edad
feat: calculate urban and rural annual VMT fractions (#333)
rouille Jan 24, 2023
0962ca7
Merge pull request #335 from Breakthrough-Energy/ben/nrel
rouille Jan 25, 2023
888420b
feat: generate scaling factors for each year (#337)
rouille Jan 30, 2023
3404d1c
docs: write methodology section of transportation electrification (#336)
rouille Jan 31, 2023
c3c5c72
style: format files following black update (#341)
rouille Feb 1, 2023
a47722b
feat: handle urban area with missing data (#342)
rouille Feb 3, 2023
0d06ef5
docs: write data sources section of transportation electrification (#…
rouille Feb 8, 2023
180f215
refactor: update daily demand output scaling
dmuldrew Jan 24, 2023
4957cf6
refactor: add cyclic trip dataframe filter
dmuldrew Jan 24, 2023
8407950
fix: add missing loop iterator; add missing trip filters
dmuldrew Jan 24, 2023
de3070e
test: add invariant tests
dmuldrew Feb 3, 2023
740de4b
refactor: adapt profile interface for tuple output
dmuldrew Feb 6, 2023
f6189ed
doc: update existing function docs strings
dmuldrew Feb 7, 2023
69f1e0d
refactor: simplify trip data names
dmuldrew Feb 7, 2023
346bb4a
Merge pull request #343 from Breakthrough-Energy/dmuldrew/invariant_i…
dmuldrew Feb 9, 2023
13c2f98
chore: remove outdated regional scaling factors files
rouille Feb 3, 2023
1a73ef1
chore: update fuel efficiencies file
rouille Feb 3, 2023
a6530f8
fix: use state abbreviation for scaling factors in rural areas
rouille Feb 4, 2023
bdd38ce
feat: write script to generate scaling factors files
rouille Feb 4, 2023
2265e32
chore: generate scaling factors files
rouille Feb 4, 2023
81b6233
test: modify test to comply with new scaling factors files
rouille Feb 4, 2023
b7a5b82
test: change hard coded value following changes in fuel efficiency
rouille Feb 9, 2023
4d2c97a
fix: use lower case for file name
rouille Feb 9, 2023
f9eb59c
Merge pull request #344 from Breakthrough-Energy/ben/files
rouille Feb 10, 2023
e2f721a
fix: leap years in immediate charging
dmuldrew Feb 13, 2023
72f08b8
fix: convert immediate output to MW
dmuldrew Feb 13, 2023
01b437c
fix: single urban area as list
dmuldrew Feb 13, 2023
55ba153
refactor: compute immediate shape once
dmuldrew Feb 13, 2023
c08b05e
feat: add command line US immediate script
dmuldrew Feb 13, 2023
df014fd
fix: package install include scaling files
dmuldrew Feb 13, 2023
95b7c93
feat: add timer for state processing
dmuldrew Feb 13, 2023
2ccee71
test: adjust annual scaling test
dmuldrew Feb 13, 2023
f1f8114
test: assert almost equal
dmuldrew Feb 13, 2023
cf62dd1
feat: add census region cache script
dmuldrew Feb 15, 2023
120f7f5
refactor: add correct file paths
dmuldrew Feb 15, 2023
897a5b3
fix: convert command line veh_range to int
dmuldrew Feb 15, 2023
2fca851
fix: hdv immediate function call
dmuldrew Feb 15, 2023
b038845
fix: output path as string
dmuldrew Feb 16, 2023
e8639fa
fix: script file pathes, shell scripts
dmuldrew Feb 16, 2023
9385929
refactor: add mdv/hdv script
dmuldrew Feb 16, 2023
3c44807
fix: run all census regions
dmuldrew Feb 16, 2023
3134d6c
fix: leap years in immediate_hdv_charging.py
dmuldrew Feb 16, 2023
2f4f2e2
fix: aggregation indentation
dmuldrew Feb 16, 2023
404c000
refactor: use demand shape cache; use state list
dmuldrew Feb 17, 2023
4f21ddc
fix: separate dictionary bev_vmt from compute logic
dmuldrew Feb 17, 2023
a4d7386
refactor: add LDV cases; cache refinement
dmuldrew Feb 17, 2023
7b2f26b
feat: mdv/hdv demand shape cache
dmuldrew Feb 17, 2023
f073f16
feat: add LDV/LDT cache files
dmuldrew Feb 17, 2023
77ce757
fix: range length bug
dmuldrew Feb 17, 2023
ea260c1
test: fix failing test
dmuldrew Feb 17, 2023
2f64505
fix: process DC as urban area
dmuldrew Feb 21, 2023
9ac1289
chore: flake, black formatting; doc string update
dmuldrew Feb 21, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -144,4 +144,6 @@ Thumbs.db
prereise/gather/winddata/data/StatePowerCurves.csv

# Jupyter Notebook
share/
share/

.devcontainer
16 changes: 16 additions & 0 deletions ATTRIBUTION.md
Original file line number Diff line number Diff line change
Expand Up @@ -205,6 +205,22 @@ These datasets are used to generate flexibility profiles that are realized throu
These datasets are generously provided by NREL, which is operated for the U.S. Department of Energy by the Alliance for Sustainable Energy, LLC. Before using these datasets, please read [this disclaimer](https://www.nrel.gov/disclaimer.html) first.


#### U.S. Environmental Protection Agency
##### Source
* Name: MOVES2010 Highway Vehicle Population and Activity Data
* Author: U.S. Environmental Protection Agency
* Description: Vehicle Miles Travelled disribution by month and by weekday/weekend
* Source: https://www.epa.gov/moves/moves-onroad-technical-reports
* Exact Source Location: https://nepis.epa.gov/Exe/ZyPDF.cgi?Dockey=P100ABRO.pdf

##### Destination
* Modifications to source file(s): None
* Location:
* ***prereise/gather/demanddata/transportation_electrification/moves_daily.csv***
* ***prereise/gather/demanddata/transportation_electrification/moves_monthly.csv***

##### General Purpose
The dataset is used to distribute the annual vehicle miles traveled (VMT) using seasonal weight factors for the final charging profiles.

---
### Hydro
Expand Down
39 changes: 39 additions & 0 deletions docs/demand/transportation_electrification/data.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
Capabilities and Data
#####################
The transportation electrification module calculates an estimate of the additional hourly electricity demand from the electrification of transportation vehicles for all U.S. urban and rural areas for years ranging from 2017-2050. The hourly estimation builds upon data collected representing over half a million driving events. 

Additional data sets allow for profiles to be generated across the following
dimensions: 

+ 4 vehicle types (light-duty vehicles (LDV), light-duty trucks (LDT), medium-duty
vehicles (MDV), and heavy-duty vehicles (HDV)) 
+ 33 simulation years (2017-2050) 
+ 481 Urban Areas (as defined by the U.S. Census Bureau) and 50 Rural Areas (one for
each U.S. State). 

The charging of each vehicle is currently simulated via one of two methods: Immediate
Charging and Smart Charging. Immediate Charging simulates charging occurring from the
time the vehicle plugs in until either the battery is full or until the vehicle departs
on the next trip. An example profile is in orange below, added on top of the base load
demand (:numref:`example_ldv_immediate_load`).  

.. _example_ldv_immediate_load:

.. figure:: demand/transportation_electrification/img/data/ldv_immediate_load.png
:align: center

Example of LDV Immediate Charging Stacked on Top of Base Load (3 Weeks)

Smart Charging refers to coordinated charging in response to a user-adjustable
objective function.  The example profile below (:numref:`example_ldv_smart_load`)
provides the same amount of charging to the same set of vehicles in the Immediate
Charging figure above (:numref:`example_ldv_immediate_load`). This instance of Smart
Charging manages the peak demand of the base load plus the additional transportation
electrification load to be substantially lower (~50GW vs ~40GW in this example case).  

.. _example_ldv_smart_load:

.. figure:: demand/transportation_electrification/img/data/ldv_smart_load.png
:align: center

Example of LDV Smart Charging “Filling in the Valleys” of Base Load (3 Weeks)
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
46 changes: 46 additions & 0 deletions docs/demand/transportation_electrification/manual.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
User Manual
###########
Pre-processed input data
^^^^^^^^^^^^^^^^^^^^^^^^

The following data is provided for the user or could be overridden via an input from the user with a different preferred data set.

+ Annual projections of vehicle miles traveled (VMT) are calculated in advance and are
provided for the user for all Urban Areas in the U.S. Each state also has a VMT
projection for the Rural Area in that state. See Section 3.1 below for calculation
process details using data from NREL’s Electrification Futures Study and the
Department of Transportation’s Transportation and Health Indicators.
+ Projections of the fuel efficiency of battery electric vehicles are provided from
NREL’s Electrification Futures Study, with more detail in Section 3.4 below.
+ Each vehicle type (light-duty vehicles (LDV), light-duty trucks (LDT), medium-duty
vehicles (MDV), and heavy-duty vehicles (HDV)) has a data set with vehicle trip
patterns that is used by the algorithm to represent a typical day of driving. See
Sections 1 and 2 for more details on the input data from the National Household
Travel Survey (NHTS) and the Texas Commercial Vehicle Survey.
+ Each typical day of driving is scaled by data from EPA’s MOVES that captures the
variation in typical driving behavior across (i) urban/rural areas, (ii) weekend/
weekday patterns, and (iii) monthly driving behavior (e.g. more driving in the summer
than the winter).


Calling the main Transportation Electrification method
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
With the above input data, the main function call for the transportation module is
``generate_BEV_vehicle_profiles`` and is called using a few user-specified inputs:

1. Charging Strategy (e.g. Immediate charging or Smart charging)
2. Vehicle type (LDV, LDT, MDV, HDV)
3. Vehicle range (whether 100, 200, or 300 miles on a single charge)
4. Model Year
5. Urban Area / Rural Area that is being modelled

Depending on the spatial region included in the broader simulation, the user can run a
script across multiple Urban Areas and Rural Areas to calculate the projected
electricity demand from electrified transportation for the full spatial region. From
there, a spatial translation mechanism (described next) converts this demand to the
accompanying demand nodes in the base simulation grid.


Spatial translation mechanism – between any two different spatial resolutions 
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
We have developed a module called :py:mod:`prereise.utility.translate_zones`. It takes in the shape files of the two spatial resolutions that the user would like to transform into one from the other. Then a transformation matrix that gives the fractions of every region in one resolution onto each region in the other resolution will be generated based on the overlay of two shape files. Finally, the user can simply multiply profiles in its original resolution, such as Urban/Rural Areas, by the transformation matrix to obtain profiles in the resultant resolution, such as load zones in the base simulation grid. This allows each module to be built in whatever spatial resolution is best for that module and to then transform each module into a common spatial resolution that is then used by the multi-sector integrated energy systems model.   
Loading