1 | function [dataextracted, dim1extracted, dim2extracted, dim3extracted] = extractedmatrixdata(data, dim1, dim2, dim3, mindim1, maxdim1, mindim2, maxdim2, mindim3, maxdim3) |
---|
2 | |
---|
3 | %extractedmatrixdata permet d'extraire les donnees d'une matrice 3D ainsi |
---|
4 | %que ses variables a partir des bornes choisies pour chacune d'elles. |
---|
5 | |
---|
6 | % |
---|
7 | %+ |
---|
8 | % |
---|
9 | % ====================== |
---|
10 | % extractedmatrixdata.m |
---|
11 | % ====================== |
---|
12 | % |
---|
13 | % .. function:: extractedmatrixdata(data, dim1, dim2, dim3, mindim1, maxdim1, mindim2, maxdim2, mindim3, maxdim3) |
---|
14 | % |
---|
15 | % DESCRIPTION |
---|
16 | % =========== |
---|
17 | % |
---|
18 | % - Donnees d'entrees : |
---|
19 | % |
---|
20 | % * data : Donnees initiales de la matrice 3D (dim1, dim2, dim3). |
---|
21 | % * dim1 : Dimension 1 de la matrice 'data'. |
---|
22 | % * dim2 : Dimension 2 de la matrice 'data'. |
---|
23 | % * dim3 : Dimension 3 de la matrice 'data'. |
---|
24 | % * mindim1 : Borne inferieure pour l'extraction de la dimension 1. |
---|
25 | % * maxdim1 : Borne superieure pour l'extraction de la dimension 1. |
---|
26 | % * mindim2 : Borne inferieure pour l'extraction de la dimension 2. |
---|
27 | % * maxdim2 : Borne superieure pour l'extraction de la dimension 2. |
---|
28 | % * mindim3 : Borne inferieure pour l'extraction de la dimension 3. |
---|
29 | % * maxdim3 : Borne superieure pour l'extraction de la dimension 3. |
---|
30 | % |
---|
31 | % - Donnees de sorties : |
---|
32 | % |
---|
33 | % * dataextracted : Donnees extraites de la matrice 3D initiale. |
---|
34 | % * dim1extracted : Dimension 1 extraite de la matrice 'dataextracted'. |
---|
35 | % * dim2extracted : Dimension 2 extraite de la matrice 'dataextracted'. |
---|
36 | % * dim3extracted : Dimension 3 extraite de la matrice 'dataextracted'. |
---|
37 | % |
---|
38 | % Cette fonction permet d'extraire les donnees d'une matrice 3D ainsi |
---|
39 | % que ses variables a partir des bornes choisies pour chacune d'elles. |
---|
40 | % |
---|
41 | % EXAMPLES |
---|
42 | % ======== |
---|
43 | % |
---|
44 | % Voir les demo |
---|
45 | % |
---|
46 | % SEE ALSO |
---|
47 | % ======== |
---|
48 | % |
---|
49 | % TODO |
---|
50 | % ==== |
---|
51 | % |
---|
52 | % make it work with demo with MSG real file |
---|
53 | % |
---|
54 | % Message d'erreur ou d'avertissement lorsque les bornes depassent les |
---|
55 | % donnees. Avertir et prendre toutes les donnees ? |
---|
56 | % |
---|
57 | % EVOLUTIONS |
---|
58 | % ========== |
---|
59 | % |
---|
60 | % $Id$ |
---|
61 | % |
---|
62 | % $URL$ |
---|
63 | % |
---|
64 | % - fplod 20110804T103019Z aedon.locean-ipsl.upmc.fr (Darwin) |
---|
65 | % |
---|
66 | % * change school demo |
---|
67 | % * add demo with MSG real file normal and extracted |
---|
68 | % |
---|
69 | % - jaclod 2011-07-26 |
---|
70 | % |
---|
71 | % * Revision de la documentation et des commentaires. |
---|
72 | % |
---|
73 | % - jaclod 2011-07-20 |
---|
74 | % |
---|
75 | % * Ajout de la documentation et modifications des commentaires. |
---|
76 | % |
---|
77 | % - jaclod 2011-07-12 |
---|
78 | % |
---|
79 | % * Creation. |
---|
80 | % |
---|
81 | %- |
---|
82 | |
---|
83 | % On cherche les indices extremes dans les matrices bornant les donnees |
---|
84 | % souhaitees. Pour cela on prend le premier indice tel que a partir |
---|
85 | % de celui-ci on depasse la limite inferieure et le dernier indice tel |
---|
86 | % qu'on est sous la limite superieure. |
---|
87 | indexmin1 = find(dim1 >= mindim1, 1, 'first'); |
---|
88 | indexmax1 = find(dim1 <= maxdim1, 1, 'last'); |
---|
89 | indexmin2 = find(dim2 >= mindim2, 1, 'first'); |
---|
90 | indexmax2 = find(dim2 <= maxdim2, 1, 'last'); |
---|
91 | indexmin3 = find(dim3 >= mindim3, 1, 'first'); |
---|
92 | indexmax3 = find(dim3 <= maxdim3, 1, 'last'); |
---|
93 | |
---|
94 | % Extraction des donnees seulement entre les indices de bornes, pour les |
---|
95 | % differentes dimensions et pour la matrice de donnees. |
---|
96 | dim1extracted = dim1(indexmin1:indexmax1); |
---|
97 | dim2extracted = dim2(indexmin2:indexmax2); |
---|
98 | dim3extracted = dim3(indexmin3:indexmax3); |
---|
99 | dataextracted = data(indexmin1:indexmax1,indexmin2:indexmax2,indexmin3:indexmax3); |
---|
100 | |
---|
101 | end |
---|
102 | |
---|
103 | %!demo |
---|
104 | %! % school example |
---|
105 | %! % 5x10x15 3D array. extracted 1x2x3 |
---|
106 | %! clear all |
---|
107 | %! data = reshape(1:5 * 10 * 15,5,10,15); |
---|
108 | %! dim1 = 1:5; |
---|
109 | %! dim2 = 11:15; |
---|
110 | %! dim3 = 101:115; |
---|
111 | %! mindim1 = 1; |
---|
112 | %! maxdim1 = 1; |
---|
113 | %! mindim2 = 13; |
---|
114 | %! maxdim2 = 14; |
---|
115 | %! mindim3 = 105; |
---|
116 | %! maxdim3 = 107; |
---|
117 | %! [dataextracted, dim1extracted, dim2extracted, dim3extracted] = extractedmatrixdata(data, dim1, dim2, dim3, mindim1, maxdim1, mindim2, maxdim2, mindim3, maxdim3) |
---|
118 | |
---|
119 | %!demo |
---|
120 | %! % From real file :file:`${PROJECT_ID}MSG/msg-tb108_2006-08-01_15min.nc` :: |
---|
121 | %! clear all |
---|
122 | %! close all |
---|
123 | %! varamma_startup |
---|
124 | %! more off |
---|
125 | %! Annee = '2006'; |
---|
126 | %! Mois = '08'; |
---|
127 | %! Jour = '01'; |
---|
128 | %! ncfilesset = 'normal'; |
---|
129 | %! [fullfilename] = MSGbuildfullfilename(ncfilesset, Annee, Mois, Jour); |
---|
130 | %! [TbMSG, Temps, Longitudes, Latitudes] = MSGread(ncfilesset, fullfilename); |
---|
131 | %! mindim1=min(Temps); |
---|
132 | %! maxdim1=max(Temps); |
---|
133 | %! lonmin = -20; |
---|
134 | %! lonmax = -10; |
---|
135 | %! latmin = 10; |
---|
136 | %! latmax = 20; |
---|
137 | %! [TbMSG_e, Temps_e, Longitudes_e, Latitudes_e] = extractedmatrixdata(TbMSG, Temps, Longitudes, Latitudes, mindim1, maxdim1, lonmin, lonmax, latmin, latmax); |
---|
138 | %! whos |
---|
139 | |
---|
140 | %!demo |
---|
141 | %! % From real file :file:`${PROJECT_ID}MSG/extracted/2006/08/extracted-msg-tb108_2006-08-01_15min.nc` :: |
---|
142 | %! clear all |
---|
143 | %! close all |
---|
144 | %! varamma_startup; |
---|
145 | %! more off |
---|
146 | %! Annee = '2006'; |
---|
147 | %! Mois = '08'; |
---|
148 | %! Jour = '01'; |
---|
149 | %! [fullfilename] = MSGbuildfullfilename('extracted', Annee, Mois, Jour); |
---|
150 | %! [TbMSG, Temps, Longitudes, Latitudes] = MSGread('extracted', fullfilename); |
---|
151 | %! mindim1=min(Temps); |
---|
152 | %! maxdim1=max(Temps); |
---|
153 | %! lonmin = -20; |
---|
154 | %! lonmax = -10; |
---|
155 | %! latmin = 10; |
---|
156 | %! latmax = 20; |
---|
157 | %! [TbMSG_e, Temps_e, Longitudes_e, Latitudes_e] = extractedmatrixdata(TbMSG, Temps, Longitudes, Latitudes, mindim1, maxdim1, lonmin, lonmax, latmin, latmax); |
---|
158 | %! whos |
---|