html_url,issue_url,id,node_id,user,created_at,updated_at,author_association,body,reactions,performed_via_github_app,issue
https://github.com/pydata/xarray/issues/1844#issuecomment-1161471072,https://api.github.com/repos/pydata/xarray/issues/1844,1161471072,IC_kwDOAMm_X85FOqRg,43267076,2022-06-21T09:05:35Z,2022-06-21T09:05:53Z,NONE,"I also suggest that, for some applications, it can be useful to simply drop all the 29th of February. This is accomplished by means of:
dataset = dataset.convert_calendar('365_day')","{""total_count"": 1, ""+1"": 1, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,290023410
https://github.com/pydata/xarray/issues/1844#issuecomment-441034802,https://api.github.com/repos/pydata/xarray/issues/1844,441034802,MDEyOklzc3VlQ29tbWVudDQ0MTAzNDgwMg==,33062222,2018-11-22T13:43:23Z,2018-11-22T13:44:48Z,NONE,"For anyone stumbling upon this thread in the future, I would like to mention that I used the above grouping approach suggested by @spencerkclark for my dataset to calculate climatology with calendar day and it works smoothly. The only thing one should be careful is that you can't directly plot the data using
`In[1]: da.groupby(month_day_str).mean('time').plot()`
`Out[1]: TypeError: Plotting requires coordinates to be numeric or dates of type np.datetime64 or datetime.datetime.`
To get around it, either use group by the
> modified_ordinal _day
Or convert back the grouped coordinate month_day_str to numeric. However, after doing all this I found out that the CDO function also calculates climatology by the ordinal day of the year. So, to be consistent I would stick to that method but it's anyway good to know that there is a way around to group by day and month if required in Xarray.","{""total_count"": 1, ""+1"": 1, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,290023410
https://github.com/pydata/xarray/issues/1844#issuecomment-359406359,https://api.github.com/repos/pydata/xarray/issues/1844,359406359,MDEyOklzc3VlQ29tbWVudDM1OTQwNjM1OQ==,1889878,2018-01-22T12:12:57Z,2018-01-22T12:12:57Z,NONE,Thanks a lot for the help!,"{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,290023410
https://github.com/pydata/xarray/issues/1844#issuecomment-359066317,https://api.github.com/repos/pydata/xarray/issues/1844,359066317,MDEyOklzc3VlQ29tbWVudDM1OTA2NjMxNw==,1889878,2018-01-19T19:31:43Z,2018-01-19T19:43:38Z,NONE,"I end up doing the following:
```
# dset, mean, std - all XArray objects as explained above
time_index = dset.time.dt.dayofyear
dset_mean = mean.sel(dayofyear=time_index)
dset_std = std.sel(dayofyear=time_index)
new_dset = ((dset - dset_mean) / dset_std).drop(""dayofyear"")
```
One issue though is that this quite bad on memory as it constructs 3 arrays in memmory as large as the original one. If anoyne has any suggestion on how to improve this I would be very grateful. Also is it possible to compute and store `new_dset` simutlanously so I don't create it in memory?","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,290023410
https://github.com/pydata/xarray/issues/1844#issuecomment-359061384,https://api.github.com/repos/pydata/xarray/issues/1844,359061384,MDEyOklzc3VlQ29tbWVudDM1OTA2MTM4NA==,1889878,2018-01-19T19:12:23Z,2018-01-19T19:12:23Z,NONE,"Thanks for the suggestion. However, option 2 and 3 are not really options, as after this, I need to provide the standardized field with the original time index. I'm using Xarray for the first time but will try to do the reindexing. ","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,290023410
https://github.com/pydata/xarray/issues/1844#issuecomment-359025678,https://api.github.com/repos/pydata/xarray/issues/1844,359025678,MDEyOklzc3VlQ29tbWVudDM1OTAyNTY3OA==,7747527,2018-01-19T16:55:25Z,2018-01-19T16:55:25Z,NONE,"So you got a two-year temperature field with dimension [730, 1, 481, 781], and another mean, and std data arrays of [366, 1, 481, 781] and you want to normalize the temperature field.
Sorry I'm not familiar with the Xarray's groupby functions, I'll try several things before some experts jumping in.
- Concat two std/mean fields along dayofyear, and reindex to the time index from the temperature data. Then you can do the (dset-mean)/std
- Separate the temperature fields into two one-year chunks, reindex time to dayofyear, then do the calculation.
- Flatten the spatial grid then use numpy to do the trick.
I'm also interested in the right way to do it using built-in Xarray functions. I'm pretty sure there are some more clever ways to do this.
","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,290023410