All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Enhance
TimeSeriesSource
with method to retrieve all time keys after a given key #543 - Enhance
WeatherSource
with method to retrieve all time keys after a given key #572
- Storage minimum level parameter removed from cylindrical thermal storage #1123
- Converted eval-rst to myst syntax in ReadTheDocs, fixed line wrapping and widths #1137
- Improving usage of streams on sql fetches #827
- Improving error message when using the outdated csv format #1112
- Changed ThermalUnitValidation: Ensure that thermal boundaries of thermal house are not the same #1186
- Converted
MappingEntry
into a normal class #1087 - Renamed timeseries mapping
participant
column toasset
#1191
5.1.0 - 2024-06-24
- Enhancing
VoltageLevel
withequals
method #1063 ConnectorValidationUtils
checks if parallel devices is > 0 #1077GridContainerValidationUtils
checks the connectivity for all defined operation time intervals #1091- Implemented a
CongestionResult
#1097
- Fixed
MappingEntryies
not getting processed by addingGetter
methods for record fields #1084 - Fixed "depth of discharge" in documentation #872
- Fixed project being build twice in CI #994
- Improvements to the search for corner points in
IdCoordinateSource
#1016 - Refactor
CsvFileConnector
andCsvDataSource
#1007 - Make
EntitySource
completely static #975 - Abstract commonly used functionality from
EntitySource
#981
5.0.1 - 2024-03-07
- Fixed
equals
ofResultEntity
andTimeSeriesEntry
#1037
5.0.0 - 2024-03-06
- Formatting Spotless Groovy import order #960
- Implementing missing typical methods in
Try
#970 - Added log warning when using
SwitchInputs
withparallelDevices
parameter #840 - Validation for
EvcsInput
#1000 - Scaling method in system participant copy builders #1011
- Added separate field for maximum power limit for DC to evtype #876
- Added test for invalid input data in
CsvRawGridSource
#1021 - Added
CsvThermalGridSource
#1009 - Enhance documentation for CSV timeseries #825
- Fixed Couchbase integration tests that randomly failed #755
- Fixed hyperlink in line documentation #965
- Fixed some tests no failing when they should #958
- Fixed thermal-house-documentation #873
- Fixed ElectricVehicle Documentation #875
- Fixed Equal behavior of
ConnectorResult
#1001 - Fixed test for invalid input data in
CsvGraphicSource
#1022
- Changing from comparing strings to comparing uuids in
EntitySource.findFirstEntityByUuid
#829 - Adding JavaDoc to
EntitySource.safeMapGet
#828 - Abstracting some methods in
ValidationUtils
#852 - Changes to Energy Management inputs:
- Enhancing the error message for coordinate sources with invalid column names #670
- Allowing for additional unused columns in sources #839
- Improving column name validation to only run once per source #849
- Refactored and abstracted
EntitySource
s andEntityData
creation #969 - Updated contributing.md #737
- Don't throw exceptions for not yet implemented validations #879
CsvDataSource
throws exceptions on error #954- Removing
uuid
as required column from input and result time series #826 - Removing the support for the old csv format that was marked
deprecated
back in version1.1.0
#795 - BREAKING: Updating PowerSystemUtils dependency to 2.2 #1006
4.1.0 - 2023-11-02
SqlIdCoordinateSource.createCooridinateValue
now throws an exception when the coordinate can not be built #911- CleanUp
BufferedCsvWriterTest
only after all tests are completed #809 - Update gradle to version 8.4 #891
4.0.0 - 2023-08-01
- Copy methods for container classes #726
- Allow hierarchic grid structure for JointGridContainer #768
- Adding SQL id coordinate sources (
IdCoordinateSource
) #689 - Added some standard asset types to documentation #642
- Fixed wrong rated power unit hint #804
- Fixed wrong hash code generation of ConnectorResult #817
- Fixed wrong path for timeSeriesMapping #886
- Removing deprecated classes and methods #540
- Refactor CSV data sources #716
- Deleted parameter initFiles, set parameter append to false by default #791
- Use nio paths instead of strings for file path #723
- Data source will throw an exceptions instead of returning an empty optionals #707
- Improving
ValidationUtils
#758 - conversion from rst to markdown myst#979
3.0.0 - 2023-02-16
- SQL time series sources (
SqlTimeSeriesSource
andSqlTimeSeriesMappingSource
) #467 - SQL time series have a different structure than CSV counterparts #545
- Graph with impedance weighted edges including facilities to create it #440
TimeSeriesMetaInformationSource
providing a source for the mapping of time series uuids to column schemes (previously provided byTimeSeriesMappingSource
) #515TemperatureDependantLoadProfile
s for depiction of profile behavior of night storage heating and heat pumps #601ThermalUnits
as a container to hold all thermal units #134ThermalInput
as a distinct abstract class for all thermal modelsThermalGrid
as a container for a completely connected thermal gridEmResult
andFlexOptionsResult
for Energy Management Systems #651EvcsInput
now has a parameter for enabling and disabling vehicle to grid support #681- Added Dependabot updates to sphinx/readthedocs dependencies #735
- Created convenience function for JointGridContainer from CSV #502
- Added CSV grid IO integration test #586
- Reduced code smells #492
- Protected constructors for abstract classes
- Use pattern matching
- Remove unused imports
- Use enhanced switch statements
- Replace lambdas with method references
- Use
Stream#toList
- Adapt visibility for JUnit 5
- More code smell fixing #633
- Use
List#of
- Use direct assignment with switch/case structures
- Turn some classes into records
- Making abstract classes' constructor protected
- Improving some RegExs
- Replacing
filter(Optional::isPresent).map(Optional::get)
on streams withflatMap(Optional::stream)
- instanceof variable declarations
- Removing unnecessary parentheses
- Miscellaneous code smells
- Use
- Fix JavaDoc creation
- Create JavaDoc with java 17 instead of java 8
- Let JavDoc pass, if there are warnings ATTENTION: Should be removed, when JavaDoc is fixed! (cf. Issue #494)
BufferedCsvWriter
writes columns in the order, that the headline elements are defined #434- Cleaned up
IndividualTimeSeriesMetaInformation
-related methods inCsvFileConnector
#544 - Fixed spotlessApply handling for
.groovy
files #637 - Re-using SQL connection per default #653
- Persisting EmInputs #665
- Charging point type parsing now works with more id definitions #686
- Fix
EvResult.toString
#690
- BREAKING: PvInput Model parameter name height changed to elevationAngle #393
⚠️ - BREAKING: Transformer's no load susceptance needs to be zero or negative to pass model validation #378
- All input data sets for version < 3.0.0 need to be altered!
- Deprecating (as part of #513):
edu.ie3.datamodel.io.csv.timeseries.ColumnScheme
edu.ie3.datamodel.io.csv.FileNameMetaInformation
edu.ie3.datamodel.io.csv.timeseries.IndividualTimeSeriesMetaInformation
edu.ie3.datamodel.io.csv.timeseries.LoadProfileTimeSeriesMetaInformation
edu.ie3.datamodel.io.connectors.CsvFileConnector.CsvIndividualTimeSeriesMetaInformation
- and related methods
- BREAKING: Comprehensive harmonization around weather sources #267
- Adapted the expected column scheme
- General weather model
coordinate
tocoordinateid
- DWD COSMO model
diffuseirradiation
todiffuseirradiance
directirradiation
todirectirradiance
- ICON model:
"datum"
to"time"
- General weather model
- Force user to provide time stamp pattern to
CouchbaseWeatherSource
to ensure harmonized querying
- Adapted the expected column scheme
- BREAKING: Updating PowerSystemUtils dependency to 2.0-SNAPSHOT #595
- BREAKING: Generified the
LoadInput
attributestandardLoadProfile
toloadProfile
as it should also address the newly addedTemperatureDependantLoadProfile
s #601 - Adapted to new double converters in PSU #705
- Setting fixed groovy version and updating groovy #788
2.1.0 - 2022-01-05
- added
EvcsLocationType
support inEvcsInput
andEvcsInputFactory
#406 - Opportunity to close writer in
CsvFileSink
- Generified SQL data sources for future extensions
- adapted
LineInput
constructor to convert line length toStandardUnits.LINE_LENGTH
#412
- Writers used to write time series are closed right away
- Changed class name in FlexOptionsResult.toString #693
- Deleted parameter decimalPlaces and changed naming of serialization method #710
- Changed switch result documentation according to the implementation #757
- Added documentation for EmResult and FlexOptionResult #656
- Added method that checks if the transformer nodes are located on the correct voltage side #803
2.0.1 - 2021-07-08
- fix CHANGELOG.md
- replace
LogManager
calls withLogFactory
for facade logging support
2.0.0 - 2021-05-21
- added
ResultEntitySource
interface - added
CsvResultEntitySource
implementation to readResultEntity
instances from .csv files - added target temperature including tolerance boundaries to
ThermalHouseInput
- separated entity and file naming and introduced a new FileNamingStrategy taking an EntityNamingStrategy and a FileHierarchy as arguments
CsvSystemParticipantSource#getSystemParticipants()
now correctly returns electric vehicle charging station input models PR#370
2.0.0 - 2021-05-21
- definition for a default input file directory structure
- tarball utils to extract and compress files
- added electric vehicle charging station implementation
EvcsInput
- reading time series from csv files (including a container object to hold the different types of time series)
- reading mapping from participant uuid to time series uuid including a mapping object for easy access to time series
- Couchbase, SQL and CSV connectors and sources for weather data
- added validation utils that can be used to check whether objects have valid values (no usage implemented yet)
- added
SystemParticipantWithHeatResult
with thermal power variable to be used by heat plant result models
- BREAKING: replaced Unit API 1.0 (JSR 363, tec.uom.se) with Unit API 2.0 (JSR 385, tech.units.indriya)
- added possibility to allow
null
values in time series for missing values (e.g. if some measure data points from real world data time series are missing) - moved api docs to own branch incl. automated api-docs deployment
- added methods for nearest and all coordinates to IdCoordinateSource
- utilize factory in IdCoordinateSource to maintain highest possible flexibility
- added coordinate distance sort method to GridAndGeoUtils
- BREAKING: Harmonized field naming for time information
- BREAKING: Properly applying snake case to result file names
- deprecated
TarballUtils
- updated Indriya to version 2.1.2 to include fixes for serialization
- Reworking the time series source (one source per time series, distinct mapping source, factory pattern)
- BREAKING: Moved methods
buildSafe{Coord,Point,LineString,LineStringBetweenCoords,LineStringBetweenPoints}
,totalLengthOfLineString
fromGridAndGeoUtils
toGeoUtils
in PowerSystemUtils - BREAKING: Moved
CoordinateDistance
to PowerSystemUtils - Factory methods for
SubGridGate
- BREAKING: Inheritance hierarchy of exceptions all around entity validation
- BREAKING: Removed deprecated code parts
- Intermingled builder pattern and constructors in
SubGridGate
TarballUtils
that have been transferred toFileIOUtils
in PowerSystemUtilsFileNamingStrategy
that has been transferred toEntityPersistenceNamingStrategy
EvCharacteristicInput
andTimeSeriesContainer
that shouldn't be used anymore
- Intermingled builder pattern and constructors in
- InfluxDbConnector now keeps session instead of creating a new one each call (resolves #247 and #248)
- BREAKING: fix invalid application of solar irradiance / irradiation (#266)
- BREAKING: deleted
IrradiationValue
as it is invalid and no longer required - added copy builder implementations for thermal input models
CylindricalStorageInput
,ThermalBusInput
andThermalHouseInput
- the sample code for reading and writing model data from respectively to csv files documented in the Sphinx documentation is fixed
1.1.0 - 2020-09-15
- Headline in csv files is now mandatory. CsvDataSource checks for existing field
uuid
in first row of .csv file - Minor logging improvements
- New constructor in
Transformer3WInput
that allows the internal node to be marked as slack - Method in
ContainerUtils
to modify a providedSubGridContainer
with slack nodes and make it usable for most of the commonly known power flow calculations - gradle task to create JavaDoc HTML files in the folder 'docs/javadoc'
- added missing
HpResult
model - Implementation of
DataConnector
,WeatherSource
andDataSink
for InfluxDB - Introduction of a
IdCoordinateSource
and implementation of corresponding csv source for ID to coordinate mapping - Factory for
TimeBasedValues<WeatherValue>
- Documentation with Sphinx / ReadTheDocs: https://powersystemdatamodel.readthedocs.io/en/latest/
- Introduction of
SwitchResultFactory
to build adaptedSwitchResult
entities - Copy method for all
RawGridElements
andSystemParticipants
input entities which allow an easy to use entity copy with altered field values distanceBetweenNodes(NodeInput nodeA, NodeInput nodeB)
inGridAndGeoUtils
- Additional constructors based on lists of entities in
RawGridElements
,SystemParticipants
andGraphicElements
- Added
DistanceWeightedGraph
+ corresponding utility method to generate a graph topology whose vertices areNodeInput
entities and its edges are weighted with the distance between the vertices in meter - Added
ContainerNodeUpdateUtil
to support updating nested nodes inGridContainer
instances - Gradle task
gradle finalizePR
to format and test the code as well as generate JavaDoc
- Disabled concurrent writing in
CsvFileSink.persistJointGrid()
as this caused concurrency issues - Modifications in
LineInput
andGraphicInput
constructors to makeLineStrings
with two exactly equal coordinates or multiple exactly equal coordinates possible - Extended functionality of
GridAndGeoUtils
CsvFileConnector
is now set up to process either UniqueEntities or only by file nameSwitchResult
superclass changed fromConnectorResult
toResultEntity
CsvDataSource
now parses valid RFC 4180 rows correctly (invalid, old syntax is still supported but deprecated!)- Consolidate test tasks.
gradle allTests
is now replaced bygradle test
. Only unit tests can be run withgradle unitTest
. - Changed projects toString() methods for readability/completeness
- Adapted to changes in PowerSystemUnits in PowerSystemUtils #631
- CsvDataSource now stops trying to get an operator for empty operator uuid field in entities
- CsvDataSource now parsing multiple geoJson strings correctly