-
Notifications
You must be signed in to change notification settings - Fork 47
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Proposal to Revise Section 4.4 to Support String-Based Datetime Representations Using ISO 8601 Templates #581
Comments
Updated 2. Propossed Changes replacing the optional |
Dear Antonio @cofinoa Thanks for making this careful proposal, to add support in CF for ISO8601 datetime string-valued coordinates as an alternative to numeric coordinates. Although I recognise there would be benefits of convenience in some circumstances from making this change, it wouldn't enable anything which is currently not possible with CF. Therefore I think the costs and difficulties are greater than the advantages, and I don't support the change. Because it's an attractive idea, it has been proposed before, and decided against, at least twice during the development of CF. It was proposed and debated in 2007 in trac ticket 14. It was suggested and discussed again in a thread that concluded with the subject "time as ISO strings" on the CF email list in 2010 e.g. Steve Hankin's email. I don't think we should make this change "because all previous versions must generally continue to be supported in software for the sake of archived datasets, and in order to limit the complexity of the conventions. For these reasons, there is a strong preference against introducing any new capability to the conventions when there is already some method that can adequately serve the same purpose (even if a different method would arguably be better than the existing one)" (principle 10 in Sect 1.2). In the previous discussions, several specific points have been made, including:
Best wishes Jonathan |
Dear @JonathanGregory, Thank you for your thoughtful and detailed reply. I appreciate you taking the time to revisit this proposal and providing the historical context and references to past discussions, as well as highlighting the implications of Principle 10 in Section 1.2 of the CF Conventions. One of my key concerns with the current numeric representation is that it transforms an absolute datetime (e.g., Additionally, the numeric representation assumes regular time intervals, which works well for most calendars but introduces complications with UTC, as described in Section 4.4.3 of the CF Conventions. UTC includes leap seconds, adjustments made to account for irregularities. These adjustments mean that intervals between times are not always uniform, and a single numeric time value cannot directly represent a leap second (e.g., I also understand that using ISO 8601 for string-based time representation may implicitly tie it to the Gregorian calendar, potentially introducing confusion when applied to non-real-world calendars like I understand your concerns regarding Principle 10, which emphasizes the importance of limiting new capabilities when existing methods already address the same needs. While numeric representations can adequately serve many use cases, I believe that introducing string-based formats as an optional alternative addresses significant gaps in modern interoperability without disrupting existing practices. This proposal helps to improve CF while aligning with several principles of the CF Conventions:
With this in mind, I will take your feedback to refine my proposal further. I plan to review the past discussions and decisions you mentioned, including trac ticket 14 (2007) and the CF email thread from 2010, to better understand the concerns raised at the time and how they were addressed. Thank you again for your thoughtful response. I look forward to continuing this discussion and refining the proposal to best serve CF’s goals and community needs. |
Comment on Updates made on 2024-12-31 Based on Jonathan's comment, the issue description and title have been updated to clarify the proposal's intent and scope. The title and description now emphasizes the support for string-based datetime representations using ISO 8601 templates. These changes aim to enhance clarity and precision for community discussion. |
Dear Antonio Thanks for considering my objections. Here are some further comments.
Similar things have been said in the previous discussions. Let's see what others think. Happy Jonathan |
Moderator
TBC
Moderator Status Review [last updated: 2024-12-31]
Initial submission. Awaiting community feedback and discussion.
Requirement Summary
This proposal seeks to enhance Section 4.4 of the CF Metadata Conventions by introducing explicit support for string-based representations of time coordinates, inspired by ISO 8601 templates. The update aims to improve clarity, modernize the conventions for interoperability with external systems, and maintain backward compatibility with existing datasets.
Technical Proposal Summary
YYYY-MM-DD
,YYYY-MM-DDTHH:MM:SSZ
,YYYYMMDDTHHMMSSZ
) as a valid alternative to relative-based representations for time coordinates.Benefits
Status Quo
Currently, Section 4.4 of the CF Metadata Conventions only supports numeric offsets from a reference datetime (e.g.,
days since 2000-1-1
). While effective, this approach lacks the direct compatibility with string-based datetime representations commonly used in APIs, REST systems, and JSON-based formats.Past discussions relevant to this proposal, including Trac ticket 14 (2007) and a CF email thread from 2010 featuring Steve Hankin's comments on the topic. These discussions raised concerns about ISO 8601 compatibility, precision, and storage requirements for string-based representations.
Associated pull request
[To be linked once submitted]
Detailed Proposal
1. Overview
This revision introduces support for string-based datetime representations inspired by ISO8601 templates alongside existing relative-based formats. It ensures clarity and flexibility while maintaining backward compatibility with legacy datasets.
2. Proposed Changes
Support ISO 8601 templates in
units
:Add the ability to specify ISO 8601 datetime templates directly, with examples such as:
units = "CF-DATETIME:YYYY-MM-DD";
units = "CF-DATETIME:YYYY-MM-DDTHH:MM:SSZ";
units = "CF-DATETIME:YYYYMMDDTHHMMSSZ";
Provide Comprehensive Examples:
Example: Relative-based Representation
Example: String-based Representation
3. Backward Compatibility
The proposal maintains full backward compatibility. Datasets using relative-based representations (
days since <datetime>
) remain unaffected.The text was updated successfully, but these errors were encountered: