首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >是否有一种从xarray数据集中获取xyz数组的简单方法?

是否有一种从xarray数据集中获取xyz数组的简单方法?
EN

Stack Overflow用户
提问于 2021-06-09 19:55:50
回答 2查看 280关注 0票数 2

是否有一种简单的方法从xarray数据集中获取xyz值数组(即由3 cols和nrow=像素数组成的数组)?就像我们从R中的rasterToPoints函数中得到的。

我正在打开一个netcdf文件,其中包含某个变量(chl)的值。我无法在这里直接添加图像,但下面是输出的屏幕截图:

Xarray数据集结构

我需要以一个具有以下结构的数组结束:

代码语言:javascript
复制
[[lon1, lat1, val],
 [lon1, lat2, val]]

以此类推,得到每个点的lon/lat组合。如果我错过了一些非常明显的东西,我很抱歉,但是我是Python新手。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-06-10 08:25:09

您可能在这里寻找的自然格式是一只熊猫数据,其中龙,拉特和中国是列。可以使用xarray的to_dataframe方法轻松地创建它,如下所示。

代码语言:javascript
复制
import xarray as xr
ds = xr.open_dataset("infile.nc")
df = (
     ds
     .to_dataframe()
     .reset_index()
     )
票数 0
EN

Stack Overflow用户

发布于 2021-06-09 20:29:09

我可以给你建议一个小伪码:

代码语言:javascript
复制
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) 

也许这是不可行的,但至少有一个解决方案可能与此类似。

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

https://stackoverflow.com/questions/67910911

复制
相关文章

相似问题

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