예제 #1
0
maske = ~np.isnan(hhh) & ~np.isnan(ppp)

fig = plt.figure(figsize=(14, 12))
#zzz = str(jahr)+'-'+str(monat)+'-'+str(tag)+'--'+str(stunde)+':'+str(minute)+' UTC'
#fig.suptitle(zzz + ' UTC')

###################
ax1 = fig.add_subplot(221, aspect='auto')
#plt.subplot(2,2,1)
plt.pcolormesh(dpr_lon,
               dpr_lat,
               np.ma.masked_invalid(dpr_pp_surf),
               vmin=np.nanmin(dpr_pp_surf),
               vmax=np.nanmax(dpr_pp_surf),
               cmap=get_miub_cmap())
cbar = plt.colorbar()
cbar.set_label('Ref. in dbz')
plot_borders(ax1)
plot_radar(blon, blat, ax1, reproject=True, cband=False, col='black')
plt.plot(dpr_lon[:, 0], dpr_lat[:, 0], color='black', lw=1)
plt.plot(dpr_lon[:, -1], dpr_lat[:, -1], color='black', lw=1)
plt.plot(dpr_lon[:, dpr_lon.shape[1] / 2],
         dpr_lat[:, dpr_lon.shape[1] / 2],
         color='black',
         lw=1,
         ls='--')

ax1 = plt.scatter(bonnlon, bonnlat, c=50, s=50, color='red')

