首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TypeError:不能转换为datetime

TypeError:不能转换为datetime
EN

Stack Overflow用户
提问于 2020-04-01 03:50:45
回答 2查看 2.4K关注 0票数 0

我一直在尝试使用pvlib-python工具进行预测。该工具附带了一些特定于模型的类。

代码语言:javascript
复制
# Import pvlib forecast models
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import datetime
import seaborn as sns; sns.set_color_codes()
from pvlib.forecast import GFS, NAM, NDFD, HRRR, RAP
from pvlib import solarposition

# Specify Location (Phoenix, AZ)
latitude, longitude, tz = 32.2, -110.9, 'US/Arizona'

# Specify time range
start = pd.Timestamp(datetime.date.today(), tz=tz)
end = start + pd.Timedelta(days=7)
irrad_vars = ['ghi','dni','dhi']


from pvlib.forecast import GFS, NAM, NDFD, HRRR, RAP
model = GFS()
# Retrive data.returns panda.DataFrame object
raw_data = model.get_data(latitude, longitude, start, end)
print(raw_data.head())

当我试图从模型中获取数据时,代码会产生以下输出:

代码语言:javascript
复制
TypeError                                 Traceback (most recent call last)
# Retrive data.returns panda.DataFrame object
----> 6 raw_data = model.get_data(latitude, longitude, start, end)
TypeError: <class 'cftime._cftime.DatetimeGregorian'> is not convertible to datetime
EN

回答 2

Stack Overflow用户

发布于 2020-07-08 23:37:04

所以我不知道您的getdata函数中有什么,但我怀疑它使用了netCDF4库。以及构建在cftime库(https://github.com/Unidata/cftime)上的netCDF4.num2date函数。请参阅netCDF4文档的要求部分:https://unidata.github.io/netcdf4-python/netCDF4/index.html

他们似乎是从版本5左右的python datetime库中迁移出来的,因为它可以处理比严格意义上的公历更多的calendars。我不完全理解为什么,但你可以使用only_use_cftime_datetimes=Falsekwarg选项通常就足够了,但你也可以用一个额外的only_use_python_datetimes=True强制它,这应该会返回一个python日期时间并解决你的问题。

票数 1
EN

Stack Overflow用户

发布于 2020-07-15 02:43:56

pvlib的贡献者在这里进行了讨论:https://github.com/pvlib/pvlib-python/issues/944

其中一个建议是降低cftime的等级,这对我很有效。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60958754

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档