Python 3.x “如何修复错误”;ValueError:Julian Day必须为正;在netCDF4.num2date中?

Python 3.x “如何修复错误”;ValueError:Julian Day必须为正;在netCDF4.num2date中?,python-3.x,netcdf4,Python 3.x,Netcdf4,以下是部分代码: import netCDF4 import pandas as pd import matplotlib.pyplot as plt file='/Users/dedeco/Downloads/_grib2netcdf-atls12-95e2cf679cd58ee9b4db4dd119a05a8d-OzkfHp.nc' nc = netCDF4.Dataset(file) nc.variables.keys() lat = nc.variables['latitude'][

以下是部分代码:

import netCDF4
import pandas as pd
import matplotlib.pyplot as plt

file='/Users/dedeco/Downloads/_grib2netcdf-atls12-95e2cf679cd58ee9b4db4dd119a05a8d-OzkfHp.nc'
nc = netCDF4.Dataset(file)
nc.variables.keys()

lat = nc.variables['latitude'][:]
lon = nc.variables['longitude'][:]
time_var = nc.variables['time']
dtime = netCDF4.num2date(time_var[:],time_var.units)
可通过以下链接下载该文件:

所以,我得到了这个错误:

---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-47-3647c36af24c> in <module>()
      2 lon = nc.variables['longitude'][:]
      3 time_var = nc.variables['time']
----> 4 dtime = netCDF4.num2date(time_var[:],time_var.units)

cftime/_cftime.pyx in cftime._cftime.num2date()

cftime/_cftime.pyx in cftime._cftime.utime.num2date()

cftime/_cftime.pyx in cftime._cftime.DateFromJulianDay()

ValueError: Julian Day must be positive
---------------------------------------------------------------------------
ValueError回溯(最近一次调用上次)
在()
2 lon=nc.变量['longitude'][:]
3时间变量=nc.变量['time']
---->4 dtime=netCDF4.num2日期(时间变量[:],时间变量单位)
cftime/\u cftime.pyx,单位为cftime.\u cftime.num2date()
cftime中的cftime/\u cftime.pyx.\u cftime.utime.num2date()
cftime/\u cftime.pyx,单位为cftime.\u cftime.DateFromJulianDay()
ValueError:Julian Day必须为正值

我怎么能修理?有什么想法吗?

我修复了问题集参数(默认为标准):日历:描述时间计算中使用的日历。

因此,请将其替换为:

dtime = netCDF4.num2date(time_var[:],time_var.units)
截止日期(在这种情况下,一年有365天):

详情如下:

def date2num(

…)

date2num(日期、单位、日历=‘标准’)

返回给定datetime对象的数字时间值。单位 数值时间值由units参数和 日历关键字。datetime对象必须使用UTC格式,且不带 时区偏移。如果存在以单位表示的时区偏移,则将 应用于返回的数值

日期:日期时间对象或日期时间对象序列。这个 datetime对象不应包含时区偏移

单位:自 描述时间单位。可以是天、小时、分钟, 秒、毫秒或微秒。时间到了吗 起源

日历:描述时间计算中使用的日历。全部的 CF元数据约定中当前定义的值有效 日历“标准”、“公历”、“公历”和“无公历”, “365天”、“360天”、“朱利安”、“全飞跃”、“366天”。默认为 “标准”,这是一个混合的儒略/公历

返回数值时间值,或带有 精度大约为毫秒

可以找到有关转换的补充了解

dtime = netCDF4.num2date(time_var[:],time_var.units,'365_day')