plt.grid()
예제 #2
0
파일: pcc_gpm_T.py 프로젝트: vecoveco/gpm
def plot_all():
    ax1 = fig.add_subplot(231, aspect='equal')
    plt.pcolormesh(x, y, rwdata, cmap=get_miub_cmap(),
                   vmin=0.1,vmax=50, zorder=2)
    cb = plt.colorbar(shrink=0.5)
    cb.set_label("Ref (dbz)",fontsize=ff)
    #cb.set_label("Rainrate (mm/h)",fontsize=ff)
    cb.ax.tick_params(labelsize=ff)
    plot_borders(ax1)
    plt.title('RADOLAN Ref: \n'+'20' + str(pfad_radolan[-20:-18])+'-'+str(pfad_radolan[-18:-16])+'-'+str(pfad_radolan[-16:-14])+
           ' T: '+str(pfad_radolan[-14:-10]) + '00 UTC',fontsize=ff) #RW Product Polar Stereo

    plt.xlabel("x [km] ",fontsize=ff)
    plt.ylabel("y [km]  ",fontsize=ff)
    plt.grid(color='r')
    plt.xlim(-420,390)
    plt.ylim(-4700, -3700)


    ax2 = fig.add_subplot(232, aspect='equal')
    pm2 = plt.pcolormesh(gprof_x, gprof_y,np.ma.masked_invalid(gprof_pp[latstart:latend]),
                         cmap=my_cmap,vmin=0.1,vmax=10, zorder=2)

    cb = plt.colorbar(shrink=0.5)
    cb.set_label("Rainrate (mm/h)",fontsize=ff)
    cb.ax.tick_params(labelsize=ff)
    plt.xlabel("x [km] ",fontsize=ff)
    plt.ylabel("y [km]  ",fontsize=ff)
    plt.title('GPM GPROF Rainrate: \n' + str(pfad_gprof_g[66:70]) + '-' +str(pfad_gprof_g[70:72])+ '-' +
              str(pfad_gprof_g[72:74]) + ' T: ' +str(pfad_gprof_g[76:82]) + '-' + str(pfad_gprof_g[84:90]) + ' UTC',fontsize=ff)
    plot_borders(ax2)
    plt.xticks(fontsize=ff)
    plt.yticks(fontsize=ff)
    plt.grid(color='r')
    plt.tight_layout()
    ax2.set_xlim(ax1.get_xlim())
    ax2.set_ylim(ax1.get_ylim())



    ax37 = fig.add_subplot(233, aspect='equal')
    plt.pcolormesh(dpr_x, dpr_y,np.ma.masked_invalid(dpr_pp[latstartd:latendd]),
                         cmap=my_cmap,vmin=0.1,vmax=10, zorder=2)

    cb = plt.colorbar(shrink=0.5)
    cb.set_label("Rainrate (mm/h)",fontsize=ff)
    cb.ax.tick_params(labelsize=ff)
    plt.xlabel("x [km] ",fontsize=ff)
    plt.ylabel("y [km]  ",fontsize=ff)
    plt.title('GPM DPR Rainrate: \n' + str(pfad_gprof_g[66:70]) + '-' +str(pfad_gprof_g[70:72])+ '-' +
              str(pfad_gprof_g[72:74]) + ' T: ' +str(pfad_gprof_g[76:82]) + '-' + str(pfad_gprof_g[84:90]) + ' UTC',fontsize=ff)
    plot_borders(ax37)
    plt.xticks(fontsize=ff)
    plt.yticks(fontsize=ff)
    plt.grid(color='r')
    ax37.set_xlim(ax1.get_xlim())
    ax37.set_ylim(ax1.get_ylim())

    ##################################
    ax29 = fig.add_subplot(234, aspect='equal')
    #pm2 = plt.pcolormesh(gprof_x, gprof_y,np.ma.masked_invalid(gprof_pp[latstart:latend]),
    #                     cmap=my_cmap,vmin=0.1,vmax=10, zorder=2)
    pm2 = plt.pcolormesh(gprof_x, gprof_y,np.ma.masked_invalid(gprof_snow[latstart:latend]),
                         cmap=get_miub_cmap(),vmin=0,vmax=5, zorder=1)


    cb = plt.colorbar(shrink=0.5)
    cb.set_label("SnowCoverIndex ",fontsize=ff)
    cb.ax.tick_params(labelsize=ff)
    plt.xlabel("x [km] ",fontsize=ff)
    plt.ylabel("y [km]  ",fontsize=ff)
    plt.title('GPM GPROF SnowCoverIndex: \n' + str(pfad_gprof_g[66:70]) + '-' +str(pfad_gprof_g[70:72])+ '-' +
              str(pfad_gprof_g[72:74]) + ' T: ' +str(pfad_gprof_g[76:82]) + '-' + str(pfad_gprof_g[84:90]) + ' UTC',fontsize=ff)
    plot_borders(ax29)
    plt.xticks(fontsize=ff)
    plt.yticks(fontsize=ff)
    plt.grid(color='r')
    #plt.tight_layout()
    ax29.set_xlim(ax1.get_xlim())
    ax29.set_ylim(ax1.get_ylim())

    from pcc import get_2_cmap
    ax28 = fig.add_subplot(235, aspect='equal')
    pm2 = plt.pcolormesh(gprof_x, gprof_y,np.ma.masked_invalid(gprof_l[latstart:latend]),
                         cmap=get_2_cmap(),vmin=0,vmax=1, zorder=1)

    cb = plt.colorbar(shrink=0.5)
    cb.set_label("LiquidWaterFraction",fontsize=ff)
    cb.ax.tick_params(labelsize=ff)
    plt.xlabel("x [km] ",fontsize=ff)
    plt.ylabel("y [km]  ",fontsize=ff)
    plt.title('GPM GPROF LiquidWaterFraction: \n' + str(pfad_gprof_g[66:70]) + '-' +str(pfad_gprof_g[70:72])+ '-' +
              str(pfad_gprof_g[72:74]) + ' T: ' +str(pfad_gprof_g[76:82]) + '-' + str(pfad_gprof_g[84:90]) + ' UTC',fontsize=ff)
    plot_borders(ax28)
    plt.xticks(fontsize=ff)
    plt.yticks(fontsize=ff)
    plt.grid(color='r')
    #plt.tight_layout()
    ax28.set_xlim(ax1.get_xlim())
    ax28.set_ylim(ax1.get_ylim())
예제 #3
0
파일: pcc_dpr_bb2.py 프로젝트: vecoveco/gpm
plt.ylim(-4700, -3700)
plt.grid()
plt.show()

# Radarausschnitt
dpr_pp_surf[np.where(r > radius)]=np.nan


fig = plt.figure(figsize=(12,10))
zzz = str(jahr)+'-'+str(monat)+'-'+str(tag)+'--'+str(stunde)+':'+str(minute)+' UTC'
fig.suptitle(zzz + ' UTC')

###################
ax1 = fig.add_subplot(221, aspect='auto')
#plt.subplot(2,2,1)
plt.pcolormesh(dpr_lon, dpr_lat,np.ma.masked_invalid(dpr_pp_surf), vmin=np.nanmin(pp_surf), vmax=np.nanmax(pp_surf), cmap=get_miub_cmap())
cbar = plt.colorbar()
cbar.set_label('Ref. in dbz')
plot_borders(ax1)
plot_radar(bonnlon, bonnlat, ax1, reproject=False, cband=False,col='black')

