-
Notifications
You must be signed in to change notification settings - Fork 47
Description
I was looking to implement the separation of date from unit in pyudunits2 and took a look over the existing cf-units logic to determine if something is a time reference:
Line 891 in cdf7172
| return self.calendar is not None |
Then, I wondered how this calendar came to being...
Line 757 in cdf7172
| if _OP_SINCE in unit.lower(): |
Which is surprising, because the existence of shift isn't a guarantee that it is a date. Take temperatures for example:
>>> degC = cf_units.Unit('kelvin since 273.15')
>>> degC.is_time_reference()
True
udunits2 does not delineate the type of shift that it does based on how shift is spelt. It is quite common to see degC defined as kelvin @ 273.15, which would return False for is_time_reference... but then so would:
>>> seconds_since_2000 = cf_units.Unit('seconds @ 2000-01-01T00:00 UTC')
>>> seconds_since_2000.is_time_reference()
False
I'm not clear is there is an actual way to fix this with udunits2. Date handling is messy, and highly context dependent as I am learning in pelson/pyudunits2#4
Metadata
Metadata
Assignees
Labels
Type
Projects
Status
Status