コード例 #1
0
ファイル: radar_to_cappi.py プロジェクト: scollis/bom_mds
def radar_to_cappi(radar1_filename, radar2_filename,**kwargs):
	ini_fname=kwargs.get('ini_fname', os.getenv('HOME')+'/bom_mds/bom_mds.ini')
	loud=kwargs.get('loud', False)
	ini_dict=parse_ini.parse_ini(ini_fname)
	if loud: print "Loading radar file 1"
	if 'radar1_path' in ini_dict.keys():
		radar1=read_radar.load_radar(ini_dict['radar1_path']+radar1_filename)
	else:
		radar1=pyradar.load_radar(radar1_filename)
	if loud: print "Loading radar file 2"
	if 'radar2_path' in ini_dict.keys():
		radar2=read_radar.load_radar(ini_dict['radar2_path']+radar2_filename)
	else:
		radar2=pyradar.load_radar(radar2_filename)
	cappi_z_bounds=ini_dict.get('cappi_z_bounds', [500,15000])
	cappi_xy_bounds=ini_dict.get('cappi_xy_bounds', [-50000, 50000])
	cappi_resolution=ini_dict.get('cappi_resolution', [100, 40])
	levs=linspace(cappi_z_bounds[0], cappi_z_bounds[1], cappi_resolution[1])
	xar=linspace(cappi_xy_bounds[0], cappi_xy_bounds[1], cappi_resolution[0])
	yar=linspace(cappi_xy_bounds[0], cappi_xy_bounds[1], cappi_resolution[0])
	displace=mathematics.corner_to_point(radar1[0]['radar_loc'], radar2[0]['radar_loc'])
	if loud: print "Cappi-ing radar 1"
	radar1_cube=radar_to_cart.make_cube(radar1, xar, yar, levs)
	if loud: print "Cappi-ing radar 2"
	radar2_cube=radar_to_cart.make_cube(radar2, xar, yar, levs, displacement=displace)
	cube_fname=ini_dict['cube_path']+'cappi_'+std_datestr(radar1_cube['date'])+'.nc'
	netcdf_utis.save_data_cube(radar1_cube, radar2_cube, cube_fname)
コード例 #2
0
ファイル: propigation.py プロジェクト: scollis/bom_mds
def make_lobe_grid(dop_rad1, dop_rad2, lats,lons):
	x,y=lalo_meshgrid(lats, lons)
	angs=zeros(x.shape)
	dist1=zeros(x.shape)
	dist2=zeros(x.shape)
	dop1_cart=corner_to_point([lats[0],lons[0]], dop_rad1)
	dop2_cart=corner_to_point([lats[0],lons[0]], dop_rad2)
	#print dop1_cart
	#print dop2_cart
	for i in range(len(lats)):
		for j in range(len(lons)):
			#print [x[j], y[i]]
			dist1[i,j]=sqrt(((array([x[i,j], y[i,j]])-array(dop1_cart))**2).sum())
			dist2[i,j]=sqrt(((array([x[i,j], y[i,j]])-array(dop2_cart))**2).sum())
			angs[i,j]=line_angle(dop1_cart, [x[i,j], y[i,j]], dop2_cart)
	return angs
コード例 #3
0
ファイル: bom_winds.py プロジェクト: scollis/bom_mds
def save_cube_test(date,gpnum, bernum):
	gp_0740=read_rays.construct_lassen_scan(path='/bm/gdata/scollis/gunn_pt/'+date+gpnum+'/')
	ber_0740=read_rays.construct_uf_scan(path='/bm/gdata/scollis/berrimah/'+date+'_'+bernum+'/')	
	ber_loc=[-12.457, 130.925]
	gp_loc=	 [-12.2492,  131.0444]
	displace=mathematics.corner_to_point(gp_loc, ber_loc)
	ldict={'lat_0':gp_loc[0], 'lon_0':gp_loc[1],'llcrnrlat':-13.0, 'llcrnrlon':130.2, 'urcrnrlat':-12.0 , 'urcrnrlon':131.2, 'lat_ts':gp_loc[0]}
	levs=linspace(500,15000, 21)
	xar=linspace(-50.,50., 100)*1000.0
	yar=linspace(-50.,50., 100)*1000.0
	gp_cube=radar_to_cart.make_cube(gp_0740, xar, yar, levs)
	ber_cube=radar_to_cart.make_cube(ber_0740, xar-displace[0], yar-displace[1], levs)
	netcdf_utis.save_data_cube(ber_cube, gp_cube, '/bm/gdata/scollis/cube_data/'+date+'_'+bernum[0:4]+'_ver1.nc', gp_loc)