#ax1 = plt.scatter(lon_ppi, lat_ppi, c=50 ,s=50, color='red')

plt.scatter(k1,l1, c=50 ,s=50, color='red')
plt.scatter(k2,l1, c=50 ,s=50, color='red')
plt.scatter(k1,l2, c=50 ,s=50, color='red')
plt.scatter(k2,l2, c=50 ,s=50, color='red')

plt.grid()
plt.xlim(-420,390)
plt.ylim(-4700, -3700)
예제 #4
0
def plot_all():
    ax1 = fig.add_subplot(231, aspect='equal')
    plt.pcolormesh(x,
                   y,
                   rwdata,
                   cmap=get_miub_cmap(),
                   vmin=0.1,
                   vmax=50,
                   zorder=2)
    cb = plt.colorbar(shrink=0.5)
    cb.set_label("Ref (dbz)", fontsize=ff)
    #cb.set_label("Rainrate (mm/h)",fontsize=ff)
    cb.ax.tick_params(labelsize=ff)
    plot_borders(ax1)
    plt.title('RADOLAN Ref: \n' + '20' + str(pfad_radolan[-20:-18]) + '-' +
              str(pfad_radolan[-18:-16]) + '-' + str(pfad_radolan[-16:-14]) +
              ' T: ' + str(pfad_radolan[-14:-10]) + '00 UTC',
              fontsize=ff)  #RW Product Polar Stereo

    plt.xlabel("x [km] ", fontsize=ff)
    plt.ylabel("y [km]  ", fontsize=ff)
    plt.grid(color='r')
    plt.xlim(-420, 390)
    plt.ylim(-4700, -3700)

    ax2 = fig.add_subplot(232, aspect='equal')
    pm2 = plt.pcolormesh(gprof_x,
                         gprof_y,
                         np.ma.masked_invalid(gprof_pp[latstart:latend]),
                         cmap=my_cmap,
                         vmin=0.1,
                         vmax=10,
                         zorder=2)

    cb = plt.colorbar(shrink=0.5)
    cb.set_label("Rainrate (mm/h)", fontsize=ff)
    cb.ax.tick_params(labelsize=ff)
    plt.xlabel("x [km] ", fontsize=ff)
    plt.ylabel("y [km]  ", fontsize=ff)
    plt.title('GPM GPROF Rainrate: \n' + str(pfad_gprof_g[66:70]) + '-' +
              str(pfad_gprof_g[70:72]) + '-' + str(pfad_gprof_g[72:74]) +
              ' T: ' + str(pfad_gprof_g[76:82]) + '-' +
              str(pfad_gprof_g[84:90]) + ' UTC',
              fontsize=ff)
    plot_borders(ax2)
    plt.xticks(fontsize=ff)
    plt.yticks(fontsize=ff)
    plt.grid(color='r')
    plt.tight_layout()
    ax2.set_xlim(ax1.get_xlim())
    ax2.set_ylim(ax1.get_ylim())

    ax37 = fig.add_subplot(233, aspect='equal')
    plt.pcolormesh(dpr_x,
                   dpr_y,
                   np.ma.masked_invalid(dpr_pp[latstartd:latendd]),
                   cmap=my_cmap,
                   vmin=0.1,
                   vmax=10,
                   zorder=2)

    cb = plt.colorbar(shrink=0.5)
    cb.set_label("Rainrate (mm/h)", fontsize=ff)
    cb.ax.tick_params(labelsize=ff)
    plt.xlabel("x [km] ", fontsize=ff)
    plt.ylabel("y [km]  ", fontsize=ff)
    plt.title('GPM DPR Rainrate: \n' + str(pfad_gprof_g[66:70]) + '-' +
              str(pfad_gprof_g[70:72]) + '-' + str(pfad_gprof_g[72:74]) +
              ' T: ' + str(pfad_gprof_g[76:82]) + '-' +
              str(pfad_gprof_g[84:90]) + ' UTC',
              fontsize=ff)
    plot_borders(ax37)
    plt.xticks(fontsize=ff)
    plt.yticks(fontsize=ff)
    plt.grid(color='r')
    ax37.set_xlim(ax1.get_xlim())
    ax37.set_ylim(ax1.get_ylim())

    ##################################
    ax29 = fig.add_subplot(234, aspect='equal')
    #pm2 = plt.pcolormesh(gprof_x, gprof_y,np.ma.masked_invalid(gprof_pp[latstart:latend]),
    #                     cmap=my_cmap,vmin=0.1,vmax=10, zorder=2)
    pm2 = plt.pcolormesh(gprof_x,
                         gprof_y,
                         np.ma.masked_invalid(gprof_snow[latstart:latend]),
                         cmap=get_miub_cmap(),
                         vmin=0,
                         vmax=5,
                         zorder=1)

    cb = plt.colorbar(shrink=0.5)
    cb.set_label("SnowCoverIndex ", fontsize=ff)
    cb.ax.tick_params(labelsize=ff)
    plt.xlabel("x [km] ", fontsize=ff)
    plt.ylabel("y [km]  ", fontsize=ff)
    plt.title('GPM GPROF SnowCoverIndex: \n' + str(pfad_gprof_g[66:70]) + '-' +
              str(pfad_gprof_g[70:72]) + '-' + str(pfad_gprof_g[72:74]) +
              ' T: ' + str(pfad_gprof_g[76:82]) + '-' +
              str(pfad_gprof_g[84:90]) + ' UTC',
              fontsize=ff)
    plot_borders(ax29)
    plt.xticks(fontsize=ff)
    plt.yticks(fontsize=ff)
    plt.grid(color='r')
    #plt.tight_layout()
    ax29.set_xlim(ax1.get_xlim())
    ax29.set_ylim(ax1.get_ylim())

    from pcc import get_2_cmap
    ax28 = fig.add_subplot(235, aspect='equal')
    pm2 = plt.pcolormesh(gprof_x,
                         gprof_y,
                         np.ma.masked_invalid(gprof_l[latstart:latend]),
                         cmap=get_2_cmap(),
                         vmin=0,
                         vmax=1,
                         zorder=1)

    cb = plt.colorbar(shrink=0.5)
    cb.set_label("LiquidWaterFraction", fontsize=ff)
    cb.ax.tick_params(labelsize=ff)
    plt.xlabel("x [km] ", fontsize=ff)
    plt.ylabel("y [km]  ", fontsize=ff)
    plt.title('GPM GPROF LiquidWaterFraction: \n' + str(pfad_gprof_g[66:70]) +
              '-' + str(pfad_gprof_g[70:72]) + '-' + str(pfad_gprof_g[72:74]) +
              ' T: ' + str(pfad_gprof_g[76:82]) + '-' +
              str(pfad_gprof_g[84:90]) + ' UTC',
              fontsize=ff)
    plot_borders(ax28)
    plt.xticks(fontsize=ff)
    plt.yticks(fontsize=ff)
    plt.grid(color='r')
    #plt.tight_layout()
    ax28.set_xlim(ax1.get_xlim())
    ax28.set_ylim(ax1.get_ylim())
