airGRiwrm issueshttps://gitlab.irstea.fr/in-wop/airGRiwrm/-/issues2021-05-03T15:51:19+02:00https://gitlab.irstea.fr/in-wop/airGRiwrm/-/issues/47Automatically update website from package repository2021-05-03T15:51:19+02:00Dorchies DavidAutomatically update website from package repositoryUse CI/CD to generate and transfer the website to https://airgriwrm.g-eau.net.Use CI/CD to generate and transfer the website to https://airgriwrm.g-eau.net.v0.6.0Dorchies DavidDorchies Davidhttps://gitlab.irstea.fr/in-wop/airGRiwrm/-/issues/46Rename function GRiwrm to CreateGRiwrm2021-05-03T10:28:56+02:00Dorchies DavidRename function GRiwrm to CreateGRiwrmTo be consistent with other functions that create **airGRiwrm** / **airGR** objectsTo be consistent with other functions that create **airGRiwrm** / **airGR** objectsv0.5.1Dorchies DavidDorchies Davidhttps://gitlab.irstea.fr/in-wop/airGRiwrm/-/issues/45Update URLs in the DESCRIPTION file2021-04-23T11:00:08+02:00Delaigue OlivierUpdate URLs in the DESCRIPTION file```
URL: https://airgriwrm.g-eau.fr/
BugReports: https://gitlab.irstea.fr/in-wop/airGRiwrm/-/issues
``````
URL: https://airgriwrm.g-eau.fr/
BugReports: https://gitlab.irstea.fr/in-wop/airGRiwrm/-/issues
```https://gitlab.irstea.fr/in-wop/airGRiwrm/-/issues/43Review documentation for publication on CRAN2021-04-23T08:50:07+02:00Dorchies DavidReview documentation for publication on CRANv0.5.1Dorchies DavidDorchies Davidhttps://gitlab.irstea.fr/in-wop/airGRiwrm/-/issues/42Feature request: use of non gauged stations in the network2021-04-21T09:42:44+02:00Dorchies DavidFeature request: use of non gauged stations in the networkThe idea is to be able to integrate GR models in the network with parameters dependant of neighbour sub-basins.The idea is to be able to integrate GR models in the network with parameters dependant of neighbour sub-basins.v0.6.0https://gitlab.irstea.fr/in-wop/airGRiwrm/-/issues/29Feature: Local Rule2021-03-07T18:25:47+01:00Dorchies DavidFeature: Local RuleThe issue #19 addresses central regulation on the system with a so-called supervisor and controllers. A controller can pick measured flows anywhere in the system and coordinate flow influences anywhere. While Supervisor and Controllers can simulate whatever artificial influence that can be imagine, this method has several pitfalls:
- the measured flows used for calculating controller actions are the one calculated at the previous time step. If the delay between the measured points and the action points is less than one simulation time step, this can lead to inaccurate regulation.
- it is impossible to calibrate the model with a supervision as the whole network is run time step by time step and a calibration requires to be run sub-basin by sub-basin from upstream to downstream on the entire run period.
- The time step by time step run can lead to very long computation time.
In contrast, if we imagine that a node can be a model running local rules. This local rules model would be able to pick simulated flow time series from other nodes and calculate a flow time series for the node where it is implemented.
If the simulated flow time series is picked from an upper node, then the data is available and the process looks like an open-loop regulation.
Otherwise, if the simulated flow time series is picked from a lower node, then the data is not available because this flow is simulated after the current node. To cope with this issue, we can make iterations over all the node's loop. At first iteration, the local rule is calculated with a default flow time series at the lower node, and then the lower node is simulated. At the next iterations, the lower node simulate a flow taking into account the upper node with the local rule. We then stop the iterations when the lower flow time series converge to stabilised values.
Here below a scheme comparing the two paradigms of regulation: central supervision and local rules:
![image](/uploads/28a49ca8184680ac1f8709697a3fcbae/image.png)
With the local rules concept, it is now possible to calibrate a model containing nodes with local rules (calibration with dynamically influenced flows) because each node is run for a entire run period which allows to do calibration node by node from upstream to downstream. And moreover, we can imagine that a local rule depends on free parameters that can also be calibrated in the whole process (needs more conceptual investigations).The issue #19 addresses central regulation on the system with a so-called supervisor and controllers. A controller can pick measured flows anywhere in the system and coordinate flow influences anywhere. While Supervisor and Controllers can simulate whatever artificial influence that can be imagine, this method has several pitfalls:
- the measured flows used for calculating controller actions are the one calculated at the previous time step. If the delay between the measured points and the action points is less than one simulation time step, this can lead to inaccurate regulation.
- it is impossible to calibrate the model with a supervision as the whole network is run time step by time step and a calibration requires to be run sub-basin by sub-basin from upstream to downstream on the entire run period.
- The time step by time step run can lead to very long computation time.
In contrast, if we imagine that a node can be a model running local rules. This local rules model would be able to pick simulated flow time series from other nodes and calculate a flow time series for the node where it is implemented.
If the simulated flow time series is picked from an upper node, then the data is available and the process looks like an open-loop regulation.
Otherwise, if the simulated flow time series is picked from a lower node, then the data is not available because this flow is simulated after the current node. To cope with this issue, we can make iterations over all the node's loop. At first iteration, the local rule is calculated with a default flow time series at the lower node, and then the lower node is simulated. At the next iterations, the lower node simulate a flow taking into account the upper node with the local rule. We then stop the iterations when the lower flow time series converge to stabilised values.
Here below a scheme comparing the two paradigms of regulation: central supervision and local rules:
![image](/uploads/28a49ca8184680ac1f8709697a3fcbae/image.png)
With the local rules concept, it is now possible to calibrate a model containing nodes with local rules (calibration with dynamically influenced flows) because each node is run for a entire run period which allows to do calibration node by node from upstream to downstream. And moreover, we can imagine that a local rule depends on free parameters that can also be calibrated in the whole process (needs more conceptual investigations).v0.6.0Dorchies DavidDorchies Davidhttps://gitlab.irstea.fr/in-wop/airGRiwrm/-/issues/27Parallelisation of the sub-catchment calibrations2021-02-10T14:11:48+01:00Dorchies DavidParallelisation of the sub-catchment calibrationsIn the hierarchy of sub-catchments, some calibrations or runs of the model can be done in parallel such as in 'PREMHYCE' (https://gitlab.irstea.fr/HYCAR-Hydro/airgr/-/issues/96#note_34016).
If the computation burden for calibration is too heavy, we can think about this.In the hierarchy of sub-catchments, some calibrations or runs of the model can be done in parallel such as in 'PREMHYCE' (https://gitlab.irstea.fr/HYCAR-Hydro/airgr/-/issues/96#note_34016).
If the computation burden for calibration is too heavy, we can think about this.https://gitlab.irstea.fr/in-wop/airGRiwrm/-/issues/26USe S3 plot method for GRiwrm and GRiwrmOutputsModel class objects2021-03-07T18:25:33+01:00Dorchies DavidUSe S3 plot method for GRiwrm and GRiwrmOutputsModel class objects- [ ] replace `DiagramGRiwrm` by `plot.GRiwrm`
- [ ] Add class `GRiwrmOutputsModel` in the list returned by `RunModel.GRiwrmInputsModel`
- [ ] Add `id` item in `OutputsModel` embedded in `GRiwrmOutputsModel`
- [ ] Create the method `plot.GRiwrmOutputsModel` with the following code:
```r
lapply(
x,
function(y) {
plot(y, Qobs = Qobs[,y$id] , main = y$id, ...)
}
)
```- [ ] replace `DiagramGRiwrm` by `plot.GRiwrm`
- [ ] Add class `GRiwrmOutputsModel` in the list returned by `RunModel.GRiwrmInputsModel`
- [ ] Add `id` item in `OutputsModel` embedded in `GRiwrmOutputsModel`
- [ ] Create the method `plot.GRiwrmOutputsModel` with the following code:
```r
lapply(
x,
function(y) {
plot(y, Qobs = Qobs[,y$id] , main = y$id, ...)
}
)
```Dorchies DavidDorchies Davidhttps://gitlab.irstea.fr/in-wop/airGRiwrm/-/issues/12Diagram of calibrated model2020-10-02T15:51:59+02:00Dorchies DavidDiagram of calibrated modelUse S3 class on function `Diagram`to differenciate `Griwrm` diagram and `GriwrmOutputsCalib` diagram.
Display GR parameters in the nodes and lag parameter on the edges.Use S3 class on function `Diagram`to differenciate `Griwrm` diagram and `GriwrmOutputsCalib` diagram.
Display GR parameters in the nodes and lag parameter on the edges.Dorchies DavidDorchies David