Exemplo n.º 1
0
def make_kdp(scanlist):
	new_scanlist=[]
	for scan in scanlist:
		kdp_array=mathematics.dx2d(scan['PH'])/mathematics.dx2d(scan['range'])#zeros(scan['PH'], dtype=float)
		scan.update({'KDP':kdp_array})
		screened_scan=screen_var_on_RH(scan, 'KDP')
		new_scanlist.append(screened_scan)
	return new_scanlist
Exemplo n.º 2
0
def w_from_continuity(u_array, v_array, dx, dy, levs, pres, temps_c, submask):
	#calculate divergence
	#t0=systime()
	w_array_up=u_array*0.0
	w_array_down=u_array*0.0
	divr=u_array*0.0
	nl=u_array.shape[2]
	#print systime()-t0
	for k in range(nl):
		divr[:,:,k]=(mathematics.dx2d(u_array[:,:,k])/dx + mathematics.dy2d(v_array[:,:,k])/dy)*submask[:,:,k]
	#upward integeral, 
	#initial surface
	#w_array[:,:,0]=-1.0*((p0*(interp_sonde['tdry(degs)'][0]+273.0))/((t0+273.0)*interp_sonde['press(hPa)'][0]))*
	#print systime()-t0
	for k in range(nl-1):
		w_array_up[:,:,k+1]=(((temps_c[k+1]+273.0)*pres[k])/((temps_c[k]+273.0)*pres[k+1]))*(w_array_up[:,:,k]-divr[:,:,k]*(levs[k+1]-levs[k]))
		k_bot=nl-(k+1)
		#print (((temps_c[k+1]+273.0)*pres[k])/((temps_c[k]+273.0)*pres[k+1]))
		w_array_down[:,:,k_bot-1]=(((temps_c[k_bot-1]+273.0)*pres[k_bot])/((temps_c[k_bot]+273.0)*pres[k_bot-1]))*(w_array_down[:,:,k_bot]+divr[:,:,k_bot]*(levs[k_bot-1]-levs[k_bot]))
		#print  (((temps_c[k_bot-1]+273.0)*pres[k_bot])/((temps_c[k_bot]+273.0)*pres[k_bot-1]))
	#print systime()-t0
	return w_array_up, w_array_down