首页 > 解决方案 > 按经纬度选择数据

问题描述

我正在使用 DWD (Deutscher Wetterdienst) 的数据集,并希望按纬度和经度选择数据。导入工作到目前为止。所以那里没有问题。现在我想按纬度和经度选择数据。当我尝试sel使用 x 和 y 选择数据时,它会起作用。

但不是经纬度。我尝试了所有可以找到的答案,例如:

ds.sel(latitude=50, longitude=14, method='nearest')

但我得到了错误

ValueError:维度或多索引级别 ['latitude', 'longitude'] 不存在

那是我的代码:

import cartopy.crs as ccrs
import cartopy.feature as cfeature
import matplotlib.pyplot as plt
import xarray as xr
​
​
ds = xr.open_dataset(
            'cosmo-d2_germany_rotated-lat-lon_single-level_2019061721_012_ASWDIFD_S.grib2',
            engine='cfgrib',
            backend_kwargs={'filter_by_keys': {'stepUnits': 1}}
        )
​
print(ds)

输出:

<xarray.Dataset>
Dimensions:     (x: 651, y: 716)
Coordinates:
    time        datetime64[ns] ...
    step        timedelta64[ns] ...
    surface     int32 ...
    latitude    (y, x) float64 ...
    longitude   (y, x) float64 ...
    valid_time  datetime64[ns] ...
Dimensions without coordinates: x, y
Data variables:
    ASWDIFD_S   (y, x) float32 ...
Attributes:
    GRIB_edition:            2
    GRIB_centre:             edzw
    GRIB_centreDescription:  Offenbach 
    GRIB_subCentre:          255
    Conventions:             CF-1.7
    institution:             Offenbach 
    history:                 2019-07-22T13:35:33 GRIB to CDM+CF via cfgrib-

标签: pythonpython-xarray

解决方案


在您的文件中latitudelongitude不是尺寸,而是包含坐标数据的辅助二维变量。在 xarray 用语中,它们被称为无维度坐标,您不能对它们进行切片。另请参阅使用多维坐标


推荐阅读