コード例 #4
0
ファイル: bom_winds.py プロジェクト: scollis/bom_mds
def test_cappi_ber():
	ber_loc=[-12.457, 130.925]
	gp_loc=	 [-12.2492,  131.0444]
	disp=mathematics.corner_to_point(gp_loc, ber_loc)
	#scanme=read_rays.construct_uf_scan(path='/bm/gdata/scollis/berrimah/20060122_035004/')
	gp_0740=read_rays.construct_lassen_scan(path='/bm/gdata/scollis/gunn_pt/20060122_074001/')
	ber_0740=read_rays.construct_uf_scan(path='/bm/gdata/scollis/berrimah/20060122_074003/')
	read_rays.plot_ppi_vel(ber_0740[1], radar_loc=ber_loc, fig_name='ber_vppi.png')
	read_rays.plot_ppi_vel(gp_0740[1], radar_loc=gp_loc, fig_name='gp_vppi.png')
	xar=linspace(-50.,50., 200)*1000.0
	yar=linspace(-50.,50., 200)*1000.0
	cap_gp=radar_to_cart.make_cappi(gp_0740, xar, yar, 2500.0, 'VR')
	cap_ber=radar_to_cart.make_cappi(ber_0740, xar-disp[0], yar-disp[1], 2500.0, 'VR')
	read_rays.plot_cappi_vel(xar, yar, cap_ber, fig_name='ber_vcappi_2_5km.png')
	read_rays.plot_cappi_vel(xar, yar, cap_gp, fig_name='gp_vcappi_2_5km.png')
コード例 #5
0
ファイル: pres.py プロジェクト: scollis/bom_mds
def plot_cappi(data,parm,lnum, **kwargs):
	x=data['xar']
	y=data['yar']
	radar_loc=data['radar_loc']
	radar_name=kwargs.get('radar_name', data['radar_name'])
	fig_name=kwargs.get('fig_name', 'cappi_'+parm+'_.png')
	f=figure()
	Re=6371.0*1000.0
	rad_at_radar=Re*sin(pi/2.0 -abs(radar_loc[0]*pi/180.0))#ax_radius(float(lat_cpol), units='degrees')
	lons=radar_loc[1]+360.0*(x-data['displacement'][0])/(rad_at_radar*2.0*pi)
	lats=radar_loc[0] + 360.0*(y-data['displacement'][1])/(Re*2.0*pi)
	def_loc_dict={'lat_0':lats.mean(), 'lon_0':lons.mean(),'llcrnrlat':lats.min(), 'llcrnrlon':lons.min(), 'urcrnrlat':lats.max() , 'urcrnrlon':lons.max(), 'lat_ts':lats.mean()}
	loc_dict=kwargs.get('loc_dict', def_loc_dict)
	#print 'Here'
	map= Basemap(projection='merc', resolution='l',area_thresh=1., **loc_dict)
	longr, latgr=meshgrid(lons,lats)
	xx, yy = map(longr, latgr)
	#print 'there'
	map.drawmapboundary()
	darwin_loc=[-12.5, 130.85]
	disp_from_darwin=mathematics.corner_to_point(darwin_loc, radar_loc)
	dist_from_darwin=sqrt(disp_from_darwin[0]**2+disp_from_darwin[1]**2)
	if dist_from_darwin < 500.*1000.: 
		map.readshapefile(getenv('HOME')+'/bom_mds/shapes/cstntcd_r','coast',drawbounds=True, linewidth=0.5,color='k',antialiased=1,ax=None)
	else:
		map.drawcoastlines()
	map.drawmeridians(array([129,130,131,132,133]), labels=[1,0,0,1])
	map.drawparallels(array([-14,-13,-12,-11,-10]), labels=[1,0,0,1])
	comp_levs=linspace(-1.,1., 30)
	#print 'everywhere'
	levs_dict={'VR':linspace(-15,15,31), 'CZ': linspace(-8,64,10), 'PH': linspace(0,185,255), "RH": linspace(0,1.5,16), "SW":linspace(0, 5, 11), "ZD":linspace(-10,10,21), 'VE':linspace(-30,30,31), 'TI':linspace(-30,30,31)}
	#print 'or here?'
	titles_dict={'VR': 'Velocity m/s', 'CZ':'Corrected Reflectivity dBz', 'PH': 'Differential Prop Phase (degrees)', 'RH':'Correlation Co-ef', 'SW':'Spectral Width (m/s)', 'ZD':'Differentail Reflectivity dBz', 'VE':'Edited Velocity (m/s)', 'TI':'Simualated winds,(m/s)'}
	#print parm
	if 'mask' in kwargs.keys():
		mask=kwargs['mask'][:,:,lnum]
		mdata=M.masked_where(M.array(mask) < 0.5, M.array(data[parm][:,:,lnum]))
		map.contourf(xx,yy,mdata, levels=levs_dict[parm])
	else:
		map.contourf(xx,yy,data[parm][:,:,lnum], levels=levs_dict[parm])
	colorbar()
	if 'angs' in kwargs.keys():
		map.contour(xx,yy,kwargs['angs'], levels=[30.0, 150.0],colors=['r']) 
	p=data['date']
	dtstr='%(#1)02d-%(#2)02d-%(#3)04d %(#4)02d%(#5)02dZ ' %{"#1":p.day, "#2":p.month, "#3":p.year, "#4":p.hour, '#5':p.minute}
	title(radar_name+' '+dtstr+titles_dict[parm])
	savefig(getenv('HOME')+'/bom_mds/output/'+fig_name)
	close(f)
