首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >按经纬度选择数据

按经纬度选择数据
EN

Stack Overflow用户
提问于 2019-07-22 11:57:00
回答 5查看 5.3K关注 0票数 3

我正在使用来自DWD ()的数据集,并希望按纬度和经度选择数据。到目前为止,进口是可行的。所以这里没问题。现在我想按纬度和经度选择数据。当我使用x和y时,当我尝试用sel选择数据时,它会工作。

但不是长懒腰的。我试过了所有我能找到的答案,比如:

代码语言:javascript
复制
ds.sel(latitude=50, longitude=14, method='nearest')

但我知道这个错误

ValueError:维度或多索引级别“纬度”、“经度”不存在

这是我的密码:

代码语言:javascript
复制
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)

输出:

代码语言:javascript
复制
<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-
EN

回答 5

Stack Overflow用户

发布于 2019-07-23 06:42:48

在您的文件中,latitudelongitude不是维度,而是包含坐标数据的辅助2D变量。在xarray术语中,它们被称为非维坐标,您不能对它们进行切分。另见使用多维坐标

票数 3
EN

Stack Overflow用户

发布于 2019-08-08 11:41:58

如果你把数据重新整理到python内部的一个规则网格中,这样你就可以把纬度和经度作为一维矢量,你就必须建立一个网格,然后在那个网格上插入数据。

此外,您还需要检查https://www.ecmwf.int/sites/default/files/elibrary/2018/18727-cfgrib-easy-and-efficient-grib-file-access-xarray.pdf以查看访问xarray中的grib文件的方法。如果您不想为此目的使用xarray,pygrib是另一种选择。

票数 1
EN

Stack Overflow用户

发布于 2019-11-08 09:10:36

我无法测试解决方案,因为我没有安装cfgrib引擎,但您是否可以尝试使用

代码语言:javascript
复制
numpy.find_nearest(lonarray, lonvalue)

要根据以下soln:在numpy数组中找到最近的值在您的点附近查找lon和lat索引

然后直接在x,y坐标上使用索引选择点?

http://xarray.pydata.org/en/stable/indexing.html

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57145557

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档