Example #1
0
def plot_comp_reflect():
	print("    COMP REFLECTIVITY")
	# Set Figure Size (1000 x 800)
	pylab.figure(figsize=(width,height),frameon=False)
	QR = nc.variables['QRAIN']
	QS = nc.variables['QSNOW']

	# Define 'constant' densities (kg m-3)
	rhor = 1000
	rhos = 100
	rhog = 400
	rhoi = 917

	# Define "fixed intercepts" (m-4)
	Norain = 8.0E6
	#Nosnow = 2.0E7
	Nosnow = 2.0E6*np.exp(-0.12 * (temps[time]-273))
	Nograu = 4.0E6


	# First, find the density at the first sigma level
	# above the surface
	density = np.divide(psfc[time],(287.0 * temps[time]))
	#print "Rho: ", np.mean(density)
	Qra_all = QR[time]
	Qsn_all = QS[time]

	for j in range(len(Qra_all[1,:,1])):
		curcol_r = []
		curcol_s = []
		for i in range(len(Qra_all[1,1,:])):
				maxrval = np.max(Qra_all[:,j,i])
				maxsval = np.max(Qsn_all[:,j,i])
				curcol_r.append(maxrval)		
				curcol_s.append(maxsval)
		np_curcol_r = np.array(curcol_r)
		np_curcol_s = np.array(curcol_s)
		if j == 0:
			Qra = np_curcol_r
			Qsn = np_curcol_s
		else:
			Qra = np.row_stack((Qra, np_curcol_r))
			Qsn = np.row_stack((Qsn, np_curcol_s))

	#print "Qra shp: ", np.shape(Qra)
	#print "Den shp: ", np.shape(density)
	


	# Calculate slope factor lambda
	lambr = np.divide((3.14159 * Norain * rhor), np.multiply(density, Qra))
	lambr = lambr ** 0.25

	#lambs = np.divide((3.14159 * Nosnow * rhoi), np.multiply(density, Qsn))
	#lambs = lambs ** 0.25
	lambs = np.exp(-0.0536 * (temps[time] - 273))
	
	# Calculate equivalent reflectivity factor
	Zer = (720.0 * Norain * (lambr ** -7.0)) * 1E18
	Zes = (0.224 * 720.0 * Nosnow * (lambr ** -7.0) * (rhos/rhoi) ** 2) * 1E18
	Zes_int = np.divide((lambs * Qsn * density), Nosnow)
	Zes = ((0.224 * 720 * 1E18) / (3.14159 * rhor) ** 2) * Zes_int ** 2 



	Ze = np.add(Zer, Zes)
	#Ze = Zer
	# Convert to dBZ
	dBZ = 10 * np.log10(Ze)	
	dBZ = np.nan_to_num(dBZ)
	units = 'dBZe'
	print "      MAX: ", np.max(dBZ)
	# Now plot
	REF_LEVELS = range(5,90,5)
	CREFLECT=pylab.contourf(x,y,dBZ,REF_LEVELS,cmap=coltbls.reflect())
	#SREFLECT=pylab.contourf(x,y,dBZ)
	title = 'Simulated Composite Reflectivity'
	prodid = 'cref'

	drawmap(CREFLECT, title, prodid, units) 	
Example #2
0
def plot_sim_reflect():
	print("    SIM REFLECTIVITY")
	# Set Figure Size (1000 x 800)
	pylab.figure(figsize=(width,height),frameon=False)
	QR = nc.variables['QRAIN']
	QS = nc.variables['QSNOW']

	# Define 'constant' densities (kg m-3)
	rhor = 1000
	rhos = 100
	rhog = 400
	rhoi = 917

	# Define "fixed intercepts" (m-4)
	Norain = 8.0E6
	#Nosnow = 2.0E7
	Nosnow = 2.0E6*np.exp(-0.12 * (temps[time]-273))
	Nograu = 4.0E6


	# First, find the density at the first sigma level
	# above the surface
	density = np.divide(psfc[time],(287.0 * temps[time]))
	#print "Rho: ", np.mean(density)
	Qra = QR[time,1]
	Qsn = QS[time,1]
	Qra = np.nan_to_num(Qra)
	Qsn = np.nan_to_num(Qsn)

	# Calculate slope factor lambda
	lambr = np.divide((3.14159 * Norain * rhor), np.multiply(density, Qra))
	lambr = lambr ** 0.25

	#lambs = np.divide((3.14159 * Nosnow * rhoi), np.multiply(density, Qsn))
	#lambs = lambs ** 0.25
	lambs = np.exp(-0.0536 * (temps[time] - 273))
	
	# Calculate equivalent reflectivity factor
	Zer = (720.0 * Norain * (lambr ** -7.0)) * 1E18
	Zes = (0.224 * 720.0 * Nosnow * (lambr ** -7.0) * (rhos/rhoi) ** 2) * 1E18
	Zes_int = np.divide((lambs * Qsn * density), Nosnow)
	Zes = ((0.224 * 720 * 1E18) / (3.14159 * rhor) ** 2) * Zes_int ** 2 



	Ze = np.add(Zer, Zes)
	#Ze = Zer
	# Convert to dBZ

	dBZ = 10 * np.log10(Ze)	
	dBZ = np.nan_to_num(dBZ)
	units = 'dBZe'
	print "      MAX: ", np.max(dBZ)
	# Now plot
	REF_LEVELS = range(5,90,5)
	SREFLECT=pylab.contourf(x,y,dBZ,REF_LEVELS,cmap=coltbls.reflect())
	#SREFLECT=pylab.contourf(x,y,dBZ)
	title = 'Simulated Surface Reflectivity'
	prodid = 'sref'

	drawmap(SREFLECT, title, prodid, units)