Skip to content
GitLab
Projects Groups Topics Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Register
  • Sign in
  • airGR airGR
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributor statistics
    • Graph
    • Compare revisions
  • Issues 68
    • Issues 68
    • List
    • Boards
    • Service Desk
    • Milestones
  • Redmine
    • Redmine
  • Merge requests 7
    • Merge requests 7
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Packages and registries
    • Packages and registries
    • Container Registry
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar

La forge institutionnelle d'INRAE étant en production depuis le 10 juin 2025, nous vous invitons à y créer vos nouveaux projets.

  • HYCAR-HydroHYCAR-Hydro
  • airGRairGR
  • Issues
  • #133
Closed
Open
Issue created Jul 01, 2021 by Delaigue Olivier@olivier.delaigueOwner

SeriesAggreg: Reorder regime time series and keep original data.frame column names

Row order

When a user wants to calculate the monthly regime from a time series that does not start in January, the resulting time series is not ordered chronologically:

## loading catchment data
data(L0123002)

## preparation of the initial time series data frame at the daily time step
TabSeries <- BasinObs[-c(1:100), c("DatesR", "P", "E", "T", "Qmm")]

## monthly regimes
NewTabSeries <- SeriesAggreg(TabSeries,
                             Format = "%m",
                             ConvertFun = c("sum", "sum", "mean", "sum"))
NewTabSeries
          DatesR       P        E           T       Qmm
25    1985-01-01 4561.75    0.000 -4.38509320  801.5458
1638  1985-02-01 3628.40  137.333 -3.19772073  885.9376
2514  1985-03-01 3285.26  918.967 -0.06520829 1419.2986
3204  1984-04-10 2951.83 1945.714  3.62350569 3228.6649
4204  1984-05-01 3039.24 3060.999  7.44770178 6952.6141
5151  1984-06-01 2550.69 3655.168 11.41753270 5886.3055
6049  1984-07-01 1463.55 3980.017 15.21047230 1728.8110
6857  1984-08-01 1369.97 3609.238 15.05654527  528.8462
7770  1984-09-01 1914.48 2685.482 10.52281546  407.1385
8724  1984-10-01 2596.42 1697.494  4.53778871  487.0308
9587  1984-11-01 4752.38  645.070 -2.62700563  750.2040
10440 1984-12-01 4870.14   44.293 -5.27928687  903.0798

This can lead to a counter-intuitive behavior...

plot(NewTabSeries[, c("DatesR", "Qmm")], type = "l")

image

One possibility is to reorder the table by the date culumn. The other solution, which I prefer, is to impose the same year (which doesn't really make sense).

Column names

Another problem that we have already talked about. But the function automatically renames the date column of a data.frame, which is not very polite to the user.

## preparation of the initial time series data frame at the daily time step
TabSeries <- BasinObs[-c(1:100), c("DatesR", "P", "E", "T", "Qmm")]
colnames(TabSeries) <- LETTERS[1:5]

## monthly regimes
NewTabSeries <- SeriesAggreg(TabSeries,
                             Format = "%m",
                             ConvertFun = c("sum", "sum", "mean", "sum"))
head(NewTabSeries)
         DatesR       B        C           D         E
25   1985-01-01 4561.75    0.000 -4.38509320  801.5458
1638 1985-02-01 3628.40  137.333 -3.19772073  885.9376
2514 1985-03-01 3285.26  918.967 -0.06520829 1419.2986
3204 1984-04-10 2951.83 1945.714  3.62350569 3228.6649
4204 1984-05-01 3039.24 3060.999  7.44770178 6952.6141
5151 1984-06-01 2550.69 3655.168 11.41753270 5886.3055
Edited Jul 15, 2021 by Delaigue Olivier
Assignee
Assign to
Time tracking