我想从ERA5网格数据中选择网格单元(仅限于表面水平),这些网格单元是在北瑞士和南瑞士(加上雷达缓冲区)的地理掩膜内,以计算区域方法。这4个掩码(口罩)是在一个shapefile中以多边形/多多边形(多角形)的形式给出的,到目前为止,对于其中的两个掩码,我能够使用salem获得我想要的:
radar_north = salem.read_shapefile('radar_north140.shp')
file_radar_north = file.salem.roi(shape=radar_north)
file_radar_north.cape.mean(dim='time').salem.quick_map() 但是,对于radar_south和alpensuedseite shapefiles,代码在开始时不起作用(错误的选择或没有显示数据),而现在没有什么工作了(?)我不知道为什么,因为我没有改变任何从第一次到第二次。
如果有人看到了这个问题,或者知道一种不同的方法来掩盖ERA数据(这可能更快),我将不胜感激!(我在这里回答类似的问题时没有成功)。
最佳莉娜
发布于 2022-03-29 23:24:11
如果您正在处理netcdf文件,则此操作可能有效。
import geopandas as gpd
import xarray as xr
import rioxarray
from shapely.geometry import mapping
# load shapefile with geopandas
radar_north = gpd.read_file('radar_north140.shp')
# load ERA5 netcdf with xarray
era = xr.open_dataset('ERA5.nc')
# add projection system to nc
era = era.rio.write_crs("EPSG:4326", inplace=True)
# mask ERA5 data with shapefile
era_radar_north = era.rio.clip(radar_north.geometry.apply(mapping), radar_north.crs)https://stackoverflow.com/questions/71666352
复制相似问题