如何使用xarray数据集中的纬度和经度变量作为维度/坐标?

2024-09-29 22:25:03 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个NetCDF文件,其中包含指定坐标(由110804个节点组成的不规则网格)随时间变化的风况(速度、方向、u、v)。 纬度和经度存储为变量,这使得在空间维度上使用数据集(空间子集、在新网格上插值)非常困难

Dimensions:    (node: 110804, time: 385)
Coordinates:
  * time       (time) datetime64[ns] 1999-12-15 ... 1999-12-31
Dimensions without coordinates: node
Data variables:
    uwnd       (time, node) float32 ...
    vwnd       (time, node) float32 ...
    longitude  (node) float32 -8.53543 -8.500304 -8.53419 ... -7.5 -7.5 -7.5
    latitude   (node) float32 51.632282 51.654434 51.65914 ... 50.8125 50.875
    wndS       (time, node) float32 9.426028 9.41913 ... 4.1617303 4.104875
    wndDir     (time, node) float32 -175.74115 -176.34778 ... 125.2176 124.07719

使用xarray打开数据集后,如何将变量“纬度”和“经度”转换为数据集的维度/坐标


Tags: 文件数据node网格节点time时间空间
1条回答
网友
1楼 · 发布于 2024-09-29 22:25:03

您通常可以使用NCO执行此操作。下面将生成要尝试的命令:

nco_command = "ncatted "
lon_name = "longitude"
lat_name = "latitude"
variables = ["uwnd", "vwnd", "wndS", "wndDir"]
for vv in variables:
    nco_command += (
    "-a coordinates," + vv + ",c,c,'" + lon_name + " " + lat_name + "' "
    )
nco_command = nco_command + " infile.nc outfile.nc"
nco_command

当然,只要在命令行上运行它并替换文件名即可。此代码将为variables下的所有变量列表添加新维度。这几乎总是适用于将变量转换为尺寸/坐标

相关问题 更多 >

    热门问题