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')