gpt4 book ai didi

python - 使用 python-xarray 从多维 netcdf 文件中提取单个变量,同时保留属性/元数据

转载 作者:太空宇宙 更新时间:2023-11-03 20:10:53 25 4
gpt4 key购买 nike

我有一个很大的 netcdf 文件,其中包含许多维度和属性。我想从此文件中提取单个变量并将其保存为新的 netcdf 文件,同时保留所有原始元数据。我正在使用 xarray。

我使用以下方法打开数据集:

dr=xr.open_dataset("path_to_file")

当我打印它时,它看起来像这样(为了简单起见,删除了一些维度和元数据:

<xarray.Dataset>
Dimensions: (Time: 464, bottom_top: 39, bottom_top_stag: 40, snow_layers_stag: 3, snso_layers_stag: 7, soil_layers_stag: 4, south_north: 186, south_north_stag: 187, west_east: 246, west_east_stag: 247)
Coordinates:
XLAT (Time, south_north, west_east) float32 ...
XLONG (Time, south_north, west_east) float32 ...
XTIME (Time) datetime64[ns] ...
XLAT_U (Time, south_north, west_east_stag) float32 ...
XLONG_U (Time, south_north, west_east_stag) float32 ...
XLAT_V (Time, south_north_stag, west_east) float32 ...
XLONG_V (Time, south_north_stag, west_east) float32 ...
Dimensions without coordinates: Time, bottom_top, bottom_top_stag, snow_layers_stag, snso_layers_stag, soil_layers_stag, south_north, south_north_stag, west_east, west_east_stag
Data variables:
Times (Time) |S19 ...
UST (Time, south_north, west_east) float32 ...
ZNU (Time, bottom_top) float32 ...
ZNW (Time, bottom_top_stag) float32 ...
ZS (Time, soil_layers_stag) float32 ...
DZS (Time, soil_layers_stag) float32 ...

Attributes:
TITLE: OUTPUT FROM WRF V3.9 MODEL
START_DATE: 2017-10-31_00:00:00
SIMULATION_START_DATE: 2017-10-01_00:00:00
WEST-EAST_GRID_DIMENSION: 247
SOUTH-NORTH_GRID_DIMENSION: 187
BOTTOM-TOP_GRID_DIMENSION: 40

HYBRID_OPT: -1
ETAC: 0.0

我只想提取UST,所以我尝试:

dr_u = dr['UST']

但是当我打印生成的dr_u时,元数据消失了:

<xarray.Dataset>
Dimensions: (Time: 464, south_north: 186, west_east: 246)
Coordinates:
XLAT (Time, south_north, west_east) float32 ...
XLONG (Time, south_north, west_east) float32 ...
XTIME (Time) datetime64[ns] ...
Dimensions without coordinates: Time, south_north, west_east
Data variables:
UST (Time, south_north, west_east) float32 ...

我希望能够保留原始文件中 Attributes 标题下的所有信息。我知道在 xarray 包中有一个名为 keep_attrs 的标志,看起来对此很有用,但我不知道如何使用它此操作。

最佳答案

您可以使用ds.attrs从xarray对象检索属性字典

您可以手动分配属性:

dr_u.attrs = dr.attrs

关于python - 使用 python-xarray 从多维 netcdf 文件中提取单个变量,同时保留属性/元数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58723939/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com