MATLAB datenum date date converted to Python

Summary

Many MATLAB datenum time format parameters, simply focus on units parameters, namely the base year and the timing metrics (days, hours).

Command line demonstration in ipython and Octave in.

Example 1: hour, base year 1800-1-1

Time Attributes:
                     units              = 'hours since 1800-1-1 00:00:0.0'
                     long_name          = 'Time'
                     axis               = 'T'
                     standard_name      = 'time'
                     coordinate_defines = 'start'
                     delta_t            = '0000-00-01 00:00:00'
                     actual_range       = [1.74e+06 1.75e+06]
                     avg_period         = '0000-00-01 00:00:00'
time(1:5):
     1744392
     1744416
     1744440
     1744464
     1744488
#来源: 参考1

# python
import numpy as np
origin = np.datetime64('1800-01-01', 'D')
date1 = 1744392/24 * np.timedelta64(1, 'D') + origin   # '1999-01-01'

Example 2: One day system, base year 1800-1-1

time {
        String units "days since 1800-1-1 00:00:00";
        String long_name "Time";
        Float64 actual_range 19723.00000000000, 76214.00000000000;
        String delta_t "0000-01-00 00:00:00";
        String avg_period "0000-01-00 00:00:00";
        String prev_avg_period "0000-00-07 00:00:00";
        String standard_name "time";
        String axis "t";
}
#来源: 参考2

# python
import numpy as np
origin = np.datetime64('1800-01-01', 'D')
date2 = 19723 * np.timedelta64(1, 'D') + origin   # '1854-01-01'

Example 3: Conversion Time List

import numpy as np
import pandas as pd
datenums = np.array([730990, 733301, 729159,  734471, 736858, 731204]) # 来源:参考7
timestamps = pd.to_datetime(datenums-719529, unit='D')

'''
DatetimeIndex(['2001-05-19', '2007-09-16', '1996-05-14',
               '2010-11-29', '2017-06-12', '2001-12-19'],
              dtype='datetime64[ns]', freq=None)
'''

Screenshot (Reference)

ipython

verification:

Octave

reference

  1. convert narr model data time to datevec or datestr https://ww2.mathworks.cn/matlabcentral/answers/141304-convert-narr-model-data-time-to-datevec-or-datestr
  2. OPeNDAP- a data set format: http://test.opendap.org/dap/data/nc/sst.mnmean.nc.gz.das
  3. Python datetime to Matlab datenum https://stackoverflow.com/questions/8776414/python-datetime-to-matlab-datenum
  4. Converting Matlab's datenum format to Python https://stackoverflow.com/questions/13965740/converting-matlabs-datenum-format-to-python/36249553
  5. [Tutor] datenum https://mail.python.org/pipermail/tutor/2003-September/025454.html
  6. Date and time between the arrays, numerical and text conversion https://ww2.mathworks.cn/help/matlab/matlab_prog/convert-between-datetime-arrays-numbers-and-strings.html
  7. datenum usage https://ww2.mathworks.cn/help/matlab/ref/datenum.html
  8. Date and time https://ww2.mathworks.cn/help/matlab/date-and-time-operations.html?s_tid=CRUX_lftnav

Guess you like

Origin www.cnblogs.com/oucbl/p/11618709.html