source: trunk/src/scripts_Laura/ARCTIC/Travail_CEN/compare_ice_area_different_data.py @ 45

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

new_scripts

File size: 4.6 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 arctic_map # function to regrid coast limits
11import cartesian_grid_test # function to convert grid from polar to cartesian
12import scipy.special
13import ffgrid2
14import map_ffgrid
15from matplotlib import colors
16from matplotlib.font_manager import FontProperties
17import map_cartesian_grid
18
19
20
21
22MONTH = np.array(['01', '02', '03', '04', '05', '06', '07', '08', '09', '10', '11', '12'])
23month = np.array(['JANUARY', 'FEBRUARY', 'MARCH', 'APRIL', 'MAY', 'JUNE', 'JULY', 'AUGUST', 'SEPTEMBER', 'OCTOBER', 'NOVEMBER', 'DECEMBER'])
24month_day = np.array([31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31])
25M = len(month)
26
27frequ = np.array([23, 50, 89])
28
29
30#################################
31# read .dat files of AMSUA data #
32#################################
33AS = np.zeros([len(frequ), M], float)
34AL = np.zeros([len(frequ), M], float)
35for ifr in range (0, len(frequ)):
36    fichier = open('/net/argos/data/parvati/lahlod/ARCTIC/AMSUA_ice_class/AMSUA' + str(frequ[ifr]) + '_data_classification_parameters_ice_no-ice_2009.dat','r')
37    numlines = 0
38    for line in fichier: numlines += 1
39    fichier.close()
40    fichier = open('/net/argos/data/parvati/lahlod/ARCTIC/AMSUA_ice_class/AMSUA' + str(frequ[ifr]) + '_data_classification_parameters_ice_no-ice_2009.dat','r')
41    nbtotal = numlines - 1
42    iligne = 0
43    mo = np.zeros([nbtotal],object)
44    tot_area_spec = np.zeros([nbtotal],float)
45    tot_area_lamb = np.zeros([nbtotal],float)
46    while (iligne < nbtotal) :
47         line=fichier.readline()
48         # exemple : line = "0.22 2.3 5.0 6"
49         liste = line.split()
50         # exemple : listeCoord ['0.22', '2.3', '5.0', '6'] (liste de chaine de caract?es)
51         mo[iligne] = str(liste[0])
52         tot_area_spec[iligne] = float(liste[9])
53         tot_area_lamb[iligne] = float(liste[10])
54         iligne=iligne+1
55    fichier.close()
56    vec = np.arange(0, nbtotal + 51, 50)
57    area_s = np.zeros([M], float)
58    area_l = np.zeros([M], float)
59    for imo in range (0, M):
60        area_s[imo] = tot_area_spec[imo + vec[imo]]
61        area_l[imo] = tot_area_lamb[imo + vec[imo]]
62    AS[ifr, :] = area_s[:]
63    AL[ifr, :] = area_l[:]
64
65
66
67#################################
68# read .dat file of OSISAF data #
69#################################
70fichier_osi = open('/net/argos/data/parvati/lahlod/ARCTIC/OSISAF_Ice_Types/OSISAF_daily_ice_no-ice_2009.dat','r')
71numlines = 0
72for line in fichier_osi: numlines += 1
73
74fichier_osi.close()
75fichier_osi = open('/net/argos/data/parvati/lahlod/ARCTIC/OSISAF_Ice_Types/OSISAF_daily_ice_no-ice_2009.dat','r')
76nbtotal = numlines - 1
77iligne = 0
78mo = np.zeros([nbtotal],object)
79tot_area_osi = np.zeros([nbtotal],float)
80while (iligne < nbtotal) :
81         line=fichier_osi.readline()
82         # exemple : line = "0.22 2.3 5.0 6"
83         liste = line.split()
84         # exemple : listeCoord ['0.22', '2.3', '5.0', '6'] (liste de chaine de caract?es)
85         mo[iligne] = str(liste[0])
86         tot_area_osi[iligne] = float(liste[2])
87         iligne=iligne+1
88
89fichier_osi.close()
90vec_osi = np.array([0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334])
91area_osi = np.zeros([M], float)
92for imo in range (0, M):
93    area_osi[imo] = tot_area_osi[imo + vec_osi[imo]]
94
95
96# calculation of bias and std between spec and lamb
97bias_area = np.zeros([len(frequ), M], float)
98for ifr in range (0, len(frequ)):
99    for imo in range (0, M):
100        bias_area[ifr, imo] = (AL[ifr, imo] - AS[ifr, imo]) / 
101
102figure()
103plot(bias_area[0, :], 'c', label = 'spec_23GHz')
104plot(bias_area[1, :], 'm', label = 'spec_50GHz')
105plot(bias_area[2, :], 'g', label = 'spec_89GHz')
106
107
108
109###################################
110# plot time evolution of ice area #
111###################################
112color = np.array(['c', 'c--' 'm', 'm--', 'g', 'g--', 'k'])
113lbl = np.array(['spec_23GHz', 'lamb_23GHz', 'spec_50GHz', 'lamb_50GHz', 'spec_89GHz', 'lamb_89GHz', 'OSISAF'])
114figure()
115plot(AS[0, :], 'c', label = 'spec_23GHz')
116plot(AL[0, :], 'c--', label = 'lamb_23GHz')
117plot(AS[1, :], 'm', label = 'spec_50GHz')
118plot(AL[1, :], 'm--', label = 'lamb_50GHz')
119plot(AS[2, :], 'g', label = 'spec_89GHz')
120plot(AL[2, :], 'g--', label = 'lamb_89GHz')
121plot(area_osi, 'k', label = 'OSISAF')
122fontP = FontProperties()
123fontP.set_size('small')
124legend(loc = 3, prop = fontP)
125ylabel('total ice area (in square km)')
126xticks(np.arange(0, M, 1), month, rotation = 25)
127xlim(-1, M)
128grid()
129plt.savefig('/usr/home/lahlod/twice_d/figure_output_ARCTIC/figure_output_CEN/compar_total_ice_area_AMSUA_SPEC_LAMB_OSISAF_2009.png')
130
131
132
133
134
135
136
137
Note: See TracBrowser for help on using the repository browser.