Calendars are a mess— both because the earth’s rotation is not
human-frendly, and because of human legacy.

So we need to accept that, and not try to use calendars as though they
are logical units for time.

I like to think about it this way: there are time operations: “this
much time has passed”, and there are calendar operations: “this day
next month”.

Calendar operations require a lot of machinations and a well defined
calendar. Time operations are straightforward and behave “sensibly”
with the usual math.

Also — operations belong in libraries, not data files. CF should use
only well defined units.

Personally, I think udunits should never have defined “months” or
“years” as a time unit. But in any case, CF can at least highly
discourage, if not ban, their use.

Possible exception: for “artificial” Calendars, a month can be well
defined, but then the unit should be called something like
“30_day_month”, other well defined name.

I know that CF refers to udunits for unit definitions, but we really
need to either allow exceptions or periodically update udunits to meet
the needs of CF.

-CHB


> On Oct 19, 2018, at 5:13 AM, Bärring Lars <lars.barr...@smhi.se> wrote:
>
> Dear all,
>
> I agree with Jonathan's wish for a more well-behaved Earth in the planetary 
> system :-)
>
> However, awaiting this I think that we have two issues before us:
>
> 1. The fact that different datasets fundamentally are based on different 
> length of a year, while Udunits defines a year to be the real world tropical 
> year.
>
> 2. The common language notion of months  of different length (and for 
> February varying), while Udunits defines the length of a month to be one 
> twelfth of the real world tropical year.
>
>
> I fully agree that for datasets from one source (having one calendar) the 
> warning against using  "month_since..." and "year_since..."  is very well 
> motivated. But, as Martin points out, when combining data based on different 
> calendars the easiest /best/most relevant way is to use one of these. Having 
> said that I will in turn go into some detail with the two issues.
>
>
> 1. Regarding the length of the year, which is what my previous posts 
> concerned, I think that we have three options:
> A) Convince Udunits to change the behaviour  of the year unit to depend on 
> the calendar. To my mind this would actually solve the problem stated in the 
> initial post of this thread. Whether this option s possible, have a chance to 
> fly, or is something that the CF community actually want I do not now. But 
> here is the idea for you to consider. If this solution is implemented, it  
> would mean changing the text in Section 4.4.
> B) In the CF Conventions specify that the definition of the length of a year 
> deviates from the one used in Udunits. This would mean changing the text in 
> Section 4.4. Again, once this change has penetrated into software libraries, 
> this would solve the initial poster's problem.
> C) Leave things as they are, preferably with some additional language in 
> Section 4.4 to explain when unit year might be useful and when not to use it.
>
> Of course, there might be other options that I have not though of. Personally 
> I advocate  A) or B), because to my mind the impact of having defined 
> different calendars is not fully implemented in CF  because the different 
> model calendar _do_ imply different length of the year. Moreover, at least 
> for the 360_day calendar the Udunits definition of a month will then coincide 
> with what is expected from that calendar.
>
> 2. The obvious root of the problem here is of course the different months' 
> lengths in the real world calendar. Having said that, what adds to the 
> confusion is that Udunits has chosen the name "month" for the unit year/12. I 
> will  put aside the problem of different month lengths and only consider the 
> Udunits months, which I here will call "month12" for clarity, and focus on 
> the implications of having data from different calendars being merged (think 
> ensemble summary) and described using "month12_since" (where the time 
> coordinate takes on integer values). For all calendars, but 360_day, this 
> implies that a fractional day goes into the month12ly statistic. If this is a 
> problem one may one may postulate that the fractional day belongs to the 
> month12 where the larger part belongs. If this is complemented  with the 
> notion of calendar_month  it may be reasonable to restrict at least the 
> latter, or both,  to only take on integer values, to avoid hairy questions 
> like ones that Jonathan asked  "What does 1 calendar_month since 31 January 
> mean? What does 7.23 calendar_months since 31 January mean?"
>
>
> Kind regards,
> Lars
>
> PS. For those of you without a Scandinavian keyboard; you might relieved to 
> know that my first name is Lars (and Bärring is family name, despite what the 
> email alias might suggest)
>
>
> ________________________________________
> Från: CF-metadata [cf-metadata-boun...@cgd.ucar.edu] f&#246;r Taylor, Karl E. 
> [taylo...@llnl.gov]
> Skickat: den 19 oktober 2018 06:14
> Till: cf-metadata@cgd.ucar.edu
> Ämne: Re: [CF-metadata] 'months since' and 'years since' time units
>
> Dear all,
>
> I won't make any recommendations for udunits, but I will comment on the
> CF-conventions.
>
> In general, I think we should discourage usage of calendar month as a
> unit of measurement because for the real world, these are only defined
> for 12 special periods each year (the beginning to the end of each
> calendar month) and the "unit" is not constant throughout the year.
> Nevertheless there are some good arguments for considering adopting a
> special calendar month unit by the CF conventions, but only for limited
> and very specific purposes. (I'll refer to these new units as
> "calendar_months" in the following, with the understanding that the unit
> will depend on the calendar adopted and will in general vary for
> different months of the year and depend on whether or not the year is a
> leap year.)  Here are reasons (already articulated by others) why we
> might want to adopt "calendar_months" as a unit:
>
> 1) there are existing data sets with monthly-mean data and a
> time-coordinate that is supposed to indicate how many calendar months
> have passed since some base month/year. Such data sets are not easily
> accommodated by CF.
> 2) for some judiciously selected reference times, coordinates expressed
> in "calendar_months since" can be easily generated without the help of
> calendar-aware time-translation algorithms.  For example, given units of
> "calendar_months since 2001-01-01" we can trivially generate the
> coordinate values for the middle of each month: 0.5, 1.5, 2.5, etc. It
> would be much more difficult to generate the coordinate values in units
> of "days since ...".
> 3) monthly mean data sets with time coordinates based on different
> calendars can more easily be compared because if all the data sets
> adopted the same reference time, then comparable months would have the
> same coordinate values, independent of the actual month length defined
> by different calendars.  [In contrast, if the time coordinate were given
> in units of "days since ... ", the coordinate values would depend on the
> calendar.]
>
> If we define a unit of "calendar_months since ..." we would need to
> address Jonathan's point that it is not immediately obvious how to
> handle fractions of months and reference times different from the
> beginning of a month.  One approach we should consider is to restrict
> use of calendar_month units to datasets reporting monthly values only
> (not, daily, annual, hourly, etc.)  Also for simplicity we could
> restrict the reference time to be the beginning of a calendar year
> (i.e., January 1 at 0:0:0 for some specified year). If we did this, it
> would be relatively easy to define what we mean by fractions of months
> and it would also be easy to generate the values needed to define the
> time-coordinates and the cell_bounds or the bounds needed to define
> climatologies.  [It would be almost as easy if we allowed the reference
> time to be the beginning of *any* month, but let's consider the more
> restrictive "beginning of a year" option first.]
>
> I note that using calendar_month units to report data at intervals other
> than monthly intervals offers no advantages.  For example different
> fractional month increments would have to be used to report data at an
> invariant daily interval.  This would seem to introduce complexity to a
> simple time-coordinate and is why I would restrict use of calendar_month
> units to monthly data.
>
> Since months are not all equal in length, the interval of times
> represented by the same fraction may differ between months. For a
> Gregorian calendar, half-way through the month of January would be noon
> on the 16th of January (15.5 days from the beginning of the month),
> whereas half-way through the month of June would be the 16th of June at
> 00:00:00 (15.0 days from the beginning of the month. Thus 0.5 months
> since 2001-01-01 would be 2001-01-16 12:00:00 and 5.5 months since
> 2001-01-01 would be 2001-06-16 00:00:00. Also note that the date
> corresponding to the middle of February depends on whether the year is a
> leap year or not.
>
> Of course for a different calendar (e.g., 360_day), the dates
> corresponding to 0.5 months since 2001-01-01 and 5.5 months since
> 2001-01-01 would be different from those for the Gregorian calendar.
>
> The bottom line is that under the above restrictions, it is easy to
> convert fractions of months to dates (and also to alternative units such
> as "days since ...").
>
> Common types of "monthly" data sets are:
>
> 1) reports of monthly statistics computed from multiple samples within
> each month (e.g., means, standard deviation of daily values, maximum
> daily mean; requires cell_bounds)
>
> 2) reports of monthly accumulations  (e.g. monthly precipitation amount;
> requires cell_bounds)
>
> 3) monthly climatologies (requiring climatology attribute pointing to
> climatology bounds)
>
> For all of the above the bounds coincide with the beginning and end of
> each month so with the reference time restricted to the beginning of a
> year, the bounds will all be integer values of "months since". The
> coordinate value for any of the above can be assigned any value in the
> interval defined by the bounds.  For monthly statistics one might choose
> the middle of each month so coordinate values would be numbers like 0.5,
> 1.5, 2.5, etc.  For monthly accumulations one might prefer to use the
> time at the end of each interval to represent the coordinate value
> (e.g., 1.0, 2.0, 3.0, etc.).
>
> I understand that defining a unit of calendar_months is not compatible
> with udunits, but I think we can rely on tools other than udunits to
> handle more generally this new unit and the various CF conventions
> calendars to convert coordinate values to other time units like "days
> since ...".
>
> Perhaps the biggest argument in favor of introducing a calendar_month
> unit is that it should make it much easier for data providers to
> generate correct time coordinates for data reported at monthly
> intervals.  Regardless of calendar, I think it is easy to generate
> monthly time coordinates under the current CF standard that are simply
> wrong.  In contrast, everyone should be able to trivially create a
> coordinate axis with values like (1, 2, 3, .... ) or (0.5, 1.5, 2.5,
> ...) without making a mistake.
>
> best regards,
> Karl
>
>
>
>
>
>> On 10/18/18 10:58 AM, Jonathan Gregory wrote:
>> Dear Martin
>>
>> The definition of a calendar_month unit would also need rules about calendar
>> arithmetic e.g. What does 1 calendar_month since 31 January mean? What does
>> 7.23 calendar_months since 31 January mean?
>>
>> Best wishes
>>
>> Jonathan
>>
>>
>> ----- Forwarded message from Martin Juckes - UKRI STFC 
>> <martin.juc...@stfc.ac.uk> -----
>>
>>> Date: Thu, 18 Oct 2018 16:33:28 +0000
>>> From: Martin Juckes - UKRI STFC <martin.juc...@stfc.ac.uk>
>>> To: Jonathan Gregory <j.m.greg...@reading.ac.uk>, "cf-metadata@cgd.ucar.edu"
>>>     <cf-metadata@cgd.ucar.edu>
>>> Subject: Re: [CF-metadata] 'months since' and 'years since' time units
>>>
>>> Dear Jonathan,
>>>
>>>
>>> I think you could go further and disallow the use of "month" or "year" as a 
>>> time unit when the calendar is not standard.
>>>
>>>
>>> If the "ncdump -t" option produces what the user expects when he has units  
>>> "months since 1900-01-01" and a 360 day calendar, then it is going to be 
>>> inconsistent with the current convention.
>>>
>>>
>>> I still feel that there is an argument for enabling the storage of 
>>> information in user months in the files. E.g. I wish to compare monthly 
>>> mean data from 20 climate models which use a range of different calendars. 
>>> The mean across the models is not on any specific calendar ... I could 
>>> pretend it is and use units of "days since ...", but the mappings from 
>>> input time coordinates to output time coordinates then become rather 
>>> complex, when they should be trivial. Having a "date" standard name which 
>>> allowed the input data to have a "calendar_month" coordinate would solve 
>>> this (and I think Klaus's suggestion would also solve it),
>>>
>>>
>>> regards,
>>>
>>> Martin
>>>
>>> ________________________________
>>> From: CF-metadata <cf-metadata-boun...@cgd.ucar.edu> on behalf of Jonathan 
>>> Gregory <j.m.greg...@reading.ac.uk>
>>> Sent: 18 October 2018 17:10:46
>>> To: cf-metadata@cgd.ucar.edu
>>> Subject: Re: [CF-metadata] 'months since' and 'years since' time units
>>>
>>> Dear all
>>>
>>> This is an interesting discussion, and I agree that's a tricky subject. If 
>>> only
>>> we could have a well-behaved Earth which orbited the sun in an integral and
>>> easily factorisable number of days!
>>>
>>> So far I still think that we should not change the way we interpret the 
>>> units
>>> string. It's in udunits format, and should be interpreted according to the
>>> calendar attribute. I would suggest that it's helpful to regard time coords 
>>> as
>>> *encoded* and not necessarily easy for humans to read. It's certainly nice 
>>> to
>>> see "time=1, 2, 3, ..." months since a reference date - that is easy to 
>>> read -
>>> but when you get to 747 or 4689 months since a reference date, you don't 
>>> know
>>> what it means any more (unless you're extremely good at mental arithmetic), 
>>> and
>>> you might as well encode it as days.
>>>
>>> The antidote to inconvenient encoding is convenient software. For example,
>>> could cftime allow the user to construct a time coordinate variable with a
>>> spacing of calendar months, but encode it in the netCDF file in days? Then 
>>> it's
>>> transparent. Similarly, time coordinate variables can be decoded into human-
>>> readable strings by calendar-aware software. It seems to me that this isn't
>>> different in principle from using ncdump to read a netCDF file, rather than
>>> insisting it should be intelligible when read in hexadecimal. In fact, 
>>> ncdump
>>> itself has a -t option, which should help, according to the man page:
>>>
>>> "-t controls display of time data, if stored in a variable that uses a 
>>> udunits
>>> compliant time representation such as `days since 1970-01-01' or `seconds 
>>> since
>>> 2009-03-15 12:01:17' .... If this option is specified, time data values are
>>> displayed as human-readable date-time strings rather than numerical values,
>>> interpreted in terms of a `calendar' variable attribute, if specified. ...
>>> Calendar attribute values interpreted with this option include the CF
>>> Conventions values `gregorian' or `standard', `proleptic_gregorian', 
>>> `noleap'
>>> or `365_day', `all_leap' or `366_day', `360_day', and `julian'."
>>>
>>> I agree with comments that if we introduced new units such as calendar_month
>>> or 30day_month, people might well not use them, and would still be 
>>> disappointed
>>> that "month" wasn't what they expected.
>>>
>>> The CF conformance document has a recommendation that "year" and "month" 
>>> should
>>> be used "with caution". I don't what the CF checker currently does with 
>>> this.
>>> We could change it to a recommendation that they should *not* be used, in 
>>> which
>>> case the checker would give a warning if they were.
>>>
>>> Best wishes
>>>
>>> Jonathan
>>>
>>> ----- Forwarded message from Bärring Lars <lars.barr...@smhi.se> -----
>>>
>>>> Date: Thu, 18 Oct 2018 13:31:10 +0000
>>>> From: Bärring Lars <lars.barr...@smhi.se>
>>>> To: Martin Juckes - UKRI STFC <martin.juc...@stfc.ac.uk>, David Blodgett
>>>>        <dblodg...@usgs.gov>, Ryan Abernathey <ryan.abernat...@gmail.com>
>>>> Cc: "cf-metadata@cgd.ucar.edu" <cf-metadata@cgd.ucar.edu>
>>>> Subject: Re: [CF-metadata] 'months since' and 'years since' time units
>>>>
>>>> Dear Martin, David, all,
>>>>
>>>> As Klaus points out, the aim of my suggestion is to make software using CF 
>>>> aware of the fact that the unit "year" is different depending on which 
>>>> calendar the model is implementing. To give an example:
>>>> If I want to know when the global average temperature has increased by 
>>>> 1.5C, or 4C, above pre-industrial time in the CMIP5 ensemble I will get  
>>>> answers as a timedelta in days. As this is not really helpful I might feel 
>>>> inclined to convert this to years, but now UDUNITS definition of year is 
>>>> not helpful for those models having a 360_day or 365_day calendar. 
>>>> However, with the calendar-aware definition of year such a calculation 
>>>> would be supported without having to deal with it manually.
>>>>
>>>> Now, on to the discussion about months. Before my previous post I quickly 
>>>> read through extensive exchange on this list back in 2011, so I really 
>>>> appreciate David's comment that it is a complex subject. And that is the 
>>>> reason for why I suggested is always month is always a year / 12. So, here 
>>>> is an attempt to summarise the suggestion in a different way:
>>>>
>>>> * standard and proleptic_gregorian calendars (status quo):
>>>>   o the number of days in a month is not an integer
>>>>   o same issue with respect to ordinary (western) world months.
>>>>
>>>> * 365_day calendar:
>>>>   + the number of seconds in a month would change from being "ill-defined 
>>>> (?)" as 84600 * 365.242198781 / 12 = 2574957.50141, to more properly 84600 
>>>> * 365 / 12 = 2573250
>>>>   o same issue with respect to ordinary (western) world months.
>>>>
>>>> * 360_calendar:
>>>>   + the number of seconds in a month would change from being "very 
>>>> ill-defined (?)" as 84600 * 365.242198781 / 12 = 2574957.50141, to more 
>>>> properly 84600 * 360 / 12 = 2538000
>>>>   + the number of days in a month is an integer; 12 * 30 * 84600 = 2538000
>>>>   + the definition of a month is consistent with what is expected in the 
>>>> "360_day world"
>>>>   o same issue with respect to ordinary (western) world months.
>>>>
>>>> That is, even though the suggestion certainly do not solve everything (of 
>>>> course!), the only argument against it, that I can see, is the work to 
>>>> tease out the details and implement it in software packages. As was 
>>>> extensively discussed in the 2011 threads, the real problem is the varying 
>>>> length of the western world calendar months. But that is the topic for 
>>>> another thread.
>>>>
>>>>
>>>> Kind regards,
>>>> Lars
>>>>
>>>> ________________________________
>>>> Från: CF-metadata [cf-metadata-boun...@cgd.ucar.edu] för David Blodgett 
>>>> [dblodg...@usgs.gov]
>>>> Skickat: den 18 oktober 2018 13:58
>>>> Till: Ryan Abernathey
>>>> Kopia: cf-metadata@cgd.ucar.edu
>>>> Ämne: Re: [CF-metadata] 'months since' and 'years since' time units
>>>>
>>>> Dear Ryan, All,
>>>>
>>>> I hesitate to chime in on this thread as I know just how fraught this 
>>>> topic can be, but then I think I know how fraught it can be so may have 
>>>> something to offer. My experience is at the intersection of climatological 
>>>> models and landscape models that are calibrated with "real" data. I've 
>>>> worked with daily and monthly time series model output and interpolated 
>>>> weather products that needs to match up to observations but uses a noleap 
>>>> or 360 calendar. It's an enormous pain and we as a community should do 
>>>> better. -- so the business case for taking this complexity head on is 
>>>> there!
>>>>
>>>> One resource I've found useful over the years is the [CDM 
>>>> implementation](https://www.unidata.ucar.edu/software/thredds/current/netcdf-java/CDM/CalendarDateTime.html)
>>>> ut this does not
>>>> There are two factors at play.
>>>>
>>>> 1) Adding "calendar" to a udunits string avoids conversion to a number of 
>>>> shorter time increments for long time increments (e.g. seconds per month). 
>>>> It keeps things in the declared time units so you hit the precise date 
>>>> boundaries you would expect.
>>>> 2) The "calendar" attribute gets you to how to interpret the datum of the 
>>>> time axis.
>>>>
>>>> Especially relevant to this thread is:
>>>>
>>>>   *   uniform30day or 360_day = All years are 360 days divided into 30 day 
>>>> months.
>>>>
>>>> With these two, I think the problems here are solved. However, inevitably, 
>>>> people will omit the addition attribute for calendar or fall back on 
>>>> normal "months since ..." when they actually mean "calendar months since 
>>>> ..." and tell us 'why would you interpret my data that way it makes no 
>>>> sense?!?' This is perfectly parallel to spatial coordinates where people 
>>>> don't declare a datum for their latitude/longidute coordinates. Without 
>>>> that information one can not use the information with a level of precision 
>>>> that some use cases require.
>>>>
>>>> What I'm getting at is that CF should probably:
>>>> 1) adopt enough attribute precision to fully describe what we are trying 
>>>> to convey
>>>> 2) make said attributes required or declare sensible defaults that reduce 
>>>> ambiguity when users come knocking.
>>>>
>>>> That said, I've had no success pushing the community to accept that there 
>>>> should be a default lat/lon datum for software developers to go on and I 
>>>> would not doubt that the same will be true here as ambiguity and 
>>>> uncertainty is better than dead wrong in many cases. My stance is that we 
>>>> should all be dead wrong for the same reason rather than each implementor 
>>>> making an arbitrary decision so we all get different answers (more 
>>>> ambiguity) from our software du-jour.
>>>>
>>>> All the best,
>>>>
>>>> Dave
>>>>
>>>>
>>>> On Oct 18, 2018, at 6:08 AM, Martin Juckes - UKRI STFC 
>>>> <martin.juc...@stfc.ac.uk<mailto:martin.juc...@stfc.ac.uk>> wrote:
>>>>
>>>> Hello All,
>>>>
>>>>
>>>> I think the UNIDATA pull request referenced Jeff 
>>>> (https://github.com/Unidata/cftime/pull/69) is mis-quoting the CF 
>>>> Convention. As far as I can see, Unidata says that a month is exactly one 
>>>> 12th of a year, and CF inherits this -- with the statement "For similar 
>>>> reasons the unit month, which is defined in 
>>>> udunits.dat<http://www.unidata.ucar.edu/software/udunits/> to be exactly 
>>>> year/12, should also be used with caution."
>>>>
>>>>
>>>> I can't see the difference between Lars's suggestion and the status quo. 
>>>> In UNIDATA a day is clearly defined as "period of time equal to 24 hours", 
>>>> which gives 84600 seconds.
>>>>
>>>> regards,
>>>> Martin
>>>>
>>>>
>>>>
>>>> ________________________________
>>>> From: CF-metadata 
>>>> <cf-metadata-boun...@cgd.ucar.edu<mailto:cf-metadata-boun...@cgd.ucar.edu>>
>>>>  on behalf of Bärring Lars 
>>>> <lars.barr...@smhi.se<mailto:lars.barr...@smhi.se>>
>>>> Sent: 18 October 2018 09:29:50
>>>> To: Ryan Abernathey; 
>>>> whitaker.jeff...@gmail.com<mailto:whitaker.jeff...@gmail.com>; 
>>>> cf-metadata@cgd.ucar.edu<mailto:cf-metadata@cgd.ucar.edu>
>>>> Subject: Re: [CF-metadata] 'months since' and 'years since' time units
>>>>
>>>> Hi,
>>>>
>>>> I have have come to think about this from a somewhat different 
>>>> perspective. For some analyses, as well as when calculating certain 
>>>> derived climatological statistics (aka climate indices), using datasets 
>>>> based on different calendars the problem becomes obvious.
>>>>
>>>> In the model world of a 365-day GCM one year _is_ 365 days, and in a 
>>>> 360_day GCM a year _is_ 360 days. In the case of a gregorian/standard 
>>>> calendar GCM I am not sure whether it is 365.25 or 365.242198781 but this 
>>>> is in practice less of a problem.
>>>>
>>>> For datasets based non-standard calendars imposing the current UDUNITS 
>>>> definition of a year leads to complications that require workarounds if 
>>>> one is interested in for example the time elapsed until something happens 
>>>> or the duration of some (long-lasting) events. One way to partly mitigate 
>>>> these issues would be to use the time unit of years_since_START or 
>>>> months_since_START, but this is warned against in the CF Conventions and 
>>>> may software tools do not support it .
>>>>
>>>> The fundamental issue is the inconsistency between the GCM year and the 
>>>> UDUNITS year. So I would like to call on the wisdom of this list to see 
>>>> whether the CF Convention could include a modification to the definition 
>>>> of a year and month:
>>>>
>>>> * standard calendar (no change)
>>>> 1 day = 84600 seconds
>>>> 1 year = 365.242198781 days
>>>> 1 month = 365.242198781 / 12 days
>>>>
>>>> * 365_day calendar
>>>> 1 day = 84600 seconds
>>>> 1 year = 365 days
>>>> 1 month = 365 / 12 days
>>>>
>>>> * 360_day calendar
>>>> 1 day = 84600 seconds
>>>> 1 year = 360 days
>>>> 1 month = 360 / 12 days
>>>>
>>>> That is, the seconds per day ratio is not changed thus maintaining the 
>>>> consistency to other SI units. And, for the 360_day calendar month follows 
>>>> the suggestion by Ryan and Jeffrey.
>>>>
>>>>
>>>> Kind regards,
>>>> Lars
>>>>
>>>> --
>>>> Lars Bärring
>>>>
>>>> FDr, Forskare
>>>> PhD, Research Scientist
>>>>
>>>> SMHI  /  Swedish Meteorological and Hydrological Institute
>>>> Rossby Centre
>>>> SE - 601 76 NORRKÖPING
>>>> Tel / Phone: +46 (0)11 495 8604
>>>> Fax: +46 (0)11 495 8001
>>>> Besöksadress / Visiting address: Folkborgsvägen 17
>>>> ________________________________
>>>> Från: CF-metadata 
>>>> [cf-metadata-boun...@cgd.ucar.edu<mailto:cf-metadata-boun...@cgd.ucar.edu>]
>>>>  för Ryan Abernathey 
>>>> [ryan.abernat...@gmail.com<mailto:ryan.abernat...@gmail.com>]
>>>> Skickat: den 17 oktober 2018 21:22
>>>> Till: whitaker.jeff...@gmail.com<mailto:whitaker.jeff...@gmail.com>
>>>> Kopia: cf-metadata@cgd.ucar.edu<mailto:cf-metadata@cgd.ucar.edu>
>>>> Ämne: Re: [CF-metadata] 'months since' and 'years since' time units
>>>>
>>>> Hi everyone,
>>>>
>>>> I am that user, and I'm new to this mailing list. Thank you all for your 
>>>> work on CF conventions. It's such a valuable effort!
>>>>
>>>> I want to note that this was inspired by the proliferation of datasets in 
>>>> the wild that use "month" as their units. For example, nearly all of the 
>>>> IRI Data Library does this, in conjunction with a 3"60_day" calendar 
>>>> (example: 
>>>> https://iridl.ldeo.columbia.edu/SOURCES/.NOAA/.NCEP-NCAR/.CDAS-1/.MONTHLY/.Diagnostic/.surface/.temp/).
>>>>
>>>> My impression from talking to data providers is that no one is using 
>>>> "360_day" calendar and "months" as units, and then expecting "months" to 
>>>> be interpreted as 365.242198781/12 days. They all expect it to be 
>>>> interpreted as 30 days. While there are various workarounds that can be 
>>>> used at different levels of the software stack, the best solution, IMHO, 
>>>> is to explicitly allow in CF conventions what Jeff proposed: "months and 
>>>> years be interpreted as calendar months and years for those calendars 
>>>> where they have a fixed length". I don't think this will break existing 
>>>> applications.
>>>>
>>>> Thanks,
>>>> Ryan
>>>>
>>>> On Wed, Oct 17, 2018 at 3:06 PM Jeffrey Whitaker 
>>>> <whitaker.jeff...@gmail.com<mailto:whitaker.jeff...@gmail.com><mailto:whitaker.jeff...@gmail.com>>
>>>>  wrote:
>>>> Hi:  I'm a developer of the 'cftime' python package 
>>>> (https://github.com/Unidata/cftime).  A user submitted a pull request 
>>>> (https://github.com/Unidata/cftime/pull/69) that implements support for a 
>>>> 30-day calendar month time unit for the '360_day' CF calendar.  Although 
>>>> using a 'month' time unit is a tricky proposition in general, for this 
>>>> calendar it seems straightforward since every month has the same length.  
>>>> However, in the discussion of the pull request it was pointed out that CF 
>>>> expects  that "the value of the units attribute is a string that can be 
>>>> recognized by UNIDATA's Udunits package", and that UDUNITS defines a month 
>>>> as 365.242198781/12 days.    My question is this - is it reasonable for 
>>>> our python package to make an exception to this rule for the 360_day 
>>>> calendar?  More generally, can months and years be interpreted as calendar 
>>>> months and years for those calendars where they have a fixed length, or 
>>>> will this deviate from the existing CF conventions and break existing 
>>>> applications?
>>>>
>>>> Regards, Jeff
>>>>
>>>> --
>>>> Jeffrey S. Whitaker
>>>> NOAA/OAR/PSD  R/PSD1
>>>> 325 Broadway, Boulder, CO, 80305-3328
>>>> Phone: (303)497-6313
>>>> FAX: (303)497-6449
>>>>
>>>> _______________________________________________
>>>> CF-metadata mailing list
>>>> CF-metadata@cgd.ucar.edu<mailto:CF-metadata@cgd.ucar.edu><mailto:CF-metadata@cgd.ucar.edu>
>>>> http://mailman.cgd.ucar.edu/mailman/listinfo/cf-metadata
>>>> _______________________________________________
>>>> CF-metadata mailing list
>>>> CF-metadata@cgd.ucar.edu<mailto:CF-metadata@cgd.ucar.edu>
>>>> http://mailman.cgd.ucar.edu/mailman/listinfo/cf-metadata
>>>>
>>>> _______________________________________________
>>>> CF-metadata mailing list
>>>> CF-metadata@cgd.ucar.edu
>>>> http://mailman.cgd.ucar.edu/mailman/listinfo/cf-metadata
>>>
>>> ----- End forwarded message -----
>>> _______________________________________________
>>> CF-metadata mailing list
>>> CF-metadata@cgd.ucar.edu
>>> http://mailman.cgd.ucar.edu/mailman/listinfo/cf-metadata
>> ----- End forwarded message -----
>> _______________________________________________
>> CF-metadata mailing list
>> CF-metadata@cgd.ucar.edu
>> http://mailman.cgd.ucar.edu/mailman/listinfo/cf-metadata
>
>
> _______________________________________________
> CF-metadata mailing list
> CF-metadata@cgd.ucar.edu
> http://mailman.cgd.ucar.edu/mailman/listinfo/cf-metadata
> _______________________________________________
> CF-metadata mailing list
> CF-metadata@cgd.ucar.edu
> http://mailman.cgd.ucar.edu/mailman/listinfo/cf-metadata
_______________________________________________
CF-metadata mailing list
CF-metadata@cgd.ucar.edu
http://mailman.cgd.ucar.edu/mailman/listinfo/cf-metadata

Reply via email to