spacepy.time.Ticktock

class spacepy.time.Ticktock(data, dtype)[source]

Ticktock class holding various time coordinate systems (TAI, UTC, ISO, JD, MJD, UNX, RDT, CDF, DOY, eDOY)

Possible input data types: ISO: ISO standard format like ‘2002-02-25T12:20:30’ UTC: datetime object with UTC time TAI: elapsed seconds since 1958/1/1 (includes leap seconds) UNX: elapsed seconds since 1970/1/1 (all days have 86400 secs sometimes unequal lenghts) JD: Julian days elapsed MJD: Modified Julian days RDT: Rata Die days elapsed since 1/1/1 CDF: CDF epoch: milliseconds since 1/1/0000

Possible output data types: All those listed above, plus DOY: Integer day of year, starts with day 1 eDOY: Fractional day of year, starts at day 0

Parameters:

data : array_like (int, datetime, float, string)

time stamp

dtype : string {CDF, ISO, UTC, TAI, UNX, JD, MJD, RDT} or function

data type for data, if a function it must convert input time format to Python datetime

Returns:

out : Ticktock

instance with self.data, self.dtype, self.UTC etc

Examples

>>> x = Ticktock([2452331.0142361112, 2452332.0142361112], 'JD')
>>> x.ISO
dmarray(['2002-02-25T12:20:30', '2002-02-26T12:20:30'], dtype='|S19')
>>> x.DOY # Day of year
dmarray([ 56.,  57.])
>>> y = Ticktock(['01-01-2013', '20-03-2013'], lambda x: datetime.datetime.strptime(x, '%d-%m-%Y'))
>>> y.UTC
dmarray([2013-01-01 00:00:00, 2013-03-20 00:00:00], dtype=object)
>>> y.DOY # Day of year
dmarray([  1.,  79.])
append(other) Will be called when another Ticktock instance has to be appended to the current one
argsort() This will return the indices that would sort the Ticktock values
convert(dtype) convert a Ticktock instance into a new time coordinate system provided in dtype
getCDF() a.getCDF() or a.CDF
getDOY() a.DOY or a.getDOY()
getGPS() a.GPS or a.getGPS()
getISO() a.ISO or a.getISO()
getJD() a.JD or a.getJD()
getMJD() a.MJD or a.getMJD()
getRDT() a.RDT or a.RDT()
getTAI() a.TAI or a.getTAI()
getUNX() a.UNX or a.getUNX()
getUTC() a.UTC or a.getUTC()
geteDOY() a.eDOY or a.geteDOY()
getleapsecs() a.leaps or a.getleapsecs()
isoformat(b, attrib) This changes the self._isofmt attribute by and subsequently this function will update the ISO attribute.
now() Creates a Ticktock object with the current time, equivalent to datetime.now()
sort() This will sort the Ticktock values in place, if you need a stable sort use kind=’mergesort’
update_items(b, attrib) After changing the self.data attribute by either __setitem__ or __add__ etc this function will update all other attributes.
append(other)[source]

Will be called when another Ticktock instance has to be appended to the current one

Parameters:

other : Ticktock

other (Ticktock instance)

argsort()[source]

This will return the indices that would sort the Ticktock values

Returns:

out : list

indices that would sort the Ticktock values

convert(dtype)[source]

convert a Ticktock instance into a new time coordinate system provided in dtype

Parameters:

dtype : string

data type for new system, possible values are {CDF, ISO, UTC, TAI, UNX, JD, MJD, RDT}

Returns:

out : Ticktock

Ticktock instance with new time coordinates

See also

CDF, ISO, UTC

Examples

>>> a = Ticktock(['2002-02-02T12:00:00', '2002-02-02T12:00:00'], 'ISO')
>>> s = a.convert('TAI')
>>> type(s)
<class 'time.Ticktock'>
>>> s
Ticktock( [1391342432 1391342432] ), dtype=TAI
getCDF()[source]

a.getCDF() or a.CDF

Return CDF time which is milliseconds since 01-Jan-0000 00:00:00.000. “Year zero” is a convention chosen by NSSDC to measure epoch values. This date is more commonly referred to as 1 BC. Remember that 1 BC was a leap year. The CDF date/time calculations do not take into account the changes to the Gregorian calendar, and cannot be directly converted into Julian date/times.

Returns:

out : numpy array

days elapsed since Jan. 1st

Examples

>>> a = Ticktock('2002-02-02T12:00:00', 'ISO')
>>> a.CDF
array([  6.31798704e+13])
getDOY()[source]

