我想绘制两个时间序列,其中一个在 cftime 中,另一个在 datetime 中。
一种可能性是将cftime 转换为 datetime,但这可能会给非标准 cftime 日历(例如 NoLeap)带来奇怪的结果。因此,我正在尝试将日期时间转换为 cftime。
我可以按如下方式暴力破解它,但是有可用的内置方法吗?
>>> import pandas as pd
>>> import xarray as xr
>>>
>>> da = xr.DataArray(
... [1, 2], coords={"time": pd.to_datetime(["2000-01-01", "2000-02-02"])}, dims=["time"]
... )
>>> print(da.time)
<xarray.DataArray 'time' (time: 2)>
array(['2000-01-01T00:00:00.000000000', '2000-02-02T00:00:00.000000000'],
dtype='datetime64[ns]')
Coordinates:
* time (time) datetime64[ns] 2000-01-01 2000-02-02
>>>
>>>
>>> import cftime
>>>
>>>
>>> def datetime_to_cftime(dates, kwargs={}):
... return [
... cftime.datetime(
... date.dt.year,
... date.dt.month,
... date.dt.day,
... date.dt.hour,
... …Run Code Online (Sandbox Code Playgroud)