コード例 #6
0
ファイル: pickle_to_cappi.py プロジェクト: scollis/bom_mds
def pickle_to_cappi(gp_pickle, ber_pickle, **kwargs):
	path=kwargs.get('path', '/bm/gkeep/scollis/deal_ber/')
	debug=kwargs.get('debug', False)
	if debug: print "Loading Pickles"
	gp=pickle_zip.load(path+gp_pickle)
	ber=pickle_zip.load(path+ber_pickle)	
	ber_loc=[-12.457, 130.925]
	gp_loc=[-12.2492,  131.0444]
	displace=mathematics.corner_to_point(gp_loc, ber_loc)
	ldict={'lat_0':gp_loc[0], 'lon_0':gp_loc[1],'llcrnrlat':-13.0, 'llcrnrlon':130.2, 'urcrnrlat':-12.0 , 'urcrnrlon':131.2, 'lat_ts':gp_loc[0]}
	levs=linspace(500,10000, 30)
	xar=linspace(-50.,50., 100)*1000.0
	yar=linspace(-50.,50., 100)*1000.0
	gp_cube=radar_to_cart.make_cube(gp, xar, yar, levs)
	ber_cube=radar_to_cart.make_cube(ber, xar-displace[0], yar-displace[1], levs)
	print gp_cube['CZ'].shape
	netcdf_utis.save_data_cube(ber_cube, gp_cube, '/bm/gdata/scollis/cube_data/'+std_datestr(gp[0]['date'])+'_deal.nc', gp_loc)
