微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何将我的 RegionMask 边界与我的 Xarray 数据集匹配

如何解决如何将我的 RegionMask 边界与我的 Xarray 数据集匹配

我有一个覆盖加利福尼亚州和亚利桑那州的 Xarray 数据集,我已经对这些数据进行了纬度/经度网格化。我想使用我作为地理数据框读取的修改后的形状文件在每个州的选定县上平均我的 wind_speed 和 TMP 变量。使用 RegionMask,似乎掩码是数据的偏移量,因此所有值都是 NaN。我怎样才能匹配这两个?

我已共享文件 herehere

这是我用来创建掩码的代码

def create_mask(gdf,dataset,name):

    import regionmask
    mask_poly = regionmask.Regions_cls(name='mask_polygons',numbers=list(range(len(gdf))),\
                                      names= list(gdf[name]),abbrevs=list(gdf[name]),\
                                      outlines=list(gdf.geometry.values[i] for i in range(len(gdf))))
    return(mask_poly)

我用我的 GeoDataFrame、我的 Xarray 数据集和列的名称调用这个函数标记掩码多边形:

import geopandas as gpd
import xarray as xr

counties_shp = gpd.read_file ('zip://boundaries.zip')
test = xr.open_dataset('test.nc4')

mask_poly = create_mask(counties_shp,test,'NAME')

并创建掩码:

mask = mask_poly.mask(test,lat_name='lat',lon_name='lon',wrap_lon=True)

返回以下消息,掩码中的所有值都是 Nan:

All elements of mask are NaN. Try to set 'wrap_lon=True'.

数据集的纬度范围为 (31.1,42.4),经度范围为 (-124.9,-108.8)

地理数据框在执行 counties_shp.crs 时给出以下结果

{'proj': 'aea','lat_0': 23,'lon_0': -96,'lat_1': 29.5,'lat_2': 45.5,'x_0': 0,'y_0': 0,'datum': 'wgs84','units': 'm','no_defs': True}

非常感谢您的帮助。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。