attributes - 向 dataArray 添加维度、坐标和属性
问题描述
我正在研究一个函数,该函数采用一个xarray.DataArray
sfc_p
和一个int
vert_res
(其中第一个表示表面压力场,第二个表示垂直水平),它计算所有垂直水平上的压力,添加坐标、尺寸和属性并输出xarray.DataArray
pressure
.
计算工作正常,但我的问题如下:
一个例子sfc_p
可能是这样的:
<xarray.DataArray 'sp' (time: 1, ens: 51, lat: 66, lon: 131)>
dask.array<shape=(1, 51, 66, 131), dtype=float32, chunksize=(1, 1, 66, 131)>
Coordinates:
* lon (lon) float32 -100.0 -99.0 -98.0 -97.0 -96.0 -95.0 -94.0 -93.0 ...
* lat (lat) float32 85.0 84.0 83.0 82.0 81.0 80.0 79.0 78.0 77.0 76.0 ...
* ens (ens) int32 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 ...
* time (time) datetime64[ns] 2016-11-02T12:00:00
Attributes:
units: Pa
long_name: Surface pressure
standard_name: surface_air_pressure
cf_short_name: sp
short_name: sp
grid_type: regular_ll <xarray.DataArray 'sp' (time: 1, ens: 51, lat: 66, lon: 131)>
现在我希望输出数组能够接管这些属性中的大部分,并带有一个额外的维度(在time
and之后ensemble
)和坐标hybrid
,这很简单range(1, vert_res + 1)
,并且修改了一些属性,比如
<xarray.DataArray 'sp' (time: 1, ens: 51, hybrid:137, lat: 66, lon: 131)>
dask.array<shape=(1, 51, 137, 66, 131), dtype=float32, chunksize=(1, 1, 137, 66, 131)>
Coordinates:
* lon (lon) float32 -100.0 -99.0 -98.0 -97.0 -96.0 -95.0 -94.0 -93.0 ...
* lat (lat) float32 85.0 84.0 83.0 82.0 81.0 80.0 79.0 78.0 77.0 76.0 ...
* hybrid (hybrid) int32 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 ...
* ens (ens) int32 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 ...
* time (time) datetime64[ns] 2016-11-02T12:00:00
Attributes:
units: Pa
long_name: modified
standard_name: modified
cf_short_name: modified
short_name: modified
grid_type: modified
我目前正在pressureVals
为这些值计算一个 np.ndarray (具有正确的输出形状),然后xarray.DataArray
用它初始化我的输出。
但即使在阅读xArray
文档数小时后,我还没有找到一种方法来完成添加信息和元数据的简单任务,而且我认为我遗漏了一些完全基本的东西。有人可以指出我正确的方向吗?
解决方案
要更改它的属性
da.attrs['long_name'] = 'new_long_name'
您可以使用http://xarray.pydata.org/en/stable/generated/xarray.DataArray.expand_dims.html添加维度,同时查看 numpy 文档https://docs.scipy。 org/doc/numpy/reference/generated/numpy.expand_dims.html
推荐阅读
- flutter - 颤振中的提供者不会改变屏幕
- beta-distribution - 使用专家意见计算伽马分布的参数
- reactjs - React with Router v5 Error: Objects are not valid as a React child (found: object with keys {children})
- c# - 来自多个下拉列表的 ASP.NET MVC Foreach
- c# - 从 SQLite 切换到 SQL Server?
- python - 根据当前时间返回下一个间隔的开始和结束
- java - 在geotools源代码中修改哪些文件以具有不同的方向锚点(N,W,E,S,NW,...)用于maxDisplacement的点标签?
- javascript - 调用函数创建错误:未定义“startCalender”。(JS + 反应)
- c++ - while 循环结束是非常错误的。显示不正确的迭代
- apache-spark-sql - 如何防止对每个查询进行火花镶木地板扫描