Skip to content

Latest commit

 

History

History
324 lines (278 loc) · 24.4 KB

CHANGELOG.md

File metadata and controls

324 lines (278 loc) · 24.4 KB

Changelog

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.

Added

  • 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

Fixed

Changed

  • 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 to asset #1191

5.1.0 - 2024-06-24

Added

  • Enhancing VoltageLevel with equals method #1063
  • ConnectorValidationUtils checks if parallel devices is > 0 #1077
  • GridContainerValidationUtils checks the connectivity for all defined operation time intervals #1091
  • Implemented a CongestionResult #1097

Fixed

  • Fixed MappingEntryies not getting processed by adding Getter methods for record fields #1084
  • Fixed "depth of discharge" in documentation #872
  • Fixed project being build twice in CI #994

Changed

  • Improvements to the search for corner points in IdCoordinateSource #1016
  • Refactor CsvFileConnector and CsvDataSource #1007
  • Make EntitySource completely static #975
  • Abstract commonly used functionality from EntitySource #981

5.0.1 - 2024-03-07

Fixed

  • Fixed equals of ResultEntity and TimeSeriesEntry #1037

5.0.0 - 2024-03-06

Added

  • Formatting Spotless Groovy import order #960
  • Implementing missing typical methods in Try #970
  • Added log warning when using SwitchInputs with parallelDevices 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

  • 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

Changed

  • 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:
    • EmInput should not be connected to the grid #955
    • System participants now reference the em entity #957
  • 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 EntitySources and EntityData 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 version 1.1.0 #795
  • BREAKING: Updating PowerSystemUtils dependency to 2.2 #1006

4.1.0 - 2023-11-02

Fixed

  • Making constructor of CsvDataSource public #894
  • Fixing spotless groovy #918

Changed

  • 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

Added

  • 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

  • Fixed wrong rated power unit hint #804
  • Fixed wrong hash code generation of ConnectorResult #817
  • Fixed wrong path for timeSeriesMapping #886

Changed

  • 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

Added

  • SQL time series sources (SqlTimeSeriesSource and SqlTimeSeriesMappingSource) #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 by TimeSeriesMappingSource) #515
  • TemperatureDependantLoadProfiles for depiction of profile behavior of night storage heating and heat pumps #601
  • ThermalUnits as a container to hold all thermal units #134
  • ThermalInput as a distinct abstract class for all thermal models
  • ThermalGrid as a container for a completely connected thermal grid
  • EmResult and FlexOptionsResult for Energy Management Systems #651
  • EvcsInput 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

Fixed

  • 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 with flatMap(Optional::stream)
    • instanceof variable declarations
    • Removing unnecessary parentheses
    • Miscellaneous code smells
  • 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 in CsvFileConnector #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

Changed

  • 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 to coordinateid
      • DWD COSMO model
        • diffuseirradiation to diffuseirradiance
        • directirradiation to directirradiance
      • ICON model:
        • "datum" to "time"
    • Force user to provide time stamp pattern to CouchbaseWeatherSource to ensure harmonized querying
  • BREAKING: Updating PowerSystemUtils dependency to 2.0-SNAPSHOT #595
  • BREAKING: Generified the LoadInput attribute standardLoadProfile to loadProfile as it should also address the newly added TemperatureDependantLoadProfiles #601
  • Adapted to new double converters in PSU #705
  • Setting fixed groovy version and updating groovy #788

2.1.0 - 2022-01-05

Added

  • added EvcsLocationType support in EvcsInput and EvcsInputFactory #406
  • Opportunity to close writer in CsvFileSink
  • Generified SQL data sources for future extensions

Fixed

  • adapted LineInput constructor to convert line length to StandardUnits.LINE_LENGTH #412

Changed

  • 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

Fixed

  • fix CHANGELOG.md
  • replace LogManager calls with LogFactory for facade logging support

2.0.0 - 2021-05-21

Added

  • added ResultEntitySource interface
  • added CsvResultEntitySource implementation to read ResultEntity instances from .csv files
  • added target temperature including tolerance boundaries to ThermalHouseInput

Changed

  • separated entity and file naming and introduced a new FileNamingStrategy taking an EntityNamingStrategy and a FileHierarchy as arguments

Fixed

  • CsvSystemParticipantSource#getSystemParticipants() now correctly returns electric vehicle charging station input models PR#370

2.0.0 - 2021-05-21

Added

  • 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

Changed

  • 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 from GridAndGeoUtils to GeoUtils in PowerSystemUtils
  • BREAKING: Moved CoordinateDistance to PowerSystemUtils
  • Factory methods for SubGridGate
  • BREAKING: Inheritance hierarchy of exceptions all around entity validation

Removed

  • BREAKING: Removed deprecated code parts
    • Intermingled builder pattern and constructors in SubGridGate
    • TarballUtils that have been transferred to FileIOUtils in PowerSystemUtils
    • FileNamingStrategy that has been transferred to EntityPersistenceNamingStrategy
    • EvCharacteristicInput and TimeSeriesContainer that shouldn't be used anymore

Fixed

  • 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 and ThermalHouseInput
  • 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

Added

  • 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 provided SubGridContainer 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 and DataSink 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 ofSwitchResultFactory to build adapted SwitchResult entities
  • Copy method for all RawGridElements and SystemParticipants input entities which allow an easy to use entity copy with altered field values
  • distanceBetweenNodes(NodeInput nodeA, NodeInput nodeB) in GridAndGeoUtils
  • Additional constructors based on lists of entities in RawGridElements, SystemParticipants and GraphicElements
  • Added DistanceWeightedGraph + corresponding utility method to generate a graph topology whose vertices are NodeInput entities and its edges are weighted with the distance between the vertices in meter
  • Added ContainerNodeUpdateUtil to support updating nested nodes in GridContainer instances
  • Gradle task gradle finalizePR to format and test the code as well as generate JavaDoc

Changed

  • Disabled concurrent writing in CsvFileSink.persistJointGrid() as this caused concurrency issues
  • Modifications in LineInput and GraphicInput constructors to make LineStrings 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 name
  • SwitchResult superclass changed from ConnectorResult to ResultEntity
  • CsvDataSource now parses valid RFC 4180 rows correctly (invalid, old syntax is still supported but deprecated!)
  • Consolidate test tasks. gradle allTests is now replaced by gradle test. Only unit tests can be run with gradle unitTest.
  • Changed projects toString() methods for readability/completeness
  • Adapted to changes in PowerSystemUnits in PowerSystemUtils #631

Fixed

  • CsvDataSource now stops trying to get an operator for empty operator uuid field in entities
  • CsvDataSource now parsing multiple geoJson strings correctly