コード例 #7
0
ファイル: bom_winds.py プロジェクト: scollis/bom_mds
def test_newpres():
	gp_0740=read_rays.construct_lassen_scan(path='/bm/gdata/scollis/gunn_pt/20060122_074001/')
	ber_0740=read_rays.construct_uf_scan(path='/bm/gdata/scollis/berrimah/20060122_074003/')	
	ber_loc=[-12.457, 130.925]
	gp_loc=	 [-12.2492,  131.0444]
	ldict={'lat_0':gp_loc[0], 'lon_0':gp_loc[1],'llcrnrlat':-13.0, 'llcrnrlon':130.2, 'urcrnrlat':-12.0 , 'urcrnrlon':131.2, 'lat_ts':gp_loc[0]}
	az_scan=0
	pres.plot_ppi(ber_0740[az_scan], 'CZ', radar_loc=ber_loc, loc_dict=ldict, fig_name='ber_cz_ppi.png')
	pres.plot_ppi(gp_0740[az_scan], 'CZ', radar_loc=gp_loc, loc_dict=ldict, fig_name='gp_cz_ppi.png')
	pres.plot_ppi(ber_0740[az_scan], 'VR', radar_loc=ber_loc, loc_dict=ldict, fig_name='ber_vr_ppi.png')
	pres.plot_ppi(gp_0740[az_scan], 'VR', radar_loc=gp_loc, loc_dict=ldict, fig_name='gp_vr_ppi.png')
	disp=mathematics.corner_to_point(gp_loc, ber_loc)
	xar=linspace(-50.,50., 100)*1000.0
	yar=linspace(-50.,50., 100)*1000.0
	lev=1000.0
	lstr="%(lev)05d" %{'lev':lev}
	pref_dir='20062201_0740_caps/'
	cap_gp_vr=radar_to_cart.make_cappi(gp_0740, xar, yar, lev, 'VR')
	cap_ber_vr=radar_to_cart.make_cappi(ber_0740, xar-disp[0], yar-disp[1], lev, 'VR')
	pres.plot_cappi(xar,yar,cap_gp_vr,gp_0740[0], parm='VR', fig_name=pref_dir+'gp_cappi_vr_'+lstr+'.png', loc_dict=ldict, radar_loc=gp_loc)
	pres.plot_cappi(xar,yar,cap_ber_vr,ber_0740[0], parm='VR', fig_name=pref_dir+'ber_cappi_vr_'+lstr+'.png', loc_dict=ldict, radar_loc=gp_loc)
	#cap_gp_test=radar_to_cart.make_cappi_testmode(gp_0740, xar, yar, lev, 'VR')
	#plot_cappi(xar,yar,cap_gp_test,ber_0740[0], parm='TEST', fig_name='test.png', loc_dict=ldict, radar_loc=gp_loc) 
	
	gp_cube_vr=zeros([100,100,31], dtype=float)
	ber_cube_vr=zeros([100,100,31], dtype=float)
	levs=linspace(500, 10500, 31)
	xar=linspace(-50.,50., 100)*1000.0
	yar=linspace(-50.,50., 100)*1000.0
	
	for i in range(31):
		gp_cap_vr=radar_to_cart.make_cappi(gp_0740, xar, yar, levs[i], 'CZ')
		gp_cube_vr[:,:,i]=gp_cap_vr
		ber_cap_vr=radar_to_cart.make_cappi(ber_0740, xar-disp[0], yar-disp[1], levs[i], 'CZ')
		ber_cube_vr[:,:,i]=ber_cap_vr
	
	for i in range(31):
		lstr="%(lev)05d" %{'lev':levs[i]}
		pres.plot_cappi(xar,yar,gp_cube_vr[:,:,i],gp_0740[0], parm='CZ', fig_name=pref_dir+'gp_cappi_cz_'+lstr+'.png', loc_dict=ldict, radar_loc=gp_loc)
		pres.plot_cappi(xar,yar,ber_cube_vr[:,:,i],ber_0740[0], parm='CZ', fig_name=pref_dir+'ber_cappi_cz_'+lstr+'.png', loc_dict=ldict, radar_loc=gp_loc)
		print 'Done', i, ' of 31'
コード例 #8
0
ファイル: propigation.py プロジェクト: scollis/bom_mds
def unit_vector_lalo(point, h, radar_loc):
	x,y=corner_to_point(radar_loc, point)
	i,j,k=unit_vector(x,y,h)
	return i,j,k
コード例 #9
0
ファイル: propigation.py プロジェクト: scollis/bom_mds
def dhds_lalo(point, h, radar_loc):
	x,y=corner_to_point(radar_loc, point)
	grad=dhds(x,y,h)
	return grad