예제 #5
0
result = np.ma.masked_invalid(result)

rrr = result.reshape(gpm_x.shape)

Z = wradlib.trafo.idecibel(rwdata)
rwdata = wradlib.zr.z2r(Z, a=200., b=1.6)

Zr = wradlib.trafo.idecibel(rrr)
rrr = wradlib.zr.z2r(Zr, a=200., b=1.6)
#rrr[rrr<=TH_ka]=np.NaN
#rrr[rrr==-9999.0]=np.nan

from pcc import plot_radar

from pcc import get_miub_cmap
my_cmap2 = get_miub_cmap()

######################################################################### PLOT
###########################################################################----
m = 176  #176
mm = 0.125  #0.125
h = np.arange(m, 0, -1) * mm  # Bei 88 500m und bei 176 ist es 250m

cut = 22  #22 bei bon201410 NS
node[:, cut]
nn = (m - node[:, cut]) * mm

fig = plt.figure(figsize=(12, 12))

fft = 15.0
#figtextpositionen
예제 #6
0
from scipy import stats, linspace
import wradlib as wrl
from osgeo import osr
from pcc import get_time_of_gpm
from pcc import cut_the_swath

## Landgrenzenfunktion
## -------------------
from pcc import boxpol_pos
bonn_pos = boxpol_pos()
bx, by = bonn_pos['gkx_ppi'], bonn_pos['gky_ppi']
bonnlat, bonnlon = bonn_pos['lat_ppi'], bonn_pos['lon_ppi']
from pcc import plot_borders
from pcc import plot_radar
from pcc import get_miub_cmap
my_cmap = get_miub_cmap()

