我使用的是来自DWD(Deutscher Wetterdienst)的数据集,希望通过经纬度选择数据。到目前为止,导入有效。所以没问题。现在我要按经纬度选择数据。当我使用x和y时,当我试图用sel
选择数据时,它是有效的
但不是拉特和朗。我试了所有我能找到的答案,比如:
ds.sel(latitude=50, longitude=14, method='nearest')
但我发现了错误
ValueError: dimensions or multi-index levels ['latitude', 'longitude'] do not exist
这是我的准则:
^{pr2}$输出:
<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-
在您的文件
latitude
和longitude
不是维度,而是包含坐标数据的辅助二维变量。用xarray的说法,它们被称为non-dimension coordinates,你不能对它们进行切片。另请参见Working with Multidimensional Coordinates。在如果在python中将数据重新生成一个规则网格,这样就可以将纬度和经度作为1D向量,那么就必须创建一个网格,然后在该网格上插值数据。在
您还需要检查https://www.ecmwf.int/sites/default/files/elibrary/2018/18727-cfgrib-easy-and-efficient-grib-file-access-xarray.pdf以查看在xarray中访问grib文件的方法。如果您不想为此使用xarray,pygrib是另一个选择。在
我无法测试解决方案,因为我没有安装cfgrib引擎,但你能试着用一下吗
要根据此解决方案查找点附近的lon和lat索引: Find nearest value in numpy array
然后用索引直接在x,y坐标上选择点?在
http://xarray.pydata.org/en/stable/indexing.html
相关问题 更多 >
编程相关推荐