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

Last change on this file since 3833 was 3833, checked in by afalco, 41 hours ago

Pluto: updated plots scripts.
Fixed some issues with reading XIOS, etc.
Included display_netcdf.py tool from Mars PCM.
AF

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