コード例 #10
0
ファイル: radar_to_winds.py プロジェクト: scollis/bom_mds
def radar_to_winds(datestr, **kwargs):
	#check to see if we have the radar files
	#check to see if there are deailased files
	#kwargs={}
	loud=kwargs.get('loud', False)
	
	#datestr='200601220700'
	ini_fname=kwargs.get('ini_fname', os.getenv('HOME')+'/bom_mds/bom_mds.ini')
	
	dateobj=num2date(datestr2num(datestr))
	ini_fname=kwargs.get('ini_fname', os.getenv('HOME')+'/bom_mds/bom_mds.ini')
	ini_dict=parse_ini.parse_ini(ini_fname)
	radar1_deal_list=os.listdir(ini_dict['radar1_path'])
	radar2_deal_list=os.listdir(ini_dict['radar2_path'])
	radar1_raw_list=os.listdir(ini_dict['radar1_raw_path'])
	radar2_raw_list=os.listdir(ini_dict['radar2_raw_path'])
	
	radar1_target=ini_dict['radar1_prefix']+std_datestr(dateobj, ini_dict['radar1_type'])
	radar2_target=ini_dict['radar2_prefix']+std_datestr(dateobj, ini_dict['radar2_type'])
	
	poss_deal_files1=[]
	for item in radar1_deal_list:
		if radar1_target in item: poss_deal_files1.append(item)
	
	if len(poss_deal_files1)==0:
		poss_raw_files1=[]
		print "No dealiased files found... Dealiasing"
		for item in radar1_raw_list:
			if radar1_target in item: poss_raw_files1.append(item)
		if len(poss_raw_files1)==0:
			#print "no files found"
			raise IOError, 'Radar 2 File not there'
			#return
		else:
			print "Dealiasing "+poss_raw_files1[0]
			radar1_filename=dealias.dealias_arb(poss_raw_files1[0], ini_dict['radar1_type'], ini_dict['radar1_raw_path'], ini_dict['radar1_path'], ini_dict['radar1_prefix'])
	else:
		radar1_filename=poss_deal_files1[0]
	
	poss_deal_files2=[]
	for item in radar2_deal_list:
		if radar2_target in item: poss_deal_files2.append(item)
	
	if len(poss_deal_files2)==0:
		poss_raw_files2=[]
		print "No dealiased files found... Dealiasing"
		for item in radar2_raw_list:
			if radar2_target in item: poss_raw_files2.append(item)
		if len(poss_raw_files2)==0:
			#print "no files found"
			raise IOError, 'Radar 2 File not there'
		else:
			radar2_filename=dealias.dealias_arb(poss_raw_files2[0], ini_dict['radar2_type'], ini_dict['radar2_raw_path'], ini_dict['radar2_path'], ini_dict['radar2_prefix'])
	else:
		radar2_filename=poss_deal_files2[0]
	
	if loud: print "Loading radar file 1"
	
	if 'radar1_path' in ini_dict.keys():
		radar1=read_radar.load_radar(ini_dict['radar1_path']+radar1_filename)
	else:
		radar1=read_radar.load_radar(radar1_filename)
	
	if loud: print "Loading radar file 2"
	
	if 'radar2_path' in ini_dict.keys():
		radar2=read_radar.load_radar(ini_dict['radar2_path']+radar2_filename)
	else:
		radar2=read_radar.load_radar(radar2_filename)
	pres.plot_ppi(radar2[2],'VE', fig_path='/scratch/bom_mds_dumps/', fig_name='radar2_ve.png')
	pres.plot_ppi(radar2[2],'CZ', fig_path='/scratch/bom_mds_dumps/', fig_name='radar2_cz.png')
	cappi_z_bounds=ini_dict.get('cappi_z_bounds', [500,15000])
	cappi_xy_bounds=ini_dict.get('cappi_xy_bounds', [-50000, 50000])
	cappi_resolution=ini_dict.get('cappi_resolution', [100, 40])
	levs=linspace(cappi_z_bounds[0], cappi_z_bounds[1], cappi_resolution[1])
	xar=linspace(cappi_xy_bounds[0], cappi_xy_bounds[1], cappi_resolution[0])
	yar=linspace(cappi_xy_bounds[0], cappi_xy_bounds[1], cappi_resolution[0])
	displace=mathematics.corner_to_point(radar1[0]['radar_loc'], radar2[0]['radar_loc'])
	if loud: print "Cappi-ing radar 1"
	
	#radar1_cube_=radar_to_cart.make_cube(radar1, xar, yar, levs)
	radar1_cube=cappi_v2.make_cube_all(radar1,xar, yar,levs)
	#max_el=array([scan['Elev'][0] for scan in radar1]).max()
	#radar1_cube=cappi_v2.blend(radar1_cube_v,radar1_cube_h, max_el,loud=True)
	
	if loud: print "Cappi-ing radar 2"
	
	#radar2_cube_v=radar_to_cart.make_cube(radar2, xar, yar, levs, displacement=displace)
	radar2_cube=cappi_v2.make_cube_all(radar2,xar, yar,levs, displacement=displace)
	#max_el=array([scan['Elev'][0] for scan in radar2]).max()
	#radar2_cube=cappi_v2.blend(radar2_cube_v,radar2_cube_h, max_el,loud=True)
	#radar2_cube_v=radar_to_cart.make_cube(radar2, xar, yar, levs, displacement=displace)
	cube_fname=ini_dict['cube_path']+'cappi_'+std_datestr(radar1_cube['date'], "uf")+'.nc'
	#netcdf_utis.save_data_cube(radar1_cube, radar2_cube, cube_fname)
	
	#Initial Guess
	req=[ 'alt(m)',  'wspd(m/s)',  'wdir(degs)', 'tdry(degs)','press(hPa)' ]
	first_sonde,second_sonde = read_sounding.get_two_best_conc_sondes(datestr, req_vars=req)
	interp_sonde=read_sounding.interp_sonde_time(first_sonde, second_sonde, dateobj, levs)
		
	if ini_dict['initial_guess']=='sonde':
		#using a sonde for out initial gues
		u_ig=ones(radar1_cube['CZ'].shape, dtype=float)
		v_ig=ones(radar1_cube['CZ'].shape, dtype=float)
		w_ig=zeros(radar1_cube['CZ'].shape, dtype=float)
		for k in range(len(levs)):
			u_ig[:,:,k]=1.0*u_ig[:,:,k]*interp_sonde['wspd(m/s)'][k]*sin(pi*interp_sonde['wdir(degs)'][k]/180.0)
			v_ig[:,:,k]=1.0*v_ig[:,:,k]*interp_sonde['wspd(m/s)'][k]*cos(pi*interp_sonde['wdir(degs)'][k]/180.0)
	else:
		u_ig=zeros(radar1_cube['CZ'].shape, dtype=float)
		v_ig=zeros(radar1_cube['CZ'].shape, dtype=float)
		w_ig=zeros(radar1_cube['CZ'].shape, dtype=float)
	
	Re=6371.0*1000.0
	rad_at_radar=Re*sin(pi/2.0 -abs(radar1[0]['radar_loc'][0]*pi/180.0))#ax_radius(float(lat_cpol), units='degrees')
	lons=radar1[0]['radar_loc'][1]+360.0*xar/(rad_at_radar*2.0*pi)
	lats=radar1[0]['radar_loc'][0] + 360.0*yar/(Re*2.0*pi)	
	#Masking
	angs=array(propigation.make_lobe_grid(radar2[0]['radar_loc'], radar1[0]['radar_loc'], lats,lons))
	mywts=met.make_mask_bad1(radar2_cube, radar1_cube, angs, 1.0, 80.0)
	
	print "Mean gp masked Velocity ", (radar1_cube['VE']*mywts).mean()
	print "min gp masked Velocity ", (radar1_cube['VE']*mywts).min()
	print "max gp masked Velocity ", (radar1_cube['VE']*mywts).max()
	print "Mean Berrimah masked Velocity ", (radar2_cube['VE']*mywts).mean()
	print "min Berrimah masked Velocity ", (radar2_cube['VE']*mywts).min()
	print "max Berrimah masked Velocity ", (radar2_cube['VE']*mywts).max()
	print "Mean gp masked CZ ", (radar1_cube['CZ']*mywts).mean()
	print "min gp masked CZ ", (radar1_cube['CZ']*mywts).min()
	print "max gp masked CZ ", (radar1_cube['CZ']*mywts).max()
	print "Mean Berrimah masked CZ ", (radar2_cube['CZ']*mywts).mean()
	print "min Berrimah masked CZ ", (radar2_cube['CZ']*mywts).min()
	print "max Berrimah masked CZ ", (radar2_cube['CZ']*mywts).max()
	print "Number of masked points", (mywts.shape[0]*mywts.shape[1]*mywts.shape[2])-mywts.sum()
	print "Number of unmasked points ", mywts.sum()
	print "**********************FALLSPEED INFO****************************"
	#def terminal_velocity(refl, temps, levs, display=False):
	tdry=interp_sonde['tdry(degs)']
	pressure=interp_sonde['press(hPa)']
	dummy=met.terminal_velocity(radar1_cube['CZ']*mywts, tdry, radar1_cube['levs'], display=True)
	print "**********************FALLSPEED INFO****************************"
	f=0.0
	X=[u_ig,v_ig,w_ig]
	G,F,X=grad_conj_solver_3d.gracon_3d_packaged(X ,radar2_cube, radar1_cube, mywts, interp_sonde)
	u_array,v_array,w_array=X 
	radar1_cube.update({'u_array':u_array, 'v_array':v_array, 'w_array':w_array})
	netcdf_utis.save_data_cube(radar1_cube, radar2_cube,  '/data/cube_data/'+std_datestr(dateobj, "uf") +'_winds.nc')
