Regionmask

Get data for a state

import regionmask


states = regionmask.defined_regions.natural_earth.us_states_10 # 50



mask = states.mask(da.lon, da.lat)

state_mask = (

xr.where(states_mask == states["STATE"].number, 1, np.nan)

.dropna("lat", how="all")

.dropna("lon", how="all")

)

_ = da.sel(

lat=slice(state_mask.lat.min(), state_mask.lat.max()),

lon=slice(state_mask.lon.min(), state_mask.lon.max()),

)

da_state_mask = _ * state_mask

Create a mask

https://github.com/pydata/xarray/discussions/4948#discussioncomment-404621

air = xr.tutorial.open_dataset("air_temperature")

mask_3D = us_states.mask_3D(air.air)

mask_3D_a = mask_3D.swap_dims({"region": "abbrevs"})

air.air.where(mask_3D_a.sel(abbrevs="FL"))