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
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