是否有一种简单的方法从xarray数据集中获取xyz值数组(即由3 cols和nrow=像素数组成的数组)?就像我们从R中的rasterToPoints函数中得到的。
我正在打开一个netcdf文件,其中包含某个变量(chl)的值。我无法在这里直接添加图像,但下面是输出的屏幕截图:
我需要以一个具有以下结构的数组结束:
[[lon1, lat1, val],
[lon1, lat2, val]]以此类推,得到每个点的lon/lat组合。如果我错过了一些非常明显的东西,我很抱歉,但是我是Python新手。
发布于 2021-06-10 08:25:09
您可能在这里寻找的自然格式是一只熊猫数据,其中龙,拉特和中国是列。可以使用xarray的to_dataframe方法轻松地创建它,如下所示。
import xarray as xr
ds = xr.open_dataset("infile.nc")
df = (
ds
.to_dataframe()
.reset_index()
)发布于 2021-06-09 20:29:09
我可以给你建议一个小伪码:
import numpy as np
lons = ds.variables['lon'].load()
lats = ds.variables['lat'].load()
chl = ds.variables['chl'].load()
xm,ym = np.meshgrid(lons,lats)
dataout = np.concatenate((xm.flatten()[np.newaxis,:],ym.flatten()[np.newaxis,:],chla.flatten()[np.newaxis,:]),axis=0) 也许这是不可行的,但至少有一个解决方案可能与此类似。
https://stackoverflow.com/questions/67910911
复制相似问题