コード例 #11
0
ファイル: mcgill_scratch.py プロジェクト: scollis/bom_mds
if 'radar2_path' in ini_dict.keys():
    radar2=read_radar.load_radar(ini_dict['radar2_path']+radar2_filename)
else:
    radar2=read_radar.load_radar(radar2_filename)



	pres.plot_ppi(radar2[2],'VE', fig_path='/scratch/bom_mds_dumps/', fig_name='radar2_ve.png')
	pres.plot_ppi(radar2[2],'CZ', fig_path='/scratch/bom_mds_dumps/', fig_name='radar2_cz.png')
	cappi_z_bounds=ini_dict.get('cappi_z_bounds', [500,15000])
	cappi_xy_bounds=ini_dict.get('cappi_xy_bounds', [-50000, 50000])
	cappi_resolution=ini_dict.get('cappi_resolution', [100, 40])
	levs=linspace(cappi_z_bounds[0], cappi_z_bounds[1], cappi_resolution[1])
	xar=linspace(cappi_xy_bounds[0], cappi_xy_bounds[1], cappi_resolution[0])
	yar=linspace(cappi_xy_bounds[0], cappi_xy_bounds[1], cappi_resolution[0])
	displace=mathematics.corner_to_point(radar1[0]['radar_loc'], radar2[0]['radar_loc'])
	if loud: print "Cappi-ing radar 1"
	
	#radar1_cube_=radar_to_cart.make_cube(radar1, xar, yar, levs)
	radar1_cube=cappi_v2.make_cube_all(radar1,xar, yar,levs)
	#max_el=array([scan['Elev'][0] for scan in radar1]).max()
	#radar1_cube=cappi_v2.blend(radar1_cube_v,radar1_cube_h, max_el,loud=True)
	
	if loud: print "Cappi-ing radar 2"
	
	#radar2_cube_v=radar_to_cart.make_cube(radar2, xar, yar, levs, displacement=displace)
radar2_cube=cappi_v2.make_cube_all(radar2,xar, yar,levs, displacement=displace)
	#max_el=array([scan['Elev'][0] for scan in radar2]).max()
	#radar2_cube=cappi_v2.blend(radar2_cube_v,radar2_cube_h, max_el,loud=True)
	#radar2_cube_v=radar_to_cart.make_cube(radar2, xar, yar, levs, displacement=displace)
cube_fname=ini_dict['cube_path']+'cappi_'+std_datestr(radar1_cube['date'], "uf")+'.nc'