Source code for pyrfu.pyrf.iso86012timevec

#!/usr/bin/env python
# -*- coding: utf-8 -*-

# Built-in imports
import re

# 3rd party imports
import numpy as np

__author__ = "Louis Richard"
__email__ = "louisr@irfu.se"
__copyright__ = "Copyright 2020-2023"
__license__ = "MIT"
__version__ = "2.4.2"
__status__ = "Prototype"


[docs]def iso86012timevec(time): r"""Convert ISO 8601 time string into time vector. Parameters ---------- time : ndarray or list or str Time in ISO 8601 format YYYY-MM-DDThh:mm:ss.mmmuuunnn. Returns ------- time_vec : list Time vector. See Also -------- pyrfu.pyrf.iso86012timevec """ iso_8601 = ( r"(?P<years>[0-9]{4})-(?P<months>[0-9]{2})-(?P<days>[0-9]{2})" r"T(?P<hours>[0-9]{2}):(?P<minutes>[0-9]{2})" r":(?P<seconds>[0-9]{2}).(?P<miliseconds>[0-9]{3})" r"(?P<microseconds>[0-9]{3})(?P<nanoseconds>[0-9]{3})" ) # Define parser fmt = re.compile(iso_8601) # Make time is a 1d array time = np.atleast_1d(time) time_vec = [[int(p_) for p_ in fmt.match(t_).groups()] for t_ in time] time_vec = np.array(time_vec) return time_vec