In [1]:
import netCDF4
In [53]:
ds = netCDF4.Dataset("./hadslp2_ocn.nc")
print(ds.variables.keys())
v = ds.variables['SLP_OCEAN'][-1,:,:]
mask = v.mask
lat = ds.variables["LATITUDE"][:]
lon = ds.variables["LONGITUDE"][:]
print(ds.variables["SLP_OCEAN"].dimensions)
ds.close()
lon
Out[53]:
In [54]:
lon0idx, = np.nonzero(lon == 0)
lon0 = np.empty_like(lon)
p1, p2 = np.split(lon, lon0idx)
lon0[:] = np.mod(np.concatenate([p2,p1]), 360)
lon0
mask0 = np.empty_like(mask)
p1, p2 = np.split(mask, lon0idx, 1)
mask0[:] = np.concatenate([p2,p1], axis=1)
fig, axes = plt.subplots(1,4, figsize=(20,4))
axes[0].imshow(mask, origin='top')
axes[1].imshow(p2, origin='top')
axes[2].imshow(p1, origin='top')
axes[3].imshow(mask0, origin='top')
Out[54]:
In [59]:
landmask = netCDF4.Dataset("landmask.nc", "w")
landmask.createDimension("lat", lat.shape[0])
landmask.createDimension("lon", lon.shape[0])
landmask.createVariable("lat", lat.dtype, ('lat',))[:] = lat
landmask.createVariable("lon", lon.dtype, ('lon',))[:] = lon0
landmask.createVariable("mask", "int", ("lat", "lon"))[:] = mask0
landmask.close()
In [60]:
ds = netCDF4.Dataset("landmask.nc")
print(ds.variables['mask'].dimensions)
plt.imshow(ds.variables["mask"][:], origin='top')
ds.close()
In [ ]: