Releases: jnettels/lpagg
Allow VDI4655 temperature limit settings per building
9044d17 Allow VDI4655 temperature limit settings per building
summer_temperature_limit
and winter_temperature_limit
can now be defined per building to overwrite their default values (15°C and 5°C, respectively). For large sets of data, this can flatten the 'step' in the aggregated thermal power demand when shifting between the three season types (summer, transition, winter). This applies only to VDI4655 profiles (not BDEW, where the transitions are coded to specific dates).
This feature is only supported when using demandlib (not the internal VDI4655 implementation). For compatibility with lpagg, currently a custom fork of demandlib has to be used: https://github.com/jnettels/demandlib/tree/features/add-vdi-from-lpagg
8a95131 Add result plot that displays the sorted load curves
The new plot helps to visualize the effects of changing the temperature limits.
Full Changelog
Fix icon file location
Full Changelog: 0.18.1...0.18.2
Improve 'unique profile' workflow
Fix issues with the new 'unique profile' workflow introduced in 0.18.0
Full Changelog: 0.18.0...0.18.1
Implement new profile source and improve workflow
This release implements BDEW profiles from demandlib as a new source and implements a new workflow that potentially allows creating profiles for thousands of buildings, among other things.
The demandlib implementation currently requires a custom fork to work.
Summary of breaking changes
- house_type for commercial buildings uses the notation 'GHD/G1' (heat type/electricity type) if use_demandlib is True. In this case the profiles themselves change.
- Profiles are not created for empty or non-existent annual energy values (to let lpagg return the VDI4655 default values for hot water and
electricity demands, use a string like 'calculate' as the energy demand value - The 'adjustment_factors' f_Q_Heiz, f_Q_TWW and f_W are ignored. They allowed the resulting profiles to be scaled, but were not implemented for all profile sources
- The required pandas version is updated to 2.1
Notes on most important changes
9cd09bb Implement BDEW profiles from demandlib as new source
When the settings option 'use_demandlib' is set to True, commercial profiles are now calculated with the BDEW implementation from
demandlib. Since different building type notations are used for thermal and electrical profiles, the expected notation of the
'house_type' key has changed to the format 'GHD/G1', denoting the respective types to use for the profiles.
For a list of the heat and electricity types, please refer to the demandlib documentation:
https://demandlib.readthedocs.io/en/latest/bdew.html
For single- and multi-family homes the VDI 4655 implementation in demandlib is used, which is faster than the lpagg implementation.
The demandlib implementation currently requires a custom fork to work.
9856707 Implement workflow calculating only the unique profiles
Previously, each profile for each house was calculated individually. However, for scenarios with several thousands of buildings this was
not feasible. Since in those cases many buildings actually share identical profiles (apart from their scaling), a new workflow was
implemented. The actually unique profiles are identified and created, and then applied to each building and scaled to total
annual energy demand.
75f7f9e Make showing and saving plots more consistent
The new settings option 'save_plot_filetypes' expects a list of filetypes like ['png', 'svg', 'pdf']. The various available plots are
saved in the defined formats. The setting 'language' ('de' or 'en') now also affects the axis time label (e.g. month names)
b4b704d Make code more independent of requested energy types
Until now, heat, hot water and electricity profiles had to be created and included in the output. Now lpagg should work even if
only e.g. electricity profiles are requested. Total annual energy values missing from the houses input data (or set to NaN) result in those profiles not being created.
This causes a breaking change:
For households, VDI 4655 provides default values for annual hot water and electricity demands. If missing from the input data, those were automatically calculated. Now those defaults are only calculated if their annual value is a string, e.g. 'calculate'
See this example for the configuration.yaml:
houses:
EFH:
Q_Heiz_a: 6000 # Value given, profile is created
Q_TWW_a: calculate # VDI4655 default is calculated
# W_a: # electricity profile is not created
3a116d6 Accept transposed Excel houses table as input
Houses can either be defined as a dictionary in the configuration.yaml, and/or the yaml may point to an Excel file containing the table of houses. A new setting 'transpose' has been added, which just transposes the DataFrame directly after loading the Excel file. It can be used with 'True', if the input table contains the buildings as rows (instead of columns).
houses_table_file:
file: ./VDI_4655_houses_example.xlsx
transpose: True # Flip rows and columns of the input table
kwargs: # optional keyword arguments for pandas read_excel()
sheet_name: Example
dfdcbdc Remove implementation of 'adjustment_factors'
The 'adjustment_factors' f_Q_Heiz, f_Q_TWW and f_W are ignored. They allowed the resulting profiles to be scaled, but were not implemented for all profile sources
3d64c01 Improve file dialog window visibility
The file dialog window used when running lpagg from the main method could open hidden in the background, but should open in focus now.
Full Changelog
Fix errors with changes in numeric results
The following commits result in changes to the numeric results:
f2403f2 Fix incorrect usage of zero_summer_heat_demand setting
6c8a363 Remove rounding of cloud cover value
c12d641 Fix usage of holidays package
Full Changelog: 0.16.2...0.17.0
Fix settings used for demandlib
When using demandlib to generate VDI4655 profiles (instead of lpagg) the temperature limits for summer and winter are now correctly transferred to demandlib. This changes the resulting profiles.
Also some deprecations are cleaned up.
Full Changelog: 0.16.1...0.16.2
Minor bugfixes
Fix error resulting in zero dhw demand
Full Changelog: 0.16.0...0.16.1
Return more results from the aggregator
This changes the return value of the 'aggregator_run' function to a dictionary of DataFrames.
Full Changelog: 0.15.3...0.16.0
Publish lpagg as noarch package on conda
With this release, installing lpagg from conda with the command
conda install lpagg -c jnettels -c conda-forge
should work regardless of architecture and installed python version.
Full Changelog: 0.15.1...0.15.3
Fix deprecations in dependencies and other warnings
Full Changelog: 0.14.2...0.14.3