I am trying to mask a NetCDF file with an shapefile. Here is my shapefile:

Africa_Shape = geopandas.read_file('/content/gdrive/MyDrive/HighresMIP/control_1950/iho/iho.shp', crs="epsg:4326")

And here is my NetCDF file (MSWEP_monthly) structure and the procedure that I am following to clip the original dataset enter image description here

And my results are all the values nan.

1 Answer 1



Simplest method:

min_x, min_y, max_x, max_y = Africa_Shape.total_bounds
xds_clipped  = xds.where((xds.lon<=max_x) & (xds.lon>=min_x) & (xds.lat<=max_y) & (xds.lat>=min_y), drop=True)

But, I would recommend looking into xoak

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.