Skip to content
Snippets Groups Projects
Commit 6e921369 authored by jacques.grelet_ird.fr's avatar jacques.grelet_ird.fr
Browse files

Merge branch 'master' of m:/git/pirata

parents f865945d 94b79fa7
No related branches found
No related tags found
No related merge requests found
import netCDF4 as nc
from netCDF4 import Dataset
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.dates as dplt
from pylab import *
import os, sys
mask =
Dataset('/ccc/scratch/cont005/legos/nivertfl/VALIDATION_F01/INPUT_SAISON/HOFF-MULLER/total.nc',
mode='r')
trop =
Dataset('/ccc/scratch/cont005/legos/nivertfl/VALIDATION_F01/INPUT_SAISON/HOFF-MULLER/sst_tropflux_1d_2000-regrid.nc',
mode='r')
mask1 = mask.variables['votemper'][:,0,:,:]
trop1 = trop.variables['sst'][:,:,:]
zbla=np.zeros(shape=(301,1))
zblo=np.zeros(shape=(301,1))
zbla2=np.zeros(shape=(301,366))
zblo2=np.zeros(shape=(301,366))
time = mask.variables['time_counter'][:]
lon = mask.variables['nav_lon'][0,:]
mask1[mask1 == 0] = np.NaN
for y in range(0,365):
for x in range(0,300):
result1= np.nanmean(mask1[y,78:86,x])
zbla[x,:]=result1
zbla3=np.squeeze(zbla)
zbla2[:,y]=zbla3
zbla2=transpose(zbla2)
for y in range(0,365):
for x in range(0,300):
result2= np.nanmean(trop1[y,78:86,x])
zblo[x,:]=result2
zblo3=np.squeeze(zblo)
zblo2[:,y]=zblo3
zblo2=transpose(zblo2)
plt.clf()
units=mask.variables['time_counter'].units
from datetime import datetime
buf=mask.variables['time_centered'][:];
time=list()
time.extend(buf.tolist())
dates=nc.num2date(time,units,'gregorian').tolist()
nt=len(dates)
im1 = plt.figure(figsize=(6, 18))
im1 = plt.contourf(lon,dates,zbla2, np.linspace(23,30,21),
extend='both', cmap=cm.RdBu_r)
plt.colorbar(im1,orientation='horizontal')
im1 = plt.title("Modele annee 2000")
plt.savefig('modele2000.png')
plt.clf()
im2 = plt.figure(figsize=(6, 18))
im2 = plt.contourf(lon,dates,zblo2, np.linspace(23,30,21),
extend='both', cmap=cm.RdBu_r)
plt.colorbar(im2,orientation='horizontal')
im2 = plt.title("TropFlux annee 2000")
plt.savefig('obs2000.png')
from netCDF4 import Dataset
import numpy as np
import matplotlib.pyplot as plt
from pylab import *
file1 =
'/ccc/scratch/cont005/legos/nivertfl/TEST_VALIDATION_TROPFLUX/MOYENNE-SAISON/grid_T_saison.nc'
file2 =
'/ccc/scratch/cont005/legos/nivertfl/TEST_VALIDATION_TROPFLUX/MOYENNE-SAISON/grid_U_saison.nc'
file3 =
'/ccc/scratch/cont005/legos/nivertfl/TEST_VALIDATION_TROPFLUX/MOYENNE-SAISON/grid_V_saison.nc'
file4 =
'/ccc/scratch/cont005/legos/nivertfl/TEST_VALIDATION_TROPFLUX/MOYENNE-SAISON/MYWRF3D_regrid-saison.nc'
trop1 =
'/ccc/scratch/cont005/legos/nivertfl/TEST_VALIDATION_TROPFLUX/MOYENNE-SAISON/sst_tropflux_1d_2000-regrid-saison.nc'
trop2 =
'/ccc/scratch/cont005/legos/nivertfl/TEST_VALIDATION_TROPFLUX/MOYENNE-SAISON/taux_tropflux_1d_2000-regrid-saison.nc'
trop3 =
'/ccc/scratch/cont005/legos/nivertfl/TEST_VALIDATION_TROPFLUX/MOYENNE-SAISON/tauy_tropflux_1d_2000-regrid-saison.nc'
trop4 =
'/ccc/scratch/cont005/legos/nivertfl/TEST_VALIDATION_TROPFLUX/MOYENNE-SAISON/swr_tropflux_1d_2000-regrid-saison.nc'
trop5 =
'/ccc/scratch/cont005/legos/nivertfl/TEST_VALIDATION_TROPFLUX/MOYENNE-SAISON/lwr_tropflux_1d_2000-regrid-saison.nc'
pluie1 =
'/ccc/scratch/cont005/legos/nivertfl/TEST_VALIDATION_TROPFLUX/MOYENNE-SAISON/precip-2000-regrid-saison.nc'
meshmask =
'/ccc/scratch/cont005/legos/nivertfl/TEST_VALIDATION_TROPFLUX/MOYENNE-SAISON/mesh_mask.nc'
mask = Dataset(file1, mode='r')
masku = Dataset(file2, mode='r')
maskv = Dataset(file3, mode='r')
wrf = Dataset(file4, mode='r')
pluie = Dataset(pluie1, mode='r')
meshmask1 = Dataset(meshmask, mode='r')
tropsst= Dataset(trop1, mode='r')
troptaux= Dataset(trop2, mode='r')
troptauy= Dataset(trop3, mode='r')
tropswr= Dataset(trop4, mode='r')
troplwr= Dataset(trop5, mode='r')
lat = mask.variables['nav_lat'][:]
lon = mask.variables['nav_lon'][:]
lat1 = mask.variables['nav_lat'][:,0]
meshmask2 = meshmask1.variables['tmask'][:,0,:,:]
mask1 = mask.variables['votemper'][:,0,:,:]
mask11 = tropsst.variables['sst'][:,:,:]
vari2 = mask.variables['qsr'][:,:,:]
vari22 = tropswr.variables['swr'][:,:,:]
vari31 = wrf.variables['RAIN'][:,:,:]
vari3 = vari31[:,:,:] * 40 * 24
vari33 = pluie.variables['precipitation'][:,:,:]
vari4 = masku.variables['utau'][:,:,:]
vari44 = troptaux.variables['taux'][:,:,:]
vari51 = wrf.variables['GLW'][:,:,:]
vari5 = vari51[:,:,:] * meshmask2[:,:,:]
vari555 = troplwr.variables['lwr'][:,:,:]
mask112 = mask11[:,:,:] + 273.15
vari55 = vari555[:,:,:] +
5.67e-8*(mask112[:,:,:])*(mask112[:,:,:])*(mask112[:,:,:])*(mask112[:,:,:])
vari6 = maskv.variables['vtau'][:,:,:]
vari6[vari6 == 0] = np.NaN
vari66 = troptauy.variables['tauy'][:,:,:]
list1 = ['JFM' , 'AMJ' , 'JAS' , 'OND']
'''Difference modele'''
for x in range(0,4):
print "We're on time %d" % (x)
plt.clf()
result1 = mask1[x,:,:] - mask11[x,:,:]
result2 = vari2[x,:,:] - vari22[x,:,:]
result3 = vari3[x,:,:] - vari33[x,:,:]
result4 = vari4[x,:,:] - vari44[x,:,:]
result5 = vari5[x,:,:] - vari55[x,:,:]
result6 = vari6[x,:,:] - vari66[x,:,:]
fig, cs = plt.subplots(3, 2, figsize=(9, 6))
fig.subplots_adjust(left=0.125, bottom=0.1, right=0.9, top=0.9,
wspace=0.3, hspace=0.3)
im1 = cs[0, 0].contourf(lon,lat,result1, np.linspace(-2.5,2.5,21),
extend='both', cmap=cm.RdBu_r)
cs[0, 0].set_title('Difference VOTEMPER MODELE - OBS Saison ' +
list1[x],fontsize=10)
fig.colorbar(im1, ax=cs[0, 0], orientation='horizontal')
im2 = cs[0, 1].contourf(lon,lat,result2, np.linspace(-100,100,21),
extend='both', cmap=cm.RdBu_r)
cs[0, 1].set_title('Difference QSR MODELE - OBS Saison ' +
list1[x],fontsize=10)
fig.colorbar(im2, ax=cs[0, 1], orientation='horizontal')
im3 = cs[1, 0].contourf(lon,lat,result3, np.linspace(-16,16,21),
extend='both', cmap=cm.RdBu_r)
cs[1, 0].set_title('Difference PRECIP MODELE - OBS Saison ' +
list1[x],fontsize=10)
fig.colorbar(im3, ax=cs[1, 0], orientation='horizontal')
im4 = cs[1, 1].contourf(lon,lat,result4, np.linspace(-0.1,0.1,21),
extend='both', cmap=cm.RdBu_r)
cs[1, 1].set_title('Difference U TAU MODELE - OBS Saison ' +
list1[x],fontsize=10)
fig.colorbar(im4, ax=cs[1, 1], orientation='horizontal', format='%.0e')
im5 = cs[2, 0].contourf(lon,lat,result5, np.linspace(-50,50,21),
extend='both', cmap=cm.RdBu_r)
cs[2, 0].set_title('Difference LW MODELE - OBS Saison ' +
list1[x],fontsize=10)
fig.colorbar(im5, ax=cs[2, 0], orientation='horizontal')
im6 = cs[2, 1].contourf(lon,lat,result6, np.linspace(-0.1,0.1,21),
extend='both', cmap=cm.RdBu_r)
cs[2, 1].set_title('Difference V TAU MODELE - OBS Saison ' +
list1[x],fontsize=10)
fig.colorbar(im6, ax=cs[2, 1], orientation='horizontal')
plt.savefig('all_var_diff_saison_' + list1[x] + '.png')
'''plot modele'''
for x in range(0,4):
print "We're on time %d" % (x)
plt.clf()
result1 = mask1[x,:,:]
result2 = vari2[x,:,:]
result3 = vari3[x,:,:]
result4 = vari4[x,:,:]
result5 = vari5[x,:,:]
result6 = vari6[x,:,:]
fig, cs = plt.subplots(3, 2, figsize=(9, 6))
fig.subplots_adjust(left=0.125, bottom=0.1, right=0.9, top=0.9,
wspace=0.3, hspace=0.3)
im1 = cs[0, 0].contourf(lon,lat,result1, np.linspace(20,30,21),
extend='both', cmap=cm.jet)
cs[0, 0].set_title('VOTEMPER MODELE Saison ' + list1[x],fontsize=10)
fig.colorbar(im1, ax=cs[0, 0], orientation='horizontal')
im2 = cs[0, 1].contourf(lon,lat,result2, np.linspace(100,380,15),
extend='both', cmap=cm.jet)
cs[0, 1].set_title('QSR MODELE Saison ' + list1[x],fontsize=10)
fig.colorbar(im2, ax=cs[0, 1], orientation='horizontal')
im3 = cs[1, 0].contourf(lon,lat,result3, np.linspace(0,20,21),
extend='both', cmap=cm.jet)
cs[1, 0].set_title('PRECIP MODELE Saison ' + list1[x],fontsize=10)
fig.colorbar(im3, ax=cs[1, 0], orientation='horizontal')
im4 = cs[1, 1].contourf(lon,lat,result4,
np.linspace(-0.13,0.05,21), extend='both', cmap=cm.jet)
cs[1, 1].set_title('U TAU MODELE Saison ' + list1[x],fontsize=10)
fig.colorbar(im4, ax=cs[1, 1], orientation='horizontal', format='%.0e')
im5 = cs[2, 0].contourf(lon,lat,result5, np.linspace(300,460,21),
extend='both', cmap=cm.jet)
cs[2, 0].set_title('GLW MODELE Saison ' + list1[x],fontsize=10)
fig.colorbar(im5, ax=cs[2, 0], orientation='horizontal')
im6 = cs[2, 1].contourf(lon,lat,result6,
np.linspace(-0.15,0.13,21), extend='both', cmap=cm.jet)
cs[2, 1].set_title('V TAU MODELE Saison ' + list1[x],fontsize=10)
fig.colorbar(im6, ax=cs[2, 1], orientation='horizontal')
plt.savefig('all_var_modele_saison_' + list1[x] + '.png')
'''plot obs Trop et TRMM'''
for x in range(0,4):
print "We're on time %d" % (x)
plt.clf()
result1 = mask11[x,:,:]
result2 = vari22[x,:,:]
result3 = vari33[x,:,:]
result4 = vari44[x,:,:]
result5 = vari55[x,:,:]
result6 = vari66[x,:,:]
fig, cs = plt.subplots(3, 2, figsize=(9, 6))
fig.subplots_adjust(left=0.125, bottom=0.1, right=0.9, top=0.9,
wspace=0.3, hspace=0.3)
im1 = cs[0, 0].contourf(lon,lat,result1, np.linspace(20,30,21),
extend='both', cmap=cm.jet)
cs[0, 0].set_title('VOTEMPER OBS Saison ' + list1[x],fontsize=10)
fig.colorbar(im1, ax=cs[0, 0], orientation='horizontal')
im2 = cs[0, 1].contourf(lon,lat,result2, np.linspace(100,380,15),
extend='both', cmap=cm.jet)
cs[0, 1].set_title('QSR OBS Saison ' + list1[x],fontsize=10)
fig.colorbar(im2, ax=cs[0, 1], orientation='horizontal')
im3 = cs[1, 0].contourf(lon,lat,result3, np.linspace(0,20,21),
extend='both', cmap=cm.jet)
cs[1, 0].set_title('PRECIP OBS Saison ' + list1[x],fontsize=10)
fig.colorbar(im3, ax=cs[1, 0], orientation='horizontal')
im4 = cs[1, 1].contourf(lon,lat,result4,
np.linspace(-0.13,0.05,21), extend='both', cmap=cm.jet)
cs[1, 1].set_title('U TAU OBS Saison ' + list1[x],fontsize=10)
fig.colorbar(im4, ax=cs[1, 1], orientation='horizontal', format='%.0e')
im5 = cs[2, 0].contourf(lon,lat,result5, np.linspace(300,460,21),
extend='both', cmap=cm.jet)
cs[2, 0].set_title('LW OBS Saison ' + list1[x],fontsize=10)
fig.colorbar(im5, ax=cs[2, 0], orientation='horizontal')
im6 = cs[2, 1].contourf(lon,lat,result6,
np.linspace(-0.15,0.13,21), extend='both', cmap=cm.jet)
cs[2, 1].set_title('V TAU OBS Saison ' + list1[x],fontsize=10)
fig.colorbar(im6, ax=cs[2, 1], orientation='horizontal')
plt.savefig('all_var_obs_saison_' + list1[x] + '.png')
zbla=np.zeros(shape=(165,1))
zbla2=np.zeros(shape=(165,1))
zbla3=np.zeros(shape=(165,1))
zbla4=np.zeros(shape=(165,1))
zbla5=np.zeros(shape=(165,1))
zbla6=np.zeros(shape=(165,1))
zbla7=np.zeros(shape=(165,1))
zbla8=np.zeros(shape=(165,1))
zbla9=np.zeros(shape=(165,1))
zbla10=np.zeros(shape=(165,1))
zbla11=np.zeros(shape=(165,1))
zbla12=np.zeros(shape=(165,1))
mask1[mask1 == 0] = np.NaN
vari2[vari2 == 0] = np.NaN
vari4[vari4 == 0] = np.NaN
vari5[vari5 == 0] = np.NaN
'''Coupe zonale'''
for y in range(0,4):
print "We're on time %d" % (y)
for x in range(0,165):
result1= np.nanmean(mask1[y,x,80:160])
result2= np.nanmean(mask11[y,x,80:160])
zbla[x,:]=result1
zbla2[x,:]=result2
for z in range(0,165):
result3= np.nanmean(vari2[y,z,80:160])
result4= np.nanmean(vari22[y,z,80:160])
zbla3[z,:]=result3
zbla4[z,:]=result4
for ii in range(0,165):
result5= np.nanmean(vari3[y,ii,80:160])
result6= np.nanmean(vari33[y,ii,80:160])
zbla5[ii,:]=result5
zbla6[ii,:]=result6
for jj in range(0,165):
result7= np.nanmean(vari4[y,jj,80:160])
result8= np.nanmean(vari44[y,jj,80:160])
zbla7[jj,:]=result7
zbla8[jj,:]=result8
for zz in range(0,165):
result9= np.nanmean(vari5[y,zz,80:160])
result10= np.nanmean(vari55[y,zz,80:160])
zbla9[zz,:]=result9
zbla10[zz,:]=result10
for hh in range(0,165):
result11= np.nanmean(vari6[y,hh,80:160])
result12= np.nanmean(vari66[y,hh,80:160])
zbla11[hh,:]=result11
zbla12[hh,:]=result12
fig, cs = plt.subplots(3, 2, figsize=(9, 6))
fig.subplots_adjust(left=0.125, bottom=0.1, right=0.9, top=0.9,
wspace=0.3, hspace=0.3)
im1 = cs[0, 0].plot(lat1,zbla)
im1 = cs[0, 0].plot(lat1,zbla2)
cs[0, 0].set_title('Comparaison SST MODELE et OBS Saison ' +
list1[y],fontsize=10)
cs[0, 0].set_ylim([18,30])
cs[0, 0].set_xlim([-20,20])
im2 = cs[0, 1].plot(lat1,zbla3)
im2 = cs[0, 1].plot(lat1,zbla4)
cs[0, 1].set_title('Comparaison QSR MODELE et OBS Saison ' +
list1[y],fontsize=10)
cs[0, 1].set_ylim([100,380])
cs[0, 1].set_xlim([-20,20])
im3 = cs[1, 0].plot(lat1,zbla5)
im3 = cs[1, 0].plot(lat1,zbla6)
cs[1, 0].set_title('Comparaison PRECIP MODELE et OBS Saison ' +
list1[y],fontsize=10)
cs[1, 0].set_ylim([0, 20])
cs[1, 0].set_xlim([-20,20])
im4 = cs[1, 1].plot(lat1,zbla7)
im4 = cs[1, 1].plot(lat1,zbla8)
cs[1, 1].set_title('Comparaison U TAU MODELE et OBS Saison ' +
list1[y],fontsize=10)
cs[1, 1].set_ylim([-0.13,0.05])
cs[1, 1].set_xlim([-20,20])
im5 = cs[2, 0].plot(lat1,zbla9)
im5 = cs[2, 0].plot(lat1,zbla10)
cs[2, 0].set_title('Comparaison LW MODELE et OBS Saison ' +
list1[y],fontsize=10)
cs[2, 0].set_ylim([300,430])
cs[2, 0].set_xlim([-20,20])
im6 = cs[2, 1].plot(lat1,zbla11)
im6 = cs[2, 1].plot(lat1,zbla12)
cs[2, 1].set_title('Comparaison V TAU MODELE et OBS Saison ' +
list1[y],fontsize=10)
cs[2, 1].set_ylim([-0.15,0.13])
cs[2, 1].set_xlim([-20,20])
plt.savefig('coupe_zonale_saison_' + list1[y] + '.png')
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment