-
Notifications
You must be signed in to change notification settings - Fork 1
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
Requirement: Specify absolute time, including leap seconds, using an existing standard #6
Comments
The previous discussion on this topic resulted in a proposal by D. Neuhauser to simply expand the existing (SEED 2.x) binary time structure to include microseconds. Subsequent discussion during the previous evaluation concluded that there is justification for nanosecond resolution. Combining all feedback/discussion ended with keeping the SEED 2.x binary time structure fields and extending it with a nanosecond field. This is a direct representation of UTC time and allows leap seconds to be represented as second=60. For illustration, the fields would look something like this:
A variation in D. Neuhauser's original "MSEED3 Time Structure" proposal was to change the year value to a signed type and then the year range would be -32768 to 32767. On the one had this would allow representation of data for years before 0. On the other hand this would likely be a common "gotcha" for folks porting miniSEED 2.x reading code, where the value was unsigned. On writing the last IRIS format proposal I deemed avoiding the porting gotcha as higher priority than representing years earlier than 0. I do not have strong opinions on this though, happy to go either way. |
Which "existing standard" are we talking about? |
I don't know everything about it, but could we simply use the The only things we need to check are :
|
It can - at least Wikipedia (didn't check the actual spec) states:
This is probably too big (and it would involve parsing strings which is pretty expensive). Now we could play some tricks and remove all punctuation and only use 4 bits to represent each letter (basically using the first 128 ASCII mappings) and this would get the size down to about 11 bytes. But at that point we could just use the struct proposed by @chad-iris which should be easier to parse and also takes 11 bytes. |
What would be useful independent on the chosen representation: To be able to not specify an absolute start time - synthetic data for example does not necessarily have one. |
With reference to the Year range above, perhaps the range 1 - 65535 may be better. This avoids the "what is year zero?" question and (my bias showing here) the
|
The string parsing is likely too expensive for perhaps the most commonly used header field. Keeping the time binary I feel is important. |
Summary(Please let me know if I missed a point or misunderstood something) Seems to very clear cut - a format that can represent leap-seconds is mandatory in any case so we are voting here for the time representation. There are two choices (both with nanosecond precision):
Please vote on which you would prefer. (Binary struct / ISO 8601 string) |
Binary struct |
Binary struct. |
|
|
|
Why does "planetary modeling" require a year type of int32 and how is it relevant for a the FDSN's time series data format? |
|
2 similar comments
|
|
|
The method of specifying time should be using an existing standard that can represent leapseconds.
The text was updated successfully, but these errors were encountered: