使用 NCO 的 ncrename 重命名 netCDF 维度时出现问题

问题描述 投票:0回答:1

我使用NCO的ncrename将经度、纬度和valid_time重命名为long、lat和time。这样我就可以通过一个不同的包运行数据,除了提到的名称之外。

原版是这样的:

维度:(valid_time:371,纬度:212,经度:409)坐标:number int64 8B ...

valid_time (valid_time) datetime64[ns] 3kB 1994-01-01 ... 2024-11-01
latitude (latitude) float64 2kB 55.4 55.3 55.2 55.1 ... 34.5 34.4 34.3
longitude (longitude) float64 3kB 46.5 46.6 46.7 46.8 ... 87.1 87.2 87.3 expver (valid_time) <U4 6kB ... Data variables: tp (valid_time, latitude, longitude) float32 129MB ...

我使用 ncrename -d latitude,lat -d longitude,lon -d valid_time,time 后,数据如下所示:

Dimensions: (time: 371, lat: 212, lon: 409) Coordinates: number int64 8B ... 
latitude (lat) float64 2kB ... 
longitude (lon) float64 3kB ... expver (time) <U4 6kB ... 
Dimensions without coordinates: time, lat, lon Data variables: valid_time (time) datetime64[ns] 3kB ... tp (time, lat, lon) float32 129MB ...

我做错了什么或者它应该是这样的吗?为什么坐标不见了?

netcdf netcdf4 nco
1个回答
0
投票

在 netCDF 文件中,尺寸必须与关联的坐标变量具有相同的名称。这是因为维度本身只存储它的id、名称、长度以及是否无限。沿维度的值存储在坐标变量中。重命名尺寸时,

ncrename
不会自动重命名坐标变量。因此你应该这样做:

# Note that all of the below is one command
ncrename -d latitude,lat -d longitude,lon -d valid_time,time
         -v latitude,lat -v longitude,lon -v valid_time,time
         your_file.nc
© www.soinside.com 2019 - 2024. All rights reserved.