Skip to content

Unstack dates a l'hiver très large #632

@aulemahal

Description

@aulemahal

Setup Information

  • xscen version: 0.12
  • Python version: 3.13
  • Operating System: Halia

Description

Dans unstack_dates, si l'argument winter_starts_year est True et qu'aucune des saisons ne commence en janvier, alors la dernière saison (le # de mois le plus grand) est associé à l'année d'après. Peut importe le mois, même si c'est Août par exemple.

Steps To Reproduce

t = xr.date_range('1993-01-01', freq='YS-AUG', periods=5)
da = xr.DataArray([1] * 5, dims=('time',), coords={'time': t})
out = xs.utils.unstack_dates(da, winter_starts_year=True)
print(da.time)
print(out.time)
<xarray.DataArray 'time' (time: 5)> Size: 40B
array(['1993-08-01T00:00:00.000000000', '1994-08-01T00:00:00.000000000',
       '1995-08-01T00:00:00.000000000', '1996-08-01T00:00:00.000000000',
       '1997-08-01T00:00:00.000000000'], dtype='datetime64[ns]')
Coordinates:
  * time     (time) datetime64[ns] 40B 1993-08-01 1994-08-01 ... 1997-08-01
<xarray.DataArray 'time' (time: 5)> Size: 40B
array(['1994-01-01T00:00:00.000000000', '1995-01-01T00:00:00.000000000',
       '1996-01-01T00:00:00.000000000', '1997-01-01T00:00:00.000000000',
       '1998-01-01T00:00:00.000000000'], dtype='datetime64[ns]')
Coordinates:
  * time     (time) datetime64[ns] 40B 1994-01-01 1995-01-01 ... 1998-01-01

Additional context

La doc parle seulement de Décembre, donc un fix minimal serait de restreindre le comportement au mois de décembre.

Une solution plus flexible serait de remplacer cet argument par year_start = int [1...12], c'est à dire qu'on pourrait contrôler quel mois début l'année. Le défaut serait 1 et l'équivalent de ce que la doc dit serait 12, mais on pourrait avoir du QS-NOV et donner 11 mettons que c'est ce qu'on veut.

Contribution

  • I would be willing/able to open a Pull Request to address this bug.

Metadata

Metadata

Assignees

Labels

bugSomething isn't working

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions