我有一个带有许多尺寸和属性的大型netcdf文件。我想从该文件中提取单个变量,并将其另存为新的netcdf文件,同时保留所有原始元数据。我正在使用xarray
。
我使用以下方法打开数据集:
dr=xr.open_dataset("path_to_file")
当我print
时,它看起来像这样(为简单起见删除了一些尺寸和元数据:
<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,west_east) float32 ...
XTIME (Time) datetime64[ns] ...
XLAT_U (Time,west_east_stag) float32 ...
XLONG_U (Time,west_east_stag) float32 ...
XLAT_V (Time,south_north_stag,west_east) float32 ...
XLONG_V (Time,west_east) float32 ...
Dimensions without coordinates: Time,bottom_top,bottom_top_stag,snow_layers_stag,snso_layers_stag,soil_layers_stag,west_east,west_east_stag
Data variables:
Times (Time) |S19 ...
UST (Time,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']
但是当我print
生成的dr_u
时,元数据不见了:
<xarray.Dataset>
Dimensions: (Time: 464,west_east: 246)
Coordinates:
XLAT (Time,west_east) float32 ...
XLONG (Time,west_east) float32 ...
XTIME (Time) datetime64[ns] ...
Dimensions without coordinates: Time,west_east
Data variables:
UST (Time,west_east) float32 ...
我希望能够将所有信息保留在原始文件的Attributes
标题下。我知道keep_attrs
包中有一个名为xarray
的标志,似乎对此很有用,但是我不知道如何在此操作中使用它。