#!/usr/bin/env python

from pyhdf.SD import SD, SDC 

import numpy as np
import matplotlib.pyplot as plt
import matplotlib as mpl
import matplotlib.cm as cm
import calendar

#----------------------------------------------------------------------------------------#
# Inputs

file_name = 'MYD06_L2.A2008015.1435.006.2013342100940.hdf'

#----------------------------------------------------------------------------------------#
# Extract Year, Month, Day, Hour and Minutes from file name

path = file_name.split('/')
name = path[len(path)-1]
list = name.split('.')

hhmm = list[2]
hh = int(hhmm[0:2])
mm = int(hhmm[2:4])

year = int(list[1][1:5])
dayofyear = int(list[1][5:8])

month = 1
day = dayofyear
while day - calendar.monthrange(year,month)[1] > 0 and month <= 12:
	day = day - calendar.monthrange(year,month)[1]
	month = month + 1

print year, month, day, hh, mm

#----------------------------------------------------------------------------------------#
# Read HDF Files

file = SD(file_name, SDC.READ)

data_selected_id = file.select('Cloud_Top_Temperature')

data = data_selected_id.get()

#----------------------------------------------------------------------------------------#
# Plot data

data = (data + 15000) * 0.01

cmap = [(0.0,0.0,0.0)] + [(cm.jet(i)) for i in xrange(1,256)] 
cmap = mpl.colors.ListedColormap(cmap)

bounds = [0,200,205,210,215,220,225,230,235,
          240,245,250,255,260,265,270,275,280,285,290,300]

norm = mpl.colors.BoundaryNorm(bounds, cmap.N)

img = plt.imshow(np.fliplr(data), cmap=cmap, norm=norm,
                  interpolation='none', origin='lower')

cbar_bounds = [200,205,210,215,220,225,230,235,
               240,245,250,255,260,265,270,275,280,285,290,300]
cbar_ticks = [200,205,210,215,220,225,230,235,
              240,245,250,255,260,265,270,275,280,285,290,300]               
               
cbar = plt.colorbar(img, cmap=cmap, norm=norm, boundaries=cbar_bounds, ticks=cbar_ticks)
cbar.ax.set_yticklabels(cbar_ticks, fontsize=10)

title = 'Cloud Top Temperature 5km \n MYD06 C6 ({}-{:02d}-{:02d}; {:02d}h{:02d})'
plt.title(title.format( year, month, day, hh, mm), fontsize=10)

plt.savefig("myd06_c6_cloud_top_temperature_5km_baseline.png", 
            bbox_inches='tight', dpi=200)
plt.show()

About / Au sujet de

Ben
Created:
12 avril 2017 21:44:16

Updated:
12 avril 2017 21:44:16

License / Licence

MIT License

Abstract / Résumé