【发布时间】:2020-04-30 03:05:06
【问题描述】:
`sst_gradient = xr.Dataset({'sst_gradient':(['lat','lon','time'],sst_gradient)},/error in this line
coords={'lat':(selected_sst.lat.values),
'lon':(selected_sst.lon.values),
'time':(selected_sst.time.values)})
`
----------------------------------- ---------------------------- ValueError Traceback(最近一次调用 最后的) ~/anaconda3/envs/myenv/lib/python3.6/site-packages/xarray/core/variable.py 在 as_variable(obj, 名称) 106 尝试: --> 107 obj = 变量(*obj) 108 除外 (TypeError, ValueError) 为错误:
~/anaconda3/envs/myenv/lib/python3.6/site-packages/xarray/core/variable.py 在 init(自我、暗淡、数据、属性、编码、快速路径) 308 self._data = as_compatible_data(数据,快速路径=快速路径) --> 309 self._dims = self._parse_dimensions(dims) 310 self._attrs = 无
~/anaconda3/envs/myenv/lib/python3.6/site-packages/xarray/core/variable.py 在 _parse_dimensions(self, dims) 499 "尺寸 %s 的长度必须与 " --> 500 "数据维数,ndim=%s" % (dims, self.ndim) 501)
ValueError: 维度 ('lat', 'lon', 'time') 必须相同 长度为数据维数,ndim=0
在处理上述异常的过程中,又发生了一个异常:
ValueError Traceback(最近调用 最后)在 3 coords={'lats':(selected_sst.lat.values), 4 'lons':(selected_sst.lon.values), ----> 5 '次':(selected_sst.time.values)}) 6 7
~/anaconda3/envs/myenv/lib/python3.6/site-packages/xarray/core/dataset.py 在 init(self, data_vars, coords, attrs, compat) 533 534 个变量,coord_names,dims,indexs = merge_data_and_coords( --> 535 数据变量,坐标,compat=compat 第536章) 第537章
~/anaconda3/envs/myenv/lib/python3.6/site-packages/xarray/core/merge.py 在 merge_data_and_coords(数据,坐标,兼容,加入) 465 个索引 = dict(_extract_indexes_from_coords(coords)) 第466章 --> 467 个对象,compat,join,explicit_coords=explicit_coords,indexes=indexes 468) 第469章
~/anaconda3/envs/myenv/lib/python3.6/site-packages/xarray/core/merge.py 在 merge_core(对象,compat,join,priority_arg,explicit_coords, 索引,填充值) 550 强制,join=join,copy=False,indexes=indexes,fill_value=fill_value 第551章) --> 552 收集 = collect_variables_and_indexes(对齐) 553 554 优先级 = _get_priority_vars_and_indexes(aligned, priority_arg, compat=compat)
~/anaconda3/envs/myenv/lib/python3.6/site-packages/xarray/core/merge.py 在 collect_variables_and_indexes(list_of_mappings) 第275章 276 --> 277 变量 = as_variable(变量,名称=名称) 278如果variable.dims ==(名称,): 279 变量 = variable.to_index_variable()
~/anaconda3/envs/myenv/lib/python3.6/site-packages/xarray/core/variable.py 在 as_variable(obj, 名称) 111“无法转换形式的元组” 112“(暗淡,数据[,属性,编码]):” --> 113 "{} 到变量。".format(obj) 114) 115 elif utils.is_scalar(obj):
ValueError: 无法转换形式的元组 (dims, data[, attrs, encoding]): (['lat', 'lon', 'time'], 维度:
(lat: 600, lon: 4320, sst.lat: 72, sst.lon: 600, sst.time: 4320, time: 72) 坐标:* lat (lat) float32 -40.041668 -40.12501 ... -89.87501 -89.958336 * lon (lon) float32 -179.95833 -179.875 ... 179.87502 179.95836 * time (time) datetime64[ns] 2005-01-15 2005-02-15 ... 2010-12-15 尺寸无 坐标:sst.lat、sst.lon、sst.time 数据变量: sst_gradient (sst.lat, sst.lon, sst.time) float32 2.7785575e-08 ... nan) 到变量。
【问题讨论】:
-
您需要添加一些有关源数据的信息(形状、尺寸等),否则我们应该如何知道您为什么会遇到这些问题。对于 xarray.Datasets ds.info() 的输出会很好,所以
sst_selected.info()的输出会很有趣,还有关于 sst_gradient 的信息。 -
选择的sst被视为纬度低于40度,形状为(72, 600, 4320)。 sst_gradient 使用 np.gradient::sst_gradient= np.gradient(selected_sst.values,float(dy)*1e3,edge_order=2, axis=1) 计算。它的长度为 (72)。
标签: python jupyter-notebook python-xarray