[Numpy-discussion] fixing up datetime
Christopher Barker
Chris.Barker at noaa.gov
Tue Jun 7 15:23:45 EDT 2011
Dave Hirschfeld wrote:
> Robert Kern <robert.kern <at> gmail.com> writes:
>> Well, [D/100] doesn't represent [864s]. It represents something that
>> happens 100 times a day, but not necessarily at precise regular
>> intervals.
>> For example, suppose that I am representing payments that
>> happen twice a month, say on the 1st and 15th of every month, or the
>> 5th and 20th. I would use [M/2] to represent that. It's not [2W], and
>> it's not [15D]. It's twice a month.
Got it -- very useful concept, of course.
>> The default conversions may seem to imply that [D/100] is equivalent
>> to [864s], but they are not intended to. They are just a starting
>> point for one to write one's own, more specific conversions.
Here is my issue -- I don't think there should be default conversions at
all -- as you point out, "twice a month" is a well defined concept, but
it is NOT the same as every 15 days (or any other set interval). I'm not
sure it should be possible to "convert" to a regular interval at all.
> That would be one way of dealing with irregularly spaced data. I would argue
> that the example is somewhat back-to-front though. If something happens
> twice a month it's not occuring at a monthly frequency, but at a higher
> frequency.
And that frequency is 2/month.
> In this case the lowest frequency which can capture this data is
> daily frequency so it should be stored at daily frequency
I don't think it should, because it isn't 1/15 days, or, indeed, an
frequency that can be specified as days. Sure you can specify the 5th
and 20th of each month in a given time span in terms of days since an
epoch, but you've lost some information there. When you want to do math
-- like add a certain number of 1/2 months -- when is the 100th payment
due? It seems keeping it in M/2 is the most natural way to deal with
that -- then you don't need special code to do that addition, only when
converting to a string (or other format) datetime.
Anyway, my key point is that converting to/from calendar-based units and
"linear time" units is fraught with peril -- it needs to be really clear
when that is happening, and the user needs to have a clear and ideally
easy way to define how it should happen.
-Chris
--
Christopher Barker, Ph.D.
Oceanographer
Emergency Response Division
NOAA/NOS/OR&R (206) 526-6959 voice
7600 Sand Point Way NE (206) 526-6329 fax
Seattle, WA 98115 (206) 526-6317 main reception
Chris.Barker at noaa.gov
More information about the NumPy-Discussion
mailing list