Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Check the grid validity with PSDM validation utils #462

Merged
merged 11 commits into from
Feb 21, 2023
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- Added listeners to DBFS tests to check the result output and check the handling of failed power flows [#269](https://github.com/ie3-institute/simona/issues/269)
- Added DBFS test with participant load and added testing for FinishGridSimulationTrigger [#281](https://github.com/ie3-institute/simona/issues/281)
- Added Dependabot updates to sphinx/readthedocs dependencies [#448](https://github.com/ie3-institute/simona/issues/448)
- Check for grid validity with PSDM `ValidationUtils` [#460](https://github.com/ie3-institute/simona/issues/460)

### Changed
- Re-organizing test resources into their respective packages [#105](https://github.com/ie3-institute/simona/issues/105)
Expand Down
80 changes: 0 additions & 80 deletions src/main/scala/edu/ie3/simona/io/grid/CsvGridSource.scala

This file was deleted.

33 changes: 19 additions & 14 deletions src/main/scala/edu/ie3/simona/io/grid/GridProvider.scala
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,13 @@

package edu.ie3.simona.io.grid

import edu.ie3.datamodel.io.naming.FileNamingStrategy
import com.typesafe.scalalogging.LazyLogging
import edu.ie3.datamodel.io.source.csv.CsvJointGridContainerSource
import edu.ie3.datamodel.models.input.container.JointGridContainer
import edu.ie3.datamodel.utils.validation.ValidationUtils
import edu.ie3.simona.config.SimonaConfig
import edu.ie3.simona.exceptions.InitializationException

import scala.util.{Failure, Try}

/** Takes [[edu.ie3.simona.config.SimonaConfig.Simona.Input.Grid.Datasource]] as
* input and provides a [[JointGridContainer]] based on the configuration incl.
Expand All @@ -18,7 +21,7 @@ import edu.ie3.simona.exceptions.InitializationException
* @version 0.1
* @since 28.04.20
*/
object GridProvider {
object GridProvider extends LazyLogging {

def gridFromConfig(
simulationName: String,
Expand All @@ -29,18 +32,20 @@ object GridProvider {
case GridSourceType.CSV =>
gridDataSource.csvParams match {
case Some(params) =>
CsvGridSource
.readGrid(
simulationName,
params.csvSep,
params.directoryPath,
new FileNamingStrategy()
)
.getOrElse(
throw new InitializationException(
"Error while initializing CsvGridSource! Cannot proceed without a valid GridSource!"
val jointGridContainer = CsvJointGridContainerSource.read(
simulationName,
params.csvSep,
params.directoryPath
)

Try.apply(ValidationUtils.check(jointGridContainer)) match {
staudtMarius marked this conversation as resolved.
Show resolved Hide resolved
case Failure(exception) =>
staudtMarius marked this conversation as resolved.
Show resolved Hide resolved
logger.warn(
s"Error while initializing CsvGridSource! Cannot proceed without a valid GridSource!",
staudtMarius marked this conversation as resolved.
Show resolved Hide resolved
exception
staudtMarius marked this conversation as resolved.
Show resolved Hide resolved
)
)
}
jointGridContainer
case None =>
throw new RuntimeException(
"CSVGridSource requires csv params to be set!"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,9 @@

package edu.ie3.simona.model.participant

import edu.ie3.datamodel.io.naming.FileNamingStrategy
import edu.ie3.datamodel.io.source.csv.CsvJointGridContainerSource
import edu.ie3.datamodel.models.input.container.JointGridContainer
import edu.ie3.datamodel.models.input.system.PvInput
import edu.ie3.simona.io.grid.CsvGridSource
import edu.ie3.simona.model.SystemComponent
import edu.ie3.simona.model.participant.control.QControl
import edu.ie3.simona.ontology.messages.services.WeatherMessage
Expand Down Expand Up @@ -127,9 +127,8 @@ trait PvModelITHelper {
HashMap<String, PvModel> createPvModels() {
"load the grid input data from the corresponding resources folder"

def csvGridSource = CsvGridSource.readGrid("it_grid", ";",
this.getClass().getResource("_pv/it/grid_data").file,
new FileNamingStrategy())
def csvGridSource = CsvJointGridContainerSource.read("it_grid", ";",
this.getClass().getResource("_pv/it/grid_data").file)

def simulationStartDate = TimeUtil.withDefaults.toZonedDateTime("2011-01-01 00:00:00")
def simulationEndDate = TimeUtil.withDefaults.toZonedDateTime("2012-01-01 00:00:00")
Expand Down