source: trunk/src/scripts_Laura/ARCTIC/Travail_CEN/read_spec_lamb_nadir_bis.py @ 55

Last change on this file since 55 was 44, checked in by lahlod, 10 years ago

modifs

File size: 11.2 KB
Line 
1#!/usr/bin/env python
2# -*- coding: utf-8 -*-
3import string
4import numpy as np
5import matplotlib.pyplot as plt
6from pylab import *
7from mpl_toolkits.basemap import Basemap
8from mpl_toolkits.basemap import shiftgrid, cm
9from netCDF4 import Dataset
10import scipy.special
11import ffgrid2
12import map_ffgrid
13import arctic_map # function to regrid coast limits
14import cartesian_grid_test # function to convert grid from polar to cartesian
15
16
17
18
19###############
20# time period #
21###############
22month = np.array(['JANUARY', 'FEBRUARY', 'MARCH', 'APRIL', 'MAY', 'JUNE', 'JULY', 'AUGUST', 'SEPTEMBER', 'OCTOBER', 'NOVEMBER', 'DECEMBER'])
23month_day = np.array([31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31])
24M = len(month)
25
26
27
28########################
29# grid characteristics #
30########################
31x0 = -3000. # min limit of grid
32x1 = 2500. # max limit of grid
33dx = 40.
34xvec = np.arange(x0, x1+dx, dx)
35nx = len(xvec) 
36y0 = -3000. # min limit of grid
37y1 = 3000. # max limit of grid
38dy = 40.
39yvec = np.arange(y0, y1+dy, dy)
40ny = len(yvec)
41
42
43
44#############################
45# grid data from .dat files #
46#############################
47'''tu = np.zeros([ny, nx, 31, M], float)
48td = np.zeros([ny, nx, 31, M], float)
49tbs = np.zeros([ny, nx, 31, M], float)
50tbl = np.zeros([ny, nx, 31, M], float)'''
51es = np.zeros([ny, nx, 31, M], float)
52el = np.zeros([ny, nx, 31, M], float)
53esl = np.zeros([ny, nx, 31, M], float)
54'''esl00 = np.zeros([ny, nx, 31, M], float)
55esl25 = np.zeros([ny, nx, 31, M], float)
56esl50 = np.zeros([ny, nx, 31, M], float)
57esl75 = np.zeros([ny, nx, 31, M], float)
58esl100 = np.zeros([ny, nx, 31, M], float)'''
59for imo in range (0, M):
60    print 'month: ' + month[imo]
61    fichier=open('/net/argos/data/parvati/lahlod/ARCTIC/monthly_GLACE/lamb_spec_param_near_nadir_' + month[imo] + '2009_AMSUA50.dat','r')
62    numlines = 0
63    for line in fichier: numlines += 1
64    fichier.close
65    fichier = open('/net/argos/data/parvati/lahlod/ARCTIC/monthly_GLACE/lamb_spec_param_near_nadir_' + month[imo] + '2009_AMSUA50.dat','r') 
66    nbtotal = numlines-1
67    iligne = 0
68    jjr = np.zeros([nbtotal],float)
69    lat = np.zeros([nbtotal],float)
70    lon = np.zeros([nbtotal],float)
71    e = np.zeros([nbtotal],float)
72    '''ts = np.zeros([nbtotal],float)
73    tup = np.zeros([nbtotal],float)
74    tdn = np.zeros([nbtotal],float)
75    tb = np.zeros([nbtotal],float)
76    theta_eff = np.zeros([nbtotal],float)
77    opac = np.zeros([nbtotal],float)
78    tdn_lamb = np.zeros([nbtotal],float)
79    tb_spec = np.zeros([nbtotal],float)
80    tb_lamb = np.zeros([nbtotal],float)'''
81    e_spec = np.zeros([nbtotal],float)
82    e_lamb = np.zeros([nbtotal],float)
83    e_spec_lamb = np.zeros([nbtotal],float)
84    '''e_sl_00 = np.zeros([nbtotal],float)
85    e_sl_25 = np.zeros([nbtotal],float)
86    e_sl_50 = np.zeros([nbtotal],float)
87    e_sl_75 = np.zeros([nbtotal],float)
88    e_sl_100 = np.zeros([nbtotal],float)'''
89    while (iligne < nbtotal) :
90         line=fichier.readline()
91         liste = line.split()
92         jjr[iligne] = float(liste[0])
93         lat[iligne] = float(liste[2])
94         lon[iligne] = float(liste[1])
95         e[iligne] = float(liste[5])
96         '''ts[iligne] = float(liste[6])
97         tup[iligne] = float(liste[7])
98         tdn[iligne] = float(liste[8])
99         tb[iligne] = float(liste[10])
100         theta_eff[iligne] = float(liste[12])
101         opac[iligne] = float(liste[11])
102         tdn_lamb[iligne] = float(liste[13])
103         tb_spec[iligne]  = float(liste[14])
104         tb_lamb[iligne] = float(liste[15])'''
105         e_spec[iligne] = float(liste[16])
106         e_lamb[iligne] = float(liste[17])
107         e_spec_lamb[iligne] = float(liste[18])
108         '''e_sl_00[iligne] = float(liste[19])
109         e_sl_25[iligne] = float(liste[20])
110         e_sl_50[iligne] = float(liste[21])
111         e_sl_75[iligne] = float(liste[22])
112         e_sl_100[iligne] = float(liste[23])'''
113         iligne=iligne+1
114    fichier.close()
115    '''print 'tup'
116    z0 = tup.min()
117    z1 = tup.max()
118    zgrid_output, ngrid_output, z2grid_output, sigmagrid_output, xvec, yvec, xgrid_cart, ygrid_cart = cartesian_grid_test.new_cartesian_grid(month_day[imo], jjr, month[imo], lon, lat, tup, z0, z1, dx, dy)
119    tup_day = zgrid_output
120    tu[:, :, 0 : month_day[imo], imo] = tup_day[:, :, :]
121    print 'tdn'
122    z0 = tdn.min()
123    z1 = tdn.max()
124    zgrid_output, ngrid_output, z2grid_output, sigmagrid_output, xvec, yvec, xgrid_cart, ygrid_cart = cartesian_grid_test.new_cartesian_grid(month_day[imo], jjr, month[imo], lon, lat, tdn, z0, z1, dx, dy)
125    tdn_day = zgrid_output
126    td[:, :, 0 : month_day[imo], imo] = tdn_day[:, :, :]
127    print 'tb spec'
128    z0 = tb_spec.min()
129    z1 = tb_spec.max()
130    zgrid_output, ngrid_output, z2grid_output, sigmagrid_output, xvec, yvec, xgrid_cart, ygrid_cart = cartesian_grid_test.new_cartesian_grid(month_day[imo], jjr, month[imo], lon, lat, tb_spec, z0, z1, dx, dy)
131    tb_spec_day = zgrid_output
132    tbs[:, :, 0 : month_day[imo], imo] = tb_spec_day[:, :, :]
133    print 'tb lamb'
134    z0 = tb_lamb.min()
135    z1 = tb_lamb.max()
136    zgrid_output, ngrid_output, z2grid_output, sigmagrid_output, xvec, yvec, xgrid_cart, ygrid_cart = cartesian_grid_test.new_cartesian_grid(month_day[imo], jjr, month[imo], lon, lat, tb_lamb, z0, z1, dx, dy)
137    tb_lamb_day = zgrid_output
138    tbl[:, :, 0 : month_day[imo], imo] = tb_lamb_day[:, :, :]'''
139    print 'emis spec'
140    z0 = e_spec.min()
141    z1 = e_spec.max()
142    zgrid_output, ngrid_output, z2grid_output, sigmagrid_output, xvec, yvec, xgrid_cart, ygrid_cart = cartesian_grid_test.new_cartesian_grid(month_day[imo], jjr, month[imo], lon, lat, e_spec, z0, z1, dx, dy)
143    e_spec_day = zgrid_output
144    es[:, :, 0 : month_day[imo], imo] = e_spec_day[:, :, :]
145    print 'emis lamb'
146    z0 = e_lamb.min()
147    z1 = e_lamb.max()
148    zgrid_output, ngrid_output, z2grid_output, sigmagrid_output, xvec, yvec, xgrid_cart, ygrid_cart = cartesian_grid_test.new_cartesian_grid(month_day[imo], jjr, month[imo], lon, lat, e_lamb, z0, z1, dx, dy)
149    e_lamb_day = zgrid_output
150    el[:, :, 0 : month_day[imo], imo] = e_lamb_day[:, :, :]
151    print 'emis spec lamb'
152    z0 = e_spec_lamb.min()
153    z1 = e_spec_lamb.max()
154    zgrid_output, ngrid_output, z2grid_output, sigmagrid_output, xvec, yvec, xgrid_cart, ygrid_cart = cartesian_grid_test.new_cartesian_grid(month_day[imo], jjr, month[imo], lon, lat, e_spec_lamb, z0, z1, dx, dy)
155    e_spec_lamb_day = zgrid_output
156    esl[:, :, 0 : month_day[imo], imo] = e_spec_lamb_day[:, :, :]
157    '''print 'emis spec lamb 00'
158    z0 = e_sl_00.min()
159    z1 = e_sl_00.max()
160    zgrid_output, ngrid_output, z2grid_output, sigmagrid_output, xvec, yvec, xgrid_cart, ygrid_cart = cartesian_grid_test.new_cartesian_grid(month_day[imo], jjr, month[imo], lon, lat, e_sl_00, z0, z1, dx, dy)
161    e_sl_00_day = zgrid_output
162    esl00[:, :, 0 : month_day[imo], imo] = e_sl_00_day[:, :, :]
163    print 'emis spec lamb 25'
164    z0 = e_sl_25.min()
165    z1 = e_sl_25.max()
166    zgrid_output, ngrid_output, z2grid_output, sigmagrid_output, xvec, yvec, xgrid_cart, ygrid_cart = cartesian_grid_test.new_cartesian_grid(month_day[imo], jjr, month[imo], lon, lat, e_sl_25, z0, z1, dx, dy)
167    e_sl_25_day = zgrid_output
168    esl25[:, :, 0 : month_day[imo], imo] = e_sl_25_day[:, :, :]
169    print 'emis spec lamb 50'
170    z0 = e_sl_50.min()
171    z1 = e_sl_50.max()
172    zgrid_output, ngrid_output, z2grid_output, sigmagrid_output, xvec, yvec, xgrid_cart, ygrid_cart = cartesian_grid_test.new_cartesian_grid(month_day[imo], jjr, month[imo], lon, lat, e_sl_50, z0, z1, dx, dy)
173    e_sl_50_day = zgrid_output
174    esl50[:, :, 0 : month_day[imo], imo] = e_sl_50_day[:, :, :]
175    print 'emis spec lamb 75'
176    z0 = e_sl_75.min()
177    z1 = e_sl_75.max()
178    zgrid_output, ngrid_output, z2grid_output, sigmagrid_output, xvec, yvec, xgrid_cart, ygrid_cart = cartesian_grid_test.new_cartesian_grid(month_day[imo], jjr, month[imo], lon, lat, e_sl_75, z0, z1, dx, dy)
179    e_sl_75_day = zgrid_output
180    esl75[:, :, 0 : month_day[imo], imo] = e_sl_75_day[:, :, :]
181    print 'emis spec lamb 100'
182    z0 = e_sl_100.min()
183    z1 = e_sl_100.max()
184    zgrid_output, ngrid_output, z2grid_output, sigmagrid_output, xvec, yvec, xgrid_cart, ygrid_cart = cartesian_grid_test.new_cartesian_grid(month_day[imo], jjr, month[imo], lon, lat, e_sl_100, z0, z1, dx, dy)
185    e_sl_100_day = zgrid_output
186    esl100[:, :, 0 : month_day[imo], imo] = e_sl_100_day[:, :, :]'''
187    ###############################################
188    # stack gridded data spec lamb in NETCDF file #
189    ###############################################
190    print 'stacking of gridded data'
191    print 'file for ' + month[imo]
192    rootgrp = Dataset('/net/argos/data/parvati/lahlod/ARCTIC/monthly_GLACE/gridded_data/cartesian_grid_monthly_data_lamb_spec_near_nadir_AMSUA50_' + month[imo] + '2009.nc', 'w', format='NETCDF3_CLASSIC')
193    rootgrp.createDimension('longitude', nx)
194    rootgrp.createDimension('latitude', ny)
195    rootgrp.createDimension('days', month_day[imo])
196    nc_lon = rootgrp.createVariable('longitude', 'f', ('longitude',))
197    nc_lat = rootgrp.createVariable('latitude', 'f', ('latitude',))
198    nc_day = rootgrp.createVariable('days', 'f', ('days',))
199    '''nc_tup = rootgrp.createVariable('tup', 'f', ('latitude', 'longitude', 'days'))
200    nc_tdn = rootgrp.createVariable('tdn', 'f', ('latitude', 'longitude', 'days'))
201    nc_tb_spec = rootgrp.createVariable('tb_spec', 'f', ('latitude', 'longitude', 'days'))
202    nc_tb_lamb = rootgrp.createVariable('tb_lamb', 'f', ('latitude', 'longitude', 'days'))'''
203    nc_e_spec = rootgrp.createVariable('e_spec', 'f', ('latitude', 'longitude', 'days'))
204    nc_e_lamb = rootgrp.createVariable('e_lamb', 'f', ('latitude', 'longitude', 'days'))
205    nc_e_spec_lamb = rootgrp.createVariable('e_spec_lamb', 'f', ('latitude', 'longitude', 'days'))
206    '''nc_e_sl_00 = rootgrp.createVariable('e_mixed_s00', 'f', ('latitude', 'longitude', 'days'))
207    nc_e_sl_25 = rootgrp.createVariable('e_mixed_s25', 'f', ('latitude', 'longitude', 'days'))
208    nc_e_sl_50 = rootgrp.createVariable('e_mixed_s50', 'f', ('latitude', 'longitude', 'days'))
209    nc_e_sl_75 = rootgrp.createVariable('e_mixed_s75', 'f', ('latitude', 'longitude', 'days'))
210    nc_e_sl_100 = rootgrp.createVariable('e_mixed_s100', 'f', ('latitude', 'longitude', 'days'))'''
211    nc_lon[:] = xvec
212    nc_lat[:] = yvec
213    '''nc_tup[:] = tu[:, :, 0 : month_day[imo], imo]
214    nc_tdn[:] = td[:, :, 0 : month_day[imo], imo]
215    nc_tb_spec[:] = tbs[:, :, 0 : month_day[imo], imo]
216    nc_tb_lamb[:] = tbl[:, :, 0 : month_day[imo], imo]'''
217    nc_e_spec[:] = es[:, :, 0 : month_day[imo], imo]
218    nc_e_lamb[:] = el[:, :, 0 : month_day[imo], imo]
219    nc_e_spec_lamb[:] = esl[:, :, 0 : month_day[imo], imo]
220    '''nc_e_sl_00[:] = esl00[:, :, 0 : month_day[imo], imo]
221    nc_e_sl_25[:] = esl25[:, :, 0 : month_day[imo], imo]
222    nc_e_sl_50[:] = esl50[:, :, 0 : month_day[imo], imo]
223    nc_e_sl_75[:] = esl75[:, :, 0 : month_day[imo], imo]
224    nc_e_sl_100[:] = esl100[:, :, 0 : month_day[imo], imo]'''
225    rootgrp.close()
226
227
228
229############################################
230# scatter plot theta_eff vs zenith_opacity #
231############################################
232'''plt.ion()
233plt.figure()
234scatter(opac, theta_eff, alpha = 0.4)
235xlim(0.135, 0.24)
236ylim(54.5, 56.3)
237xlabel('Zenith opacity')
238ylabel('Effective incidence angle (deg)')
239grid(True)
240plt.savefig('/mma/hermozol/Documents/figure_output/scatter_effective_incident_angle_vs_opacity_AMSUB_JANUARY2009.png')'''
241
Note: See TracBrowser for help on using the repository browser.