Closed lanesmith1 closed 2 months ago
Following a discussion with @jk1066, the recent commit makes changes to run_case_postprocessing.py
and dso_rate_making.py
that should allow relevant rate scenario information to be pulled from existing files (e.g., the generate_case_config.json
file). The changes also make use of existing relative paths for storing and accessing time-of-use parameters (i.e., the time_of_use_parameters.json
file will be stored in the examples/analysis.dsot/data
directory), as needed.
@d3j331 I added the change we just talked about. This should be good on my end now
This PR introduces two main additions to the postprocessing code:
run_case_postprocessing.py
) to collect necessary information for the time-of-use and subscription rates. Namely, this allows period-specific metrics to be collected (e.g., off-peak-period and peak-period energy consumption) and enables the creation of demand and baseline demand profiles, both of which are necessary for the calculation of bills under the subscription rate.To enable these changes, the following files are changed as follows:
dso_rate_making.py
updatesread_meters
to allow period-specific metrics under the time-of-use rate to be calculated, includes functionality to calculate hourly demand and baseline demand profiles for each meter (create_demand_profiles_for_each_meter
andcreate_baseline_demand_profiles_for_each_meter
, respectively), calculates billing information for consumers in the flat and time-of-use rate scenarios (calculate_consumer_bills
), and determines the tariff prices needed to recover DSO expenses using a closed-form solution (calculate_tariff_prices
).DSO_rate_making
is preserved in a way that allows the rate information for each rate scenario to be determined or allows rate information for the original DSO+T implementation to be determined.dso_cfs.py
updates the calculation of the DSO CFS to return capital and operating expenses that can be attributed to each month, which is needed to determine the expense-recovering prices in the time-of-use and subscription rates.Wh_Energy_Purchases.py
allows the monthly energy purchases from the wholesale market to be accessed, which is needed indso_CFS
.dso_helper_functions.py
allows the rate scenario under investigation to be specifiedrun_annual_postprocessing.py
allows the rate scenario under investigation to be specified.run_case_postprocessing.py
allows the rate scenario under investigation to be specified and allows demand and baseline demand profiles to be calculated and saved depending on the rate scenario.All feedback is welcome, though I would especially appreciate feedback on some things in
run_case_postprocessing.py
in particular. Since this runs on the cluster, I am less familiar with the directory structure. What is the best way for the people who are running this script to include information on the rate scenario and the time-of-use parameters?