source: trunk/src/extractedmatrixdata.m @ 327

Last change on this file since 327 was 327, checked in by pinsard, 13 years ago

change svn properties

  • Property svn:keywords set to URL
File size: 4.8 KB
Line 
1function [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.
87indexmin1 = find(dim1 >= mindim1, 1, 'first');
88indexmax1 = find(dim1 <= maxdim1, 1, 'last');
89indexmin2 = find(dim2 >= mindim2, 1, 'first');
90indexmax2 = find(dim2 <= maxdim2, 1, 'last');
91indexmin3 = find(dim3 >= mindim3, 1, 'first');
92indexmax3 = 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.
96dim1extracted = dim1(indexmin1:indexmax1);
97dim2extracted = dim2(indexmin2:indexmax2);
98dim3extracted = dim3(indexmin3:indexmax3);
99dataextracted = data(indexmin1:indexmax1,indexmin2:indexmax2,indexmin3:indexmax3);
100
101end
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
Note: See TracBrowser for help on using the repository browser.