Replies: 4 comments 7 replies
-
This could be referenced in a calendar page |
Beta Was this translation helpful? Give feedback.
-
Thank you @lee1043 and nice starting point with your pseudo code. I'll take a closer look soon, maybe this week! |
Beta Was this translation helpful? Give feedback.
-
@lee1043 I have a question about this method. It seems like you calculate 365-day climatology excluding all 2/29. If so, how can you calculate the anomaly of 2/29? In my method, I calculate 366-day climatology including 2/29. |
Beta Was this translation helpful? Give feedback.
-
@msahn In this method 2/29 is not being considered. Presume an example case of getting daily climatology for 10 years, then 2/29 is average of 2 years while other days are average of 10 years. I won't prefer having such inconsistency, so I would prefer dropping 2/29. It looks like different groups have done this differently, and I don't think there is the one right way though. One possible path could be allowing some flexibility for how to calculate daily climatology by enabling the following options, such as:
But I also think the code could be more complicated (thus less maintainable) to enable all options -- this question may go to @tomvothecoder I know you were taking the approach 2 in his precipitation variability code in PMP, would you like to give a quick check if you take approach 1 how much impact would be made to your result? I think it can be checked with just one or two observations, no need to use the entire suite of CMIP models. |
Beta Was this translation helpful? Give feedback.
-
Following #303 (comment), calculation of climatology for daily or higher temporal frequency time series will need to remove data on dates of 29th February in leap years from the input time series.
Calendars having normal leap year in CF-convention are "gregorian", "standard", and "proleptic_gregorian". (Calendars in CF-convention: https://cfconventions.org/Data/cf-conventions/cf-conventions-1.7/build/ch04s04.html)
We may want to implement a kind of pre-processing function for input data, which could be something like below. I am yet to have a good idea where this function should be placed. @tomvothecoder would you share your insight?
Beta Was this translation helpful? Give feedback.
All reactions