From 898a3bb77101eb5a77e6ace07da7768d02c2e0be Mon Sep 17 00:00:00 2001 From: JonathanGregory Date: Sat, 14 Sep 2024 14:24:49 +0100 Subject: [PATCH 01/29] clarification of sect 4 and leap seconds --- appa.adoc | 4 +- ch01.adoc | 2 + ch02.adoc | 2 +- ch03.adoc | 5 + ch04.adoc | 278 +- conformance.adoc | 18 +- history.adoc | 2 + images/leap-second-timelines.pdf | Bin 0 -> 29983 bytes images/leap-second-timelines.svg | 16762 +++++++++++++++++++++++++++++ toc-extra.adoc | 1 + 10 files changed, 17014 insertions(+), 60 deletions(-) create mode 100644 images/leap-second-timelines.pdf create mode 100644 images/leap-second-timelines.svg diff --git a/appa.adoc b/appa.adoc index 1eaa8ee9..ed0da1cd 100644 --- a/appa.adoc +++ b/appa.adoc @@ -386,8 +386,8 @@ In cases where there is a strong constraint on dataset size, it is allowed to pa | **`units_metadata`** | S | C, D, BI -| <> -| Specifies the interpretation (on-scale, difference or unknown) of the unit of temperature appearing in the **`units`** attribute. +| <>, and <> +| Specifies the interpretation of a unit of measure appearing in the **`units`** attribute. | **`valid_max`** | N diff --git a/ch01.adoc b/ch01.adoc index 7fa20950..f0cb50b8 100644 --- a/ch01.adoc +++ b/ch01.adoc @@ -81,6 +81,8 @@ The coordinate values must be in strict monotonic order (all values are differen Missing values are not allowed in coordinate variables. To avoid confusion with coordinate variables, CF does not permit a one-dimensional string-valued variable to have the same name as its dimension. +date/time:: The set of numbers which together identify an instant of time, namely its year, month, day, hour, minute and second, where the second may have a fraction but the others are all integer. + grid mapping variable:: A variable used as a container for attributes that define a specific grid mapping. The type of the variable is arbitrary since it contains no data. diff --git a/ch02.adoc b/ch02.adoc index a0e569bf..03f6b2ea 100644 --- a/ch02.adoc +++ b/ch02.adoc @@ -176,7 +176,7 @@ If it is observational, **`source`** should characterize it (e.g., "**`surface o **`history`**:: Provides an audit trail for modifications to the original data. Well-behaved generic netCDF filters will automatically append their name and the parameters with which they were invoked to the global history attribute of an input netCDF file. -We recommend that each line begin with a timestamp indicating the date and time of day that the program was executed. +We recommend that each line begin by indicating the date and time of day that the program was executed. **`references`**:: Published or web-based references that describe the data or methods used to produce it. diff --git a/ch03.adoc b/ch03.adoc index 9e54fce0..2a3c5284 100644 --- a/ch03.adoc +++ b/ch03.adoc @@ -165,6 +165,11 @@ A standard name contains no whitespace and is case sensitive. canonical units:: Representative units of the physical quantity. Unless it is dimensionless, a variable with a **`standard_name`** attribute must have units which are physically equivalent (not necessarily identical) to the canonical units, possibly modified by an operation specified by the standard name modifier (see below and <>) or by the **`cell_methods`** attribute (see <> and <>) or both. +Units of time coordinates (<>), whose **`units`** attribute includes the word **`since`**, are _not_ physically equivalent to time units that do not include **`since`** in the **`units`**. +To mark this distinction, the canonical unit given for quantities used for time coordinates is **`s since 1958-1-1`**. +The choice of reference time and date (midnight on 1st January 1958) is arbitrary and not restrictive; the time coordinate variable's own **`units`** may contain any reference time and date (after **`since`**) that is valid in its calendar. +In both kinds of time **`units`** attribute (with or without **`since`**), any unit for measuring time can be used i.e. any unit which is physically equivalent to the SI base unit of time, namely the second. + description:: The description is meant to clarify the qualifiers of the fundamental quantities such as which surface a quantity is defined on or what the flux sign conventions are. We don't attempt to provide precise definitions of fundumental physical quantities (e.g., temperature) which may be found in the literature. The description may define rules on the variable type, attributes and coordinates which must be complied with by any variable carrying that standard name (such as in Example 3.5). diff --git a/ch04.adoc b/ch04.adoc index 7763f730..8f0a2b6b 100644 --- a/ch04.adoc +++ b/ch04.adoc @@ -1,5 +1,7 @@ [[coordinate-types, Chapter 4, Coordinate Types]] -== Coordinate Types +== Coordinate Types +:doc-part: 4 +:figure: 0 The commonest use of coordinate variables is to locate the data in space and time, but coordinates may be provided for any other continuous geophysical quantity (e.g. density, temperature, radiation wavelength, zenith angle of radiance, sea surface wave frequency) or discrete category (see <>, e.g. area type, model level number, ensemble member number) on which the data variable depends. @@ -185,90 +187,256 @@ The `computed_standard_name` attribute indicates that the values in variable [[time-coordinate, Section 4.4, "Time Coordinate"]] === Time Coordinate -Variables representing reference time must always explicitly include the **`units`** attribute; there is no default value. -The **`units`** attribute takes a string value that follows the formatting requirements of the <> package. These requirements can best be described by an example with explanatory comments: +A time coordinate is a number which identifies an instant along the continuous physical dimension of time, whether in reality or a model. +The instant can equivalently be identified by its date/time at 0 `degrees_east`, specified by a set of numbers comprising year, month, day, hour, minute and second, where the second may have a fraction but the others are all integer. +The time coordinate and the date/time are interconvertible (see <>). -The time unit specification **`seconds since 1992-10-8 15:15:42.5 -6:00`** indicates seconds since October 8th, 1992 at 3 hours, 15 minutes and 42.5 seconds in the afternoon in the time zone which is six hours to the west of Coordinated Universal Time (i.e. Mountain Daylight Time). -The time zone specification can also be written without a colon using one or two digits (indicating hours) or three or four digits (indicating hours and minutes). +Variables containing time coordinates must always explicitly include the **`units`** attribute, formatted as described in <>. +There is no default value for the **`units`**. +A time coordinate is identifiable from its **`units`** alone. +Optionally, a time coordinate may be indicated additionally by providing the **`standard_name`** attribute with an appropriate value, and/or the **`axis`** attribute with the value **`T`**. -The acceptable units for time are given by the UDUNITS package. +[[time-axis-ex]] +[caption="Example 4.4. "] +.Time axis +==== + +---- +double time(time) ; + time:axis = "T"; // optional + time:standard_name = "time" ; // optional + time:units = "days since 1990-1-1 0:0:0" ; // mandatory +---- + +==== + + +[[time-coordinate-units, Section 4.4.1, "Time coordinate units"]] +==== Time coordinate units + +The **`units`** attribute of a time coordinate variable takes a string value that follows the formatting requirements of the <> package. +It must comprise a unit of measure that is physically equivalent to the SI base unit of time (i.e. the second), followed by the word **`since`** and a reference date/time. + +The acceptable units of measure for time are given by UDUNITS. The most commonly used of these strings (and their abbreviations) includes **`day`** (**`d`**), **`hour`** (**`hr`**, **`h`**), **`minute`** (**`min`**) and **`second`** (**`sec`**, **`s`**). Plural forms are also acceptable. +UDUNITS defines a **`year`** to be exactly 365.242198781 days (the interval between 2 successive passages of the sun through vernal equinox). +__It is not a calendar year.__ UDUNITS defines a **`month`** to be exactly **`year/12`**, which is __not a calendar month__. +The CF standard follows UDUNITS in the definition of units, but we recommend that **`year`** and **`month`** should not be used, because of the potential for mistakes and confusion. + UDUNITS permits a number of alternatives to the word **`since`** in the units of time coordinates. All the alternatives have exactly the same meaning in UDUNITS. For compatibility with other software, CF strongly recommends that `since` should be used. The reference date/time string (appearing after the identifier **`since`**) is required. It may include date alone, or date and time, or date, time and time zone. -If the time zone is omitted the default is UTC, and if both time and time zone are omitted the default is 00:00:00 UTC. +Its format is __y__-__m__-__d__ [__H__:__M__:__S__ [__Z__]], where [...] indicates an optional element, -UDUNITS defines a **`year`** to be exactly 365.242198781 days (the interval between 2 successive passages of the sun through vernal equinox). -__It is not a calendar year.__ UDUNITS defines a **`month`** to be exactly **`year/12`**, which is __not a calendar month__. -The CF standard follows UDUNITS in the definition of units, but we recommend that **`year`** and **`month`** should not be used, because of the potential for mistakes and confusion. +* _y_ is year, _m_ month, _d_ day, _H_ hour and _M_ minute, which are all integers of one or more digits, and _y_ may be prefixed with a sign (but note that some CF calendars do not permit negative years; see <>), -[[time-axis-ex]] -[caption="Example 4.4. "] -.Time axis -==== +* _S_ is second, which may be integer or floating point, ----- -double time(time) ; - time:long_name = "time" ; - time:units = "days since 1990-1-1 0:0:0" ; ----- +* _Z_ is the time zone. -==== +The default time zone is the one centred on 0 `degrees_east` of longitude, and if both time and time zone are omitted the time is 00:00:00 (midnight, the start of the day) in the default time zone. +Thus, **`units = "days since 1990-1-1"`** means the same as **`units = "days since 1990-1-1 0:0:0"`**. -A reference time coordinate is identifiable from its units string alone. +The time zone _Z_ has four possible formats, any of which may be prefixed with a sign: -Optionally, the time coordinate may be indicated additionally by providing the **`standard_name`** attribute with an appropriate value, and/or the **`axis`** attribute with the value **`T`**. +** _H_, the hour alone, of one or two digits e.g. **`-6`**, **`2`**, **`+11`**, which is sufficient for many time zones. -[[calendar, Section 4.4.1, "Calendar"]] -==== Calendar +** __H__:__M__, where _H_ is hour and _M_ minute, each of one or two digits, e.g. **`5:30`**. -A date/time is the set of numbers which together identify an instant of time, namely its year, month, day, hour, minute and second, where the second may have a fraction but the others are all integer. -A time coordinate value represents a date/time. -In order to calculate a time coordinate value from a date/time, or the reverse, one must know the **`units`** attribute of the time coordinate variable (containing the time unit of the coordinate values and the reference date/time) and the calendar. -The choice of calendar defines the set of dates (year-month-day combinations) which are permitted, and therefore it specifies the number of days between the times of **`0:0:0`** (midnight) on any two dates. -Date/times which are not permitted in a given calendar are prohibited in both the encoded time coordinate values, and in the reference date/time string. -It is recommended that the calendar be specified by the **`calendar`** attribute of the time coordinate variable. +** four digits, of which the first pair are the hours and the second the minutes e.g. **`0530`**. -When a time coordinate value is calculated from a date/time, or the reverse, it is assumed that the coordinate value increases by exactly 60 seconds from the start of any minute (identified by year, month, day, hour, minute, all being integers) to the start of the next minute, with no leap seconds, in all CF calendars. -This assumption has various consequences when real-world date/times from calendars which do contain leap seconds (such as UTC) are stored in time coordinate variables: +** three digits, of which the first is the hour (0--9) e.g. **`530`**. -* Any date/times between the end of the 60th second of the last minute of one hour and the start of the first second of the next hour cannot be represented by time coordinates e.g. **`2016-12-31 23:59:60.5`** cannot be represented. -* A time coordinate value must not be interpreted as representing a date/time in the excluded range. -For instance, **`60 seconds after 23:59`** means **`00:00`** on the next day. -* A date/time in the excluded range must not be used as a reference date/time e.g. **`seconds since 2016-12-31 23:59:60`** is not a permitted value for **`units`**. -* It is important to realise that a time coordinate value does not necessarily exactly equal the actual length of the interval of time between the reference date/time and the date/time it represents. +For example, **`seconds since 1992-10-8 15:15:42.5 -6:00`** indicates seconds since October 8th, 1992 at 3 hours, 15 minutes and 42.5 seconds in the afternoon, in the time zone which is centred on -90 `degrees_east` of longitude, six hours behind the default time zone. +Subtracting the time zone from the date/time specified converts it to the default time zone e.g. **`1989-12-31 18:00:00 -6`** identifies the same instant as **`1990-1-1 0:0:0`**. + + +[[calendar, Section 4.4.2, "Calendar"]] +==== Calendar +In order to calculate a time coordinate value from a date/time, or the reverse, one must know the **`units`** attribute of the time coordinate variable (containing the time unit of the coordinate values and the reference date/time, see <>) and the calendar, indicated by the **`calendar`** attribute. +The choice of calendar defines the set of dates (year-month-day combinations) which are permitted, and therefore it specifies the number of days between the times of **`0:0:0`** (midnight) on any two dates. +Date/times which are not permitted in a given calendar are prohibited both in the time coordinate values, and in the reference date/time string. +A given time coordinate value can represent different date/times in different calendars; conversely, a given date/time is represented by different time coordinate values in different calendars. + +It is recommended that the calendar be specified by the **`calendar`** attribute of the time coordinate variable. The values currently defined for **`calendar`** are listed below. -In all calendars except **`360_day`** and **`none`**, the lengths of the months are the same as in the Gregorian calendar for leap years and non-leap years. -In the **`julian`** and the default **`standard`** mixed Gregorian/Julian calendar, dates in years before year 0 (i.e. before 0-1-1 0:0:0) are not allowed, and the year in the reference date/time of the units must not be negative. +The lengths of the months are the same as in the Gregorian calendar in all calendars except **`360_day`**, **`none`** (see <>) and explicitly defined calendars (see <>). +The calendars differ in their treatment of leap years and leap seconds (see <>). +Leap seconds are adjustments occasionally made in Coordinated Universal Time (UTC). +When a positive leap second is introduced at the end of a minute, that minute contains 61 seconds. +If a negative leap second were introduced (there have been none up to now), the minute would contain 59 seconds. + +In the **`julian`** and the default **`standard`** calendar, dates in years before year 0 (i.e. before 0-1-1 0:0:0) are not allowed, and the year in the reference date/time of the units must not be negative. In these calendars, year zero has a special use to indicate a climatology (see <>), but this use of year zero is deprecated. -In other calendars, years before year 1 are allowed. +In other calendars, year 0 is the year before year 1, and negative years are allowed. **`standard`**:: Mixed Gregorian/Julian calendar as defined by UDUNITS. This is the default. A deprecated alternative name for this calendar is **`gregorian`**. -In this calendar, date/times after (and including) 1582-10-15 0:0:0 are in the Gregorian calendar, in which a year is a leap year if either (i) it is divisible by 4 but not by 100 or (ii) it is divisible by 400. -Date/times before (and excluding) 1582-10-5 0:0:0 are in the Julian calendar. +The Gregorian and Julian calendars have the same lengths of their months; they differ only in respect of the rules that decide which years are leap years, when there are 29 days in February instead of 28. +In the **`standard`** calendar, date/times after and including 1582-10-15 0:0:0 are in the Gregorian calendar, in which a year is a leap year if either (i) it is divisible by 4 but not by 100 or (ii) it is divisible by 400. +Date/times before (and excluding) 1582-10-5 0:0:0 are in the Julian calendar, in which any year that is divisible by 4 is a leap year. Year 1 AD or CE in the **`standard`** calendar is also year 1 of the **`julian`** calendar. In the **`standard`** calendar, 1582-10-15 0:0:0 is exactly 1 day later than 1582-10-4 0:0:0 and the intervening dates are undefined. Therefore it is recommended that date/times in the range from (and including) 1582-10-5 0:0:0 until (but excluding) 1582-10-15 0:0:0 should not be used as reference in **`units`**, and that a time coordinate variable should not include any date/times in this range, because their interpretation is unclear. It is also recommended that a reference date/time before the discontinuity should not be used for date/times after the discontinuity, and vice-versa. +See also <>. -**`proleptic_gregorian`**:: A calendar with the Gregorian rules for leap-years extended to dates before 1582-10-15. +**`proleptic_gregorian`**:: A calendar with the Gregorian rules for leap years extended to dates before 1582-10-15. All dates consistent with these rules are allowed, both before and after 1582-10-15 0:0:0. +See also <>. **`julian`**:: Julian calendar, in which a year is a leap year if it is divisible by 4, even if it is also divisible by 100. +See also <>. + +**`utc`**:: A Gregorian calendar __with__ leap seconds that is based on UTC, and is valid from 1958-01-01 0:0:0; earlier date/times are not allowed in this calendar. +Date/times in the future are not allowed in this calendar, because it is unknown when future leap seconds will occur. +When a date/time is converted to a time coordinate value or vice-versa in this calendar, any leap seconds (positive or negative) must be counted that occurred in the interval between the date/time and the reference date/time in the **`units`**. +A date/time in the **`utc`** calendar represents an instant that is earlier than the same date/time in the **`tai`** calendar, by the net number of leap seconds introduced since the start of 1958. +See also <>. + +**`tai`**:: A Gregorian calendar __without__ leap seconds that is based on International Atomic Time (TAI), and is valid from 1958-01-01 0:0:0; earlier date/times are not allowed in this calendar. +A date/time in the **`tai`** calendar represents an instant that is later than the same date/time in the **`utc`** calendar, by the net number of leap seconds introduced since the start of 1958. +See also <>. + +**`noleap`** or **`365_day`**:: A calendar with no leap years, i.e., all years are 365 days long, and there are no leap seconds. + +**`all_leap`** or **`366_day`**:: A calendar in which every year is a leap year, i.e., all years are 366 days long, and there are no leap seconds. + +**`360_day`**:: A calendar in which all years are 360 days, and divided into 30 day months, and there are no leap seconds. + +**`none`**:: To be used when there is no annual cycle. See <>. + +Any other value may be given to the **`calendar`** attribute to describe an explicitly defined calendar. See <>. + + +[[leap-seconds, Section 4.4.3, "Leap Seconds"]] +==== Leap Seconds + +Each calendar defines a set of valid combinations of the six numbers year-month-day-hour-minute-second. +We refer to this set as the calendar's "set of date/times". +Fractions of seconds are allowed in all calendars in addition to the integer number of seconds. +The valid date/times identify discrete instants along the continuous physical dimension of time. +In this section, we use the word _timeline_ to mean "continuous physical dimension of time". + +You need to know the set of date/times defined by the calendar in order to compute time coordinate values from date/times and vice-versa. +Ignoring fractional seconds in date/times, time coordinate value expressed in seconds equals the number of valid (integer-second) date/times _after_ (not including) the reference date/time in the **`units`** _up to_ (and including) the date/time that the time coordinate represents. +For instance, in **`units`** of **`seconds since 2024-9-14 11:12:00`**, the time coordinate for the date/time **`2024-9-14 11:12:03`** is **`3`**, because there are three date/times (**`2024-9-14 11:12:01`**, **`2024-9-14 11:12:02`**, **`2024-9-14 11:12:03`**) following **`2024-9-14 11:12:00`** up to and including **`2024-9-14 11:12:03`**. +The coordinate for **`2024-9-14 11:11:58`** is **`-2`**, because there are two valid date/times (**`2024-9-14 11:11:59`**, **`2024-9-14 11:11:58`**) from **`2024-9-14 11:12:00`** to (and including) **`2024-9-14 11:11:58`**, and the count is negative because it goes backwards. +The signed difference between the fractional seconds of the date/time and the reference is added to the time coordinate after counting the seconds. +This paragraph may appear to be excessively elaborate in describing a usually obvious procedure, but it is necessary to be very careful about it when there are leap seconds. + +The **`utc`** calendar is the _only_ calendar which includes leap seconds in its set of date/times. +In all other calendars, leap seconds are not valid date/times. + +The **`standard`**, **`proleptic_gregorian`**, and **`julian`** calendars each have two variants. +In one variant the timeline does not include leap seconds. +In the other variant, the _timeline_ includes leap seconds, even though they are _not_ included in the valid set of date/times. +In other words, there is a second-long portion of the timeline which is a leap second, but instants during that second have no date/times identifying them. +To resolve the ambiguity between the variants of these calendars, the **`units_metadata`** attribute should be defined as well as the **`calendar`** attribute, as described later in this section. + +For **`standard`**, **`proleptic_gregorian`**, and **`julian`** calendars, there are the following cases: + +1. **The calendar is being used for a timeline in which leap seconds do not exist.** + This is the case for a model simulation that defines every day as having a constant length of 86400 seconds. -**`noleap`** or **`365_day`**:: A calendar with no leap years, i.e., all years are 365 days long. +2. **The calendar is being used for a timeline in which leap seconds exist, and are correctly accounted for.** + This could be the case for observations from a platform whose time recording equipment has prior knowledge of when new leap seconds are to be introduced and is able to apply a new leap second at the appropriate time. + It could equally be the case for model whose timesteps include leap seconds. -**`all_leap`** or **`366_day`**:: A calendar in which every year is a leap year, i.e., all years are 366 days long. +3. **The calendar is being used for a timeline in which leap seconds exist, but some or all leap seconds might not have not been correctly accounted for.** + This could be the case for observations from a platform whose time recording equipment has a delay in applying a new leap second. -**`360_day`**:: A calendar in which all years are 360 days, and divided into 30 day months. +4. **It may be unknown whether leap seconds exist in the timeline.** -**`none`**:: No calendar. +Because leap seconds are not valid date/times, in the **`standard`**, **`proleptic_gregorian`**, and **`julian`** calendars, when a time coordinate value is calculated from a date/time, or the reverse, it is assumed that the coordinate value increases by exactly 60 seconds from the start of any minute (identified by year, month, day, hour, minute, all being integers) to the start of the next minute. +In other words, leap seconds (positive or negative) are not counted, even if they exist in the timeline. +When these calendars are being be used for timelines _with_ leap seconds (i.e. cases 2 and 3 and perhaps case 4), the assumption of 60-second minutes has the following consequences: + +* Any date/times between the end of the 60th second of the last minute of one hour and the start of the first second of the next hour cannot be represented by time coordinates e.g. **`2016-12-31 23:59:60.5`** cannot be represented. + +* A date/time in the excluded range must not be used as a reference date/time e.g. **`seconds since 2016-12-31 23:59:60`** is not a permitted value for **`units`**. + +* If any leap seconds occurred between the reference date/time and the date/time represented by a time coordinate, the coordinate value does __not__ count the leap seconds (assuming that the leap seconds were known when the time coordinate was calculated). + For instance, **`60 seconds after 23:59`** always means **`00:00`** on the next day, even if there was a leap second. + In that situation, the coordinate value does not exactly equal the actual length of the interval of time between the two instants. + By contrast, in case 1 (i.e. a timeline without leap seconds), the difference between two time coordinates is always equal to the length of time between the instants they represent, as is always true in all other calendars. + It is important to be aware of this disadvantage of the **`standard`**, **`proleptic_gregorian`** and **`julian`** calendars when used with timelines including leap seconds. + If it is essential for leap seconds to be counted in time coordinates, so that they exactly equal time intervals, you must use the **`utc`** calendar. + +An inaccuracy results from interpreting a time coordinate as a time interval if the interval includes leap seconds which were known when the time coordinate was calculated (case 2, and perhaps 3 and 4). +An inaccuracy results from converting a time coordinate to a date/time if the interval includes leap seconds which were _not_ known when the time coordinate was calculated (possible in case 3 or 4). +For many applications of the **`standard`**, **`proleptic_gregorian`**, and **`julian`** calendars, these inaccuracies are too small to matter, but there are some applications where they are important. + +Therefore it is recommended that for each of these three calendars the appropriate treatment of leap seconds should be indicated by giving the time coordinate variable a **`units_metadata`** attribute containing a **`leap_seconds`** keyword with one of the permitted values **`none`**, **`utc**` or **`unknown`**. +**`none`** means that leap seconds do not exist in the timeline (i.e. case 1), **`utc`** means that leap seconds exist in the timeline and are correctly accounted for (i.e. case 2), and **`unknown`** means that the data-writer did not know or did not record whether the leap seconds exist in the timeline, nor how they are treated if they did exist (i.e. cases 3 and 4). +If the **`units_metadata`** attribute is not present, or does not contain the `leap_seconds` keyword, the data-reader should assume **`leap_seconds: unknown`**. +A variable's **`units_metadata`** attribute may only contain the **`leap_seconds`** keyword if the variable's calendar is one of **`standard`** , **`proleptic_gregorian`**, or **`julian`**. + +[[units-metadata-leap-seconds-ex]] +[caption="Example 4.7. "] +.Use of **`units_metadata`** and **`calendar`** to define the treatment of leap seconds +==== + +---- +variables: + float time1 ; + time1:standard_name = "time" ; + time1:long_name = "Observed station data with unreliable information on leap seconds" ; + time1:calendar = "standard" ; + time1:units = "seconds since 2016-12-31 23:59:59" ; + time1:units_metadata = "leap_seconds: unknown" ; + float time2 ; + time2:standard_name = "time" ; + time2:long_name = "Simulated model data with no leap seconds" ; + time2:calendar = "proleptic_gregorian" ; + time2:units = "seconds since 2016-12-31 23:59:59" ; + time2:units_metadata = "leap_seconds: none" ; + float time3 ; + time3:standard_name = "time" ; + time3:long_name = "Simulated model data with leap seconds" ; + time3:calendar = "standard" ; + time3:units = "seconds since 2016-12-31 23:59:59" ; + time3:units_metadata = "leap_seconds: utc" ; + float time4 ; + time4:standard_name = "time" ; + time4:long_name = "Time signal from UK National Physical Laboratory" ; + time4:calendar = "utc" ; + time4:units = "seconds since 2016-12-31 23:59:59" ; + float time5 ; + time5:standard_name = "time" ; + time5:long_name = "Satellite data" ; + time5:calendar = "tai" ; + time5:units = "seconds since 2016-12-31 23:59:59" ; +data: + time1 = 1; // unknown whether 2016-12-31 23:59:60 or 2017-1-1 0:0:0 + time2 = 1; // 2017-1-1 0:0:0 because no leap seconds in the timeline + time3 = 1; // 2017-1-1 0:0:0 because the leap second is not counted + time4 = 1; // leap second 2016-12-31 23:59:60 + time5 = 1; // 2017-1-1 0:0:0 because no leap seconds in the timeline +---- +==== + +Although the five time coordinates have the same value and reference date/time, they do not all refer to the same instant, as shown in the comments on their data values. +The value of **`1 second`** for **`time2`**, **`time4`** and **`time5`** can be correctly interpreted as the length of the interval from the reference date/time 2016-12-31 23:59:59 to the date/time indicated in their comments. +In the case of **`time3`**, the time coordinate is again **`1 second`** and represents 2017-1-1 0:0:0, but the interval between the reference date/time 2016-12-31 23:59:59 and 2017-1-1 0:0:0 is actually 2 seconds. +In the case of **`time1`**, we cannot convert the time coordinate to a date/time with certainty, and we do not know the exact length of the interval. + +[[leap-second-timelines]] +[caption="Figure {doc-part}.{counter:figure}. ", reftext=Figure {doc-part}.{figure}] +[.text-center] +.Illustration of the equivalence between date/times and time coordinate values with **`units="seconds since 2016-12-31 23:59:58"`** in for various choices of the **`calendar`** attribute, supplemented for the **`standard`** calendar by the value of the **`leap_seconds`** keyword of the **`units_metadata`** attribute. The slanting lines depict the continuous physical dimension of time as represented in each calendar. Along each line, a filled circle marks each valid date/time in the set allowed by the calendar, at the start of the interval lasting for 1 second having that date/time. The time coordinate corresponding to each date/time is shown in column of numbers below the filled circle. As this illustration shows, a given time coordinate value can represent different date/times in different calendars; conversely, a given date/time is represented by different time coordinate values in different calendars. ++ +As explained in the text of this section, the time coordinate in seconds is the count of valid date/times i.e. filled circles that occur along the timeline _after_ the reference date/time (which is the first circle on the line in every case), up to and including the date/time represented. A leap second was added to the UTC calendar at the end of 2016. The duration of the leap second is shown by the shading, and its start by the black filled circle for **`2016-12-31 23:59:60"`**, which is counted in the **`utc`** coordinate values for subsequent date/times. The leap second appears in the timeline of **`utc`** variant of the **`standard`** calendar, but the leap second is not a valid date/time in that calendar, so there is no filled circle for it, and it is _not_ counted in the coordinate values for subsequent date/times. The leap second does not appear in the timelines of the **`tai`** calendar and the *`none`** variant of the **`standard`** calendar. These timelines skip past the shaded interval indicating the leap second's duration, and they have no filled circle for it. +image::images/leap-second-timelines.svg[,100%,pdfwidth=50vw,align="center"] + + +[[none-calendar, Section 4.4.4, "Time coordinates with no annual cycle"]] +==== Time coordinates with no annual cycle The **`calendar`** attribute may be set to **`none`** in climate experiments that simulate a fixed time of year. The time of year is indicated by the date in the reference time of the **`units`** attribute. @@ -294,12 +462,16 @@ data: Here, all days simulate the conditions of 15th July, so it does not make sense to give them different dates. The time coordinates are interpreted as 0, 1, 2, etc. days since the start of the experiment. -If none of the calendars defined above applies (e.g., calendars appropriate to a different paleoclimate era), a non-standard calendar can be defined. -The lengths of each month are explicitly defined with the **`month_lengths`** attribute of the time axis: + +[[explicit-calendar, Section 4.4.5, "Explicitly defined calendar"]] +==== Explicitly defined calendar + +If none of the calendars defined in <> applies (e.g., calendars appropriate to a different paleoclimate era), a calendar can be explicitly defined, in terms of permissible year-month-day combinations. +To do this, the lengths of each month are explicitly defined with the **`month_lengths`** attribute of the time axis: **`month_lengths`**:: A vector of size 12, specifying the number of days in the months from January to December (in a non-leap year). -If leap years are included, then two other attributes of the time axis should also be defined: +If leap years are included, then two other attributes of the time axis must also be defined: **`leap_year`**:: An example of a leap year. It is assumed that all years that differ from this year by a multiple of four are also leap years. @@ -309,9 +481,7 @@ If this attribute is absent, it is assumed there are no leap years. If this attribute is not present, February (2) is assumed. This attribute is ignored if **`leap_year`** is not specified. -The **`calendar`** attribute is not required when a non-standard calendar is being used. -It is sufficient to define the calendar using the **`month_lengths`** attribute, along with **`leap_year`**, and **`leap_month`** as appropriate. -However, the **`calendar`** attribute is allowed to take non-standard values and in that case defining the non-standard calendar using the appropriate attributes is required. +When an explicitly defined calendar is being used, the calendar may be described by giving a value not defined in <> to the **`calendar`** attribute; alternatively, the attribute may be omitted. [[paleoclimate-time-axis-ex]] [caption="Example 4.6. "] @@ -328,6 +498,7 @@ double time(time) ; ==== + [[discrete-axis, Section 4.5, "Discrete Axis"]] === Discrete Axis @@ -337,4 +508,3 @@ Consequently such an axis may be called {ldquo}discrete{rdquo}. A discrete axis has a dimension but might not have a coordinate variable. Instead, there might be one or more auxiliary coordinate variables with this dimension (see preamble to section 5). Following sections define various applications of discrete axes, for instance section 6.1.1 {ldquo}Geographical regions{rdquo}, section 7.3.3 {ldquo}Statistics applying to portions of cells{rdquo}, section 9.3 {ldquo}Representation of collections of features in data variables{rdquo}. - diff --git a/conformance.adoc b/conformance.adoc index 4e490ab9..fc3546dc 100644 --- a/conformance.adoc +++ b/conformance.adoc @@ -144,11 +144,11 @@ References can be absolute, relative or with no path, in which case, the variabl * The type of the **`units`** attribute is a string that must be recognizable by the UDUNITS package. Exceptions are the units **`level`**, **`layer`**, and **`sigma_level`**. * Dimensionless units for volume fractions defined by UDUNITS (**`ppv`**, **`ppmv`**, **`ppbv`**, **`pptv`**, **`ppqv`**) are not allowed in the **`units`** attribute of any variable which also has a **`standard_name`** attribute. -* If present, the **`units_metadata`** attribute must have one of these values: `temperature: on_scale`, `temperature: difference`, `temperature: unknown`. +* If present, the **`units_metadata`** attribute must have one of these values: `temperature: on_scale`, `temperature: difference`, `temperature: unknown`, `leap_seconds: none`, `leap_seconds: utc`, or `leap_seconds: unknown`. * The **`units`** of a variable that specifies a **`standard_name`** must be physically equivalent to the canonical units given in the standard name table, as modified by the **`standard_name`** modifier, if there is one, according to Appendix C, and then modified by all the methods listed in order by the **`cell_methods`** attribute, if one is present, according to Appendix E. * If the **`standard_name`** attribute includes the `standard_error` modifier, the **`units_metadata`** attribute, if present, must have the value `temperature: difference`. -* If the **`cell_methods`** attribute includes any entry with any of the methods `range`, `standard_deviation` or `variance`, the **`units_metadata`** attribute, if present, must have the value `temperature: difference`. -* A variable must not have a **`units_metadata`** attribute if it has no **`units`** attribute or if its **`units`** do not involve a temperature unit. +* If a variable has a **`units`** attribute that involves a temperature unit, and has a **`cell_methods`** attribute includes any entry with any of the methods `range`, `standard_deviation` or `variance`, then the **`units_metadata`** attribute, if present, must have the value `temperature: difference`. +* A variable must not have a **`units_metadata`** attribute if it has no **`units`** attribute, or if its **`units`** do not involve a temperature unit or a reference time unit. *Recommendations:* @@ -271,6 +271,18 @@ If the **`calendar`** attribute is given a non-standard value, then the attribut * The attribute **`leap_month`** should not appear unless the attribute **`leap_year`** is present. * The time coordinate should not cross the date 1582-10-15 when the default mixed Gregorian/Julian calendar is in use. +[[leap-seconds]] +=== 4.4.2 Leap Seconds + +*Requirements:* + +* A time coordinate variable must not have a **`units_metadata`** attribute if it has a **`calendar`** attribute with a value _other than_ one of the following values: `standard`, `gregorian` (deprecated), `proleptic_gregorian`, `julian`. +* If a time coordinate variable has a **`units_metadata`** attribute then it must have one of these values: `leap_seconds: none`, `leap_seconds: utc`, or `leap_seconds: unknown`. + +*Recommendations:* + +* A time coordinate variable should have a **`units_metadata`** attribute when it has no **`calendar`** attribute, or has a **`calendar`** attribute with one of the following values: `standard`, `gregorian` (deprecated), `proleptic_gregorian`, `julian`. + [[section-15]] [[coordinate-systems]] === 5 Coordinate Systems and Domain diff --git a/history.adoc b/history.adoc index 8ef18ae7..fefd5889 100644 --- a/history.adoc +++ b/history.adoc @@ -7,6 +7,8 @@ === Working version (most recent first) +* {issues}XXX{Issue #XXX}: Clarify and rearrange text of section 4.4 about time coordinate units and calendars; introduce new text and a diagram explaining leap-seconds in existing calendars; define utc and tai calendars; define "date/time" in section 1.3. +* {issues}166{Issue #166}: Clarify that time coordinate variables must have **`units`** containing **`since`** and a reference time; distinguish between canonical units of time with and without **`since`**. * {issues}403[Issue #403]: Metadata to encode quantization properties * {issues}530{Issue #530]: Define "the most rapidly varying dimension", and use this phrase consistently with the clarification "(the last dimension in CDL order)". * {issues}163[Issue #163]: Provide a convention for boundary variables for grids whose cells do not all have the same number of sides. diff --git a/images/leap-second-timelines.pdf b/images/leap-second-timelines.pdf new file mode 100644 index 0000000000000000000000000000000000000000..7f3d1b20d2f5973323d0f5b0a8251c745d33e8db GIT binary patch literal 29983 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 Kl)^G1NdE^@>Dzw* literal 0 HcmV?d00001 diff --git a/images/leap-second-timelines.svg b/images/leap-second-timelines.svg new file mode 100644 index 00000000..cbe0fb02 --- /dev/null +++ b/images/leap-second-timelines.svg @@ -0,0 +1,16762 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 2017-1-1 00:00:022017-1-1 00:00:012017-1-1 00:00:002016-12-31 23:59:602016-12-31 23:59:592016-12-31 23:59:58 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0000 + + + + + + 1111 + + + + + + 222 + + + + + + 4434 + + + + + + 3323 + + + + + + calendar leap_secondstaistandard nonestandard utcutc + + + + + + seconds since2016-12-31 23:59:58 + + + + + + + + + + + + date/time + + + + + + leap second + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/toc-extra.adoc b/toc-extra.adoc index e73da712..f274c2b4 100644 --- a/toc-extra.adoc +++ b/toc-extra.adoc @@ -51,6 +51,7 @@ J.5. <> 4.4. <> 4.5. <> 4.6. <> +4.7. <> 5.1. <> 5.2. <> 5.3. <> From 18840e7c5d0a000a55c0a56a7ae79263f7fa2ed6 Mon Sep 17 00:00:00 2001 From: JonathanGregory Date: Sat, 14 Sep 2024 16:36:09 +0100 Subject: [PATCH 02/29] updates --- ch04.adoc | 81 ++++++++++++++++--------------- images/leap-second-timelines.png | Bin 0 -> 124578 bytes 2 files changed, 41 insertions(+), 40 deletions(-) create mode 100644 images/leap-second-timelines.png diff --git a/ch04.adoc b/ch04.adoc index 8f0a2b6b..aaedfcba 100644 --- a/ch04.adoc +++ b/ch04.adoc @@ -187,8 +187,8 @@ The `computed_standard_name` attribute indicates that the values in variable [[time-coordinate, Section 4.4, "Time Coordinate"]] === Time Coordinate -A time coordinate is a number which identifies an instant along the continuous physical dimension of time, whether in reality or a model. -The instant can equivalently be identified by its date/time at 0 `degrees_east`, specified by a set of numbers comprising year, month, day, hour, minute and second, where the second may have a fraction but the others are all integer. +A time coordinate is a number which identifies an instant along the continuous physical dimension of time, whether in reality or in a model. +The instant can equivalently be identified by its date/time, which is a set of numbers comprising year, month, day, hour, minute and second, where the second may have a fraction but the others are all integer. The time coordinate and the date/time are interconvertible (see <>). Variables containing time coordinates must always explicitly include the **`units`** attribute, formatted as described in <>. @@ -218,7 +218,7 @@ The **`units`** attribute of a time coordinate variable takes a string value tha It must comprise a unit of measure that is physically equivalent to the SI base unit of time (i.e. the second), followed by the word **`since`** and a reference date/time. The acceptable units of measure for time are given by UDUNITS. -The most commonly used of these strings (and their abbreviations) includes **`day`** (**`d`**), **`hour`** (**`hr`**, **`h`**), **`minute`** (**`min`**) and **`second`** (**`sec`**, **`s`**). +The most commonly used of these strings (and their abbreviations) are **`day`** (**`d`**), **`hour`** (**`hr`**, **`h`**), **`minute`** (**`min`**) and **`second`** (**`sec`**, **`s`**). Plural forms are also acceptable. UDUNITS defines a **`year`** to be exactly 365.242198781 days (the interval between 2 successive passages of the sun through vernal equinox). @@ -264,8 +264,9 @@ A given time coordinate value can represent different date/times in different ca It is recommended that the calendar be specified by the **`calendar`** attribute of the time coordinate variable. The values currently defined for **`calendar`** are listed below. -The lengths of the months are the same as in the Gregorian calendar in all calendars except **`360_day`**, **`none`** (see <>) and explicitly defined calendars (see <>). -The calendars differ in their treatment of leap years and leap seconds (see <>). +The lengths of the months in the Gregorian calendar are used in all calendars except **`360_day`**, **`none`** (see <>) and explicitly defined calendars (see <>). +The calendars differ in their treatment of leap years (when there are 29 days in February instead of 28) and leap seconds (see <>). + Leap seconds are adjustments occasionally made in Coordinated Universal Time (UTC). When a positive leap second is introduced at the end of a minute, that minute contains 61 seconds. If a negative leap second were introduced (there have been none up to now), the minute would contain 59 seconds. @@ -277,13 +278,13 @@ In other calendars, year 0 is the year before year 1, and negative years are all **`standard`**:: Mixed Gregorian/Julian calendar as defined by UDUNITS. This is the default. A deprecated alternative name for this calendar is **`gregorian`**. -The Gregorian and Julian calendars have the same lengths of their months; they differ only in respect of the rules that decide which years are leap years, when there are 29 days in February instead of 28. +The Gregorian and Julian calendars have the same lengths of their months; they differ only in respect of the rules that decide which years are leap years. In the **`standard`** calendar, date/times after and including 1582-10-15 0:0:0 are in the Gregorian calendar, in which a year is a leap year if either (i) it is divisible by 4 but not by 100 or (ii) it is divisible by 400. Date/times before (and excluding) 1582-10-5 0:0:0 are in the Julian calendar, in which any year that is divisible by 4 is a leap year. Year 1 AD or CE in the **`standard`** calendar is also year 1 of the **`julian`** calendar. In the **`standard`** calendar, 1582-10-15 0:0:0 is exactly 1 day later than 1582-10-4 0:0:0 and the intervening dates are undefined. -Therefore it is recommended that date/times in the range from (and including) 1582-10-5 0:0:0 until (but excluding) 1582-10-15 0:0:0 should not be used as reference in **`units`**, and that a time coordinate variable should not include any date/times in this range, because their interpretation is unclear. -It is also recommended that a reference date/time before the discontinuity should not be used for date/times after the discontinuity, and vice-versa. +Therefore date/times in the range from (and including) 1582-10-5 0:0:0 until (but excluding) 1582-10-15 0:0:0 must not be used as reference in **`units`**. +It is recommended that a reference date/time before the discontinuity should not be used for date/times after the discontinuity, and vice-versa. See also <>. **`proleptic_gregorian`**:: A calendar with the Gregorian rules for leap years extended to dates before 1582-10-15. @@ -293,14 +294,16 @@ See also <>. **`julian`**:: Julian calendar, in which a year is a leap year if it is divisible by 4, even if it is also divisible by 100. See also <>. -**`utc`**:: A Gregorian calendar __with__ leap seconds that is based on UTC, and is valid from 1958-01-01 0:0:0; earlier date/times are not allowed in this calendar. +**`utc`**:: A Gregorian calendar __with__ leap seconds as prescribed by UTC. +Date/times before 1958-01-01 0:0:0 are not allowed in this calendar. Date/times in the future are not allowed in this calendar, because it is unknown when future leap seconds will occur. When a date/time is converted to a time coordinate value or vice-versa in this calendar, any leap seconds (positive or negative) must be counted that occurred in the interval between the date/time and the reference date/time in the **`units`**. -A date/time in the **`utc`** calendar represents an instant that is earlier than the same date/time in the **`tai`** calendar, by the net number of leap seconds introduced since the start of 1958. +A date/time in the **`utc`** calendar represents an instant that is earlier than the same date/time in the **`tai`** calendar, by the net number of leap seconds introduced since 1958-01-01, when both **`utc`** and **`tai`** began. See also <>. -**`tai`**:: A Gregorian calendar __without__ leap seconds that is based on International Atomic Time (TAI), and is valid from 1958-01-01 0:0:0; earlier date/times are not allowed in this calendar. -A date/time in the **`tai`** calendar represents an instant that is later than the same date/time in the **`utc`** calendar, by the net number of leap seconds introduced since the start of 1958. +**`tai`**:: A Gregorian calendar __without__ leap seconds that is based on International Atomic Time (TAI). +Date/times before 1958-01-01 0:0:0 are not allowed in this calendar. +A date/time in the **`tai`** calendar represents an instant that is later than the same date/time in the **`utc`** calendar, by the net number of leap seconds introduced since 1958-01-01, when both **`tai`** and **`utc`** began. See also <>. **`noleap`** or **`365_day`**:: A calendar with no leap years, i.e., all years are 365 days long, and there are no leap seconds. @@ -320,18 +323,18 @@ Any other value may be given to the **`calendar`** attribute to describe an expl Each calendar defines a set of valid combinations of the six numbers year-month-day-hour-minute-second. We refer to this set as the calendar's "set of date/times". Fractions of seconds are allowed in all calendars in addition to the integer number of seconds. -The valid date/times identify discrete instants along the continuous physical dimension of time. In this section, we use the word _timeline_ to mean "continuous physical dimension of time". +The valid date/times identify discrete instants along the timeline, in that sense. You need to know the set of date/times defined by the calendar in order to compute time coordinate values from date/times and vice-versa. -Ignoring fractional seconds in date/times, time coordinate value expressed in seconds equals the number of valid (integer-second) date/times _after_ (not including) the reference date/time in the **`units`** _up to_ (and including) the date/time that the time coordinate represents. +Ignoring fractional seconds in date/times, a time coordinate value expressed in seconds equals the number of valid (integer-second) date/times _after_ (not including) the reference date/time in the **`units`** _up to_ (and including) the date/time that the time coordinate represents. For instance, in **`units`** of **`seconds since 2024-9-14 11:12:00`**, the time coordinate for the date/time **`2024-9-14 11:12:03`** is **`3`**, because there are three date/times (**`2024-9-14 11:12:01`**, **`2024-9-14 11:12:02`**, **`2024-9-14 11:12:03`**) following **`2024-9-14 11:12:00`** up to and including **`2024-9-14 11:12:03`**. The coordinate for **`2024-9-14 11:11:58`** is **`-2`**, because there are two valid date/times (**`2024-9-14 11:11:59`**, **`2024-9-14 11:11:58`**) from **`2024-9-14 11:12:00`** to (and including) **`2024-9-14 11:11:58`**, and the count is negative because it goes backwards. The signed difference between the fractional seconds of the date/time and the reference is added to the time coordinate after counting the seconds. This paragraph may appear to be excessively elaborate in describing a usually obvious procedure, but it is necessary to be very careful about it when there are leap seconds. The **`utc`** calendar is the _only_ calendar which includes leap seconds in its set of date/times. -In all other calendars, leap seconds are not valid date/times. +In all other calendars, date/times within leap seconds are not valid. The **`standard`**, **`proleptic_gregorian`**, and **`julian`** calendars each have two variants. In one variant the timeline does not include leap seconds. @@ -345,7 +348,7 @@ For **`standard`**, **`proleptic_gregorian`**, and **`julian`** calendars, there This is the case for a model simulation that defines every day as having a constant length of 86400 seconds. 2. **The calendar is being used for a timeline in which leap seconds exist, and are correctly accounted for.** - This could be the case for observations from a platform whose time recording equipment has prior knowledge of when new leap seconds are to be introduced and is able to apply a new leap second at the appropriate time. + This could be the case for observations from a platform with equipment which records UTC times with prior knowledge of when new leap seconds are to be introduced, so that it is able to apply a new leap second at the appropriate time. It could equally be the case for model whose timesteps include leap seconds. 3. **The calendar is being used for a timeline in which leap seconds exist, but some or all leap seconds might not have not been correctly accounted for.** @@ -353,16 +356,16 @@ For **`standard`**, **`proleptic_gregorian`**, and **`julian`** calendars, there 4. **It may be unknown whether leap seconds exist in the timeline.** -Because leap seconds are not valid date/times, in the **`standard`**, **`proleptic_gregorian`**, and **`julian`** calendars, when a time coordinate value is calculated from a date/time, or the reverse, it is assumed that the coordinate value increases by exactly 60 seconds from the start of any minute (identified by year, month, day, hour, minute, all being integers) to the start of the next minute. -In other words, leap seconds (positive or negative) are not counted, even if they exist in the timeline. +Except in the **`utc`** calendar, when a time coordinate value is calculated from a date/time, or the reverse, it is assumed that the coordinate value increases by exactly 60 seconds from the start of any minute (identified by year, month, day, hour, minute, all being integers) to the start of the next minute, because leap seconds are not valid date/times. +In other words, leap seconds (positive or negative) are never counted in the **`standard`**, **`proleptic_gregorian`**, and **`julian`** calendars. When these calendars are being be used for timelines _with_ leap seconds (i.e. cases 2 and 3 and perhaps case 4), the assumption of 60-second minutes has the following consequences: -* Any date/times between the end of the 60th second of the last minute of one hour and the start of the first second of the next hour cannot be represented by time coordinates e.g. **`2016-12-31 23:59:60.5`** cannot be represented. +* Any instants in the timeline between the end of the 60th second of the last minute of one hour and the start of the first second of the next hour cannot be identified by time coordinates e.g. **`2016-12-31 23:59:60.5`** cannot be represented by a time coordinate value, and is not a valid date/time of the calendar. * A date/time in the excluded range must not be used as a reference date/time e.g. **`seconds since 2016-12-31 23:59:60`** is not a permitted value for **`units`**. * If any leap seconds occurred between the reference date/time and the date/time represented by a time coordinate, the coordinate value does __not__ count the leap seconds (assuming that the leap seconds were known when the time coordinate was calculated). - For instance, **`60 seconds after 23:59`** always means **`00:00`** on the next day, even if there was a leap second. + For instance, **`60 seconds after 23:59:00`** always means **`00:00:00`** on the next day, even if there was a leap second. In that situation, the coordinate value does not exactly equal the actual length of the interval of time between the two instants. By contrast, in case 1 (i.e. a timeline without leap seconds), the difference between two time coordinates is always equal to the length of time between the instants they represent, as is always true in all other calendars. It is important to be aware of this disadvantage of the **`standard`**, **`proleptic_gregorian`** and **`julian`** calendars when used with timelines including leap seconds. @@ -372,7 +375,7 @@ An inaccuracy results from interpreting a time coordinate as a time interval if An inaccuracy results from converting a time coordinate to a date/time if the interval includes leap seconds which were _not_ known when the time coordinate was calculated (possible in case 3 or 4). For many applications of the **`standard`**, **`proleptic_gregorian`**, and **`julian`** calendars, these inaccuracies are too small to matter, but there are some applications where they are important. -Therefore it is recommended that for each of these three calendars the appropriate treatment of leap seconds should be indicated by giving the time coordinate variable a **`units_metadata`** attribute containing a **`leap_seconds`** keyword with one of the permitted values **`none`**, **`utc**` or **`unknown`**. +Therefore it is recommended that for the **`standard`**, **`proleptic_gregorian`**, and **`julian`** calendars the appropriate treatment of leap seconds should be indicated by giving the time coordinate variable a **`units_metadata`** attribute containing a **`leap_seconds`** keyword with one of the permitted values **`none`**, **`utc**` or **`unknown`**. **`none`** means that leap seconds do not exist in the timeline (i.e. case 1), **`utc`** means that leap seconds exist in the timeline and are correctly accounted for (i.e. case 2), and **`unknown`** means that the data-writer did not know or did not record whether the leap seconds exist in the timeline, nor how they are treated if they did exist (i.e. cases 3 and 4). If the **`units_metadata`** attribute is not present, or does not contain the `leap_seconds` keyword, the data-reader should assume **`leap_seconds: unknown`**. A variable's **`units_metadata`** attribute may only contain the **`leap_seconds`** keyword if the variable's calendar is one of **`standard`** , **`proleptic_gregorian`**, or **`julian`**. @@ -388,51 +391,49 @@ variables: time1:standard_name = "time" ; time1:long_name = "Observed station data with unreliable information on leap seconds" ; time1:calendar = "standard" ; - time1:units = "seconds since 2016-12-31 23:59:59" ; + time1:units = "seconds since 2016-12-31 23:59:58" ; time1:units_metadata = "leap_seconds: unknown" ; float time2 ; time2:standard_name = "time" ; - time2:long_name = "Simulated model data with no leap seconds" ; + time2:long_name = "Model data with no leap seconds" ; time2:calendar = "proleptic_gregorian" ; - time2:units = "seconds since 2016-12-31 23:59:59" ; + time2:units = "seconds since 2016-12-31 23:59:58" ; time2:units_metadata = "leap_seconds: none" ; float time3 ; time3:standard_name = "time" ; - time3:long_name = "Simulated model data with leap seconds" ; + time3:long_name = "Model data with leap seconds or obs with accurately recorded UTC" ; time3:calendar = "standard" ; - time3:units = "seconds since 2016-12-31 23:59:59" ; + time3:units = "seconds since 2016-12-31 23:59:58" ; time3:units_metadata = "leap_seconds: utc" ; float time4 ; time4:standard_name = "time" ; time4:long_name = "Time signal from UK National Physical Laboratory" ; time4:calendar = "utc" ; - time4:units = "seconds since 2016-12-31 23:59:59" ; + time4:units = "seconds since 2016-12-31 23:59:58" ; float time5 ; time5:standard_name = "time" ; time5:long_name = "Satellite data" ; time5:calendar = "tai" ; - time5:units = "seconds since 2016-12-31 23:59:59" ; -data: - time1 = 1; // unknown whether 2016-12-31 23:59:60 or 2017-1-1 0:0:0 - time2 = 1; // 2017-1-1 0:0:0 because no leap seconds in the timeline - time3 = 1; // 2017-1-1 0:0:0 because the leap second is not counted - time4 = 1; // leap second 2016-12-31 23:59:60 - time5 = 1; // 2017-1-1 0:0:0 because no leap seconds in the timeline + time5:units = "seconds since 2016-12-31 23:59:58" ; +data: // time coordinate variable and the date/time it represents + time1 = 2; // unknown whether 2016-12-31 23:59:60 or 2017-1-1 0:0:0 + time2 = 2; // 2017-1-1 0:0:0 because no leap seconds in the timeline + time3 = 2; // 2017-1-1 0:0:0 because the leap second in the timeline is not counted + time4 = 2; // leap second 2016-12-31 23:59:60 + time5 = 2; // 2017-1-1 0:0:0 because no leap seconds in the timeline ---- ==== Although the five time coordinates have the same value and reference date/time, they do not all refer to the same instant, as shown in the comments on their data values. -The value of **`1 second`** for **`time2`**, **`time4`** and **`time5`** can be correctly interpreted as the length of the interval from the reference date/time 2016-12-31 23:59:59 to the date/time indicated in their comments. -In the case of **`time3`**, the time coordinate is again **`1 second`** and represents 2017-1-1 0:0:0, but the interval between the reference date/time 2016-12-31 23:59:59 and 2017-1-1 0:0:0 is actually 2 seconds. +The value of **`2`** seconds for **`time2`**, **`time4`** and **`time5`** can be correctly interpreted as the length of the interval from the reference date/time 2016-12-31 23:59:58 to the date/time indicated in their comments. +In the case of **`time3`**, the time coordinate is again **`2`** and represents 2017-1-1 0:0:0, but the interval between the reference date/time 2016-12-31 23:59:58 and 2017-1-1 0:0:0 is actually 3 seconds. In the case of **`time1`**, we cannot convert the time coordinate to a date/time with certainty, and we do not know the exact length of the interval. [[leap-second-timelines]] [caption="Figure {doc-part}.{counter:figure}. ", reftext=Figure {doc-part}.{figure}] [.text-center] -.Illustration of the equivalence between date/times and time coordinate values with **`units="seconds since 2016-12-31 23:59:58"`** in for various choices of the **`calendar`** attribute, supplemented for the **`standard`** calendar by the value of the **`leap_seconds`** keyword of the **`units_metadata`** attribute. The slanting lines depict the continuous physical dimension of time as represented in each calendar. Along each line, a filled circle marks each valid date/time in the set allowed by the calendar, at the start of the interval lasting for 1 second having that date/time. The time coordinate corresponding to each date/time is shown in column of numbers below the filled circle. As this illustration shows, a given time coordinate value can represent different date/times in different calendars; conversely, a given date/time is represented by different time coordinate values in different calendars. -+ -As explained in the text of this section, the time coordinate in seconds is the count of valid date/times i.e. filled circles that occur along the timeline _after_ the reference date/time (which is the first circle on the line in every case), up to and including the date/time represented. A leap second was added to the UTC calendar at the end of 2016. The duration of the leap second is shown by the shading, and its start by the black filled circle for **`2016-12-31 23:59:60"`**, which is counted in the **`utc`** coordinate values for subsequent date/times. The leap second appears in the timeline of **`utc`** variant of the **`standard`** calendar, but the leap second is not a valid date/time in that calendar, so there is no filled circle for it, and it is _not_ counted in the coordinate values for subsequent date/times. The leap second does not appear in the timelines of the **`tai`** calendar and the *`none`** variant of the **`standard`** calendar. These timelines skip past the shaded interval indicating the leap second's duration, and they have no filled circle for it. -image::images/leap-second-timelines.svg[,100%,pdfwidth=50vw,align="center"] +.Illustration of the equivalence between date/times and time coordinate values with **`units="seconds since 2016-12-31 23:59:58"`** for various choices of the **`calendar`** attribute and **`leap_seconds`** keyword The slanting lines depict the continuous physical dimension of time as represented in each calendar. Along each line, a filled circle marks each valid date/time with an integer second in the set allowed by the calendar. The time coordinate corresponding to each date/time is shown in column of numbers below the filled circle. This illustration shows that a given time coordinate value can represent different date/times in different calendars; conversely, a given date/time is represented by different time coordinate values in different calendars. As explained in the text of this section, the time coordinate in seconds is the count of valid date/times (= the number of filled circles) that occur along the timeline _after_ the reference date/time (which is the first circle on the line in every case), up to and including the date/time represented. A leap second was added to the UTC calendar at the end of 2016. The duration of the leap second is shown by the shading, and its start by the black filled circle for **`2016-12-31 23:59:60`**, which is counted in the **`utc`** coordinate values for subsequent date/times. The leap second appears in the timeline of the **`utc`** variant of the **`standard`** calendar, but the leap second is not a valid date/time in that calendar, so there is no filled circle for it, and it is _not_ counted in the coordinate values for subsequent date/times. The leap second does not appear in the timelines of the **`tai`** calendar and the *`none`* variant of the *`standard`* calendar. These timelines skip past the shaded interval indicating the leap second's duration, and they have no filled circle for it. +image::images/leap-second-timelines.png[,50%,pdfwidth=50vw,align="center"] [[none-calendar, Section 4.4.4, "Time coordinates with no annual cycle"]] diff --git a/images/leap-second-timelines.png b/images/leap-second-timelines.png new file mode 100644 index 0000000000000000000000000000000000000000..889ac4a8ed9043d9825acc6388eee91e6007bc63 GIT binary patch literal 124578 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 z reYo5>_fj#UVr5+4GJ6J@wr1VWgQ`6^# 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

U&cxp^{mihtKm<-xI=es(}^yNNJ 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 Qj`eWfDrqTJ$bSm@9~Aq+?EnA( literal 0 HcmV?d00001 From 69302784083d0a74cf8eaa7f915748d144f216c3 Mon Sep 17 00:00:00 2001 From: JonathanGregory Date: Sun, 15 Sep 2024 11:03:25 +0100 Subject: [PATCH 03/29] updates --- ch04.adoc | 32 +- conformance.adoc | 35 +- images/leap-second-timelines.odg | Bin 0 -> 20690 bytes images/leap-second-timelines.pdf | Bin 29983 -> 40441 bytes images/leap-second-timelines.png | Bin 124578 -> 0 bytes images/leap-second-timelines.svg | 16662 +---------------------------- 6 files changed, 261 insertions(+), 16468 deletions(-) create mode 100644 images/leap-second-timelines.odg delete mode 100644 images/leap-second-timelines.png diff --git a/ch04.adoc b/ch04.adoc index aaedfcba..e50bef51 100644 --- a/ch04.adoc +++ b/ch04.adoc @@ -211,8 +211,8 @@ double time(time) ; ==== -[[time-coordinate-units, Section 4.4.1, "Time coordinate units"]] -==== Time coordinate units +[[time-coordinate-units, Section 4.4.1, "Time Coordinate Units"]] +==== Time Coordinate Units The **`units`** attribute of a time coordinate variable takes a string value that follows the formatting requirements of the <> package. It must comprise a unit of measure that is physically equivalent to the SI base unit of time (i.e. the second), followed by the word **`since`** and a reference date/time. @@ -233,7 +233,7 @@ Its format is __y__-__m__-__d__ [__H__:__M__:__S__ [__Z__]], where [...] indicat * _y_ is year, _m_ month, _d_ day, _H_ hour and _M_ minute, which are all integers of one or more digits, and _y_ may be prefixed with a sign (but note that some CF calendars do not permit negative years; see <>), -* _S_ is second, which may be integer or floating point, +* _S_ is second, which may be integer or floating point (see <> regarding __S__>59), * _Z_ is the time zone. @@ -260,16 +260,20 @@ Subtracting the time zone from the date/time specified converts it to the defaul In order to calculate a time coordinate value from a date/time, or the reverse, one must know the **`units`** attribute of the time coordinate variable (containing the time unit of the coordinate values and the reference date/time, see <>) and the calendar, indicated by the **`calendar`** attribute. The choice of calendar defines the set of dates (year-month-day combinations) which are permitted, and therefore it specifies the number of days between the times of **`0:0:0`** (midnight) on any two dates. Date/times which are not permitted in a given calendar are prohibited both in the time coordinate values, and in the reference date/time string. + A given time coordinate value can represent different date/times in different calendars; conversely, a given date/time is represented by different time coordinate values in different calendars. +Moreover, in different calendars a given date/time can identify a different instant in the continuous physical dimension of time. +Examples of these points are shown in the table of *Appendix ???*. It is recommended that the calendar be specified by the **`calendar`** attribute of the time coordinate variable. The values currently defined for **`calendar`** are listed below. The lengths of the months in the Gregorian calendar are used in all calendars except **`360_day`**, **`none`** (see <>) and explicitly defined calendars (see <>). -The calendars differ in their treatment of leap years (when there are 29 days in February instead of 28) and leap seconds (see <>). +The calendars differ in their treatment of leap years (when there are 29 days in February instead of 28). Leap seconds are adjustments occasionally made in Coordinated Universal Time (UTC). When a positive leap second is introduced at the end of a minute, that minute contains 61 seconds. If a negative leap second were introduced (there have been none up to now), the minute would contain 59 seconds. +The calendars differ in their treatment of leap seconds (see <>). In the **`julian`** and the default **`standard`** calendar, dates in years before year 0 (i.e. before 0-1-1 0:0:0) are not allowed, and the year in the reference date/time of the units must not be negative. In these calendars, year zero has a special use to indicate a climatology (see <>), but this use of year zero is deprecated. @@ -282,8 +286,9 @@ The Gregorian and Julian calendars have the same lengths of their months; they d In the **`standard`** calendar, date/times after and including 1582-10-15 0:0:0 are in the Gregorian calendar, in which a year is a leap year if either (i) it is divisible by 4 but not by 100 or (ii) it is divisible by 400. Date/times before (and excluding) 1582-10-5 0:0:0 are in the Julian calendar, in which any year that is divisible by 4 is a leap year. Year 1 AD or CE in the **`standard`** calendar is also year 1 of the **`julian`** calendar. -In the **`standard`** calendar, 1582-10-15 0:0:0 is exactly 1 day later than 1582-10-4 0:0:0 and the intervening dates are undefined. -Therefore date/times in the range from (and including) 1582-10-5 0:0:0 until (but excluding) 1582-10-15 0:0:0 must not be used as reference in **`units`**. +Negative years are invalid in time coordinates and reference date/times in the **`standard`** calendar. +In the **`standard`** calendar, 1582-10-15 0:0:0 is exactly 1 day later than 1582-10-4 0:0:0. +Therefore date/times in the range from (and including) 1582-10-5 0:0:0 until (but excluding) 1582-10-15 0:0:0 are invalid, and must not be used as reference in **`units`**. It is recommended that a reference date/time before the discontinuity should not be used for date/times after the discontinuity, and vice-versa. See also <>. @@ -292,6 +297,8 @@ All dates consistent with these rules are allowed, both before and after 1582-10 See also <>. **`julian`**:: Julian calendar, in which a year is a leap year if it is divisible by 4, even if it is also divisible by 100. +Year 1 AD or CE in the **`julian`** calendar is also year 1 of the **`standard`** calendar. +Negative years are invalid in time coordinates and reference date/times in the **`julian`** calendar. See also <>. **`utc`**:: A Gregorian calendar __with__ leap seconds as prescribed by UTC. @@ -335,6 +342,7 @@ This paragraph may appear to be excessively elaborate in describing a usually ob The **`utc`** calendar is the _only_ calendar which includes leap seconds in its set of date/times. In all other calendars, date/times within leap seconds are not valid. +Therefore reference date/times in the **`units`** attribute must not contain seconds equal to or greater than 60 unless the **`calendar`** is **`utc`**. The **`standard`**, **`proleptic_gregorian`**, and **`julian`** calendars each have two variants. In one variant the timeline does not include leap seconds. @@ -432,12 +440,12 @@ In the case of **`time1`**, we cannot convert the time coordinate to a date/time [[leap-second-timelines]] [caption="Figure {doc-part}.{counter:figure}. ", reftext=Figure {doc-part}.{figure}] [.text-center] -.Illustration of the equivalence between date/times and time coordinate values with **`units="seconds since 2016-12-31 23:59:58"`** for various choices of the **`calendar`** attribute and **`leap_seconds`** keyword The slanting lines depict the continuous physical dimension of time as represented in each calendar. Along each line, a filled circle marks each valid date/time with an integer second in the set allowed by the calendar. The time coordinate corresponding to each date/time is shown in column of numbers below the filled circle. This illustration shows that a given time coordinate value can represent different date/times in different calendars; conversely, a given date/time is represented by different time coordinate values in different calendars. As explained in the text of this section, the time coordinate in seconds is the count of valid date/times (= the number of filled circles) that occur along the timeline _after_ the reference date/time (which is the first circle on the line in every case), up to and including the date/time represented. A leap second was added to the UTC calendar at the end of 2016. The duration of the leap second is shown by the shading, and its start by the black filled circle for **`2016-12-31 23:59:60`**, which is counted in the **`utc`** coordinate values for subsequent date/times. The leap second appears in the timeline of the **`utc`** variant of the **`standard`** calendar, but the leap second is not a valid date/time in that calendar, so there is no filled circle for it, and it is _not_ counted in the coordinate values for subsequent date/times. The leap second does not appear in the timelines of the **`tai`** calendar and the *`none`* variant of the *`standard`* calendar. These timelines skip past the shaded interval indicating the leap second's duration, and they have no filled circle for it. -image::images/leap-second-timelines.png[,50%,pdfwidth=50vw,align="center"] +.Illustration of the equivalence between date/times and time coordinate values with **`units="seconds since 2016-12-31 23:59:58"`** for various choices of the **`calendar`** attribute and **`leap_seconds`** keyword. This illustration shows that a given time coordinate value (the numbers in columns at the bottom right) can represent different date/times in different calendars. However, the illustration cannot show another important point to keep in mind, that a given date/time may identify different instants in different calendars. The diagonal lines depict the timelines of the calendars. Along each line, a filled circle marks each integer-second date/time in the set allowed by the calendar. There is no meaning in the slight left-right displacement of the circles at each second, which is done only so they can all be seen; they are supposed to be exactly coincident. As explained in the text of this section, the time coordinate in seconds is the count of valid date/times (= the number of circles) that occur along the timeline _after_ the reference date/time **`2016-12-31 23:59:58`** (which is the first circle on the line in every case, hence with a count of zero as shown in the column below its group of circles), up to and including the date/time represented. A leap second was added to the UTC calendar at the end of 2016. The duration of the leap second is shown by the shading. The **`utc`** calendar is the only one in which date/times in the leap second are valid; hence the black circle is the only marker of **`2016-12-31 23:59:60`**. The grey timeline of the **`utc`** variant of the **`standard`** calendar includes the the leap second as well, but date/times in the leap second are not valid in that calendar, so there is no grey circle for it. The leap second does not appear in the timelines of the **`tai`** calendar and the *`none`* variant of the *`standard`* calendar. Their timelines (red and purple) skip over the leap second, and they have no circle for it. +image::images/leap-second-timelines.svg[,70%,pdfwidth=50vw,align="center"] -[[none-calendar, Section 4.4.4, "Time coordinates with no annual cycle"]] -==== Time coordinates with no annual cycle +[[none-calendar, Section 4.4.4, "Time Coordinates with no Annual Cycle"]] +==== Time Coordinates with no Annual Cycle The **`calendar`** attribute may be set to **`none`** in climate experiments that simulate a fixed time of year. The time of year is indicated by the date in the reference time of the **`units`** attribute. @@ -464,8 +472,8 @@ Here, all days simulate the conditions of 15th July, so it does not make sense t The time coordinates are interpreted as 0, 1, 2, etc. days since the start of the experiment. -[[explicit-calendar, Section 4.4.5, "Explicitly defined calendar"]] -==== Explicitly defined calendar +[[explicit-calendar, Section 4.4.5, "Explicitly Defined Calendar"]] +==== Explicitly Defined Calendar If none of the calendars defined in <> applies (e.g., calendars appropriate to a different paleoclimate era), a calendar can be explicitly defined, in terms of permissible year-month-day combinations. To do this, the lengths of each month are explicitly defined with the **`month_lengths`** attribute of the time axis: diff --git a/conformance.adoc b/conformance.adoc index fc3546dc..4d5f51d1 100644 --- a/conformance.adoc +++ b/conformance.adoc @@ -237,51 +237,58 @@ The values of **`var`** must be variables that exist in the file. [[section-13]] [[time-coordinate]] -=== 4.4 Time Coordinate +=== 4.4.1 Time Coordinate Units *Requirements:* * The time **`units`** of a time coordinate variable must contain a reference date/time. -* The reference date/time of a time coordinate variable must be a legal date/time in the specified calendar. -* The reference date/time in time **`units`** is not allowed to contain seconds equal to or greater than 60. *Recommendations:* -* The use of time coordinates in year 0 and reference date/times in year 0 to indicate climatological time is deprecated. * Units of **`year`** and **`month`** and any equivalent units should be used with caution. * UDUNITS permits a number of alternatives to the word **`since`** in the units of time coordinates. All the alternatives have exactly the same meaning in UDUNITS. For compatibility with other software, CF strongly recommends that **`since`** should be used. [[section-14]] [[calendar]] -=== 4.4.1 Calendar +=== 4.4.2 Calendar *Requirements:* -* The attributes **`calendar`**, **`month_lengths`**, **`leap_year`**, and **`leap_month`** may only be attached to time coordinate variables. -* The standardized values (case insensitive) of the **`calendar`** attribute are **`standard`**, **`gregorian`** (deprecated), **`proleptic_gregorian`**, **`noleap`**, **`365_day`**, **`all_leap`**, **`366_day`**, **`360_day`**, **`julian`**, and **`none`**. -If the **`calendar`** attribute is given a non-standard value, then the attribute **`month_lengths`** is required, along with **`leap_year`** and **`leap_month`** as appropriate. -* The type of the **`month_lengths`** attribute must be an integer array of size 12. -* The values of the **`leap_month`** attribute must be in the range 1-12. -* The values of the **`leap_year`** and **`leap_month`** attributes are integer scalars. +* The **`calendar`** attribute may only be attached to time coordinate variables. +* If present, the value of the **`calendar`** attribute must be one of the standardized values (case insensitive) detailed in this section, unless the **`month_length`** attribute is present, in which case the **`calendar`** attribute must _not_ take one of the standardized values. +* The reference date/time of a time coordinate variable must be a legal date/time in the specified calendar. *Recommendations:* * A time coordinate variable should have a **`calendar`** attribute. +* If the **`calendar`** attribute is **`standard`**, **`gregorian**` (deprecated) or **`julian`** or absent, the use of time coordinates in year 0 and reference date/times in year 0 is deprecated. * The value **`standard`** should be used instead of **`gregorian`** in the **`calendar`** attribute. -* The attribute **`leap_month`** should not appear unless the attribute **`leap_year`** is present. * The time coordinate should not cross the date 1582-10-15 when the default mixed Gregorian/Julian calendar is in use. [[leap-seconds]] -=== 4.4.2 Leap Seconds +=== 4.4.3 Leap Seconds *Requirements:* +* The reference date/time in time **`units`** is not allowed to contain seconds equal to or greater than 60, except for valid leap seconds if the **`calendar`** is **`utc`**. * A time coordinate variable must not have a **`units_metadata`** attribute if it has a **`calendar`** attribute with a value _other than_ one of the following values: `standard`, `gregorian` (deprecated), `proleptic_gregorian`, `julian`. * If a time coordinate variable has a **`units_metadata`** attribute then it must have one of these values: `leap_seconds: none`, `leap_seconds: utc`, or `leap_seconds: unknown`. *Recommendations:* -* A time coordinate variable should have a **`units_metadata`** attribute when it has no **`calendar`** attribute, or has a **`calendar`** attribute with one of the following values: `standard`, `gregorian` (deprecated), `proleptic_gregorian`, `julian`. +* A time coordinate variable should have a **`units_metadata`** attribute if it has no **`calendar`** attribute, or if it has a **`calendar`** attribute with one of the following values: `standard`, `gregorian` (deprecated), `proleptic_gregorian`, `julian`. + +[[explicitly-defined-calendar]] +=== 4.4.5 Explicitly Defined Calendar + +* The **`month_lengths`**, **`leap_year`**, and **`leap_month`** attributes may only be attached to time coordinate variables. +* If the **`calendar`** attribute of a time coordinate variable is given a non-standard value, then the attribute **`month_lengths`** is required, along with **`leap_year`** and **`leap_month`** as appropriate. +* The type of the **`month_lengths`** attribute must be an integer array of size 12. +* The values of the **`leap_month`** attribute must be in the range 1-12. +* The values of the **`leap_year`** and **`leap_month`** attributes are integer scalars. + +*Recommendations:* +* The attribute **`leap_month`** should not appear unless the attribute **`leap_year`** is present. [[section-15]] [[coordinate-systems]] diff --git a/images/leap-second-timelines.odg b/images/leap-second-timelines.odg new file mode 100644 index 0000000000000000000000000000000000000000..dd75ee08021e49a2ca8907bd2ad6e0149618ca60 GIT binary patch literal 20690 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 literal 0 HcmV?d00001 diff --git a/images/leap-second-timelines.pdf b/images/leap-second-timelines.pdf index 7f3d1b20d2f5973323d0f5b0a8251c745d33e8db..5b8d14005f10be3c1b81177f763c451fecd11572 100644 GIT binary patch delta 37945 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

3U~Q;eLH)%lou&D3gIoA;E4 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 z reYo5>_fj#UVr5+4GJ6J@wr1VWgQ`6^# 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

U&cxp^{mihtKm<-xI=es(}^yNNJ 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 Qj`eWfDrqTJ$bSm@9~Aq+?EnA( diff --git a/images/leap-second-timelines.svg b/images/leap-second-timelines.svg index cbe0fb02..80529262 100644 --- a/images/leap-second-timelines.svg +++ b/images/leap-second-timelines.svg @@ -1,21 +1,14 @@ - + - + - + - - - - - - - @@ -94,46 +87,8 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + @@ -167,335 +122,414 @@ - - - - - - - - - + + + - - - - - - - - + - - - - - - + - - + + + + + + + + + + + + + - - + + + + + + + + + + + + + + + - - + + - - - + + + - - + + - + - - + + - - + + + + + + + - - + + + + + + + + + - - + + + + + + + + + + + + + - - + + + + + + + + + + + + + - - + + + + + + + + + + + - - + + + + + + + + + - - + + + + + + + - - - + + + + + - + - - 2017-1-1 00:00:022017-1-1 00:00:012017-1-1 00:00:002016-12-31 23:59:602016-12-31 23:59:592016-12-31 23:59:58 + + + - - + + 2017-1-1 00:00:022017-1-1 00:00:012017-1-1 00:00:002016-12-31 23:59:602016-12-31 23:59:592016-12-31 23:59:58 - - + + - - + + - + - - - + + - + - - 0000 + + + - - 1111 + + 0000 - - 222 + + 1111 - - 4434 + + 222 - - 3323 + + 4434 - - calendar leap_secondstaistandard nonestandard utcutc + + 3323 - - seconds since2016-12-31 23:59:58 + + calendar taistandardstandardutc - - + + seconds since2016-12-31 23:59:58 - - date/time + + - - leap second + + date/time - - + + leap second - - + + - - + + - + - - - + + - - - - + + + - + - - + + + + - - + + - - + + - - + + - - + + - - + + - - + + - + - - - - + + - - + + + + - + - - + + + + + - - + + - - + + - - + + - - + + - - + + + + + + + + + + + + + + leap_secondsnoneutc @@ -503,16260 +537,4 @@ - \ No newline at end of file From 93a46dc2415ec920a3e4d4e522433761e04e666d Mon Sep 17 00:00:00 2001 From: JonathanGregory Date: Sun, 15 Sep 2024 16:04:31 +0100 Subject: [PATCH 04/29] updates --- ch04.adoc | 35 +++++++++++++++++++---------------- 1 file changed, 19 insertions(+), 16 deletions(-) diff --git a/ch04.adoc b/ch04.adoc index e50bef51..47923095 100644 --- a/ch04.adoc +++ b/ch04.adoc @@ -193,12 +193,13 @@ The time coordinate and the date/time are interconvertible (see <>). Variables containing time coordinates must always explicitly include the **`units`** attribute, formatted as described in <>. There is no default value for the **`units`**. + A time coordinate is identifiable from its **`units`** alone. Optionally, a time coordinate may be indicated additionally by providing the **`standard_name`** attribute with an appropriate value, and/or the **`axis`** attribute with the value **`T`**. -[[time-axis-ex]] +[[time-axis-ex, Example 4.4, "Example of a time axis"]] [caption="Example 4.4. "] -.Time axis +.Example of a time axis ==== ---- @@ -214,8 +215,11 @@ double time(time) ; [[time-coordinate-units, Section 4.4.1, "Time Coordinate Units"]] ==== Time Coordinate Units -The **`units`** attribute of a time coordinate variable takes a string value that follows the formatting requirements of the <> package. +The **`units`** attribute of a time coordinate variable takes a string value that follows the formatting requirements of the <> package (e.g. <>). It must comprise a unit of measure that is physically equivalent to the SI base unit of time (i.e. the second), followed by the word **`since`** and a reference date/time. +The format of the **`units`** string implies that the time coordinate equals the length of the time interval from the instant identified by the reference date/time to the instant identified by the time coordinate. +This is exactly true in all cases except when leap seconds occur between the two intervals in the **`standard`**, **`proleptic_gregorian`**, and **`julian`** calendars. +See <>. The acceptable units of measure for time are given by UDUNITS. The most commonly used of these strings (and their abbreviations) are **`day`** (**`d`**), **`hour`** (**`hr`**, **`h`**), **`minute`** (**`min`**) and **`second`** (**`sec`**, **`s`**). @@ -263,7 +267,7 @@ Date/times which are not permitted in a given calendar are prohibited both in th A given time coordinate value can represent different date/times in different calendars; conversely, a given date/time is represented by different time coordinate values in different calendars. Moreover, in different calendars a given date/time can identify a different instant in the continuous physical dimension of time. -Examples of these points are shown in the table of *Appendix ???*. +Examples of these situations are shown in the table of *Appendix ???*. It is recommended that the calendar be specified by the **`calendar`** attribute of the time coordinate variable. The values currently defined for **`calendar`** are listed below. @@ -346,8 +350,7 @@ Therefore reference date/times in the **`units`** attribute must not contain sec The **`standard`**, **`proleptic_gregorian`**, and **`julian`** calendars each have two variants. In one variant the timeline does not include leap seconds. -In the other variant, the _timeline_ includes leap seconds, even though they are _not_ included in the valid set of date/times. -In other words, there is a second-long portion of the timeline which is a leap second, but instants during that second have no date/times identifying them. +In the other variant, the timeline includes leap seconds, even though they are _not_ included in the valid set of date/times. To resolve the ambiguity between the variants of these calendars, the **`units_metadata`** attribute should be defined as well as the **`calendar`** attribute, as described later in this section. For **`standard`**, **`proleptic_gregorian`**, and **`julian`** calendars, there are the following cases: @@ -368,21 +371,21 @@ Except in the **`utc`** calendar, when a time coordinate value is calculated fro In other words, leap seconds (positive or negative) are never counted in the **`standard`**, **`proleptic_gregorian`**, and **`julian`** calendars. When these calendars are being be used for timelines _with_ leap seconds (i.e. cases 2 and 3 and perhaps case 4), the assumption of 60-second minutes has the following consequences: -* Any instants in the timeline between the end of the 60th second of the last minute of one hour and the start of the first second of the next hour cannot be identified by time coordinates e.g. **`2016-12-31 23:59:60.5`** cannot be represented by a time coordinate value, and is not a valid date/time of the calendar. +* It is impossible to identify any instant during a leap second (i.e. between the end of the 60th second of the last minute of one hour and the start of the first second of the next hour) by a time coordinate e.g. **`2016-12-31 23:59:60.5`** cannot be represented by a time coordinate value. * A date/time in the excluded range must not be used as a reference date/time e.g. **`seconds since 2016-12-31 23:59:60`** is not a permitted value for **`units`**. -* If any leap seconds occurred between the reference date/time and the date/time represented by a time coordinate, the coordinate value does __not__ count the leap seconds (assuming that the leap seconds were known when the time coordinate was calculated). - For instance, **`60 seconds after 23:59:00`** always means **`00:00:00`** on the next day, even if there was a leap second. - In that situation, the coordinate value does not exactly equal the actual length of the interval of time between the two instants. - By contrast, in case 1 (i.e. a timeline without leap seconds), the difference between two time coordinates is always equal to the length of time between the instants they represent, as is always true in all other calendars. - It is important to be aware of this disadvantage of the **`standard`**, **`proleptic_gregorian`** and **`julian`** calendars when used with timelines including leap seconds. - If it is essential for leap seconds to be counted in time coordinates, so that they exactly equal time intervals, you must use the **`utc`** calendar. +* The coordinate value does not count any leap seconds which occurred between the reference date/time and the date/time represented by the coordinate. + For instance, 60 **`seconds after 23:59:00`** always means 00:00:00 on the next day, even if there is a leap second at 23:59:60, which makes the actual interval 61 seconds between 23:59:00 and 00:00:00 on the next day. -An inaccuracy results from interpreting a time coordinate as a time interval if the interval includes leap seconds which were known when the time coordinate was calculated (case 2, and perhaps 3 and 4). -An inaccuracy results from converting a time coordinate to a date/time if the interval includes leap seconds which were _not_ known when the time coordinate was calculated (possible in case 3 or 4). -For many applications of the **`standard`**, **`proleptic_gregorian`**, and **`julian`** calendars, these inaccuracies are too small to matter, but there are some applications where they are important. +Because of the last point, the difference between two coordinate values with the same **`units`** string does not exactly equal the length of the interval between instants they represent if there were any leap seconds between them. +This discrepancy can happen in cases 2, 3 and 4 of the **`standard`**, **`proleptic_gregorian`**, and **`julian`** calendars. +By contrast, in case 1 of those calendars (i.e. a timeline without leap seconds), and in all other calendars, the difference between two time coordinate values with the same **`units`** string is always equal to the length of time between the instants they represent. +Furthermore, an inaccuracy results from converting a time coordinate to a date/time if the interval includes leap seconds which were _not_ known when the time coordinate was calculated (possible in case 3 or 4). +It is important to be aware of these disadvantages of the **`standard`**, **`proleptic_gregorian`** and **`julian`** calendars when used with timelines including leap seconds. +If it is essential for leap seconds to be counted in time coordinates, so that they exactly equal time intervals, you must use the **`utc`** calendar. +For many applications of the **`standard`**, **`proleptic_gregorian`**, and **`julian`** calendars, these inaccuracies are too small to matter, but there are some applications where it is necessary to know about them. Therefore it is recommended that for the **`standard`**, **`proleptic_gregorian`**, and **`julian`** calendars the appropriate treatment of leap seconds should be indicated by giving the time coordinate variable a **`units_metadata`** attribute containing a **`leap_seconds`** keyword with one of the permitted values **`none`**, **`utc**` or **`unknown`**. **`none`** means that leap seconds do not exist in the timeline (i.e. case 1), **`utc`** means that leap seconds exist in the timeline and are correctly accounted for (i.e. case 2), and **`unknown`** means that the data-writer did not know or did not record whether the leap seconds exist in the timeline, nor how they are treated if they did exist (i.e. cases 3 and 4). If the **`units_metadata`** attribute is not present, or does not contain the `leap_seconds` keyword, the data-reader should assume **`leap_seconds: unknown`**. From f211dac76c8b262cea24cd4eadd8403405365173 Mon Sep 17 00:00:00 2001 From: JonathanGregory Date: Sun, 15 Sep 2024 17:59:18 +0100 Subject: [PATCH 05/29] updates --- ch04.adoc | 107 +++++++++++++++++++++++++++++-------------------- toc-extra.adoc | 11 ++--- 2 files changed, 69 insertions(+), 49 deletions(-) diff --git a/ch04.adoc b/ch04.adoc index 47923095..5ec09fde 100644 --- a/ch04.adoc +++ b/ch04.adoc @@ -197,7 +197,7 @@ There is no default value for the **`units`**. A time coordinate is identifiable from its **`units`** alone. Optionally, a time coordinate may be indicated additionally by providing the **`standard_name`** attribute with an appropriate value, and/or the **`axis`** attribute with the value **`T`**. -[[time-axis-ex, Example 4.4, "Example of a time axis"]] +[[time-axis-ex]] [caption="Example 4.4. "] .Example of a time axis ==== @@ -392,59 +392,78 @@ If the **`units_metadata`** attribute is not present, or does not contain the `l A variable's **`units_metadata`** attribute may only contain the **`leap_seconds`** keyword if the variable's calendar is one of **`standard`** , **`proleptic_gregorian`**, or **`julian`**. [[units-metadata-leap-seconds-ex]] -[caption="Example 4.7. "] +[caption="Example 4.5. "] .Use of **`units_metadata`** and **`calendar`** to define the treatment of leap seconds ==== ---- variables: - float time1 ; - time1:standard_name = "time" ; - time1:long_name = "Observed station data with unreliable information on leap seconds" ; - time1:calendar = "standard" ; - time1:units = "seconds since 2016-12-31 23:59:58" ; - time1:units_metadata = "leap_seconds: unknown" ; - float time2 ; - time2:standard_name = "time" ; - time2:long_name = "Model data with no leap seconds" ; - time2:calendar = "proleptic_gregorian" ; - time2:units = "seconds since 2016-12-31 23:59:58" ; - time2:units_metadata = "leap_seconds: none" ; - float time3 ; - time3:standard_name = "time" ; - time3:long_name = "Model data with leap seconds or obs with accurately recorded UTC" ; - time3:calendar = "standard" ; - time3:units = "seconds since 2016-12-31 23:59:58" ; - time3:units_metadata = "leap_seconds: utc" ; - float time4 ; - time4:standard_name = "time" ; - time4:long_name = "Time signal from UK National Physical Laboratory" ; - time4:calendar = "utc" ; - time4:units = "seconds since 2016-12-31 23:59:58" ; - float time5 ; - time5:standard_name = "time" ; - time5:long_name = "Satellite data" ; - time5:calendar = "tai" ; - time5:units = "seconds since 2016-12-31 23:59:58" ; + float time_tai ; + time_tai:standard_name = "time" ; + time_tai:long_name = "Satellite data" ; + time_tai:calendar = "tai" ; + time_tai:units = "seconds since 2016-12-31 23:59:58" ; + float time_stdnone ; + time_stdnone:standard_name = "time" ; + time_stdnone:long_name = "Model data with no leap seconds" ; + time_stdnone:calendar = "standard" ; + time_stdnone:units = "seconds since 2016-12-31 23:59:58" ; + time_stdnone:units_metadata = "leap_seconds: none" ; + float time_stdutc ; + time_stdutc:standard_name = "time" ; + time_stdutc:long_name = "Model data with leap seconds or obs data with accurate UTC" ; + time_stdutc:calendar = "standard" ; + time_stdutc:units = "seconds since 2016-12-31 23:59:58" ; + time_stdutc:units_metadata = "leap_seconds: utc" ; + float time_utc ; + time_utc:standard_name = "time" ; + time_utc:long_name = "Time signal from UK National Physical Laboratory" ; + time_utc:calendar = "utc" ; + time_utc:units = "seconds since 2016-12-31 23:59:58" ; + float time_unknown ; + time_unknown:standard_name = "time" ; + time_unknown:long_name = "Observed data with unreliable information on leap seconds" ; + time_unknown:calendar = "standard" ; + time_unknown:units = "seconds since 2016-12-31 23:59:58" ; + time_unknown:units_metadata = "leap_seconds: unknown" ; data: // time coordinate variable and the date/time it represents - time1 = 2; // unknown whether 2016-12-31 23:59:60 or 2017-1-1 0:0:0 - time2 = 2; // 2017-1-1 0:0:0 because no leap seconds in the timeline - time3 = 2; // 2017-1-1 0:0:0 because the leap second in the timeline is not counted - time4 = 2; // leap second 2016-12-31 23:59:60 - time5 = 2; // 2017-1-1 0:0:0 because no leap seconds in the timeline + time_tai = 2; // 2017-1-1 0:0:0 because no leap seconds in the timeline + time_stdnone = 2; // 2017-1-1 0:0:0 because no leap seconds in the timeline + time_stdutc = 2; // 2017-1-1 0:0:1 because the leap second in the timeline is not counted + time_utc = 2; // leap second 2016-12-31 23:59:60 + time_unknown = 2; // unknown whether 2016-12-31 23:59:60 or 2017-1-1 0:0:0 ---- -==== -Although the five time coordinates have the same value and reference date/time, they do not all refer to the same instant, as shown in the comments on their data values. -The value of **`2`** seconds for **`time2`**, **`time4`** and **`time5`** can be correctly interpreted as the length of the interval from the reference date/time 2016-12-31 23:59:58 to the date/time indicated in their comments. -In the case of **`time3`**, the time coordinate is again **`2`** and represents 2017-1-1 0:0:0, but the interval between the reference date/time 2016-12-31 23:59:58 and 2017-1-1 0:0:0 is actually 3 seconds. -In the case of **`time1`**, we cannot convert the time coordinate to a date/time with certainty, and we do not know the exact length of the interval. +This example shows five time coordinate variables with the same **`units`** attribute. +The first four of them correspond to the instants marked 2 **`seconds since 2016-12-31 23:59:58`** in <>. +Although all five have the same value and reference date/time, they do not all refer to the same instant, as shown in the comments on their data values, because of their different treatments of the leap second added to the UTC calendar at the end of 2016. + +The value of **`2`** seconds for **`time_stdnone`**, **`time_utc`** and **`time_tai`** can be correctly interpreted as the length of the interval from the reference date/time 2016-12-31 23:59:58 to 2017-1-1 0:0:0; note, however, that in **`utc`** and **`tai`** this date/time does not refer to the same instant of the real-world timeline. +In the case of **`time_stdutc`**, the time coordinate is again **`2`** but represents 2017-1-1 0:0:1, although the interval along the timeline between the reference date/time 2016-12-31 23:59:58 and 2017-1-1 0:0:1 is actually 3 seconds. +In the case of **`time_unknown`**, we cannot convert the time coordinate to a date/time with certainty, and we do not know the exact length of the interval. +==== [[leap-second-timelines]] [caption="Figure {doc-part}.{counter:figure}. ", reftext=Figure {doc-part}.{figure}] -[.text-center] -.Illustration of the equivalence between date/times and time coordinate values with **`units="seconds since 2016-12-31 23:59:58"`** for various choices of the **`calendar`** attribute and **`leap_seconds`** keyword. This illustration shows that a given time coordinate value (the numbers in columns at the bottom right) can represent different date/times in different calendars. However, the illustration cannot show another important point to keep in mind, that a given date/time may identify different instants in different calendars. The diagonal lines depict the timelines of the calendars. Along each line, a filled circle marks each integer-second date/time in the set allowed by the calendar. There is no meaning in the slight left-right displacement of the circles at each second, which is done only so they can all be seen; they are supposed to be exactly coincident. As explained in the text of this section, the time coordinate in seconds is the count of valid date/times (= the number of circles) that occur along the timeline _after_ the reference date/time **`2016-12-31 23:59:58`** (which is the first circle on the line in every case, hence with a count of zero as shown in the column below its group of circles), up to and including the date/time represented. A leap second was added to the UTC calendar at the end of 2016. The duration of the leap second is shown by the shading. The **`utc`** calendar is the only one in which date/times in the leap second are valid; hence the black circle is the only marker of **`2016-12-31 23:59:60`**. The grey timeline of the **`utc`** variant of the **`standard`** calendar includes the the leap second as well, but date/times in the leap second are not valid in that calendar, so there is no grey circle for it. The leap second does not appear in the timelines of the **`tai`** calendar and the *`none`* variant of the *`standard`* calendar. Their timelines (red and purple) skip over the leap second, and they have no circle for it. +.Illustration of the equivalence between date/times and time coordinate values with **`units="seconds since 2016-12-31 23:59:58"`** for various choices of the **`calendar`** attribute and **`leap_seconds`** keyword. +==== image::images/leap-second-timelines.svg[,70%,pdfwidth=50vw,align="center"] +This illustration shows that a given time coordinate value (the numbers in columns at the bottom right) can represent different date/times in different calendars. +However, the illustration cannot show another important point to keep in mind, that a given date/time may identify different instants in different calendars. + +The diagonal lines depict the timelines of the calendars. +Along each line, a filled circle marks the instant on the timeline that begins each second in the set of date/times allowed by the calendar. +There is no meaning in the slight left-right displacement of the circles at each second, which is done only so they can all be seen; they are supposed to be exactly coincident. +As explained in the text of this section, the time coordinate in seconds is the count of valid date/times (= the number of circles) that occur along the timeline _after_ the reference date/time **`2016-12-31 23:59:58`** (which is the first circle on the line in every case, hence with a count of zero as shown in the column below its group of circles), up to and including the date/time represented. +The instants marked 2 **`seconds since 2016-12-31 23:59:58`** are the ones represented by the first four time coordinate variables of Example 4.5. + +A leap second was added to the UTC calendar at the end of 2016. +The duration of the leap second is shown by the shading. +The **`utc`** calendar is the only one in which date/times in the leap second are valid; hence the black circle is the only marker of **`2016-12-31 23:59:60`**. +The grey timeline of the **`utc`** variant of the **`standard`** calendar includes the the leap second as well, but date/times in the leap second are not valid in that calendar, so there is no grey circle for it. +The leap second does not appear in the timelines of the **`tai`** calendar and the *`none`* variant of the *`standard`* calendar. +Their timelines (red and purple) skip over the leap second, and they have no circle for it. +==== [[none-calendar, Section 4.4.4, "Time Coordinates with no Annual Cycle"]] @@ -455,7 +474,7 @@ The time of year is indicated by the date in the reference time of the **`units` The time coordinates that might apply in a perpetual July experiment are given in the following example. [[perpetual-time-axis-ex]] -[caption="Example 4.5. "] +[caption="Example 4.6. "] .Perpetual time axis ==== @@ -496,7 +515,7 @@ This attribute is ignored if **`leap_year`** is not specified. When an explicitly defined calendar is being used, the calendar may be described by giving a value not defined in <> to the **`calendar`** attribute; alternatively, the attribute may be omitted. [[paleoclimate-time-axis-ex]] -[caption="Example 4.6. "] +[caption="Example 4.7. "] .Paleoclimate time axis ==== diff --git a/toc-extra.adoc b/toc-extra.adoc index f274c2b4..a8494495 100644 --- a/toc-extra.adoc +++ b/toc-extra.adoc @@ -16,8 +16,9 @@ K.2. <> **List of Figures** [%hardbreaks] -7.1. <> -7.2. <> +7.1. <> +7.2. <> +4.1. <> 8.1. <> 8.2. <> 8.3. <> @@ -49,9 +50,9 @@ J.5. <> 4.2. <> 4.3. <> 4.4. <> -4.5. <> -4.6. <> -4.7. <> +4.5. <> +4.6. <> +4.7. <> 5.1. <> 5.2. <> 5.3. <> From 33b97fc0e0b61e3d479a611ab872238710be7093 Mon Sep 17 00:00:00 2001 From: Jonathan Gregory Date: Mon, 16 Sep 2024 15:52:49 +0100 Subject: [PATCH 06/29] update --- ch04.adoc | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/ch04.adoc b/ch04.adoc index 5ec09fde..8a0811cd 100644 --- a/ch04.adoc +++ b/ch04.adoc @@ -429,17 +429,19 @@ variables: data: // time coordinate variable and the date/time it represents time_tai = 2; // 2017-1-1 0:0:0 because no leap seconds in the timeline time_stdnone = 2; // 2017-1-1 0:0:0 because no leap seconds in the timeline - time_stdutc = 2; // 2017-1-1 0:0:1 because the leap second in the timeline is not counted + time_stdutc = 2; // 2017-1-1 0:0:0 because the leap second in the timeline is not counted time_utc = 2; // leap second 2016-12-31 23:59:60 time_unknown = 2; // unknown whether 2016-12-31 23:59:60 or 2017-1-1 0:0:0 ---- -This example shows five time coordinate variables with the same **`units`** attribute. +This example shows five scalar time coordinate variables. +Although they all the value 2 and the same **`units`** attribute, they do not all refer to the same date/time, as shown in the comments on their data values, for two reasons. +First, they treat the leap second differently that was added to the UTC calendar at the end of 2016. +Second, in **`utc`** and **`tai`** the reference date/time 2016-12-31 23:59:58 does not refer to the same instant of the real-world timeline. The first four of them correspond to the instants marked 2 **`seconds since 2016-12-31 23:59:58`** in <>. -Although all five have the same value and reference date/time, they do not all refer to the same instant, as shown in the comments on their data values, because of their different treatments of the leap second added to the UTC calendar at the end of 2016. -The value of **`2`** seconds for **`time_stdnone`**, **`time_utc`** and **`time_tai`** can be correctly interpreted as the length of the interval from the reference date/time 2016-12-31 23:59:58 to 2017-1-1 0:0:0; note, however, that in **`utc`** and **`tai`** this date/time does not refer to the same instant of the real-world timeline. -In the case of **`time_stdutc`**, the time coordinate is again **`2`** but represents 2017-1-1 0:0:1, although the interval along the timeline between the reference date/time 2016-12-31 23:59:58 and 2017-1-1 0:0:1 is actually 3 seconds. +The value of **`2`** seconds for **`time_stdnone`**, **`time_utc`** and **`time_tai`** can be correctly interpreted as the length of the interval from the reference date/time 2016-12-31 23:59:58 to the date/time identified. +In the case of **`time_stdutc`**, the time coordinate again represents 2017-1-1 0:0:0, but the interval along the timeline between the reference date/time 2016-12-31 23:59:58 and 2017-1-1 0:0:0 is actually 3 seconds. In the case of **`time_unknown`**, we cannot convert the time coordinate to a date/time with certainty, and we do not know the exact length of the interval. ==== From 58ac95a74b2d4a447b1e32cfe768d40bb2e19f89 Mon Sep 17 00:00:00 2001 From: Jonathan Gregory Date: Mon, 16 Sep 2024 16:14:13 +0100 Subject: [PATCH 07/29] update --- ch04.adoc | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/ch04.adoc b/ch04.adoc index 8a0811cd..bada33fb 100644 --- a/ch04.adoc +++ b/ch04.adoc @@ -422,26 +422,24 @@ variables: time_utc:units = "seconds since 2016-12-31 23:59:58" ; float time_unknown ; time_unknown:standard_name = "time" ; - time_unknown:long_name = "Observed data with unreliable information on leap seconds" ; + time_unknown:long_name = "Obs data with unreliable information on leap seconds" ; time_unknown:calendar = "standard" ; time_unknown:units = "seconds since 2016-12-31 23:59:58" ; time_unknown:units_metadata = "leap_seconds: unknown" ; data: // time coordinate variable and the date/time it represents time_tai = 2; // 2017-1-1 0:0:0 because no leap seconds in the timeline time_stdnone = 2; // 2017-1-1 0:0:0 because no leap seconds in the timeline - time_stdutc = 2; // 2017-1-1 0:0:0 because the leap second in the timeline is not counted + time_stdutc = 2; // 2017-1-1 0:0:0 because the leap second is not counted time_utc = 2; // leap second 2016-12-31 23:59:60 time_unknown = 2; // unknown whether 2016-12-31 23:59:60 or 2017-1-1 0:0:0 ---- This example shows five scalar time coordinate variables. -Although they all the value 2 and the same **`units`** attribute, they do not all refer to the same date/time, as shown in the comments on their data values, for two reasons. -First, they treat the leap second differently that was added to the UTC calendar at the end of 2016. -Second, in **`utc`** and **`tai`** the reference date/time 2016-12-31 23:59:58 does not refer to the same instant of the real-world timeline. +Although they all the value 2 and the same **`units`** attribute, they do not all refer to the same date/time, as shown in the comments on their data values, because they have different treatments of the leap second that was added to the UTC calendar at the end of 2016. The first four of them correspond to the instants marked 2 **`seconds since 2016-12-31 23:59:58`** in <>. -The value of **`2`** seconds for **`time_stdnone`**, **`time_utc`** and **`time_tai`** can be correctly interpreted as the length of the interval from the reference date/time 2016-12-31 23:59:58 to the date/time identified. -In the case of **`time_stdutc`**, the time coordinate again represents 2017-1-1 0:0:0, but the interval along the timeline between the reference date/time 2016-12-31 23:59:58 and 2017-1-1 0:0:0 is actually 3 seconds. +The value of **`2`** seconds for **`time_stdnone`**, **`time_utc`** and **`time_tai`** can be correctly interpreted as the length of the interval from the reference date/time 2016-12-31 23:59:58 to the date/time indicated in the comment. +In both **`time_stdnone`** and **`time_stdutc`**, the time coordinate represents 2017-1-1 0:0:0, but the interval along the timeline between the reference date/time 2016-12-31 23:59:58 and 2017-1-1 0:0:0 is actually 3 seconds in **`time_stdutc`**. In the case of **`time_unknown`**, we cannot convert the time coordinate to a date/time with certainty, and we do not know the exact length of the interval. ==== From b2f70ca693a97e427d12db13641a1a6872aa5981 Mon Sep 17 00:00:00 2001 From: JonathanGregory Date: Mon, 16 Sep 2024 19:49:55 +0100 Subject: [PATCH 08/29] update history --- history.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/history.adoc b/history.adoc index fefd5889..2a70848e 100644 --- a/history.adoc +++ b/history.adoc @@ -7,7 +7,7 @@ === Working version (most recent first) -* {issues}XXX{Issue #XXX}: Clarify and rearrange text of section 4.4 about time coordinate units and calendars; introduce new text and a diagram explaining leap-seconds in existing calendars; define utc and tai calendars; define "date/time" in section 1.3. +* {issues}542{Issue #542}: Clarify and rearrange text of section 4.4 about time coordinate units and calendars; introduce new text and a diagram explaining leap-seconds in existing calendars; define leap_second keyword of units_metadata attribute; define utc and tai calendars; define "date/time" in section 1.3. * {issues}166{Issue #166}: Clarify that time coordinate variables must have **`units`** containing **`since`** and a reference time; distinguish between canonical units of time with and without **`since`**. * {issues}403[Issue #403]: Metadata to encode quantization properties * {issues}530{Issue #530]: Define "the most rapidly varying dimension", and use this phrase consistently with the clarification "(the last dimension in CDL order)". From e752696485f26448131905db8ed7e073b200cbfd Mon Sep 17 00:00:00 2001 From: Jonathan Gregory Date: Tue, 17 Sep 2024 13:24:51 +0100 Subject: [PATCH 09/29] suggestions from Chris Barker --- ch03.adoc | 3 ++- ch04.adoc | 33 ++++++++++++++++++++++----------- 2 files changed, 24 insertions(+), 12 deletions(-) diff --git a/ch03.adoc b/ch03.adoc index 2a3c5284..7686b970 100644 --- a/ch03.adoc +++ b/ch03.adoc @@ -167,7 +167,8 @@ Unless it is dimensionless, a variable with a **`standard_name`** attribute must Units of time coordinates (<>), whose **`units`** attribute includes the word **`since`**, are _not_ physically equivalent to time units that do not include **`since`** in the **`units`**. To mark this distinction, the canonical unit given for quantities used for time coordinates is **`s since 1958-1-1`**. -The choice of reference time and date (midnight on 1st January 1958) is arbitrary and not restrictive; the time coordinate variable's own **`units`** may contain any reference time and date (after **`since`**) that is valid in its calendar. +The reference date/time in the canonical unit (midnight on 1st January 1958) is not restrictive; the time coordinate variable's own **`units`** may contain any reference date/time (after **`since`**) that is valid in its calendar. +(We use `1958-1-1` because it is the beginning of International Atomic Time, and a valid date/time in all CF calendars; see also <>.) In both kinds of time **`units`** attribute (with or without **`since`**), any unit for measuring time can be used i.e. any unit which is physically equivalent to the SI base unit of time, namely the second. description:: The description is meant to clarify the qualifiers of the fundamental quantities such as which surface a quantity is defined on or what the flux sign conventions are. diff --git a/ch04.adoc b/ch04.adoc index bada33fb..9e5dc90c 100644 --- a/ch04.adoc +++ b/ch04.adoc @@ -229,22 +229,32 @@ UDUNITS defines a **`year`** to be exactly 365.242198781 days (the interval betw __It is not a calendar year.__ UDUNITS defines a **`month`** to be exactly **`year/12`**, which is __not a calendar month__. The CF standard follows UDUNITS in the definition of units, but we recommend that **`year`** and **`month`** should not be used, because of the potential for mistakes and confusion. -UDUNITS permits a number of alternatives to the word **`since`** in the units of time coordinates. All the alternatives have exactly the same meaning in UDUNITS. For compatibility with other software, CF strongly recommends that `since` should be used. +UDUNITS defines a **`minute`** as 60 **`seconds`**, an **`hour`** as 3600 **`seconds`** and a **`day`** as 86400 **`seconds`**. +These are not calendar units. +When civil clock time changes at the start and end of summer in many countries, the day according to its calendar date lasts for 23 or 25 hours, but the UDUNITS and CF **`day`** is always 24 **`hours`**. +When a leap second is inserted into UTC, the minute, hour and day affected differ by one second from their usual durations according to clock time, but the UDUNITS and CF **`minute`**, **`hour`** and **`day`** do not; they are fixed units of measure. + +UDUNITS permits a number of alternatives to the word **`since`** in the units of time coordinates. +All the alternatives have exactly the same meaning in UDUNITS. +For compatibility with other software, CF strongly recommends that `since` should be used. The reference date/time string (appearing after the identifier **`since`**) is required. -It may include date alone, or date and time, or date, time and time zone. +It may include date alone, or date and time, or date, time and time zone offset. Its format is __y__-__m__-__d__ [__H__:__M__:__S__ [__Z__]], where [...] indicates an optional element, * _y_ is year, _m_ month, _d_ day, _H_ hour and _M_ minute, which are all integers of one or more digits, and _y_ may be prefixed with a sign (but note that some CF calendars do not permit negative years; see <>), * _S_ is second, which may be integer or floating point (see <> regarding __S__>59), -* _Z_ is the time zone. +* _Z_ is the time zone offset. -The default time zone is the one centred on 0 `degrees_east` of longitude, and if both time and time zone are omitted the time is 00:00:00 (midnight, the start of the day) in the default time zone. +The default time zone offset is zero. +In a time zone with zero offset, time (approximately) equals mean solar time for 0 `degrees_east` of longitude. +(Although this may be exact in a model, in reality the time with zero time zone offset differs by some seconds from mean solar time; see the discussion of UTC and leap seconds in <>.) +If both time and time zone offset are omitted the time is 00:00:00 (midnight, the start of the day). Thus, **`units = "days since 1990-1-1"`** means the same as **`units = "days since 1990-1-1 0:0:0"`**. -The time zone _Z_ has four possible formats, any of which may be prefixed with a sign: +The time zone offset _Z_ has four possible formats, any of which may be prefixed with a sign: ** _H_, the hour alone, of one or two digits e.g. **`-6`**, **`2`**, **`+11`**, which is sufficient for many time zones. @@ -254,8 +264,8 @@ The time zone _Z_ has four possible formats, any of which may be prefixed with a ** three digits, of which the first is the hour (0--9) e.g. **`530`**. -For example, **`seconds since 1992-10-8 15:15:42.5 -6:00`** indicates seconds since October 8th, 1992 at 3 hours, 15 minutes and 42.5 seconds in the afternoon, in the time zone which is centred on -90 `degrees_east` of longitude, six hours behind the default time zone. -Subtracting the time zone from the date/time specified converts it to the default time zone e.g. **`1989-12-31 18:00:00 -6`** identifies the same instant as **`1990-1-1 0:0:0`**. +For example, **`seconds since 1992-10-8 15:15:42.5 -6:00`** indicates seconds since October 8th, 1992 at 3 hours, 15 minutes and 42.5 seconds in the afternoon, in a time zone where the date/time is six hours behind the default. +Subtracting the time zone offset from a given date/time converts it to the equivalent date/time with zero time zone offset e.g. **`1989-12-31 18:00:00 -6`** identifies the same instant as **`1990-1-1 0:0:0`**. [[calendar, Section 4.4.2, "Calendar"]] @@ -263,7 +273,7 @@ Subtracting the time zone from the date/time specified converts it to the defaul In order to calculate a time coordinate value from a date/time, or the reverse, one must know the **`units`** attribute of the time coordinate variable (containing the time unit of the coordinate values and the reference date/time, see <>) and the calendar, indicated by the **`calendar`** attribute. The choice of calendar defines the set of dates (year-month-day combinations) which are permitted, and therefore it specifies the number of days between the times of **`0:0:0`** (midnight) on any two dates. -Date/times which are not permitted in a given calendar are prohibited both in the time coordinate values, and in the reference date/time string. +Date/times which are not permitted in a given calendar are prohibited both in the time coordinate values and in the reference date/time string. A given time coordinate value can represent different date/times in different calendars; conversely, a given date/time is represented by different time coordinate values in different calendars. Moreover, in different calendars a given date/time can identify a different instant in the continuous physical dimension of time. @@ -274,7 +284,8 @@ The values currently defined for **`calendar`** are listed below. The lengths of the months in the Gregorian calendar are used in all calendars except **`360_day`**, **`none`** (see <>) and explicitly defined calendars (see <>). The calendars differ in their treatment of leap years (when there are 29 days in February instead of 28). -Leap seconds are adjustments occasionally made in Coordinated Universal Time (UTC). +In the real world, the international basis of civil timekeeping is Coordinated Universal Time (UTC). +Leap seconds are adjustments occasionally made in UTC, in order to keep it close to mean solar time at 0 `degrees_east` i.e. the time zone with the default (zero) time zone offset in UDUNITS and CF (see <>). When a positive leap second is introduced at the end of a minute, that minute contains 61 seconds. If a negative leap second were introduced (there have been none up to now), the minute would contain 59 seconds. The calendars differ in their treatment of leap seconds (see <>). @@ -309,12 +320,12 @@ See also <>. Date/times before 1958-01-01 0:0:0 are not allowed in this calendar. Date/times in the future are not allowed in this calendar, because it is unknown when future leap seconds will occur. When a date/time is converted to a time coordinate value or vice-versa in this calendar, any leap seconds (positive or negative) must be counted that occurred in the interval between the date/time and the reference date/time in the **`units`**. -A date/time in the **`utc`** calendar represents an instant that is earlier than the same date/time in the **`tai`** calendar, by the net number of leap seconds introduced since 1958-01-01, when both **`utc`** and **`tai`** began. +A date/time in the **`utc`** calendar represents an instant that is earlier than the same date/time in the **`tai`** calendar, by the net number of leap seconds introduced since 1958-01-01, which is the same instant in **`utc`** and **`tai`**, when both of them began. See also <>. **`tai`**:: A Gregorian calendar __without__ leap seconds that is based on International Atomic Time (TAI). Date/times before 1958-01-01 0:0:0 are not allowed in this calendar. -A date/time in the **`tai`** calendar represents an instant that is later than the same date/time in the **`utc`** calendar, by the net number of leap seconds introduced since 1958-01-01, when both **`tai`** and **`utc`** began. +A date/time in the **`tai`** calendar represents an instant that is later than the same date/time in the **`utc`** calendar, by the net number of leap seconds introduced since 1958-01-01, which is the same instant in **`utc`** and **`tai`**, when both of them began. See also <>. **`noleap`** or **`365_day`**:: A calendar with no leap years, i.e., all years are 365 days long, and there are no leap seconds. From 89a865b493276d1acb2e33f26bb711c91191cdc1 Mon Sep 17 00:00:00 2001 From: JonathanGregory Date: Thu, 19 Sep 2024 22:02:33 +0100 Subject: [PATCH 10/29] qualify midnight with 0 degrees_east --- ch03.adoc | 2 +- ch04.adoc | 4 ++-- ch07.adoc | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/ch03.adoc b/ch03.adoc index 7686b970..bfe13bdd 100644 --- a/ch03.adoc +++ b/ch03.adoc @@ -167,7 +167,7 @@ Unless it is dimensionless, a variable with a **`standard_name`** attribute must Units of time coordinates (<>), whose **`units`** attribute includes the word **`since`**, are _not_ physically equivalent to time units that do not include **`since`** in the **`units`**. To mark this distinction, the canonical unit given for quantities used for time coordinates is **`s since 1958-1-1`**. -The reference date/time in the canonical unit (midnight on 1st January 1958) is not restrictive; the time coordinate variable's own **`units`** may contain any reference date/time (after **`since`**) that is valid in its calendar. +The reference date/time in the canonical unit (midnight at 0 `degrees_east` on 1st January 1958) is not restrictive; the time coordinate variable's own **`units`** may contain any reference date/time (after **`since`**) that is valid in its calendar. (We use `1958-1-1` because it is the beginning of International Atomic Time, and a valid date/time in all CF calendars; see also <>.) In both kinds of time **`units`** attribute (with or without **`since`**), any unit for measuring time can be used i.e. any unit which is physically equivalent to the SI base unit of time, namely the second. diff --git a/ch04.adoc b/ch04.adoc index 9e5dc90c..1c319bce 100644 --- a/ch04.adoc +++ b/ch04.adoc @@ -251,7 +251,7 @@ Its format is __y__-__m__-__d__ [__H__:__M__:__S__ [__Z__]], where [...] indicat The default time zone offset is zero. In a time zone with zero offset, time (approximately) equals mean solar time for 0 `degrees_east` of longitude. (Although this may be exact in a model, in reality the time with zero time zone offset differs by some seconds from mean solar time; see the discussion of UTC and leap seconds in <>.) -If both time and time zone offset are omitted the time is 00:00:00 (midnight, the start of the day). +If both time and time zone offset are omitted the time is 00:00:00 (midnight at 0 `degrees_east`, the start of the day). Thus, **`units = "days since 1990-1-1"`** means the same as **`units = "days since 1990-1-1 0:0:0"`**. The time zone offset _Z_ has four possible formats, any of which may be prefixed with a sign: @@ -272,7 +272,7 @@ Subtracting the time zone offset from a given date/time converts it to the equiv ==== Calendar In order to calculate a time coordinate value from a date/time, or the reverse, one must know the **`units`** attribute of the time coordinate variable (containing the time unit of the coordinate values and the reference date/time, see <>) and the calendar, indicated by the **`calendar`** attribute. -The choice of calendar defines the set of dates (year-month-day combinations) which are permitted, and therefore it specifies the number of days between the times of **`0:0:0`** (midnight) on any two dates. +The choice of calendar defines the set of dates (year-month-day combinations) which are permitted, and therefore it specifies the number of days between the times of **`0:0:0`** (midnight at 0 `degrees_east`) on any two dates. Date/times which are not permitted in a given calendar are prohibited both in the time coordinate values and in the reference date/time string. A given time coordinate value can represent different date/times in different calendars; conversely, a given date/time is represented by different time coordinate values in different calendars. diff --git a/ch07.adoc b/ch07.adoc index fd394320..e91c9ef0 100644 --- a/ch07.adoc +++ b/ch07.adoc @@ -488,7 +488,7 @@ Instead, it has a **`climatology`** attribute, which names a variable with dimen Using the units and calendar of the time coordinate variable, element (i,0) of the climatology variable specifies the beginning of the first subinterval and element (i,1) the end of the last subinterval used to evaluate the climatological statistics with index i in the time dimension. The time coordinates should be values that are representative of the climatological time intervals, such that an application which does not recognise climatological time will nonetheless be able to make a reasonable interpretation. -For compatibility with the COARDS standard, a climatological time coordinate in the default **`standard`** and **`julian`** calendars may be indicated by setting the date/time reference string in the time coordinate's **`units`** attribute to midnight on 1 January in year 0 (i.e., **`since 0-1-1`**). +For compatibility with the COARDS standard, a climatological time coordinate in the default **`standard`** and **`julian`** calendars may be indicated by setting the date/time reference string in the time coordinate's **`units`** attribute to midnight at 0 `degrees_east` on 1 January in year 0 (i.e., **`since 0-1-1`**). This convention is deprecated because it does not provide any information about the intervals used to compute the climatology, and there may be inconsistencies among software packages in the interpretation of the time coordinates with a reference time of year 0. Use of year 0 for this purpose is impossible in all other calendars, because year 0 is a valid year. From 4e90ebc26b0180015d01bc46261ef46dc6a07012 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Antonio=20S=2E=20Cofi=C3=B1o?= Date: Tue, 22 Oct 2024 17:13:42 +0200 Subject: [PATCH 11/29] Fallback .nojekyll --- .github/workflows/adoc_build.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.github/workflows/adoc_build.yml b/.github/workflows/adoc_build.yml index 2871aece..2c8e641a 100644 --- a/.github/workflows/adoc_build.yml +++ b/.github/workflows/adoc_build.yml @@ -81,6 +81,11 @@ jobs: - uses: actions/checkout@v4 with: ref: 'gh-pages' + - name: Add .nojekyll file if it doesn't exist + run: | + if [ ! -f .nojekyll ]; then + touch .nojekyll + fi # Will new docs go into root, or into a directory named after the # release? - name: Determine where the new documents should live From 7d50d23466961edca1213d25bac86e2eeaac8b2d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Antonio=20S=2E=20Cofi=C3=B1o?= Date: Wed, 23 Oct 2024 13:02:25 +0200 Subject: [PATCH 12/29] Refactoring pages publishing --- .github/workflows/adoc_build.yml | 37 +++++++++++++++++++++++++++----- 1 file changed, 32 insertions(+), 5 deletions(-) diff --git a/.github/workflows/adoc_build.yml b/.github/workflows/adoc_build.yml index 2c8e641a..7ba2c94f 100644 --- a/.github/workflows/adoc_build.yml +++ b/.github/workflows/adoc_build.yml @@ -19,22 +19,38 @@ # https://github.com/actions/upload-artifact # https://github.com/actions/download-artifact # +# Custom workflow for pages deployment +# name: Asciidoctor Build Workflow on: # manually run workflow workflow_dispatch: - # trigger on PR event against main (will not run publish job) + + # trigger on PR event against default branch (i.e. main) (will not run publish job) pull_request: - branches: [ main ] - # Trigger on a push to main (a PR is merged), or when a release is + branches: [ $default-branch ] + # Trigger on a push to default branch (i.e. main) (a PR is merged), or when a release is + # published on github. These will run the publish job. push: - branches: - - main + branches: [ $default-branch ] # Trigger when a GitHub release is published. release: types: - published + +# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages +permissions: + contents: read + pages: write + id-token: write + +# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued. +# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete. +concurrency: + group: "pages" + cancel-in-progress: false + jobs: # Job to build cf-conventions.html, cf-conventions.pdf build_conventions_and_conformance: @@ -75,6 +91,17 @@ jobs: if: github.event_name != 'pull_request' # Wait for the build artifacts to become available needs: [build_conventions_and_conformance] + + # Grant GITHUB_TOKEN the permissions required to make a Pages deployment + permissions: + pages: write # to deploy to Pages + id-token: write # to verify the deployment originates from an appropriate source + + # Deploy to the github-pages environment + environment: + name: github-pages + url: ${{ steps.deployment.outputs.page_url }} + runs-on: ubuntu-latest steps: # Checkout gh-pages branch From de66368237578c72ad44bffd2953fd222169dcf2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Antonio=20S=2E=20Cofi=C3=B1o?= Date: Wed, 23 Oct 2024 13:05:14 +0200 Subject: [PATCH 13/29] Removing placeholder for templating --- .github/workflows/adoc_build.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/adoc_build.yml b/.github/workflows/adoc_build.yml index 7ba2c94f..1f4f9d57 100644 --- a/.github/workflows/adoc_build.yml +++ b/.github/workflows/adoc_build.yml @@ -28,12 +28,12 @@ on: # trigger on PR event against default branch (i.e. main) (will not run publish job) pull_request: - branches: [ $default-branch ] + branches: [ main ] # Trigger on a push to default branch (i.e. main) (a PR is merged), or when a release is # published on github. These will run the publish job. push: - branches: [ $default-branch ] + branches: [ main ] # Trigger when a GitHub release is published. release: types: From 7942fe698eabb7b6bb3622f2c3c95f061e36d85a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Antonio=20S=2E=20Cofi=C3=B1o?= Date: Wed, 23 Oct 2024 13:10:09 +0200 Subject: [PATCH 14/29] Remove permissions --- .github/workflows/adoc_build.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/adoc_build.yml b/.github/workflows/adoc_build.yml index 1f4f9d57..560deb42 100644 --- a/.github/workflows/adoc_build.yml +++ b/.github/workflows/adoc_build.yml @@ -92,10 +92,10 @@ jobs: # Wait for the build artifacts to become available needs: [build_conventions_and_conformance] - # Grant GITHUB_TOKEN the permissions required to make a Pages deployment - permissions: - pages: write # to deploy to Pages - id-token: write # to verify the deployment originates from an appropriate source +# # Grant GITHUB_TOKEN the permissions required to make a Pages deployment +# permissions: +# pages: write # to deploy to Pages +# id-token: write # to verify the deployment originates from an appropriate source # Deploy to the github-pages environment environment: From 5306a7081227f0edc76c2b90d3dae1ff9c79f23a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Antonio=20S=2E=20Cofi=C3=B1o?= Date: Wed, 23 Oct 2024 13:36:13 +0200 Subject: [PATCH 15/29] Remove environment --- .github/workflows/adoc_build.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/adoc_build.yml b/.github/workflows/adoc_build.yml index 560deb42..118ad8a7 100644 --- a/.github/workflows/adoc_build.yml +++ b/.github/workflows/adoc_build.yml @@ -97,10 +97,10 @@ jobs: # pages: write # to deploy to Pages # id-token: write # to verify the deployment originates from an appropriate source - # Deploy to the github-pages environment - environment: - name: github-pages - url: ${{ steps.deployment.outputs.page_url }} +# # Deploy to the github-pages environment +# environment: +# name: github-pages +# url: ${{ steps.deployment.outputs.page_url }} runs-on: ubuntu-latest steps: From 9f355b0cf2a824166f338d62480596ca61dd7b7b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Antonio=20S=2E=20Cofi=C3=B1o?= Date: Wed, 23 Oct 2024 13:56:36 +0200 Subject: [PATCH 16/29] Create gh-pages branch if not already exist --- .github/workflows/adoc_build.yml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.github/workflows/adoc_build.yml b/.github/workflows/adoc_build.yml index 118ad8a7..cc606a56 100644 --- a/.github/workflows/adoc_build.yml +++ b/.github/workflows/adoc_build.yml @@ -18,6 +18,7 @@ # https://github.com/Analog-inc/asciidoctor-action # https://github.com/actions/upload-artifact # https://github.com/actions/download-artifact +# https://github.com/action-badges/create-orphan-branch # # Custom workflow for pages deployment # @@ -104,6 +105,11 @@ jobs: runs-on: ubuntu-latest steps: + # create a new orphan branch if a branch with the given name does not already exist + - name: Create Orphan Branch + uses: action-badges/create-orphan-branch@0.1.1 + with: + branch-name: 'gh-pages' # Checkout gh-pages branch - uses: actions/checkout@v4 with: From 0789f16a6c6f204968a8d07f7ac05763ca600045 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Antonio=20S=2E=20Cofi=C3=B1o?= Date: Wed, 23 Oct 2024 14:10:35 +0200 Subject: [PATCH 17/29] We need firs to clone repo --- .github/workflows/adoc_build.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/adoc_build.yml b/.github/workflows/adoc_build.yml index cc606a56..71a18bda 100644 --- a/.github/workflows/adoc_build.yml +++ b/.github/workflows/adoc_build.yml @@ -105,6 +105,8 @@ jobs: runs-on: ubuntu-latest steps: + # Checkout repo + - uses: actions/checkout@v4 # create a new orphan branch if a branch with the given name does not already exist - name: Create Orphan Branch uses: action-badges/create-orphan-branch@0.1.1 From 4684646293f25592449af3b1cb306a7a79ce3751 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Antonio=20S=2E=20Cofi=C3=B1o?= Date: Wed, 23 Oct 2024 14:18:54 +0200 Subject: [PATCH 18/29] write content permissions to GITHUB_TOKEN --- .github/workflows/adoc_build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/adoc_build.yml b/.github/workflows/adoc_build.yml index 71a18bda..19f90792 100644 --- a/.github/workflows/adoc_build.yml +++ b/.github/workflows/adoc_build.yml @@ -42,7 +42,7 @@ on: # Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages permissions: - contents: read + contents: write pages: write id-token: write From 316ea8b58869fd41227a70b5367e868905f795ab Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Antonio=20S=2E=20Cofi=C3=B1o?= Date: Wed, 23 Oct 2024 14:26:03 +0200 Subject: [PATCH 19/29] Add sudo to remove old images dir --- .github/workflows/adoc_build.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/adoc_build.yml b/.github/workflows/adoc_build.yml index 19f90792..2659dfe8 100644 --- a/.github/workflows/adoc_build.yml +++ b/.github/workflows/adoc_build.yml @@ -52,7 +52,7 @@ concurrency: group: "pages" cancel-in-progress: false -jobs: +jobs: # Job to build cf-conventions.html, cf-conventions.pdf build_conventions_and_conformance: name: Build cf-conventions and conformance html and pdf @@ -142,10 +142,10 @@ jobs: if: github.event_name == 'release' run: mkdir -p ${{ env.TARGET_DIR }} # If we are not doing a release, let's clean out the previous images - # directory in the root directory + # directory in the root directory (OLD TO BE DEPRECATED) - name: Remove old images directory if: github.event_name != 'release' - run: rm -rf ${{ env.TARGET_DIR }}/images + run: sudo rm -rf ${{ env.TARGET_DIR }}/images - name: Copy conventions and conformance documents run: | cp -p build/cf-conventions.html ${{ env.TARGET_DIR }}/ From 0f910f1f21309bfcd31741a0522ff1124a530a07 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Antonio=20S=2E=20Cofi=C3=B1o?= Date: Thu, 24 Oct 2024 14:21:31 +0200 Subject: [PATCH 20/29] Add build dir to .gitignore --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 662b639a..50afdd97 100644 --- a/.gitignore +++ b/.gitignore @@ -8,4 +8,5 @@ conventions_build/ conformance.html conformance.pdf conformance_build/ +build/ .vscode/ From ee3c1a9c8c5ff4c9f3387e9d5965a5f666714138 Mon Sep 17 00:00:00 2001 From: JonathanGregory Date: Fri, 25 Oct 2024 22:30:02 +0100 Subject: [PATCH 21/29] test --- ch04.adoc | 1 + 1 file changed, 1 insertion(+) diff --git a/ch04.adoc b/ch04.adoc index 1c319bce..3d22e5e7 100644 --- a/ch04.adoc +++ b/ch04.adoc @@ -191,6 +191,7 @@ A time coordinate is a number which identifies an instant along the continuous p The instant can equivalently be identified by its date/time, which is a set of numbers comprising year, month, day, hour, minute and second, where the second may have a fraction but the others are all integer. The time coordinate and the date/time are interconvertible (see <>). + Variables containing time coordinates must always explicitly include the **`units`** attribute, formatted as described in <>. There is no default value for the **`units`**. From 00b1f49029bb3a11cf13f03dee61a4105b175a18 Mon Sep 17 00:00:00 2001 From: JonathanGregory Date: Sat, 26 Oct 2024 19:11:15 +0100 Subject: [PATCH 22/29] updates following comments --- bibliography.adoc | 1 + ch01.adoc | 4 +- ch03.adoc | 4 +- ch04.adoc | 144 +++++++++++++++++++++++++--------------------- ch07.adoc | 14 ++--- conformance.adoc | 8 +-- history.adoc | 2 +- 7 files changed, 96 insertions(+), 81 deletions(-) diff --git a/bibliography.adoc b/bibliography.adoc index 3e0b5f9b..122c1217 100644 --- a/bibliography.adoc +++ b/bibliography.adoc @@ -10,6 +10,7 @@ Sponsored by the "Cooperative Ocean/Atmosphere Research Data Service," a NOAA/un - [[[FGDC]]] link:$$https://www.fgdc.gov/standards/projects/FGDC-standards-projects/metadata/base-metadata/v2_0698.pdf$$[Content Standard for Digital Geospatial Metadata]. Federal Geographic Data Committee, FGDC-STD-001-1998. - [[[IEEE_754]]] link:$$https://doi.org/10.1109/IEEESTD.2019.8766229$$[IEEE Standard for Floating-Point Arithmetic], in _IEEE Std 754-2019 (Revision of IEEE 754-2008)_, 22 July 2019. +- [[[ISO_8601]]] link:$$https://www.iso.org/obp/ui/#iso:std:iso:8601:-1:ed-1:v1:en$$[ISO 8601-1:2019, Date and time -- Representations for information interchange]. - [[[Kou21]]] link:$$https://doi.org/10.5194/gmd-14-377-2021$$[A note on precision-preserving compression of scientific data]. Kouznetsov, R.: _Geosci. Model Dev._, 14, 377-389, 2021. - [[[KRD21]]] link:$$https://doi.org/10.1038/s43588-021-00156-2$$[Compressing atmospheric data into its real information content]. Klöwer, M., Razinger, M., Dominguez, J. J., Düben, P., and Palmer, T. N.: _Nat. Comput. Sci._, 1, 713-724, 2021. - [[[NetCDF]]] link:$$https://doi.org/10.5065/D6H70CW6$$[NetCDF Software Package]. UNIDATA Program Center of the University Corporation for Atmospheric Research. diff --git a/ch01.adoc b/ch01.adoc index f0cb50b8..7899e424 100644 --- a/ch01.adoc +++ b/ch01.adoc @@ -71,6 +71,8 @@ The netCDF utilities ncdump and ncgen use this format (see link:$$https://docs.unidata.ucar.edu/nug/current/_c_d_l.html$$[NUG section on CDL syntax]). All examples in this document use CDL syntax. +calendar:: A set of valid datetimes. + cell:: A region in one or more dimensions whose boundary can be described by a set of vertices. The term __interval__ is sometimes used for one-dimensional cells. @@ -81,7 +83,7 @@ The coordinate values must be in strict monotonic order (all values are differen Missing values are not allowed in coordinate variables. To avoid confusion with coordinate variables, CF does not permit a one-dimensional string-valued variable to have the same name as its dimension. -date/time:: The set of numbers which together identify an instant of time, namely its year, month, day, hour, minute and second, where the second may have a fraction but the others are all integer. +datetime:: The set of numbers which together identify an instant of time, namely its year, month, day, hour, minute and second, where the second may have a fraction but the others are all integer. grid mapping variable:: A variable used as a container for attributes that define a specific grid mapping. The type of the variable is arbitrary since it contains no data. diff --git a/ch03.adoc b/ch03.adoc index bfe13bdd..ae283b4c 100644 --- a/ch03.adoc +++ b/ch03.adoc @@ -167,8 +167,8 @@ Unless it is dimensionless, a variable with a **`standard_name`** attribute must Units of time coordinates (<>), whose **`units`** attribute includes the word **`since`**, are _not_ physically equivalent to time units that do not include **`since`** in the **`units`**. To mark this distinction, the canonical unit given for quantities used for time coordinates is **`s since 1958-1-1`**. -The reference date/time in the canonical unit (midnight at 0 `degrees_east` on 1st January 1958) is not restrictive; the time coordinate variable's own **`units`** may contain any reference date/time (after **`since`**) that is valid in its calendar. -(We use `1958-1-1` because it is the beginning of International Atomic Time, and a valid date/time in all CF calendars; see also <>.) +The reference datetime in the canonical unit (the beginning of the day i.e. midmight on 1st January 1958 at 0 `degrees_east`) is not restrictive; the time coordinate variable's own **`units`** may contain any reference datetime (after **`since`**) that is valid in its calendar. +(We use `1958-1-1` because it is the beginning of International Atomic Time, and a valid datetime in all CF calendars; see also <>.) In both kinds of time **`units`** attribute (with or without **`since`**), any unit for measuring time can be used i.e. any unit which is physically equivalent to the SI base unit of time, namely the second. description:: The description is meant to clarify the qualifiers of the fundamental quantities such as which surface a quantity is defined on or what the flux sign conventions are. diff --git a/ch04.adoc b/ch04.adoc index 3d22e5e7..5d0f97a1 100644 --- a/ch04.adoc +++ b/ch04.adoc @@ -188,19 +188,18 @@ The `computed_standard_name` attribute indicates that the values in variable === Time Coordinate A time coordinate is a number which identifies an instant along the continuous physical dimension of time, whether in reality or in a model. -The instant can equivalently be identified by its date/time, which is a set of numbers comprising year, month, day, hour, minute and second, where the second may have a fraction but the others are all integer. -The time coordinate and the date/time are interconvertible (see <>). - +The instant can equivalently be identified by its datetime, which is a set of numbers comprising year, month, day, hour, minute and second, where the second may have a fraction but the others are all integer. +The time coordinate and the datetime are interconvertible given the **`calendar`** attribute of the time coordinate variable (<>) and its **`units`** attribute (containing the time unit of the coordinate values and the reference datetime, <>). Variables containing time coordinates must always explicitly include the **`units`** attribute, formatted as described in <>. There is no default value for the **`units`**. -A time coordinate is identifiable from its **`units`** alone. -Optionally, a time coordinate may be indicated additionally by providing the **`standard_name`** attribute with an appropriate value, and/or the **`axis`** attribute with the value **`T`**. +A coordinate variable is identifiable as a time coordinate variable from its **`units`** alone. +Optionally, a time coordinate variable may be indicated additionally by providing the **`standard_name`** attribute with an appropriate value, and/or the **`axis`** attribute with the value **`T`**. [[time-axis-ex]] [caption="Example 4.4. "] -.Example of a time axis +.Example of a time coordinate variable ==== ---- @@ -217,8 +216,8 @@ double time(time) ; ==== Time Coordinate Units The **`units`** attribute of a time coordinate variable takes a string value that follows the formatting requirements of the <> package (e.g. <>). -It must comprise a unit of measure that is physically equivalent to the SI base unit of time (i.e. the second), followed by the word **`since`** and a reference date/time. -The format of the **`units`** string implies that the time coordinate equals the length of the time interval from the instant identified by the reference date/time to the instant identified by the time coordinate. +It must comprise a unit of measure that is physically equivalent to the SI base unit of time (i.e. the second), followed by the word **`since`** and a reference datetime. +The format of the **`units`** string implies that the time coordinate equals the length of the time interval from the instant identified by the reference datetime to the instant identified by the time coordinate. This is exactly true in all cases except when leap seconds occur between the two intervals in the **`standard`**, **`proleptic_gregorian`**, and **`julian`** calendars. See <>. @@ -239,7 +238,7 @@ UDUNITS permits a number of alternatives to the word **`since`** in the units of All the alternatives have exactly the same meaning in UDUNITS. For compatibility with other software, CF strongly recommends that `since` should be used. -The reference date/time string (appearing after the identifier **`since`**) is required. +The reference datetime string (appearing after the identifier **`since`**) is required. It may include date alone, or date and time, or date, time and time zone offset. Its format is __y__-__m__-__d__ [__H__:__M__:__S__ [__Z__]], where [...] indicates an optional element, @@ -252,8 +251,9 @@ Its format is __y__-__m__-__d__ [__H__:__M__:__S__ [__Z__]], where [...] indicat The default time zone offset is zero. In a time zone with zero offset, time (approximately) equals mean solar time for 0 `degrees_east` of longitude. (Although this may be exact in a model, in reality the time with zero time zone offset differs by some seconds from mean solar time; see the discussion of UTC and leap seconds in <>.) -If both time and time zone offset are omitted the time is 00:00:00 (midnight at 0 `degrees_east`, the start of the day). +If both time and time zone offset are omitted the time is 00:00:00 (the beginning of the day i.e. midnight at 0 `degrees_east`). Thus, **`units = "days since 1990-1-1"`** means the same as **`units = "days since 1990-1-1 0:0:0"`**. +Note that this interpretation of omitted time, which is an aspect of UDUNITS syntax, is different from <>, in which omitted time implies lack of precision. The time zone offset _Z_ has four possible formats, any of which may be prefixed with a sign: @@ -265,20 +265,20 @@ The time zone offset _Z_ has four possible formats, any of which may be prefixed ** three digits, of which the first is the hour (0--9) e.g. **`530`**. -For example, **`seconds since 1992-10-8 15:15:42.5 -6:00`** indicates seconds since October 8th, 1992 at 3 hours, 15 minutes and 42.5 seconds in the afternoon, in a time zone where the date/time is six hours behind the default. -Subtracting the time zone offset from a given date/time converts it to the equivalent date/time with zero time zone offset e.g. **`1989-12-31 18:00:00 -6`** identifies the same instant as **`1990-1-1 0:0:0`**. +For example, **`seconds since 1992-10-8 15:15:42.5 -6:00`** indicates seconds since October 8th, 1992 at 3 hours, 15 minutes and 42.5 seconds in the afternoon, in a time zone where the datetime is six hours behind the default. +Subtracting the time zone offset from a given datetime converts it to the equivalent datetime with zero time zone offset e.g. **`1989-12-31 18:00:00 -6`** identifies the same instant as **`1990-1-1 0:0:0`**. [[calendar, Section 4.4.2, "Calendar"]] ==== Calendar -In order to calculate a time coordinate value from a date/time, or the reverse, one must know the **`units`** attribute of the time coordinate variable (containing the time unit of the coordinate values and the reference date/time, see <>) and the calendar, indicated by the **`calendar`** attribute. -The choice of calendar defines the set of dates (year-month-day combinations) which are permitted, and therefore it specifies the number of days between the times of **`0:0:0`** (midnight at 0 `degrees_east`) on any two dates. -Date/times which are not permitted in a given calendar are prohibited both in the time coordinate values and in the reference date/time string. +The calendar defines the set of dates (year-month-day combinations) which are permitted, and therefore it specifies the number of days between the times of **`0:0:0`** (midnight at 0 `degrees_east`) on any two dates. +Note that the CF meaning of "calendar" is more general than the <> definition, because the latter considers only the real-world Gregorian calendar. +Datetimes which are not permitted in a given calendar are prohibited both in the time coordinate values and in the reference datetime string in the **`units`**. -A given time coordinate value can represent different date/times in different calendars; conversely, a given date/time is represented by different time coordinate values in different calendars. -Moreover, in different calendars a given date/time can identify a different instant in the continuous physical dimension of time. -Examples of these situations are shown in the table of *Appendix ???*. +A given time coordinate value can represent different datetimes in different calendars; conversely, a given datetime is represented by different time coordinate values in different calendars. +Moreover, in different calendars a given datetime can identify a different instant in the continuous physical dimension of time. +// Examples of these situations are shown in the table of *Appendix ???*. It is recommended that the calendar be specified by the **`calendar`** attribute of the time coordinate variable. The values currently defined for **`calendar`** are listed below. @@ -286,12 +286,13 @@ The lengths of the months in the Gregorian calendar are used in all calendars ex The calendars differ in their treatment of leap years (when there are 29 days in February instead of 28). In the real world, the international basis of civil timekeeping is Coordinated Universal Time (UTC). -Leap seconds are adjustments occasionally made in UTC, in order to keep it close to mean solar time at 0 `degrees_east` i.e. the time zone with the default (zero) time zone offset in UDUNITS and CF (see <>). -When a positive leap second is introduced at the end of a minute, that minute contains 61 seconds. -If a negative leap second were introduced (there have been none up to now), the minute would contain 59 seconds. -The calendars differ in their treatment of leap seconds (see <>). +Leap seconds are adjustments made to UTC at irregular and unpredictable intervals in response to slight variations in the Earth's rotation speed, in order to keep UTC close to mean solar time at 0 `degrees_east` i.e. the time zone with the default (zero) time zone offset in UDUNITS and CF (see <>). +When a positive leap second is introduced at the end of a minute, that minute contains 61 seconds; 27 leap seconds have been added to UTC since 1958, most recently at the end of 2016. +A minute would contain 59 seconds if it contained a negative leap second, but none have been introduced up to now. +It has been decided that after 2035 no further leap seconds will be added. +The CF calendars differ in their treatment of leap seconds (see <>). -In the **`julian`** and the default **`standard`** calendar, dates in years before year 0 (i.e. before 0-1-1 0:0:0) are not allowed, and the year in the reference date/time of the units must not be negative. +In the **`julian`** and the default **`standard`** calendar, dates in years before year 0 (i.e. before 0-1-1 0:0:0) are not allowed, and the year in the reference datetime of the units must not be negative. In these calendars, year zero has a special use to indicate a climatology (see <>), but this use of year zero is deprecated. In other calendars, year 0 is the year before year 1, and negative years are allowed. @@ -299,13 +300,13 @@ In other calendars, year 0 is the year before year 1, and negative years are all This is the default. A deprecated alternative name for this calendar is **`gregorian`**. The Gregorian and Julian calendars have the same lengths of their months; they differ only in respect of the rules that decide which years are leap years. -In the **`standard`** calendar, date/times after and including 1582-10-15 0:0:0 are in the Gregorian calendar, in which a year is a leap year if either (i) it is divisible by 4 but not by 100 or (ii) it is divisible by 400. -Date/times before (and excluding) 1582-10-5 0:0:0 are in the Julian calendar, in which any year that is divisible by 4 is a leap year. +In the **`standard`** calendar, datetimes after and including 1582-10-15 0:0:0 are in the Gregorian calendar, in which a year is a leap year if either (i) it is divisible by 4 but not by 100 or (ii) it is divisible by 400. +Datetimes before (and excluding) 1582-10-5 0:0:0 are in the Julian calendar, in which any year that is divisible by 4 is a leap year. Year 1 AD or CE in the **`standard`** calendar is also year 1 of the **`julian`** calendar. -Negative years are invalid in time coordinates and reference date/times in the **`standard`** calendar. +Negative years are invalid in time coordinates and reference datetimes in the **`standard`** calendar. In the **`standard`** calendar, 1582-10-15 0:0:0 is exactly 1 day later than 1582-10-4 0:0:0. -Therefore date/times in the range from (and including) 1582-10-5 0:0:0 until (but excluding) 1582-10-15 0:0:0 are invalid, and must not be used as reference in **`units`**. -It is recommended that a reference date/time before the discontinuity should not be used for date/times after the discontinuity, and vice-versa. +Therefore datetimes in the range from (and including) 1582-10-5 0:0:0 until (but excluding) 1582-10-15 0:0:0 are invalid, and must not be used as reference in **`units`**. +It is recommended that a reference datetime before the discontinuity should not be used for datetimes after the discontinuity, and vice-versa. See also <>. **`proleptic_gregorian`**:: A calendar with the Gregorian rules for leap years extended to dates before 1582-10-15. @@ -314,19 +315,19 @@ See also <>. **`julian`**:: Julian calendar, in which a year is a leap year if it is divisible by 4, even if it is also divisible by 100. Year 1 AD or CE in the **`julian`** calendar is also year 1 of the **`standard`** calendar. -Negative years are invalid in time coordinates and reference date/times in the **`julian`** calendar. +Negative years are invalid in time coordinates and reference datetimes in the **`julian`** calendar. See also <>. **`utc`**:: A Gregorian calendar __with__ leap seconds as prescribed by UTC. -Date/times before 1958-01-01 0:0:0 are not allowed in this calendar. -Date/times in the future are not allowed in this calendar, because it is unknown when future leap seconds will occur. -When a date/time is converted to a time coordinate value or vice-versa in this calendar, any leap seconds (positive or negative) must be counted that occurred in the interval between the date/time and the reference date/time in the **`units`**. -A date/time in the **`utc`** calendar represents an instant that is earlier than the same date/time in the **`tai`** calendar, by the net number of leap seconds introduced since 1958-01-01, which is the same instant in **`utc`** and **`tai`**, when both of them began. +Datetimes before 1958-01-01 0:0:0 are not allowed in this calendar. +Datetimes in the future are not allowed in this calendar, because it is unknown when future leap seconds will occur. +When a datetime is converted to a time coordinate value or vice-versa in this calendar, any leap seconds (positive or negative) must be counted that occurred in the interval between the datetime and the reference datetime in the **`units`**. +A datetime in the **`utc`** calendar represents an instant that is earlier than the same datetime in the **`tai`** calendar, by the net number of leap seconds introduced since 1958-01-01, which is the same instant in **`utc`** and **`tai`**, when both of them began. See also <>. **`tai`**:: A Gregorian calendar __without__ leap seconds that is based on International Atomic Time (TAI). -Date/times before 1958-01-01 0:0:0 are not allowed in this calendar. -A date/time in the **`tai`** calendar represents an instant that is later than the same date/time in the **`utc`** calendar, by the net number of leap seconds introduced since 1958-01-01, which is the same instant in **`utc`** and **`tai`**, when both of them began. +Datetimes before 1958-01-01 0:0:0 are not allowed in this calendar. +A datetime in the **`tai`** calendar represents an instant that is later than the same datetime in the **`utc`** calendar, by the net number of leap seconds introduced since 1958-01-01, which is the same instant in **`utc`** and **`tai`**, when both of them began. See also <>. **`noleap`** or **`365_day`**:: A calendar with no leap years, i.e., all years are 365 days long, and there are no leap seconds. @@ -343,26 +344,33 @@ Any other value may be given to the **`calendar`** attribute to describe an expl [[leap-seconds, Section 4.4.3, "Leap Seconds"]] ==== Leap Seconds +This section describes how to deal properly with leap seconds. +Most people ignore the existence of leap seconds, including many data producers and the CF standard before version 1.12. +As a result, the time coordinates of two real-world observational datasets could disagree by up to 27 seconds if one has taken leap seconds into account and the other has not. +Practically speaking, this means that if you are working with real-world data, and if it's important for your time coordinates to be accurate to the second, you need to care about leap seconds. +Otherwise, you need only to be aware that the difference between two time coordinates might not exactly equal the duration of the time interval between the two instants, but could be inaccurate by up to 27 seconds, if leap seconds are involved. +Relatedly, two instants with the same time of day on different days, which would always be separated by a multiple of 86400 seconds if there were no leap seconds, will have a few more seconds between them if leap seconds intervene. + Each calendar defines a set of valid combinations of the six numbers year-month-day-hour-minute-second. -We refer to this set as the calendar's "set of date/times". +We refer to this set as the calendar's "set of datetimes". Fractions of seconds are allowed in all calendars in addition to the integer number of seconds. In this section, we use the word _timeline_ to mean "continuous physical dimension of time". -The valid date/times identify discrete instants along the timeline, in that sense. +The valid datetimes identify discrete instants along the timeline, in that sense. -You need to know the set of date/times defined by the calendar in order to compute time coordinate values from date/times and vice-versa. -Ignoring fractional seconds in date/times, a time coordinate value expressed in seconds equals the number of valid (integer-second) date/times _after_ (not including) the reference date/time in the **`units`** _up to_ (and including) the date/time that the time coordinate represents. -For instance, in **`units`** of **`seconds since 2024-9-14 11:12:00`**, the time coordinate for the date/time **`2024-9-14 11:12:03`** is **`3`**, because there are three date/times (**`2024-9-14 11:12:01`**, **`2024-9-14 11:12:02`**, **`2024-9-14 11:12:03`**) following **`2024-9-14 11:12:00`** up to and including **`2024-9-14 11:12:03`**. -The coordinate for **`2024-9-14 11:11:58`** is **`-2`**, because there are two valid date/times (**`2024-9-14 11:11:59`**, **`2024-9-14 11:11:58`**) from **`2024-9-14 11:12:00`** to (and including) **`2024-9-14 11:11:58`**, and the count is negative because it goes backwards. -The signed difference between the fractional seconds of the date/time and the reference is added to the time coordinate after counting the seconds. +You need to know the set of datetimes defined by the calendar in order to compute time coordinate values from datetimes and vice-versa. +Ignoring fractional seconds in datetimes, a time coordinate value expressed in seconds equals the number of valid (integer-second) datetimes _after_ (not including) the reference datetime in the **`units`** _up to_ (and including) the datetime that the time coordinate represents. +For instance, in **`units`** of **`seconds since 2024-9-14 11:12:00`**, the time coordinate for the datetime **`2024-9-14 11:12:03`** is **`3`**, because there are three datetimes (**`2024-9-14 11:12:01`**, **`2024-9-14 11:12:02`**, **`2024-9-14 11:12:03`**) following **`2024-9-14 11:12:00`** up to and including **`2024-9-14 11:12:03`**. +The coordinate for **`2024-9-14 11:11:58`** is **`-2`**, because there are two valid datetimes (**`2024-9-14 11:11:59`**, **`2024-9-14 11:11:58`**) from **`2024-9-14 11:12:00`** to (and including) **`2024-9-14 11:11:58`**, and the count is negative because it goes backwards. +The signed difference between the fractional seconds of the datetime and the reference is added to the time coordinate after counting the seconds. This paragraph may appear to be excessively elaborate in describing a usually obvious procedure, but it is necessary to be very careful about it when there are leap seconds. -The **`utc`** calendar is the _only_ calendar which includes leap seconds in its set of date/times. -In all other calendars, date/times within leap seconds are not valid. -Therefore reference date/times in the **`units`** attribute must not contain seconds equal to or greater than 60 unless the **`calendar`** is **`utc`**. +The **`utc`** calendar is the _only_ calendar which includes leap seconds in its set of datetimes. +In all other calendars, datetimes within leap seconds are not valid. +Therefore reference datetimes in the **`units`** attribute must not contain seconds equal to or greater than 60 unless the **`calendar`** is **`utc`**. The **`standard`**, **`proleptic_gregorian`**, and **`julian`** calendars each have two variants. In one variant the timeline does not include leap seconds. -In the other variant, the timeline includes leap seconds, even though they are _not_ included in the valid set of date/times. +In the other variant, the timeline includes leap seconds, even though they are _not_ included in the valid set of datetimes. To resolve the ambiguity between the variants of these calendars, the **`units_metadata`** attribute should be defined as well as the **`calendar`** attribute, as described later in this section. For **`standard`**, **`proleptic_gregorian`**, and **`julian`** calendars, there are the following cases: @@ -370,36 +378,36 @@ For **`standard`**, **`proleptic_gregorian`**, and **`julian`** calendars, there 1. **The calendar is being used for a timeline in which leap seconds do not exist.** This is the case for a model simulation that defines every day as having a constant length of 86400 seconds. -2. **The calendar is being used for a timeline in which leap seconds exist, and are correctly accounted for.** - This could be the case for observations from a platform with equipment which records UTC times with prior knowledge of when new leap seconds are to be introduced, so that it is able to apply a new leap second at the appropriate time. +2. **The calendar is being used for a timeline in which leap seconds exist, and they are correctly accounted for in the UTC datetimes represented by the time coordinates.** + This could be the case for observations from a platform with equipment which records UTC datetimes and has prior knowledge of when new leap seconds are to be introduced, so that it is able to apply a new leap second at the appropriate time. It could equally be the case for model whose timesteps include leap seconds. -3. **The calendar is being used for a timeline in which leap seconds exist, but some or all leap seconds might not have not been correctly accounted for.** +3. **The calendar is being used for a timeline in which leap seconds exist, but some or all leap seconds might not have not been correctly accounted for in the datetimes.** This could be the case for observations from a platform whose time recording equipment has a delay in applying a new leap second. 4. **It may be unknown whether leap seconds exist in the timeline.** -Except in the **`utc`** calendar, when a time coordinate value is calculated from a date/time, or the reverse, it is assumed that the coordinate value increases by exactly 60 seconds from the start of any minute (identified by year, month, day, hour, minute, all being integers) to the start of the next minute, because leap seconds are not valid date/times. +Except in the **`utc`** calendar, when a time coordinate value is calculated from a datetime, or the reverse, it is assumed that the coordinate value increases by exactly 60 seconds from the start of any minute (identified by year, month, day, hour, minute, all being integers) to the start of the next minute, because leap seconds are not valid datetimes. In other words, leap seconds (positive or negative) are never counted in the **`standard`**, **`proleptic_gregorian`**, and **`julian`** calendars. When these calendars are being be used for timelines _with_ leap seconds (i.e. cases 2 and 3 and perhaps case 4), the assumption of 60-second minutes has the following consequences: * It is impossible to identify any instant during a leap second (i.e. between the end of the 60th second of the last minute of one hour and the start of the first second of the next hour) by a time coordinate e.g. **`2016-12-31 23:59:60.5`** cannot be represented by a time coordinate value. -* A date/time in the excluded range must not be used as a reference date/time e.g. **`seconds since 2016-12-31 23:59:60`** is not a permitted value for **`units`**. +* A datetime in the excluded range must not be used as a reference datetime e.g. **`seconds since 2016-12-31 23:59:60`** is not a permitted value for **`units`**. -* The coordinate value does not count any leap seconds which occurred between the reference date/time and the date/time represented by the coordinate. +* The coordinate value does not count any leap seconds which occurred between the reference datetime and the datetime represented by the coordinate. For instance, 60 **`seconds after 23:59:00`** always means 00:00:00 on the next day, even if there is a leap second at 23:59:60, which makes the actual interval 61 seconds between 23:59:00 and 00:00:00 on the next day. Because of the last point, the difference between two coordinate values with the same **`units`** string does not exactly equal the length of the interval between instants they represent if there were any leap seconds between them. This discrepancy can happen in cases 2, 3 and 4 of the **`standard`**, **`proleptic_gregorian`**, and **`julian`** calendars. By contrast, in case 1 of those calendars (i.e. a timeline without leap seconds), and in all other calendars, the difference between two time coordinate values with the same **`units`** string is always equal to the length of time between the instants they represent. -Furthermore, an inaccuracy results from converting a time coordinate to a date/time if the interval includes leap seconds which were _not_ known when the time coordinate was calculated (possible in case 3 or 4). +Furthermore, an inaccuracy results from converting a time coordinate to a datetime if the interval includes leap seconds which were _not_ known when the time coordinate was calculated (possible in case 3 or 4). It is important to be aware of these disadvantages of the **`standard`**, **`proleptic_gregorian`** and **`julian`** calendars when used with timelines including leap seconds. If it is essential for leap seconds to be counted in time coordinates, so that they exactly equal time intervals, you must use the **`utc`** calendar. For many applications of the **`standard`**, **`proleptic_gregorian`**, and **`julian`** calendars, these inaccuracies are too small to matter, but there are some applications where it is necessary to know about them. Therefore it is recommended that for the **`standard`**, **`proleptic_gregorian`**, and **`julian`** calendars the appropriate treatment of leap seconds should be indicated by giving the time coordinate variable a **`units_metadata`** attribute containing a **`leap_seconds`** keyword with one of the permitted values **`none`**, **`utc**` or **`unknown`**. -**`none`** means that leap seconds do not exist in the timeline (i.e. case 1), **`utc`** means that leap seconds exist in the timeline and are correctly accounted for (i.e. case 2), and **`unknown`** means that the data-writer did not know or did not record whether the leap seconds exist in the timeline, nor how they are treated if they did exist (i.e. cases 3 and 4). +**`none`** means that leap seconds do not exist in the timeline (i.e. case 1), **`utc`** means that leap seconds exist in the timeline and the time coordinates correctly represent the UTC datetimes (i.e. case 2), and **`unknown`** means that the data-writer did not know or did not record whether the leap seconds exist in the timeline, nor how they are treated if they did exist (i.e. cases 3 and 4). If the **`units_metadata`** attribute is not present, or does not contain the `leap_seconds` keyword, the data-reader should assume **`leap_seconds: unknown`**. A variable's **`units_metadata`** attribute may only contain the **`leap_seconds`** keyword if the variable's calendar is one of **`standard`** , **`proleptic_gregorian`**, or **`julian`**. @@ -438,7 +446,7 @@ variables: time_unknown:calendar = "standard" ; time_unknown:units = "seconds since 2016-12-31 23:59:58" ; time_unknown:units_metadata = "leap_seconds: unknown" ; -data: // time coordinate variable and the date/time it represents +data: // time coordinate variable and the datetime it represents time_tai = 2; // 2017-1-1 0:0:0 because no leap seconds in the timeline time_stdnone = 2; // 2017-1-1 0:0:0 because no leap seconds in the timeline time_stdutc = 2; // 2017-1-1 0:0:0 because the leap second is not counted @@ -447,34 +455,38 @@ data: // time coordinate variable and the date/time it represents ---- This example shows five scalar time coordinate variables. -Although they all the value 2 and the same **`units`** attribute, they do not all refer to the same date/time, as shown in the comments on their data values, because they have different treatments of the leap second that was added to the UTC calendar at the end of 2016. +Although they all have the value 2 and the same **`units`** attribute, they do not all refer to the same datetime, as shown in the comments on their data values, because they have different treatments of the leap second that was added to the UTC calendar at the end of 2016. The first four of them correspond to the instants marked 2 **`seconds since 2016-12-31 23:59:58`** in <>. -The value of **`2`** seconds for **`time_stdnone`**, **`time_utc`** and **`time_tai`** can be correctly interpreted as the length of the interval from the reference date/time 2016-12-31 23:59:58 to the date/time indicated in the comment. -In both **`time_stdnone`** and **`time_stdutc`**, the time coordinate represents 2017-1-1 0:0:0, but the interval along the timeline between the reference date/time 2016-12-31 23:59:58 and 2017-1-1 0:0:0 is actually 3 seconds in **`time_stdutc`**. -In the case of **`time_unknown`**, we cannot convert the time coordinate to a date/time with certainty, and we do not know the exact length of the interval. +The value of **`2`** seconds for **`time_stdnone`**, **`time_utc`** and **`time_tai`** can be correctly interpreted as the length of the interval from the reference datetime 2016-12-31 23:59:58 to the datetime indicated in the comment. +In both **`time_stdnone`** and **`time_stdutc`**, the time coordinate represents 2017-1-1 0:0:0, because 2016-12-31 23:59:60 is not permitted in the **`standard`** calendar, hence only two valid datetimes with integer seconds are counted (2016-12-31 23:59:59 and 2017-1-1 0:0:0). +However, the _timeline_ for **`time_stdutc`** _does_ include the leap second, so the time interval from the reference datetime 2016-12-31 23:59:58 to 2017-1-1 0:0:0 is actually three seconds, not two as indicated by the time coordinate value. +This is an example of the **`standard`** calendar not counting a leap second in the coordinate value, with the consequence that the difference between time coordinates does not exactly equal the duration of the interval. +An application may choose either to ignore this inaccuracy or to correct for it when calculating the length of intervals which include the leap second. +In the case of **`time_unknown`**, we cannot convert the time coordinate to a datetime with certainty, because we do not know whether 2017-1-1 0:0:0 is two or three seconds after 2016-12-31 23:59:58. ==== [[leap-second-timelines]] [caption="Figure {doc-part}.{counter:figure}. ", reftext=Figure {doc-part}.{figure}] -.Illustration of the equivalence between date/times and time coordinate values with **`units="seconds since 2016-12-31 23:59:58"`** for various choices of the **`calendar`** attribute and **`leap_seconds`** keyword. +.Illustration of the equivalence between datetimes and time coordinate values with **`units="seconds since 2016-12-31 23:59:58"`** for various choices of the **`calendar`** attribute and **`leap_seconds`** keyword. ==== image::images/leap-second-timelines.svg[,70%,pdfwidth=50vw,align="center"] -This illustration shows that a given time coordinate value (the numbers in columns at the bottom right) can represent different date/times in different calendars. -However, the illustration cannot show another important point to keep in mind, that a given date/time may identify different instants in different calendars. +This illustration shows that a given time coordinate value (the numbers in columns at the bottom right) can represent different datetimes in different calendars. +However, the illustration cannot show another important point to keep in mind, that a given datetime may identify different instants in different calendars. The diagonal lines depict the timelines of the calendars. -Along each line, a filled circle marks the instant on the timeline that begins each second in the set of date/times allowed by the calendar. +Along each line, a filled circle marks the instant on the timeline that begins each second in the set of datetimes allowed by the calendar. There is no meaning in the slight left-right displacement of the circles at each second, which is done only so they can all be seen; they are supposed to be exactly coincident. -As explained in the text of this section, the time coordinate in seconds is the count of valid date/times (= the number of circles) that occur along the timeline _after_ the reference date/time **`2016-12-31 23:59:58`** (which is the first circle on the line in every case, hence with a count of zero as shown in the column below its group of circles), up to and including the date/time represented. +As explained in the text of this section, the time coordinate in seconds is the count of valid datetimes (= the number of circles) that occur along the timeline _after_ the reference datetime **`2016-12-31 23:59:58`** (which is the first circle on the line in every case, hence with a count of zero as shown in the column below its group of circles), up to and including the datetime represented. The instants marked 2 **`seconds since 2016-12-31 23:59:58`** are the ones represented by the first four time coordinate variables of Example 4.5. A leap second was added to the UTC calendar at the end of 2016. The duration of the leap second is shown by the shading. -The **`utc`** calendar is the only one in which date/times in the leap second are valid; hence the black circle is the only marker of **`2016-12-31 23:59:60`**. -The grey timeline of the **`utc`** variant of the **`standard`** calendar includes the the leap second as well, but date/times in the leap second are not valid in that calendar, so there is no grey circle for it. +The **`utc`** calendar is the only one in which datetimes in the leap second are valid; hence the black circle is the only marker of **`2016-12-31 23:59:60`**. +The grey timeline of the **`utc`** variant of the **`standard`** calendar includes the the leap second as well, but datetimes in the leap second are not valid in that calendar, so there is no grey circle for it. The leap second does not appear in the timelines of the **`tai`** calendar and the *`none`* variant of the *`standard`* calendar. Their timelines (red and purple) skip over the leap second, and they have no circle for it. +For those timelines, please imagine the digram having the shaded rectangle cut out, and the cut edges joined, making the red and purple lines continuous, passing smoothly from 2016-12-31 23:59:00 to 2017-1-1 00:00:00 as for all the other seconds. ==== diff --git a/ch07.adoc b/ch07.adoc index e91c9ef0..ab076da9 100644 --- a/ch07.adoc +++ b/ch07.adoc @@ -488,7 +488,7 @@ Instead, it has a **`climatology`** attribute, which names a variable with dimen Using the units and calendar of the time coordinate variable, element (i,0) of the climatology variable specifies the beginning of the first subinterval and element (i,1) the end of the last subinterval used to evaluate the climatological statistics with index i in the time dimension. The time coordinates should be values that are representative of the climatological time intervals, such that an application which does not recognise climatological time will nonetheless be able to make a reasonable interpretation. -For compatibility with the COARDS standard, a climatological time coordinate in the default **`standard`** and **`julian`** calendars may be indicated by setting the date/time reference string in the time coordinate's **`units`** attribute to midnight at 0 `degrees_east` on 1 January in year 0 (i.e., **`since 0-1-1`**). +For compatibility with the COARDS standard, a climatological time coordinate in the default **`standard`** and **`julian`** calendars may be indicated by setting the datetime reference string in the time coordinate's **`units`** attribute to midnight at 0 `degrees_east` on 1 January in year 0 (i.e., **`since 0-1-1`**). This convention is deprecated because it does not provide any information about the intervals used to compute the climatology, and there may be inconsistencies among software packages in the interpretation of the time coordinates with a reference time of year 0. Use of year 0 for this purpose is impossible in all other calendars, because year 0 is a valid year. @@ -539,7 +539,7 @@ variables: time:climatology="climatology_bounds"; time:units="days since 1960-1-1"; double climatology_bounds(time,nv); -data: // time coordinates translated to date/time format +data: // time coordinates translated to datetime format time="1960-4-16", "1960-7-16", "1960-10-16", "1961-1-16" ; climatology_bounds="1960-3-1", "1990-6-1", "1960-6-1", "1990-9-1", @@ -565,7 +565,7 @@ variables: time:climatology="climatology_bounds"; time:units="days since 1901-1-1"; double climatology_bounds(time,nv); -data: // time coordinates translated to date/time format +data: // time coordinates translated to datetime format time="1965-1-15", "1975-1-15", "1985-1-15" ; climatology_bounds="1961-1-1", "1970-2-1", "1971-1-1", "1980-2-1", @@ -591,7 +591,7 @@ variables: time:climatology="climatology_bounds"; time:units="hours since 1997-4-1"; double climatology_bounds(time,nv); -data: // time coordinates translated to date/time format +data: // time coordinates translated to datetime format time="1997-4-1 0:30", "1997-4-1 1:30", ... "1997-4-1 23:30" ; climatology_bounds="1997-4-1 0:00", "1997-4-30 1:00", "1997-4-1 1:00", "1997-4-30 2:00", @@ -625,7 +625,7 @@ variables: time:climatology="climatology_bounds"; time:units="days since 2000-6-1"; double climatology_bounds(time,nv); -data: // time coordinates translated to date/time format +data: // time coordinates translated to datetime format time="2008-1-16 6:00"; climatology_bounds="2007-12-1 6:00", "2008-3-1 6:00"; threshold=0.; @@ -649,7 +649,7 @@ variables: time:climatology="climatology_bounds"; time:units="days since 1961-1-1"; double climatology_bounds(time,nv); -data: // time coordinates translated to date/time format +data: // time coordinates translated to datetime format time="1961-4-1 0:30", "1961-4-1 1:30", ..., "1961-4-1 23:30" ; climatology_bounds="1961-4-1 0:00", "1990-4-30 1:00", "1961-4-1 1:00", "1990-4-30 2:00", @@ -678,7 +678,7 @@ variables: time:climatology="climatology_bounds"; time:units="days since 2000-6-1"; double climatology_bounds(time,nv); -data: // time coordinates translated to date/time format +data: // time coordinates translated to datetime format time="2000-6-16", "2000-7-16", "2000-8-16" ; climatology_bounds="2000-6-1 6:00:00", "2000-7-1 6:00:00", "2000-7-1 6:00:00", "2000-8-1 6:00:00", diff --git a/conformance.adoc b/conformance.adoc index 4d5f51d1..5f6a4b0d 100644 --- a/conformance.adoc +++ b/conformance.adoc @@ -241,7 +241,7 @@ The values of **`var`** must be variables that exist in the file. *Requirements:* -* The time **`units`** of a time coordinate variable must contain a reference date/time. +* The time **`units`** of a time coordinate variable must contain a reference datetime. *Recommendations:* @@ -256,12 +256,12 @@ The values of **`var`** must be variables that exist in the file. * The **`calendar`** attribute may only be attached to time coordinate variables. * If present, the value of the **`calendar`** attribute must be one of the standardized values (case insensitive) detailed in this section, unless the **`month_length`** attribute is present, in which case the **`calendar`** attribute must _not_ take one of the standardized values. -* The reference date/time of a time coordinate variable must be a legal date/time in the specified calendar. +* The reference datetime of a time coordinate variable must be a legal datetime in the specified calendar. *Recommendations:* * A time coordinate variable should have a **`calendar`** attribute. -* If the **`calendar`** attribute is **`standard`**, **`gregorian**` (deprecated) or **`julian`** or absent, the use of time coordinates in year 0 and reference date/times in year 0 is deprecated. +* If the **`calendar`** attribute is **`standard`**, **`gregorian**` (deprecated) or **`julian`** or absent, the use of time coordinates in year 0 and reference datetimes in year 0 is deprecated. * The value **`standard`** should be used instead of **`gregorian`** in the **`calendar`** attribute. * The time coordinate should not cross the date 1582-10-15 when the default mixed Gregorian/Julian calendar is in use. @@ -270,7 +270,7 @@ The values of **`var`** must be variables that exist in the file. *Requirements:* -* The reference date/time in time **`units`** is not allowed to contain seconds equal to or greater than 60, except for valid leap seconds if the **`calendar`** is **`utc`**. +* The reference datetime in time **`units`** is not allowed to contain seconds equal to or greater than 60, except for valid leap seconds if the **`calendar`** is **`utc`**. * A time coordinate variable must not have a **`units_metadata`** attribute if it has a **`calendar`** attribute with a value _other than_ one of the following values: `standard`, `gregorian` (deprecated), `proleptic_gregorian`, `julian`. * If a time coordinate variable has a **`units_metadata`** attribute then it must have one of these values: `leap_seconds: none`, `leap_seconds: utc`, or `leap_seconds: unknown`. diff --git a/history.adoc b/history.adoc index 2a70848e..c2241dd0 100644 --- a/history.adoc +++ b/history.adoc @@ -7,7 +7,7 @@ === Working version (most recent first) -* {issues}542{Issue #542}: Clarify and rearrange text of section 4.4 about time coordinate units and calendars; introduce new text and a diagram explaining leap-seconds in existing calendars; define leap_second keyword of units_metadata attribute; define utc and tai calendars; define "date/time" in section 1.3. +* {issues}542{Issue #542}: Clarify and rearrange text of section 4.4 about time coordinate units and calendars; introduce new text and a diagram explaining leap-seconds in existing calendars; define leap_second keyword of units_metadata attribute; define utc and tai calendars; define "datetime" in section 1.3. * {issues}166{Issue #166}: Clarify that time coordinate variables must have **`units`** containing **`since`** and a reference time; distinguish between canonical units of time with and without **`since`**. * {issues}403[Issue #403]: Metadata to encode quantization properties * {issues}530{Issue #530]: Define "the most rapidly varying dimension", and use this phrase consistently with the clarification "(the last dimension in CDL order)". From 6f97592b348f00139dc7852077adb43624a823d0 Mon Sep 17 00:00:00 2001 From: JonathanGregory Date: Sat, 26 Oct 2024 20:31:28 +0100 Subject: [PATCH 23/29] updates following comments --- ch04.adoc | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/ch04.adoc b/ch04.adoc index 5d0f97a1..9ec2f8c0 100644 --- a/ch04.adoc +++ b/ch04.adoc @@ -193,7 +193,6 @@ The time coordinate and the datetime are interconvertible given the **`calendar` Variables containing time coordinates must always explicitly include the **`units`** attribute, formatted as described in <>. There is no default value for the **`units`**. - A coordinate variable is identifiable as a time coordinate variable from its **`units`** alone. Optionally, a time coordinate variable may be indicated additionally by providing the **`standard_name`** attribute with an appropriate value, and/or the **`axis`** attribute with the value **`T`**. @@ -272,21 +271,21 @@ Subtracting the time zone offset from a given datetime converts it to the equiva [[calendar, Section 4.4.2, "Calendar"]] ==== Calendar -The calendar defines the set of dates (year-month-day combinations) which are permitted, and therefore it specifies the number of days between the times of **`0:0:0`** (midnight at 0 `degrees_east`) on any two dates. -Note that the CF meaning of "calendar" is more general than the <> definition, because the latter considers only the real-world Gregorian calendar. +The calendar defines the set of valid datetimes and their order. +Note that the CF meaning of "calendar" refers to datetimes, whereas the <> definition refers only to dates. Datetimes which are not permitted in a given calendar are prohibited both in the time coordinate values and in the reference datetime string in the **`units`**. +It is recommended that the calendar be specified by the **`calendar`** attribute of the time coordinate variable. +The values currently defined for **`calendar`** are listed below. -A given time coordinate value can represent different datetimes in different calendars; conversely, a given datetime is represented by different time coordinate values in different calendars. +Because the calendars have different sets of valid dates, and different treatments of leap seconds (see below in this section, and <>), a given time coordinate value with given **`units`** can represent different datetimes in different calendars; conversely, a given datetime is represented by different time coordinate values in different calendars. Moreover, in different calendars a given datetime can identify a different instant in the continuous physical dimension of time. // Examples of these situations are shown in the table of *Appendix ???*. -It is recommended that the calendar be specified by the **`calendar`** attribute of the time coordinate variable. -The values currently defined for **`calendar`** are listed below. The lengths of the months in the Gregorian calendar are used in all calendars except **`360_day`**, **`none`** (see <>) and explicitly defined calendars (see <>). The calendars differ in their treatment of leap years (when there are 29 days in February instead of 28). -In the real world, the international basis of civil timekeeping is Coordinated Universal Time (UTC). -Leap seconds are adjustments made to UTC at irregular and unpredictable intervals in response to slight variations in the Earth's rotation speed, in order to keep UTC close to mean solar time at 0 `degrees_east` i.e. the time zone with the default (zero) time zone offset in UDUNITS and CF (see <>). +Leap seconds are adjustments made at irregular and unpredictable intervals in Coordinated Universal Time (UTC), the international basis of civil timekeeping in he real world. +In response to slight variations in the Earth's rotation speed, positive or negative leap seconds are inserted in order to keep UTC close to mean solar time at 0 `degrees_east` i.e. the time zone with the default (zero) time zone offset in UDUNITS and CF (see <>). When a positive leap second is introduced at the end of a minute, that minute contains 61 seconds; 27 leap seconds have been added to UTC since 1958, most recently at the end of 2016. A minute would contain 59 seconds if it contained a negative leap second, but none have been introduced up to now. It has been decided that after 2035 no further leap seconds will be added. From c8049a83f2674b3caaa6c0f3d4c1360542566f34 Mon Sep 17 00:00:00 2001 From: JonathanGregory Date: Sat, 26 Oct 2024 20:43:20 +0100 Subject: [PATCH 24/29] corrections --- ch01.adoc | 2 +- ch03.adoc | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/ch01.adoc b/ch01.adoc index 7899e424..2af40a72 100644 --- a/ch01.adoc +++ b/ch01.adoc @@ -71,7 +71,7 @@ The netCDF utilities ncdump and ncgen use this format (see link:$$https://docs.unidata.ucar.edu/nug/current/_c_d_l.html$$[NUG section on CDL syntax]). All examples in this document use CDL syntax. -calendar:: A set of valid datetimes. +calendar:: An ordered set of valid datetimes with integer seconds. cell:: A region in one or more dimensions whose boundary can be described by a set of vertices. The term __interval__ is sometimes used for one-dimensional cells. diff --git a/ch03.adoc b/ch03.adoc index ae283b4c..f1f3f386 100644 --- a/ch03.adoc +++ b/ch03.adoc @@ -167,7 +167,7 @@ Unless it is dimensionless, a variable with a **`standard_name`** attribute must Units of time coordinates (<>), whose **`units`** attribute includes the word **`since`**, are _not_ physically equivalent to time units that do not include **`since`** in the **`units`**. To mark this distinction, the canonical unit given for quantities used for time coordinates is **`s since 1958-1-1`**. -The reference datetime in the canonical unit (the beginning of the day i.e. midmight on 1st January 1958 at 0 `degrees_east`) is not restrictive; the time coordinate variable's own **`units`** may contain any reference datetime (after **`since`**) that is valid in its calendar. +The reference datetime in the canonical unit (the beginning of the day i.e. midnight on 1st January 1958 at 0 `degrees_east`) is not restrictive; the time coordinate variable's own **`units`** may contain any reference datetime (after **`since`**) that is valid in its calendar. (We use `1958-1-1` because it is the beginning of International Atomic Time, and a valid datetime in all CF calendars; see also <>.) In both kinds of time **`units`** attribute (with or without **`since`**), any unit for measuring time can be used i.e. any unit which is physically equivalent to the SI base unit of time, namely the second. From 61f2b65795b325f4012dfb01e9ee0650a101c383 Mon Sep 17 00:00:00 2001 From: JonathanGregory Date: Sat, 26 Oct 2024 21:01:50 +0100 Subject: [PATCH 25/29] corrections --- ch01.adoc | 2 +- ch04.adoc | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/ch01.adoc b/ch01.adoc index 2af40a72..215a2528 100644 --- a/ch01.adoc +++ b/ch01.adoc @@ -71,7 +71,7 @@ The netCDF utilities ncdump and ncgen use this format (see link:$$https://docs.unidata.ucar.edu/nug/current/_c_d_l.html$$[NUG section on CDL syntax]). All examples in this document use CDL syntax. -calendar:: An ordered set of valid datetimes with integer seconds. +calendar:: A CF calendar defines an ordered set of valid datetimes with integer seconds. cell:: A region in one or more dimensions whose boundary can be described by a set of vertices. The term __interval__ is sometimes used for one-dimensional cells. diff --git a/ch04.adoc b/ch04.adoc index 9ec2f8c0..17eccb85 100644 --- a/ch04.adoc +++ b/ch04.adoc @@ -284,10 +284,10 @@ Moreover, in different calendars a given datetime can identify a different insta The lengths of the months in the Gregorian calendar are used in all calendars except **`360_day`**, **`none`** (see <>) and explicitly defined calendars (see <>). The calendars differ in their treatment of leap years (when there are 29 days in February instead of 28). -Leap seconds are adjustments made at irregular and unpredictable intervals in Coordinated Universal Time (UTC), the international basis of civil timekeeping in he real world. +Leap seconds are adjustments made at irregular and unpredictable intervals in Coordinated Universal Time (UTC), the international basis of civil timekeeping in the real world. In response to slight variations in the Earth's rotation speed, positive or negative leap seconds are inserted in order to keep UTC close to mean solar time at 0 `degrees_east` i.e. the time zone with the default (zero) time zone offset in UDUNITS and CF (see <>). When a positive leap second is introduced at the end of a minute, that minute contains 61 seconds; 27 leap seconds have been added to UTC since 1958, most recently at the end of 2016. -A minute would contain 59 seconds if it contained a negative leap second, but none have been introduced up to now. +A minute would contain 59 seconds if it included a negative leap second, but none have been introduced up to now. It has been decided that after 2035 no further leap seconds will be added. The CF calendars differ in their treatment of leap seconds (see <>). @@ -377,7 +377,7 @@ For **`standard`**, **`proleptic_gregorian`**, and **`julian`** calendars, there 1. **The calendar is being used for a timeline in which leap seconds do not exist.** This is the case for a model simulation that defines every day as having a constant length of 86400 seconds. -2. **The calendar is being used for a timeline in which leap seconds exist, and they are correctly accounted for in the UTC datetimes represented by the time coordinates.** +2. **The calendar is being used for a timeline in which leap seconds exist, and they are correctly accounted for in the datetimes represented by the time coordinates.** This could be the case for observations from a platform with equipment which records UTC datetimes and has prior knowledge of when new leap seconds are to be introduced, so that it is able to apply a new leap second at the appropriate time. It could equally be the case for model whose timesteps include leap seconds. @@ -406,7 +406,7 @@ It is important to be aware of these disadvantages of the **`standard`**, **`pro If it is essential for leap seconds to be counted in time coordinates, so that they exactly equal time intervals, you must use the **`utc`** calendar. For many applications of the **`standard`**, **`proleptic_gregorian`**, and **`julian`** calendars, these inaccuracies are too small to matter, but there are some applications where it is necessary to know about them. Therefore it is recommended that for the **`standard`**, **`proleptic_gregorian`**, and **`julian`** calendars the appropriate treatment of leap seconds should be indicated by giving the time coordinate variable a **`units_metadata`** attribute containing a **`leap_seconds`** keyword with one of the permitted values **`none`**, **`utc**` or **`unknown`**. -**`none`** means that leap seconds do not exist in the timeline (i.e. case 1), **`utc`** means that leap seconds exist in the timeline and the time coordinates correctly represent the UTC datetimes (i.e. case 2), and **`unknown`** means that the data-writer did not know or did not record whether the leap seconds exist in the timeline, nor how they are treated if they did exist (i.e. cases 3 and 4). +**`none`** means that leap seconds do not exist in the timeline (i.e. case 1), **`utc`** means that leap seconds exist in the timeline and the time coordinates correctly represent the datetimes (i.e. case 2), and **`unknown`** means that the data-writer did not know or did not record whether the leap seconds exist in the timeline, nor how they are treated if they did exist (i.e. cases 3 and 4). If the **`units_metadata`** attribute is not present, or does not contain the `leap_seconds` keyword, the data-reader should assume **`leap_seconds: unknown`**. A variable's **`units_metadata`** attribute may only contain the **`leap_seconds`** keyword if the variable's calendar is one of **`standard`** , **`proleptic_gregorian`**, or **`julian`**. From f10153c9d2b15987295d30d6e897ed8e0bbe7665 Mon Sep 17 00:00:00 2001 From: JonathanGregory Date: Tue, 29 Oct 2024 15:38:00 +0000 Subject: [PATCH 26/29] updates following comments --- ch04.adoc | 27 +++++++++++++++++---------- 1 file changed, 17 insertions(+), 10 deletions(-) diff --git a/ch04.adoc b/ch04.adoc index 17eccb85..ff3de76d 100644 --- a/ch04.adoc +++ b/ch04.adoc @@ -230,8 +230,8 @@ The CF standard follows UDUNITS in the definition of units, but we recommend tha UDUNITS defines a **`minute`** as 60 **`seconds`**, an **`hour`** as 3600 **`seconds`** and a **`day`** as 86400 **`seconds`**. These are not calendar units. -When civil clock time changes at the start and end of summer in many countries, the day according to its calendar date lasts for 23 or 25 hours, but the UDUNITS and CF **`day`** is always 24 **`hours`**. When a leap second is inserted into UTC, the minute, hour and day affected differ by one second from their usual durations according to clock time, but the UDUNITS and CF **`minute`**, **`hour`** and **`day`** do not; they are fixed units of measure. +See also <>. UDUNITS permits a number of alternatives to the word **`since`** in the units of time coordinates. All the alternatives have exactly the same meaning in UDUNITS. @@ -246,6 +246,8 @@ Its format is __y__-__m__-__d__ [__H__:__M__:__S__ [__Z__]], where [...] indicat * _S_ is second, which may be integer or floating point (see <> regarding __S__>59), * _Z_ is the time zone offset. +This is an interval of time, specified in one of the formats described below. +Time zone names or acronyms are not allowed. The default time zone offset is zero. In a time zone with zero offset, time (approximately) equals mean solar time for 0 `degrees_east` of longitude. @@ -254,7 +256,7 @@ If both time and time zone offset are omitted the time is 00:00:00 (the beginnin Thus, **`units = "days since 1990-1-1"`** means the same as **`units = "days since 1990-1-1 0:0:0"`**. Note that this interpretation of omitted time, which is an aspect of UDUNITS syntax, is different from <>, in which omitted time implies lack of precision. -The time zone offset _Z_ has four possible formats, any of which may be prefixed with a sign: +The time zone offset _Z_ must be in one of the following four formats, any of which may be prefixed with a sign: ** _H_, the hour alone, of one or two digits e.g. **`-6`**, **`2`**, **`+11`**, which is sufficient for many time zones. @@ -284,11 +286,10 @@ Moreover, in different calendars a given datetime can identify a different insta The lengths of the months in the Gregorian calendar are used in all calendars except **`360_day`**, **`none`** (see <>) and explicitly defined calendars (see <>). The calendars differ in their treatment of leap years (when there are 29 days in February instead of 28). -Leap seconds are adjustments made at irregular and unpredictable intervals in Coordinated Universal Time (UTC), the international basis of civil timekeeping in the real world. +Leap seconds are adjustments made at irregular and unpredictable intervals in Coordinated Universal Time (link:$$https://en.wikipedia.org/wiki/Coordinated_Universal_Time$$[UTC]). In response to slight variations in the Earth's rotation speed, positive or negative leap seconds are inserted in order to keep UTC close to mean solar time at 0 `degrees_east` i.e. the time zone with the default (zero) time zone offset in UDUNITS and CF (see <>). -When a positive leap second is introduced at the end of a minute, that minute contains 61 seconds; 27 leap seconds have been added to UTC since 1958, most recently at the end of 2016. -A minute would contain 59 seconds if it included a negative leap second, but none have been introduced up to now. -It has been decided that after 2035 no further leap seconds will be added. +When a single positive leap second is introduced at the end of a minute, that minute contains 61 seconds. +The net number of leap seconds added to UTC between 1958-1-1 and 2025-1-1 is 37. The CF calendars differ in their treatment of leap seconds (see <>). In the **`julian`** and the default **`standard`** calendar, dates in years before year 0 (i.e. before 0-1-1 0:0:0) are not allowed, and the year in the reference datetime of the units must not be negative. @@ -321,12 +322,18 @@ See also <>. Datetimes before 1958-01-01 0:0:0 are not allowed in this calendar. Datetimes in the future are not allowed in this calendar, because it is unknown when future leap seconds will occur. When a datetime is converted to a time coordinate value or vice-versa in this calendar, any leap seconds (positive or negative) must be counted that occurred in the interval between the datetime and the reference datetime in the **`units`**. -A datetime in the **`utc`** calendar represents an instant that is earlier than the same datetime in the **`tai`** calendar, by the net number of leap seconds introduced since 1958-01-01, which is the same instant in **`utc`** and **`tai`**, when both of them began. +For any given instant, the **`utc`** datetime is behind the **`tai`** datetime, where "behind" means the same as it does when describing a timezone to the west as being behind one to the east. +The difference between the two datetimes for a given instant of time is the net number of leap seconds introduced since 1958-01-01. +The difference was zero on that instant, when both calendars began. +This means that a given datetime in the **`utc`** calendar represents an instant that is earlier than the same datetime in the **`tai`** calendar. See also <>. **`tai`**:: A Gregorian calendar __without__ leap seconds that is based on International Atomic Time (TAI). Datetimes before 1958-01-01 0:0:0 are not allowed in this calendar. -A datetime in the **`tai`** calendar represents an instant that is later than the same datetime in the **`utc`** calendar, by the net number of leap seconds introduced since 1958-01-01, which is the same instant in **`utc`** and **`tai`**, when both of them began. +For any given instant, the **`tai`** datetime is ahead of the **`utc`** datetime, where "ahead" means the same as it does when describing a timezone to the east as being ahead of one to the west. +The difference between the two datetimes for a given instant of time is the net number of leap seconds introduced since 1958-01-01. +The difference was zero on that instant, when both calendars began. +This means that a given datetime in the **`tai`** calendar represents an instant that is later than the same datetime in the **`utc`** calendar. See also <>. **`noleap`** or **`365_day`**:: A calendar with no leap years, i.e., all years are 365 days long, and there are no leap seconds. @@ -345,9 +352,9 @@ Any other value may be given to the **`calendar`** attribute to describe an expl This section describes how to deal properly with leap seconds. Most people ignore the existence of leap seconds, including many data producers and the CF standard before version 1.12. -As a result, the time coordinates of two real-world observational datasets could disagree by up to 27 seconds if one has taken leap seconds into account and the other has not. +As a result, the time coordinates of two real-world observational datasets could disagree by some number of seconds if one has taken leap seconds into account and the other has not. Practically speaking, this means that if you are working with real-world data, and if it's important for your time coordinates to be accurate to the second, you need to care about leap seconds. -Otherwise, you need only to be aware that the difference between two time coordinates might not exactly equal the duration of the time interval between the two instants, but could be inaccurate by up to 27 seconds, if leap seconds are involved. +Otherwise, you need only to be aware that the difference between two time coordinates might not exactly equal the duration of the time interval between the two instants, but could be inaccurate by a number of seconds, if leap seconds are involved. Relatedly, two instants with the same time of day on different days, which would always be separated by a multiple of 86400 seconds if there were no leap seconds, will have a few more seconds between them if leap seconds intervene. Each calendar defines a set of valid combinations of the six numbers year-month-day-hour-minute-second. From 8d81918c1cd4aa68e3822e55f43c7f1fe46e1602 Mon Sep 17 00:00:00 2001 From: JonathanGregory Date: Tue, 29 Oct 2024 16:33:37 +0000 Subject: [PATCH 27/29] correct markdown --- conformance.adoc | 1 + 1 file changed, 1 insertion(+) diff --git a/conformance.adoc b/conformance.adoc index 5f6a4b0d..8f831964 100644 --- a/conformance.adoc +++ b/conformance.adoc @@ -288,6 +288,7 @@ The values of **`var`** must be variables that exist in the file. * The values of the **`leap_year`** and **`leap_month`** attributes are integer scalars. *Recommendations:* + * The attribute **`leap_month`** should not appear unless the attribute **`leap_year`** is present. [[section-15]] From 56f95bb4bf6219b544ddf0fd47c6cea7774c01cc Mon Sep 17 00:00:00 2001 From: Jonathan Gregory Date: Tue, 5 Nov 2024 13:08:27 +0000 Subject: [PATCH 28/29] more on time zone --- ch04.adoc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ch04.adoc b/ch04.adoc index ff3de76d..f28a758e 100644 --- a/ch04.adoc +++ b/ch04.adoc @@ -245,9 +245,9 @@ Its format is __y__-__m__-__d__ [__H__:__M__:__S__ [__Z__]], where [...] indicat * _S_ is second, which may be integer or floating point (see <> regarding __S__>59), -* _Z_ is the time zone offset. +* _Z_ is the time zone offset with respect to UTC. This is an interval of time, specified in one of the formats described below. -Time zone names or acronyms are not allowed. +Only numbers (digits, `+`, `-` and `:`) are allowed in _Z_, not time zone names or acronyms. The default time zone offset is zero. In a time zone with zero offset, time (approximately) equals mean solar time for 0 `degrees_east` of longitude. From ce566e6c465c3e7f580942e790398d8b83354f06 Mon Sep 17 00:00:00 2001 From: Jonathan Gregory Date: Wed, 6 Nov 2024 21:25:32 +0000 Subject: [PATCH 29/29] remove refs to ISO 8601 --- bibliography.adoc | 1 - ch04.adoc | 3 +-- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/bibliography.adoc b/bibliography.adoc index 122c1217..3e0b5f9b 100644 --- a/bibliography.adoc +++ b/bibliography.adoc @@ -10,7 +10,6 @@ Sponsored by the "Cooperative Ocean/Atmosphere Research Data Service," a NOAA/un - [[[FGDC]]] link:$$https://www.fgdc.gov/standards/projects/FGDC-standards-projects/metadata/base-metadata/v2_0698.pdf$$[Content Standard for Digital Geospatial Metadata]. Federal Geographic Data Committee, FGDC-STD-001-1998. - [[[IEEE_754]]] link:$$https://doi.org/10.1109/IEEESTD.2019.8766229$$[IEEE Standard for Floating-Point Arithmetic], in _IEEE Std 754-2019 (Revision of IEEE 754-2008)_, 22 July 2019. -- [[[ISO_8601]]] link:$$https://www.iso.org/obp/ui/#iso:std:iso:8601:-1:ed-1:v1:en$$[ISO 8601-1:2019, Date and time -- Representations for information interchange]. - [[[Kou21]]] link:$$https://doi.org/10.5194/gmd-14-377-2021$$[A note on precision-preserving compression of scientific data]. Kouznetsov, R.: _Geosci. Model Dev._, 14, 377-389, 2021. - [[[KRD21]]] link:$$https://doi.org/10.1038/s43588-021-00156-2$$[Compressing atmospheric data into its real information content]. Klöwer, M., Razinger, M., Dominguez, J. J., Düben, P., and Palmer, T. N.: _Nat. Comput. Sci._, 1, 713-724, 2021. - [[[NetCDF]]] link:$$https://doi.org/10.5065/D6H70CW6$$[NetCDF Software Package]. UNIDATA Program Center of the University Corporation for Atmospheric Research. diff --git a/ch04.adoc b/ch04.adoc index f28a758e..f957f718 100644 --- a/ch04.adoc +++ b/ch04.adoc @@ -254,7 +254,6 @@ In a time zone with zero offset, time (approximately) equals mean solar time for (Although this may be exact in a model, in reality the time with zero time zone offset differs by some seconds from mean solar time; see the discussion of UTC and leap seconds in <>.) If both time and time zone offset are omitted the time is 00:00:00 (the beginning of the day i.e. midnight at 0 `degrees_east`). Thus, **`units = "days since 1990-1-1"`** means the same as **`units = "days since 1990-1-1 0:0:0"`**. -Note that this interpretation of omitted time, which is an aspect of UDUNITS syntax, is different from <>, in which omitted time implies lack of precision. The time zone offset _Z_ must be in one of the following four formats, any of which may be prefixed with a sign: @@ -274,7 +273,7 @@ Subtracting the time zone offset from a given datetime converts it to the equiva ==== Calendar The calendar defines the set of valid datetimes and their order. -Note that the CF meaning of "calendar" refers to datetimes, whereas the <> definition refers only to dates. +Note that the CF meaning of "calendar" refers to datetimes, not to dates alone. Datetimes which are not permitted in a given calendar are prohibited both in the time coordinate values and in the reference datetime string in the **`units`**. It is recommended that the calendar be specified by the **`calendar`** attribute of the time coordinate variable. The values currently defined for **`calendar`** are listed below.