source: trunk/LMDZ.PLUTO/util/script_figures/waves/temp_anomaly.py @ 3831

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

Pluto: added some python scripts for visualization.
AF

  • Property svn:executable set to *
File size: 2.8 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 colors
10import datetime
11from mpl_toolkits.basemap import Basemap, shiftgrid
12from FV3_utils import *
13
14############################
15step_begin = 2000
16step_end = 2015
17
18var="temperature" #variable
19# tint=["30,37"] #Time must be as written in the input file
20tint=None #Time must be as written in the input file
21xarea="0,1"
22yarea="0,1"
23
24prefix="Xhistins"
25suffix="_A.nc"
26filename=f"../../{prefix}{step_begin}{suffix}"
27nc1=Dataset(filename)
28
29lat=getvar(nc1,"latitude")
30lon=getvar(nc1,"longitude")
31alt=getvar(nc1,"altitude")
32# tim=getvar(nc1,"Time")
33
34myvar=getvar(nc1,var,tint,xarea,yarea)
35myvar=myvar[:,:,0,0]
36print((shape(myvar)))
37
38# nb of day
39nbday=3
40
41# nb of time:
42nbtime=size(myvar[:,0])
43print(nbtime)
44
45# nb time step /day
46nbstep=50
47
48# nb alt
49nbalt=size(alt)
50print(nbalt)
51
52#meanvar=np.zeros((nbday,nbalt),dtype='f')
53meanvar=np.zeros((nbtime-2*nbstep,nbalt),dtype='f')
54anovar=np.zeros((nbtime-2*nbstep,nbalt),dtype='f')
55
56# pour chaque jour : calcul moyenne diurne
57for i in range(nbtime-2*nbstep):
58    #i=i+nbstep/2
59    meanvar[i,:]=np.mean(myvar[nbstep//2+i:nbstep+nbstep//2+i,:],axis=0)
60#for i in range(nbday):
61#    meanvar[i,:]=np.mean(myvar[0:8,:],axis=0)
62
63# pour chaque time : calcul anomaly le dernier time est pour autre jour
64for i in range(nbtime-2*nbstep):
65    #index=int(i/nbstep)
66    anovar[i,:]=myvar[nbstep+i,:]-meanvar[i,:]
67
68print((meanvar[:,:]))
69print((myvar[0,:]))
70# print((myvar[8,:]))
71
72
73mpl.figure(figsize=(20, 10))
74
75font=26
76
77#pal=get_cmap(name="RdYlBu_r")
78# pal=get_cmap(name="Spectral_r")
79lev=np.linspace(-0.1,0.1,10)
80
81#xticks=[-90,-60,-30,0,30,60,90]
82#yticks=np.linspace(0,240,9)
83tim=np.arange(nbtime-2*nbstep)/floor(nbstep)
84#tim=np.arange(nbtime)/nbstep
85
86print((shape(tim), shape(alt),shape(anovar)))
87
88CF=mpl.contourf(tim,alt,np.transpose(anovar),lev,cmap="coolwarm",extend='both')
89cbar=mpl.colorbar(CF,shrink=1, format="%1.2f")
90cbar.ax.set_title("[K]",y=1.04,fontsize=font)
91for t in cbar.ax.get_yticklabels():
92      t.set_fontsize(font)
93
94#vect=lev
95#CS=mpl.contour(lat,alt,myvar,vect,colors='k',linewidths=0.5)
96#### inline=1 : values over the line
97#mpl.clabel(CS, inline=1, fontsize=20, fmt='%1.0f',inline_spacing=1)
98
99#mpl.title('Latitude ='+str(tintstr[i]),fontsize=font)
100mpl.ylabel('Altitude (km)',labelpad=10,fontsize=font)
101mpl.xlabel('Time (Pluto days)',labelpad=10, fontsize=font)
102#mpl.xticks(xticks,fontsize=font)
103mpl.xticks(fontsize=font)
104#mpl.yticks(yticks,fontsize=font)
105mpl.yticks(fontsize=font)
106pylab.ylim([0,150000])
107# pylab.ylim([0,np.max(alt)])
108
109mpl.savefig('tempanom.eps',dpi=200)
110mpl.savefig('tempanom.png',dpi=200)
111mpl.show()
112
113
114
115
Note: See TracBrowser for help on using the repository browser.