Hello Devs and Community,
Hope all of you are doing fine.
While surfing thru the repository, solving an unrelated issue, I came across a comment that said the following:
.# TODO: Write time zone support for timestamp
I noticed that the current timestamps do not have any time-zone support. This exact message is in a file called c_libraries_interface.py in python/grass/temporal/.
I opened an issue addressing how this should be implemented … and to understand if this is something the project would like to support. To which, @wenzeslaus replied – There is currently no specification for how this should be implemented. Specification, experimentation, and creating an implementation plan is the work which needs to be done here.
Before suggesting any concrete implementation ideas, I just wanted to know what the requirements are for something like this… things like what are the current design decisions around timestamp handling in grass.
From what I could infer during my time in the repo, I learned that timestamps are curerntly parsed into python datetime objects without explicit timezone implementation… this raises a few questions about how timestamps should behave when datasets originate from multiple different regions.
for example, modern datasets, … especially satellite imagery and other remote sensing data, often use ISO-8601 timestamps such as:
2025-03-10T12:00:00Z -> UTC
2025-03-10T12:00:00+05:30 -> IST
at the moment, it is not entirely clear whether these formats are expected to be supported, ignored, or normalized internally.
I also found a post on discourse (from 2014) .. [Temporal: problem parsing when timezone present]
and it seems like sqlite does not support time-zones… and that also raises a few questions about how timezone information should interact with the sqlite backend. (or if we need to look at postgresql for an alternative)
Because of this, I wanted to ask the community a few questions before exploring this idea further.
Questions for the community:
- Has timestamps been discussed before?..
- Is there a specific reason why timestamps are currently handled without timezone information?
- Would supporting ISO-8601 timezone-aware timestamps be desirable for GRASS temporal datasets?
- If timezone support were to be implemented, would it make sense to normalize timestamps internally to UTC while accepting timezone-aware input?
My intention isn’t to propose an implementation plan yet, I just want to understand the constraints involved and design decisions before I attempt to explore this further.
If this is an area that could benefit from improvement, it would be my pleasure to investigate the timestamp parsing pipeline and experiment with possible approaches.
Any thoughts, historical context, or pointers to previous discussions would be greatly appreciated.
Thank you for your time.