a.DOY or a.getDOY()

extract DOY (days since January 1st of given year)

Returns:

out : numpy array

day of the year

Examples

>>> a = Ticktock('2002-02-02T12:00:00', 'ISO')
>>> a.DOY
array([ 33])
getGPS()[source]

a.GPS or a.getGPS()

return GPS epoch (0000 UT (midnight) on January 6, 1980)

Returns:

out : numpy array

elapsed secs since 6Jan1980 (excludes leap secs)

Examples

>>> a = Ticktock('2002-02-02T12:00:00', 'ISO')
>>> a.GPS
array([])
getISO()[source]

a.ISO or a.getISO()

convert dtype data into ISO string

Returns:

out : list of strings

date in ISO format

Examples

>>> a = Ticktock('2002-02-02T12:00:00', 'ISO')
>>> a.ISO
dmarray(['2002-02-02T12:00:00'])
getJD()[source]

a.JD or a.getJD()

convert dtype data into Julian Date (JD)

Returns:

out : numpy array

elapsed days since 12:00 January 1, 4713 BC

Examples

>>> a = Ticktock('2002-02-02T12:00:00', 'ISO')
>>> a.JD
array([ 2452308.])
getMJD()[source]

a.MJD or a.getMJD()

convert dtype data into MJD (modified Julian date)

Returns:

out : numpy array

elapsed days since November 17, 1858 (Julian date was 2,400 000)

Examples

>>> a = Ticktock('2002-02-02T12:00:00', 'ISO')
>>> a.MJD
array([ 52307.5])
getRDT()[source]

a.RDT or a.RDT()

convert dtype data into Rata Die (lat.) Time (days since 1/1/0001)

Returns:

out : numpy array

elapsed days since 1/1/1

Examples

>>> a = Ticktock('2002-02-02T12:00:00', 'ISO')
>>> a.RDT
array([ 730883.5])
getTAI()[source]

a.TAI or a.getTAI()

return TAI (International Atomic Time)

Returns:

out : numpy array

elapsed secs since 1958/1/1 (includes leap secs, i.e. all secs have equal lengths)

Examples

>>> a = Ticktock('2002-02-02T12:00:00', 'ISO')
>>> a.TAI
array([1391342432])
getUNX()[source]

a.UNX or a.getUNX()

convert dtype data into Unix Time (Posix Time) seconds since 1970-Jan-1 (not counting leap seconds)

Returns:

out : numpy array

elapsed secs since 1970/1/1 (not counting leap secs)

Examples

>>> a = Ticktock('2002-02-02T12:00:00', 'ISO')
>>> a.UNX
array([  1.01265120e+09])
getUTC()[source]

a.UTC or a.getUTC()

convert dtype data into UTC object a la datetime()

Returns:

out : list of datetime objects

datetime object in UTC time

Examples

>>> a = Ticktock('2002-02-02T12:00:00', 'ISO')
>>> a.UTC
[datetime.datetime(2002, 2, 2, 12, 0)]
geteDOY()[source]

a.eDOY or a.geteDOY()

extract eDOY (elapsed days since midnight January 1st of given year)

Returns:

out : numpy array

days elapsed since midnight bbedJan. 1st

Examples

>>> a = Ticktock('2002-02-02T12:00:00', 'ISO')
>>> a.eDOY
array([ 32.5])
getleapsecs()[source]

a.leaps or a.getleapsecs()

retrieve leapseconds from lookup table, used in getTAI

Returns:

out : numpy array

leap seconds

See also

getTAI

Examples

>>> a = Ticktock('2002-02-02T12:00:00', 'ISO')
>>> a.leaps
array([32])
isoformat(b, attrib)[source]

This changes the self._isofmt attribute by and subsequently this function will update the ISO attribute.

Parameters:fmt : string, optional
classmethod now()[source]

Creates a Ticktock object with the current time, equivalent to datetime.now()

Returns:

out : ticktock

Ticktock object with the current time, equivalent to datetime.now()

sort()[source]

This will sort the Ticktock values in place, if you need a stable sort use kind=’mergesort’

update_items(b, attrib)[source]

After changing the self.data attribute by either __setitem__ or __add__ etc this function will update all other attributes. This function is called automatically in __add__ and __setitem__

Parameters:

cls : Ticktock

attrib : string

attribute to update

See also

spacepy.Ticktock.__setitem__, spacepy.Ticktock.__add__, spacepy.Ticktock.__sub__