from pcc import get_my_cmap
my_cmap2 = get_my_cmap()

GGG = []
RRR = []

# Ref.Threshold nach RADOLAN_Goudenhoofdt_2016
TH_ref = 12#18#7

'''
zz = np.array([20140609, 20140610, 20140629, 20140826, 20140921, 20141007,
               20141016, 20150128, 20150227, 20150402, 20150427, 20160405,
               20160607, 20160805, 20160904, 20160917, 20161001, 20161024,
               20170113, 20170203,20170223])
예제 #7
0
파일: pcc__dpr.py 프로젝트: vecoveco/gpm
hhh = np.array(pp.shape[0]*pp.shape[1]*list(hdpr))
ppp = pp.reshape(pp.shape[0]*pp.shape[1]*pp.shape[2])

maske = ~np.isnan(hhh) & ~np.isnan(ppp)


#cut1, cut2 = 24, 3254

fig = plt.figure(figsize=(14,12))
#zzz = str(jahr)+'-'+str(monat)+'-'+str(tag)+'--'+str(stunde)+':'+str(minute)+' UTC'
#fig.suptitle(zzz + ' UTC')

###################
ax1 = fig.add_subplot(221, aspect='auto')
#plt.subplot(2,2,1)
plt.pcolormesh(dpr_lon, dpr_lat,np.ma.masked_invalid(dpr_pp_surf), vmin=0, vmax=50, cmap=get_miub_cmap())
cbar = plt.colorbar()
cbar.set_label('Ref. in dbz')
plot_borders(ax1)
plot_radar(blon, blat, ax1, reproject=True, cband=False,col='black')
plt.plot(dpr_lon[:,0],dpr_lat[:,0], color='black',lw=1)
plt.plot(dpr_lon[:,-1],dpr_lat[:,-1], color='black',lw=1)
plt.plot(dpr_lon[:,dpr_lon.shape[1]/2],dpr_lat[:,dpr_lon.shape[1]/2], color='black',lw=1, ls='--')
plt.plot(dpr_lon[:,cut1],dpr_lat[:,cut1], color='red',lw=2,ls='--')
plt.plot(dpr_lon[cut2,:],dpr_lat[cut2,:], color='green',lw=2,ls='--')


ax1 = plt.scatter(bonnlon, bonnlat, c=50 ,s=50, color='red')


plt.grid()
예제 #8
0
    lon_ppi = attrs['VOL']['Longitude']
    lat_ppi = attrs['VOL']['Latitude']
    alt_ppi = attrs['VOL']['Height']

    from mpl_toolkits.axisartist.grid_finder import FixedLocator, DictFormatter
    # reading in GAMIC hdf5 file

    mask_ind = np.where(data <= np.nanmin(zh))
    zh[mask_ind] = np.nan
    ma = np.ma.array(zh, mask=np.isnan(zh))


    fft = 15
    import pcc as pcc
    cmap2 = pcc.get_miub_cmap()

    sb = [231,232,233,234,235,236]
    radpar = [zh, zv, zdr,phidp, rhohv, kdp]
    vmini = [0, 0, -1, -100, .7,-0.75]
    vmaxi = [50, 50, 3, 50, .99, 2]
    name = ['Zh (dBZ)','Zv (dBZ)','Zdr (db)','PhiDP','RhoHV (/)', r"kdp ( $^\circ$ $km^{-1}$)"]
    #cc = [cmap2, cmap2, cmap2, 'jet', 'jet', 'jet']
    fig = plt.figure(figsize=(16,12))

    for iii in range(len(radpar)):

        cgax, caax, paax, pm, xxx, yyy = pcc.pcc_plot_cg_rhi(radpar[iii], r=r,
                                                             th=th,
                                                             rf=1e3,
                                                             subplot=sb[iii],
예제 #9
0
#cut1, cut2 = 24, 3254

fig = plt.figure(figsize=(14, 12))
#zzz = str(jahr)+'-'+str(monat)+'-'+str(tag)+'--'+str(stunde)+':'+str(minute)+' UTC'
#fig.suptitle(zzz + ' UTC')

###################
ax1 = fig.add_subplot(221, aspect='auto')
#plt.subplot(2,2,1)
plt.pcolormesh(dpr_lon,
               dpr_lat,
               np.ma.masked_invalid(dpr_pp_surf),
               vmin=0,
               vmax=50,
               cmap=get_miub_cmap())
cbar = plt.colorbar()
cbar.set_label('Ref. in dbz')
plot_borders(ax1)
plot_radar(blon, blat, ax1, reproject=True, cband=False, col='black')
plt.plot(dpr_lon[:, 0], dpr_lat[:, 0], color='black', lw=1)
plt.plot(dpr_lon[:, -1], dpr_lat[:, -1], color='black', lw=1)
plt.plot(dpr_lon[:, dpr_lon.shape[1] / 2],
         dpr_lat[:, dpr_lon.shape[1] / 2],
         color='black',
         lw=1,
         ls='--')
plt.plot(dpr_lon[:, cut1], dpr_lat[:, cut1], color='red', lw=2, ls='--')
plt.plot(dpr_lon[cut2, :], dpr_lat[cut2, :], color='green', lw=2, ls='--')

ax1 = plt.scatter(bonnlon, bonnlat, c=50, s=50, color='red')
예제 #10
0
파일: exampel.py 프로젝트: vecoveco/gpm
fft=15
lll = np.arange(-30,60,1)

cbname = 'Rainrate (mm/h)'
cbname2 = 'Reflectivity (dBZ)'
from pcc import boxpol_pos
bonn_pos = boxpol_pos()
bx, by = bonn_pos['gkx_ppi'], bonn_pos['gky_ppi']
boxlat, boxlon = bonn_pos['lat_ppi'], bonn_pos['lon_ppi']

from pcc import plot_borders
from pcc import plot_radar
from pcc import get_my_cmap
from pcc import get_miub_cmap
my_cmap = get_my_cmap()
my_cmap2 = get_miub_cmap()

ax1 = fig.add_subplot(2,3,1, aspect='equal')
pm1 = plt.pcolormesh(sf_ku_x, sf_ku_y,np.ma.masked_invalid(sf_ku_z),
                     cmap=my_cmap2,
                     vmin=0,
                     vmax=50
                     )
plt.plot(ka_x[:,0],ka_y[:,0], color='gray',lw=1)
plt.plot(ka_x[:,-1],ka_y[:,-1], color='gray',lw=1)
plt.plot(ku_x[:,0],ku_y[:,0], color='gray',lw=1)
plt.plot(ku_x[:,-1],ku_y[:,-1], color='gray',lw=1)

cb = plt.colorbar(shrink=0.5,extend='max')
cb.set_label(cbname,fontsize=fft)
cb.ax.tick_params(labelsize=fft)
예제 #11
0
from pcc import get_miub_cmap
from pcc import plot_radar

gridded[np.where(x>-150)]=np.nan
gridded[np.where(x<-300)]=np.nan
gridded[np.where(y<-4325)]=np.nan
gridded[np.where(y>-4150)]=np.nan

rwdata[np.where(x>-150)]=np.nan
rwdata[np.where(x<-300)]=np.nan
rwdata[np.where(y<-4325)]=np.nan
rwdata[np.where(y>-4150)]=np.nan

plt.subplot(2,2,3)
#wradlib.vis.plot_ppi(zh,r,az, vmin=0, vmax=50)
plt.pcolormesh(bx, by,zh, cmap=get_miub_cmap(), vmin=0, vmax=50)
plt.scatter(gkx, gky, s=25, color='black')
plt.grid(color='black')
plt.title('BoXPol')

plt.subplot(2,2,2)
plt.pcolormesh(x,y,rwdata, vmin=0, vmax=50, cmap=get_miub_cmap())
plt.scatter(gkx, gky, s=25, color='black')
plt.grid(color='black')
plt.title('Radolan')

plt.xlim(-350, -100)
plt.ylim(-4400, -4100)

plt.subplot(2,2,1)
plt.pcolormesh(x,y,gridded, vmin=0, vmax=50, cmap=get_miub_cmap())
예제 #12
0
def gpm_bb(dates, pn=0):
    zt = dates

    pfad = ('/automount/ags/velibor/gpmdata/dpr/2A.GPM.DPR.V6-20160118.' + zt +
            '*.HDF5')
    dpr_pfad = sorted(glob.glob(pfad))[pn]

    print dpr_pfad

    scan = 'NS'  #or MS

    # Einlesen
    dpr = h5py.File(dpr_pfad, 'r')
    dpr_lat = np.array(dpr[scan]['Latitude'])
    dpr_lon = np.array(dpr[scan]['Longitude'])
    dpr_pp = np.array(dpr[scan]['SLV']['zFactorCorrected'])
    dpr_pp[dpr_pp < 0] = np.nan

    dpr_pp_surf = np.array(dpr[scan]['SLV']['zFactorCorrectedNearSurface'])
    dpr_pp_surf[dpr_pp_surf < 0] = np.nan

    dpr_bbh = np.array(dpr[scan]['CSF']['heightBB'], dtype=float)
    dpr_bbh[dpr_bbh < 0] = np.nan
    dpr_bbw = np.array(dpr[scan]['CSF']['widthBB'], dtype=float)
    dpr_bbw[dpr_bbw < 0] = np.nan

    dpr_time = dpr['NS']['ScanTime']

    proj_stereo = wrl.georef.create_osr("dwd-radolan")
    proj_wgs = osr.SpatialReference()
    proj_wgs.ImportFromEPSG(4326)

    from pcc import boxpol_pos
    bonn_pos = boxpol_pos()
    bx, by = bonn_pos['gkx_ppi'], bonn_pos['gky_ppi']
    bonnlat, bonnlon = bonn_pos['lat_ppi'], bonn_pos['lon_ppi']
    blat, blon = bonn_pos['lat_ppi'], bonn_pos['lon_ppi']

    dpr_lon, dpr_lat = wradlib.georef.reproject(dpr_lon,
                                                dpr_lat,
                                                projection_target=proj_stereo,
                                                projection_source=proj_wgs)
    bonnlon, bonnlat = wradlib.georef.reproject(bonnlon,
                                                bonnlat,
                                                projection_target=proj_stereo,
                                                projection_source=proj_wgs)

    print '-------->', bonnlon, bonnlat

    lon0, lat0, radius = bonnlon, bonnlat, 100
    r = np.sqrt((dpr_lat - lat0)**2 + (dpr_lon - lon0)**2)
    position = r < radius

    lat = dpr_lat[position]
    lon = dpr_lon[position]

    dpr_pp[np.where(r > radius)] = np.nan
    pp = dpr_pp

    dpr_pp_surf[np.where(r > radius)] = np.nan

    dpr_bbw[np.where(r > radius)] = np.nan
    dpr_bbh[np.where(r > radius)] = np.nan

    # Zeitstempel erstellen
    l2, l1 = -190, -250
    k2, k1 = -4210, -4270
    # BoxPol
    #l2, l1 = -110, -320
    #k2, k1 = -4130, -4340
    #
    pos = np.where((dpr_lat < k2) & (dpr_lat > k1) & (dpr_lon < l2)
                   & (dpr_lon > l1))

    stunde = np.array(dpr_time['Hour'])[pos[0]][0]
    minute = np.array(dpr_time['Minute'])[pos[0]][0]
    sekunde = np.array(dpr_time['Second'])[pos[0]][0]

    jahr = np.array(dpr_time['Year'])[pos[0]][0]
    monat = np.array(dpr_time['Month'])[pos[0]][0]
    tag = np.array(dpr_time['DayOfMonth'])[pos[0]][0]
    zeit = (str(jahr) + '.' + str(monat) + '.' + str(tag) + ' -- ' +
            str(stunde) + ':' + str(minute) + ':' + str(sekunde))
    print zeit

    h = np.arange(150, 4800, 150)
    if scan == 'HS':
        hdpr = 1000 * (np.arange(88, 0, -1) * 0.250)

    else:
        hdpr = 1000 * (np.arange(176, 0, -1) * 0.125)

    hhh = np.array(pp.shape[0] * pp.shape[1] * list(hdpr))
    ppp = pp.reshape(pp.shape[0] * pp.shape[1] * pp.shape[2])

    maske = ~np.isnan(hhh) & ~np.isnan(ppp)

    fig = plt.figure(figsize=(14, 12))
    zzz = str(jahr) + '-' + str(monat) + '-' + str(tag) + '--' + str(
        stunde) + ':' + str(minute) + ' UTC'
    fig.suptitle(zzz + ' UTC')

    ###################
    ax1 = fig.add_subplot(221, aspect='auto')
    #plt.subplot(2,2,1)
    plt.pcolormesh(dpr_lon,
                   dpr_lat,
                   np.ma.masked_invalid(dpr_pp_surf),
                   vmin=np.nanmin(dpr_pp_surf),
                   vmax=np.nanmax(dpr_pp_surf),
                   cmap=get_miub_cmap())
    cbar = plt.colorbar()
    cbar.set_label('Ref. in dbz')
    plot_borders(ax1)
    plot_radar(blon, blat, ax1, reproject=True, cband=False, col='black')
    plt.plot(dpr_lon[:, 0], dpr_lat[:, 0], color='black', lw=1)
    plt.plot(dpr_lon[:, -1], dpr_lat[:, -1], color='black', lw=1)
    plt.plot(dpr_lon[:, dpr_lon.shape[1] / 2],
             dpr_lat[:, dpr_lon.shape[1] / 2],
             color='black',
             lw=1,
             ls='--')

    ax1 = plt.scatter(bonnlon, bonnlat, c=50, s=50, color='red')

    plt.grid()
    plt.xlim(-420, 390)
    plt.ylim(-4700, -3700)

    ##################
    ax2 = fig.add_subplot(222, aspect='auto')
    plt.hist2d(ppp[maske], hhh[maske], bins=30, cmap=get_my_cmap(), vmin=0.1)
    print pp.shape

    #plt.plot(np.nanmax(pp[:,:],axis=0),hdpr, color='red', lw=2)
    plt.plot(np.nanmean(pp[:, :, :], axis=(0, 1)), hdpr, color='red', lw=2)
    plt.plot(np.nanmedian(pp[:, :, :], axis=(0, 1)), hdpr, color='green', lw=2)
    cbar = plt.colorbar()
    cbar.set_label('#')

    plt.title('DPR Ref. in Box')
    plt.xlabel('Reflectivity in dBZ')
    plt.grid()
    plt.xticks()
    plt.yticks()

    #plt.ylim(0,6000)
    #plt.xlim(0,50)
    ##################
    #print np.uniforn(bbh)
    #mini = np.nanmin(bbh[bbh>0])

    ax3 = fig.add_subplot(223, aspect='auto')
    plt.pcolormesh(dpr_lon,
                   dpr_lat,
                   np.ma.masked_invalid(dpr_bbh),
                   vmin=np.nanmin(dpr_bbh[dpr_bbh > 0]),
                   vmax=np.nanmax(dpr_bbh),
                   cmap='jet')
    cbar = plt.colorbar()
    cbar.set_label('BB Hight in m')

    plot_borders(ax3)
    plot_radar(blon, blat, ax3, reproject=True, cband=False, col='black')
    plt.plot(dpr_lon[:, 0], dpr_lat[:, 0], color='black', lw=1)
    plt.plot(dpr_lon[:, -1], dpr_lat[:, -1], color='black', lw=1)
    plt.plot(dpr_lon[:, dpr_lon.shape[1] / 2],
             dpr_lat[:, dpr_lon.shape[1] / 2],
             color='black',
             lw=1,
             ls='--')

    ax1 = plt.scatter(bonnlon, bonnlat, c=50, s=50, color='red')
    plt.grid()
    #plt.title('BB Hight')
    plt.xlim(-420, 390)
    plt.ylim(-4700, -3700)

    ##################
    ax4 = fig.add_subplot(224, aspect='auto')
    plt.pcolormesh(dpr_lon,
                   dpr_lat,
                   np.ma.masked_invalid(dpr_bbw),
                   vmin=np.nanmin(dpr_bbw[dpr_bbh > 0]),
                   vmax=np.nanmax(dpr_bbw),
                   cmap='jet')
    cbar = plt.colorbar()
    cbar.set_label('BB Width in m')

    plot_borders(ax4)
    plot_radar(blon, blat, ax4, reproject=True, cband=False, col='black')
    plt.plot(dpr_lon[:, 0], dpr_lat[:, 0], color='black', lw=1)
    plt.plot(dpr_lon[:, -1], dpr_lat[:, -1], color='black', lw=1)
    plt.plot(dpr_lon[:, dpr_lon.shape[1] / 2],
             dpr_lat[:, dpr_lon.shape[1] / 2],
             color='black',
             lw=1,
             ls='--')

    ax1 = plt.scatter(bonnlon, bonnlat, c=50, s=50, color='red')
    plt.grid()
    #plt.title('BB Width')
    plt.xlim(-420, 390)
    plt.ylim(-4700, -3700)

    plt.tight_layout()
    plt.show()