Here is the plot and code using VIIRS Level 2 dataset:
- Code: Select all
import numpy as np
import matplotlib.pyplot as plt
import pyresample as pr
from pyresample import image, geometry
from netCDF4 import Dataset
import glob
import os
dirname = 'Your Data Directory'
k = 0
for filename in glob.glob(dirname+'/20160901*.nc'):
fname = os.path.basename(filename)
#Read data
ncin = Dataset(filename, 'r')
lons = ncin.variables['lon'][:]
lats = ncin.variables['lat'][:]
sst = ncin.variables['sea_surface_temperature'][:]
ncin.close()
alat = np.average(lats)
alon = np.average(lons)
idx = np.where((sst<=-1000.0))
sst[idx] = np.nan
area_def = pr.utils.load_area('areas.cfg', 'pc_world')
bmap = pr.plot.area_def2basemap(area_def)
bmng = bmap.bluemarble()
swath_def2 = pr.geometry.SwathDefinition(lons, lats)
if k == 0:
sst_cat = sst
sst1 = sst
swath_def = swath_def2
swath_def1 = swath_def2
else:
swath_def = swath_def1.concatenate(swath_def2)
swath_def1 = swath_def
sst_cat = np.concatenate((sst1, sst), axis=1)
sst1 = sst_cat
result = pr.kd_tree.resample_nearest(swath_def, sst_cat, area_def, radius_of_influence=20000, fill_value=None)
col = bmap.imshow(result, origin='upper', vmin=250, vmax=310)
plt.title('MODIS L2 VIIRS SST')
plt.savefig("modis_l2_globe_{0}".format(str(k).rjust(4, "0")), num_meridians=10, num_parallels=10, bbox_inches='tight')
k = k + 1
Please refer to the following link for more detail information:
https://pyresample.readthedocs.io/en/latest/