source: trunk/LMDZ.PLUTO/util/script_figures/map_alb_ini.py @ 3823

Last change on this file since 3823 was 3823, checked in by afalco, 5 days ago

Pluto: added some python scripts for visualization.
AF

  • Property svn:executable set to *
File size: 3.5 KB
Line 
1#! /usr/bin/env python
2from ppclass import pp
3from    netCDF4               import    Dataset
4from    numpy                 import    *
5import  numpy                 as        np
6import  matplotlib.pyplot     as        mpl
7from matplotlib.cm import get_cmap
8import pylab
9from matplotlib import ticker
10import matplotlib.colors as mcolors
11from mpl_toolkits.basemap import Basemap
12
13############################
14filename="diagfi2015.nc"
15nb_dataset=1  #change vect as well
16tint=["0,0.001"] #Time must be as written in the input file
17#zint=["0"] #alt in km
18#xarea="-180,179"
19#yarea="-90,90"
20#step=5  #step between each bin
21var="albedo" #variable
22var2="phisinit"
23############################
24
25nc=Dataset(filename)
26lat=nc.variables["lat"][:]
27lon=nc.variables["lon"][:]
28
29myvar = pp(file=filename,var=var,t=tint,compute="mean").getf()  # get data to be changed according to selected variable
30myvar2 = pp(file=filename,var=var2,t=tint,compute="mean").getf()  # get data to be changed according to selected variable
31print(('shape var1 =',shape(myvar)))
32print(('shape lat = ',shape(lat)))
33print(('lat = ',lat))
34
35
36myvar=myvar
37myvar2=myvar2/0.6192/1000.  # geopotential ==> altitude
38
39################
40# colorbar
41def make_colormap(seq):
42    """Return a LinearSegmentedColormap
43    seq: a sequence of floats and RGB-tuples. The floats should be increasing
44    and in the interval (0,1).
45    """
46
47    seq = [(None,) * 3, 0.0] + list(seq) + [1.0, (None,) * 3]
48    print(seq)
49    cdict = {'red': [], 'green': [], 'blue': []}
50    for i, item in enumerate(seq):
51        if isinstance(item, float):
52            r1, g1, b1 = seq[i - 1]
53            r2, g2, b2 = seq[i + 1]
54            cdict['red'].append([item, r1, r2])
55            cdict['green'].append([item, g1, g2])
56            cdict['blue'].append([item, b1, b2])
57    print(cdict)
58    return mcolors.LinearSegmentedColormap('CustomMap', cdict)
59######
60c = mcolors.ColorConverter().to_rgb
61#rvb1 = make_colormap([c('red'), c('violet'), 0.33, c('violet'), c('blue'), 0.66, c('blue')])
62rvb1 = make_colormap([c('SaddleBrown'), c('violet'), 0.33, c('violet'), c('white'), 0.66, c('white')])
63
64pp=(0.5450980392156862-0.15, 0.27058823529411763-0.05*3, 0.07450980392156863-0.01)
65rvb1 = make_colormap([pp,0.33, c('indianred'),0.71, c('lightcyan'),0.99,c('lightsalmon')])
66#rvb1 = make_colormap([c('saddlebrown'),0.33, c('indianred'),0.66, c('white')])
67######
68
69div=3.     
70nbticksbar=3.
71#pal=get_cmap(name="Blues")     
72pal=get_cmap(name="gist_earth_r")
73yticks=[-90,-60,-30,0,30,60,90]
74#xticks=[-180,-120,-60,0,60,120,180]
75xticks=[0,60,120,180,240,300,360]
76
77# changer les longitudes pour mettre TR au centre
78vec=shape(myvar)
79myvarbis=np.zeros(vec,dtype='f')
80myvar2bis=np.zeros(vec,dtype='f')
81# i lat : pas de changement
82# j lon :
83for i in range(vec[0]):
84    for j in range(vec[1]):
85        if j < int(vec[1]/2.) :
86           myvarbis[i,j]=myvar[i,j+int(vec[1]/2)]
87           myvar2bis[i,j]=myvar2[i,j+int(vec[1]/2)]
88        else: 
89           myvarbis[i,j]=myvar[i,j-int(vec[1]/2)]
90           myvar2bis[i,j]=myvar2[i,j-int(vec[1]/2)]
91
92lon=lon+180.
93
94
95mpl.figure(figsize=(17, 10))
96
97c=mpl.contour(lon, lat, myvar2bis, 10,levels=[-3,-2,-1,-0.5,-0.2], colors = 'k', linewidths = 0.5)
98mpl.clabel(c, fmt='%2.1f', colors='k', fontsize=14)
99
100mpl.imshow(myvarbis,extent=[0,360,-90,90],cmap=rvb1) #,extend='both')
101
102#mpl.colorbar()
103mpl.ylabel('Latitude (deg)',labelpad=20,fontsize=29)
104mpl.xlabel('Longitude (deg)',labelpad=20, fontsize=29)
105mpl.xticks(xticks,fontsize=26)
106mpl.yticks(yticks,fontsize=26)
107mpl.grid()
108mpl.savefig('mapalbini.eps',dpi=200)
109mpl.savefig('mapalbini.png',dpi=200)
110mpl.show()
111
112 
Note: See TracBrowser for help on using the repository browser.