【问题标题】:How to use latitude and longitude variables in a xarray dataset as dimensions/coordinates?如何在 xarray 数据集中使用纬度和经度变量作为维度/坐标?
【发布时间】:2021-04-13 10:54:06
【问题描述】:

我有一个 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打开数据集后,如何将变量“纬度”和“经度”转换为数据集的维度/坐标?

【问题讨论】:

  • 这可以使用 NCO 解决,如果有帮助的话。如果是这样,我会发布解决方案
  • 如果您发布解决方案,我将不胜感激。我从来没有用过 NCO,我目前的第一步是努力工作......

标签: python multidimensional-array numpy-ndarray python-xarray dimensions


【解决方案1】:

您通常可以使用 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 下的所有变量列表添加新维度。这几乎总是适用于将变量转换为尺寸/坐标。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-03-04
    • 1970-01-01
    • 1970-01-01
    • 2021-09-13
    • 2022-01-27
    • 2010-10-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多