source: trunk/SRC/Documentation/xmldoc/wiki/FirstSteps @ 354

Last change on this file since 354 was 354, checked in by pinsard, 16 years ago

some improvements in wiki production

File size: 36.0 KB
Line 
1= First steps with SAXO =
2[[PageOutline]]
3
4   
5   
6   
7     
8 
9== Before this ==
10
11In this document, we supposed that you followed [wiki:GetSaxo Get SAXO] recommendations.
12
13== First plots 
 ==
14
15=== Start IDL session: @init ===
16
17Each IDL session using SAXO must always start with:
18
19{{{
20#!html
21<pre xmlns:xl="http://www.w3.org/1999/xlink" class="screen">
22 <code class="prompt">idl&gt;</code> <strong class="userinput"><code><span><strong class="command">@init</strong></span></code></strong>
23</pre>
24}}}
25''The @ is equivalent to an include. It is used to execute a set of IDL commands that will be directly executed without any compilation (as it is the case for a procedure or a function). All variables defined and used in the @
 file will still be accessible after the execution of the @
 is finished (which is not the case for procedures and functions that ends with the return instruction).''
26{{{
27#!html
28<pre xmlns:xl="http://www.w3.org/1999/xlink" class="screen">
29  <code class="prompt">$</code> <strong class="userinput"><code><span><strong class="command">cd</strong></span> ${HOME}/My_IDL/</code></strong>
30  <code class="prompt">$</code> <strong class="userinput"><code><span><strong class="command">idl</strong></span></code></strong>
31  <code class="computeroutput">IDL Version 6.0, Mac OS X (darwin ppc m32). (c) 2003, Research Systems, Inc.</code>
32  <code class="computeroutput">Installation number: 35411.</code>
33  <code class="computeroutput">Licensed for personal use by Jean-Philippe BOULANGER only.</code>
34  <code class="computeroutput">All other use is strictly prohibited.</code>
35  <code class="prompt">idl&gt;</code> <strong class="userinput"><code><span><strong class="command">@init</strong></span></code></strong>
36  <code class="computeroutput">% Compiled module: KEEP_COMPATIBILITY.</code>
37  <code class="computeroutput">% Compiled module: FIND.</code>
38  <code class="computeroutput">% Compiled module: PATH_SEP.</code>
39  <code class="computeroutput">% Compiled module: STRSPLIT.</code>
40  <code class="computeroutput">% Compiled module: DEF_MYUNIQUETMPDIR.</code>
41  <code class="computeroutput">We forget the compatibility with the old version</code>
42  <code class="computeroutput">% Compiled module: DEMOMODE_COMPATIBILITY.</code>
43  <code class="computeroutput">% Compiled module: ISADIRECTORY.</code>
44  <code class="computeroutput">% Compiled module: LCT.</code>
45  <code class="computeroutput">% Compiled module: RSTRPOS.</code>
46  <code class="computeroutput">% Compiled module: REVERSE.</code>
47  <code class="computeroutput">% Compiled module: STR_SEP.</code>
48  <code class="computeroutput">% Compiled module: LOADCT.</code>
49  <code class="prompt">idl&gt;</code>
50</pre>
51}}}
52
53As an IDL session using SAXO must always start with :
54
55{{{
56#!html
57<pre xmlns:xl="http://www.w3.org/1999/xlink" class="screen">
58 <code class="prompt">idl&gt;</code> <strong class="userinput"><code><span><strong class="command">@init</strong></span></code></strong>
59</pre>
60}}}
61
62, it could be convenient to define the environment variable IDL_STARTUP to {{{${HOME}/My_IDL/init.pro}}}. In that way, {{{init.pro}}} will automatically been executed when starting IDL. This can be done with the following command:
63     
64
65'''csh'''
66{{{
67#!html
68<pre xmlns:xl="http://www.w3.org/1999/xlink" class="screen"><code class="prompt">$</code> <strong class="userinput"><code><span><strong class="command">setenv</strong></span> IDL_STARTUP ${HOME}/My_IDL/init.pro</code></strong></pre>
69}}}
70
71
72'''ksh'''
73{{{
74#!html
75<pre xmlns:xl="http://www.w3.org/1999/xlink" class="screen"><code class="prompt">$</code> <strong class="userinput"><code><span><strong class="command">export</strong></span> IDL_STARTUP=${HOME}/My_IDL/init.pro</code></strong></pre>
76}}}
77
78
79=== Basic plots 
 ===
80
81==== splot ====
82
83 
84   
85 
86
87{{{
88#!html
89<pre xmlns:xl="http://www.w3.org/1999/xlink" class="screen">
90   <code class="prompt">idl&gt;</code> <strong class="userinput"><code><span><strong class="command">n = 10</strong></span></code></strong>
91   <code class="prompt">idl&gt;</code> <strong class="userinput"><code><span><strong class="command">y = findgen(n)</strong></span></code></strong> [[Image(source:/trunk/SRC/Documentation/xmldoc/images/callouts/1.png)]]1
92   <code class="prompt">idl&gt;</code> <strong class="userinput"><code><span><strong class="command">plot, y</strong></span></code></strong> [[Image(source:/trunk/SRC/Documentation/xmldoc/images/showfig.png)]]show result
93</pre>
94}}}
95
96   
97   
98      {{{findgen}}} stands for '''f'''loat '''ind'''ex '''gen'''erator.
99
100{{{
101#!html
102<pre xmlns:xl="http://www.w3.org/1999/xlink" class="screen">
103  <code class="prompt">idl&gt;</code> <strong class="userinput"><code><span><strong class="command">print, findgen(6)</strong></span></code></strong>
104  <code class="computeroutput">      0.00000      1.00000      2.00000      3.00000      4.00000      5.00000</code>
105</pre>
106}}}
107
108   
109 
110
111Using IDL {{{plot}}} command is quite inconvenient to save the figure as a postscript. In addition, positioning the figure on the window/page by using {{{!p.position}}}, {{{!p.region}}} and {{{!p.multi}}} is often a nightmare. That's why we developed {{{splot}}} (like super-plot) which can be used in the same way as plot but is much more convenient to make postscript and position the figure.
112
113{{{
114#!html
115<pre xmlns:xl="http://www.w3.org/1999/xlink" class="screen">
116  <code class="prompt">idl&gt;</code> <strong class="userinput"><code><span><strong class="command">splot, y</strong></span></code></strong> [[Image(source:/trunk/SRC/Documentation/xmldoc/images/showfig.png)]]show result
117  <code class="computeroutput">% Compiled module: SPLOT.</code>
118  <code class="computeroutput">% Compiled module: REINITPLT.</code>
119  <code class="computeroutput">% Compiled module: PLACEDESSIN.</code>
120  <code class="computeroutput">% Compiled module: CALIBRE.</code>
121  <code class="computeroutput">% Compiled module: GIVEWINDOWSIZE.</code>
122  <code class="computeroutput">% Compiled module: GET_SCREEN_SIZE.</code>
123  <code class="computeroutput">% Compiled module: TERMINEDESSIN.</code>
124</pre>
125}}}
126
127Save the figure seen on the screen as a (real, not a screen capture) postscript in only one command.
128
129 
130   
131 
132
133{{{
134#!html
135<pre xmlns:xl="http://www.w3.org/1999/xlink" class="screen">
136  <code class="prompt">idl&gt;</code> <strong class="userinput"><code><span><strong class="command">@ps</strong></span></code></strong>
137  <code class="computeroutput">% Compiled module: GETFILE.</code>
138  <code class="computeroutput">% Compiled module: PUTFILE.</code>
139  <code class="computeroutput">% Compiled module: OPENPS.</code>
140  <code class="computeroutput">% Compiled module: XQUESTION.</code>
141  <code class="computeroutput">Name of the postscript file? (default answer is idl.ps)</code><strong class="userinput"><code>first_ps</code></strong> [[Image(source:/trunk/SRC/Documentation/xmldoc/images/callouts/1.png)]]1
142  <code class="computeroutput">% Compiled module: ISAFILE.</code>
143  <code class="computeroutput">% Compiled module: XNOTICE.</code>
144  <code class="computeroutput">% Compiled module: CLOSEPS.</code>
145  <code class="computeroutput">% Compiled module: PRINTPS.</code>
146  <code class="computeroutput">% Compiled module: FILE_WHICH.</code>
147  <code class="computeroutput">% Compiled module: CW_BGROUP.</code>
148  <code class="computeroutput">% Compiled module: XMANAGER.</code>
149</pre>
150}}}
151
152 
153   
154     
155If needed, the name of the postscript will automatically be completed with .ps. Just hit return, if you want to use the default postscript name: {{{idl.ps}}}.
156     
157   
158 
159
160Check that the "first_ps.ps" file is now existing 

161
162{{{
163#!html
164<pre xmlns:xl="http://www.w3.org/1999/xlink" class="screen">
165  <code class="prompt">idl&gt;</code> <strong class="userinput"><code><span><strong class="command">print, file_test(psdir + 'first_ps.ps')</strong></span></code></strong>
166  <code class="computeroutput">           1</code>
167  <code class="prompt">idl&gt;</code> <strong class="userinput"><code><span><strong class="command">help, file_info(psdir + 'first_ps.ps'), /structure</strong></span></code></strong>
168  <code class="computeroutput">** Structure FILE_INFO, 21 tags, length=64, data length=63:</code>
169  <code class="computeroutput">   NAME            STRING    '/Users/sebastie/IDL/first_ps.ps'</code>
170  <code class="computeroutput">   EXISTS          BYTE         1</code>
171  <code class="computeroutput">   READ            BYTE         1</code>
172  <code class="computeroutput">   WRITE           BYTE         1</code>
173  <code class="computeroutput">   EXECUTE         BYTE         0</code>
174  <code class="computeroutput">   REGULAR         BYTE         1</code>
175  <code class="computeroutput">   DIRECTORY       BYTE         0</code>
176  <code class="computeroutput">   BLOCK_SPECIAL   BYTE         0</code>
177  <code class="computeroutput">   CHARACTER_SPECIAL</code>
178  <code class="computeroutput">                   BYTE         0</code>
179  <code class="computeroutput">   NAMED_PIPE      BYTE         0</code>
180  <code class="computeroutput">   SETUID          BYTE         0</code>
181  <code class="computeroutput">   SETGID          BYTE         0</code>
182  <code class="computeroutput">   SOCKET          BYTE         0</code>
183  <code class="computeroutput">   STICKY_BIT      BYTE         0</code>
184  <code class="computeroutput">   SYMLINK         BYTE         0</code>
185  <code class="computeroutput">   DANGLING_SYMLINK</code>
186  <code class="computeroutput">                   BYTE         0</code>
187  <code class="computeroutput">   MODE            LONG               420</code>
188  <code class="computeroutput">   ATIME           LONG64                1122424373</code>
189  <code class="computeroutput">   CTIME           LONG64                1122424373</code>
190  <code class="computeroutput">   MTIME           LONG64                1122424373</code>
191  <code class="computeroutput">   SIZE            LONG64                      4913</code>
192</pre>
193}}}
194{{{splot}}} accepts the same keywords as {{{plot}}} (/ISOTROPIC, MAX_VALUE=value, MIN_VALUE=value, NSUM=value, /POLAR, THICK=value, /XLOG, /YLOG, /YNOZERO), including the graphics keywords (BACKGROUND, CHARSIZE, CHARTHICK, CLIP, COLOR, DATA, DEVICE, FONT, LINESTYLE, NOCLIP, NODATA, NOERASE, NORMAL, POSITION, PSYM, SUBTITLE, SYMSIZE, T3D, THICK, TICKLEN, TITLE, [XYZ]CHARSIZE, [XYZ]GRIDSTYLE, [XYZ]MARGIN, [XYZ]MINOR, [XYZ]RANGE, [XYZ]STYLE, [XYZ]THICK, [XYZ]TICKFORMAT, [XYZ]TICKINTERVAL, [XYZ]TICKLAYOUT, [XYZ]TICKLEN, [XYZ]TICKNAME, [XYZ]TICKS, [XYZ]TICKUNITS, [XYZ]TICKV, [XYZ]TICK_GET, [XYZ]TITLE, ZVALUE).
195
196It can therefore be customized ''as much as you want''. See this short example:
197
198{{{
199#!html
200<pre xmlns:xl="http://www.w3.org/1999/xlink" class="screen">
201  <code class="prompt">idl&gt;</code> <strong class="userinput"><code><span><strong class="command">splot, y, y^2, linestyle = 2, thick = 2, title = 'y = x^2', /portrait</strong></span></code></strong> [[Image(source:/trunk/SRC/Documentation/xmldoc/images/showfig.png)]]show result
202</pre>
203}}}
204{{{splot}}} can be used to setup the graphic environment ({{{!p}}}, {{{!x}}}, {{{!y}}}, {{{!z}}} variables) needed by procedures like {{{oplot}}}
205{{{
206#!html
207<pre xmlns:xl="http://www.w3.org/1999/xlink" class="screen">
208  <code class="prompt">idl&gt;</code> <strong class="userinput"><code><span><strong class="command">splot, y, yrange = [0, (n-1)^2], title = 'x and x^2'</strong></span></code></strong>
209  <code class="prompt">idl&gt;</code> <strong class="userinput"><code><span><strong class="command">oplot, y^2, color = 50, linestyle = 2</strong></span></code></strong> [[Image(source:/trunk/SRC/Documentation/xmldoc/images/showfig.png)]]show result
210</pre>
211}}}
212
213Use the keyword small to produce multi plots figures.
214
215 
216   
217     
218     
219   
220   
221 
222
223{{{
224#!html
225<pre xmlns:xl="http://www.w3.org/1999/xlink" class="screen">
226  <code class="prompt">idl&gt;</code> <strong class="userinput"><code><span><strong class="command">splot, y, y^2, title = 'y = x^2', psym = 2, small 1 = [1, 2, 1]</strong></span></code></strong>
227  <code class="prompt">idl&gt;</code> <strong class="userinput"><code><span><strong class="command">splot, findgen(360)/36., findgen(360)*2.*!dtor, /polar $</strong></span></code></strong>
228  <code class="prompt">idl&gt;</code> <strong class="userinput"><code><span><strong class="command">    , small 1 = [1, 2, 2], /noerase 2</strong></span></code></strong> [[Image(source:/trunk/SRC/Documentation/xmldoc/images/showfig.png)]]show result
229</pre>
230}}}
231
232 
233   
234     
235the small keyword is a 3 elements vector which defines how we divide the page and in which case we should make the plot: [number of columns, number of rows, case number]. The case numbering is starting at 1, from top to bottom and left to right.
236     
237   
238   
239     
240you must put /noerase otherwise the second plot will be done in a new window.
241     
242   
243 
244
245==== scontour ====
246
247Following {{{splot}}} example, we provide {{{scontour}}} as a "super contour".
248
249{{{
250#!html
251<pre xmlns:xl="http://www.w3.org/1999/xlink" class="screen">
252  <code class="prompt">idl&gt;</code> <strong class="userinput"><code><span><strong class="command">z = dist(n)</strong></span></code></strong>
253  <code class="computeroutput">% Compiled module: DIST.</code>
254  <code class="prompt">idl&gt;</code> <strong class="userinput"><code><span><strong class="command">scontour, z</strong></span></code></strong> [[Image(source:/trunk/SRC/Documentation/xmldoc/images/showfig.png)]]show result
255  <code class="computeroutput">% Compiled module: SCONTOUR.</code>
256  <code class="computeroutput">% Compiled module: CHKSTRU.</code>
257</pre>
258}}}
259{{{scontour}}} accepts the same keywords as {{{contour}}} (C_ANNOTATION=vector_of_strings, C_CHARSIZE=value, C_CHARTHICK=integer, C_COLORS=vector, C_LABELS=vector{each element 0 or 1}, C_LINESTYLE=vector, { /FILL | /CELL_FILL | C_ORIENTATION=degrees}, C_SPACING=value, C_THICK=vector, /CLOSED, /DOWNHILL, /FOLLOW, /IRREGULAR, /ISOTROPIC, LEVELS=vector, NLEVELS=integer{1 to 60}, MAX_VALUE=value, MIN_VALUE=value, /OVERPLOT, {/PATH_DATA_COORDS, PATH_FILENAME=string, PATH_INFO=variable, PATH_XY=variable}, TRIANGULATION=variable, /PATH_DOUBLE, /XLOG, /YLOG, ZAXIS={0 | 1 | 2 | 3 | 4}), including the graphics keywords (except LINESTYLE, PSYM, SYMSIZE).
260      It can therefore be customized ''as much as you want''. See these short examples:
261{{{
262#!html
263<pre xmlns:xl="http://www.w3.org/1999/xlink" class="screen">
264  <code class="prompt">idl&gt;</code> <strong class="userinput"><code><span><strong class="command">scontour, z, /fill, nlevels = 15, subtitle = 'nicer contour' $</strong></span></code></strong>
265  <code class="prompt">idl&gt;</code> <strong class="userinput"><code><span><strong class="command">    , xtitle = 'x index', charsize = 1.5</strong></span></code></strong> [[Image(source:/trunk/SRC/Documentation/xmldoc/images/showfig.png)]]show result
266</pre>
267}}}
268
269It can be used in combination with contour to make more complex plots:
270
271 
272   
273 
274
275{{{
276#!html
277<pre xmlns:xl="http://www.w3.org/1999/xlink" class="screen">
278  <code class="prompt">idl&gt;</code> <strong class="userinput"><code><span><strong class="command">ind = findgen(2*n)/(2.*n)</strong></span></code></strong>
279  <code class="prompt">idl&gt;</code> <strong class="userinput"><code><span><strong class="command">scontour, z, levels = n*ind, c_orientation = 180*ind, c_spacing = 0.4*ind</strong></span></code></strong>
280  <code class="prompt">idl&gt;</code> <strong class="userinput"><code><span><strong class="command">contour, z, /overplot, c_label = rebin([1, 0], 2, n) 1, levels = n*ind $</strong></span></code></strong>
281  <code class="prompt">idl&gt;</code> <strong class="userinput"><code><span><strong class="command">    , c_charthick = 2, c_charsize = 1.5, c_colors = 250*ind</strong></span></code></strong> [[Image(source:/trunk/SRC/Documentation/xmldoc/images/showfig.png)]]show result
282</pre>
283}}}
284
285
286 
287    {{{rebin}}} is used to build an array containing an alternation of 1 and 0 in order to label one contour every two contours.
288
289{{{
290#!html
291<pre xmlns:xl="http://www.w3.org/1999/xlink" class="screen">
292  <code class="prompt">idl&gt;</code> <strong class="userinput"><code><span><strong class="command">print, rebin([1, 0], 2, 3)</strong></span></code></strong>
293  <code class="computeroutput">       1       0</code>
294  <code class="computeroutput">       1       0</code>
295  <code class="computeroutput">       1       0</code>
296</pre>
297}}}
298
299 
300
301{{{scontour}}} is compatible with the positioning method associated with the small keyword. See for example the test file [../../Tests/tst_basic.pro tst_basic.pro]:
302
303{{{
304#!html
305<pre xmlns:xl="http://www.w3.org/1999/xlink" class="screen">
306  <code class="prompt">idl&gt;</code> <strong class="userinput"><code><span><strong class="command">tst_basic</strong></span></code></strong> [[Image(source:/trunk/SRC/Documentation/xmldoc/images/showfig.png)]]show result
307</pre>
308}}}
309
310==== Quick look and explore 2D arrays: tvplus ====
311{{{tvplus}}} is a enhanced version of {{{tvscl}}} and allow you to have a quick look and perform basic exploration of 2D arrays.
312
313{{{
314#!html
315<pre xmlns:xl="http://www.w3.org/1999/xlink" class="screen">
316 <code class="prompt">idl&gt;</code> <strong class="userinput"><code><span><strong class="command">tvplus, dist(20)</strong></span></code></strong> [[Image(source:/trunk/SRC/Documentation/xmldoc/images/showfig.png)]]show result
317 <code class="computeroutput">left button  : mouse position and associated array value</code>
318 <code class="computeroutput">middle button: use it twice to define a zoom box</code>
319 <code class="computeroutput">right button : quit</code>
320 <code class="computeroutput">(x, y) = (  5,   5), value = 7.07107</code>
321 <code class="computeroutput">(x, y) = ( 12,   8), value = 11.3137</code>
322 </pre>
323}}}
324
325For more informations on {{{tvplus}}}, try:
326
327{{{
328#!html
329<pre xmlns:xl="http://www.w3.org/1999/xlink" class="screen">
330 <code class="prompt">idl&gt;</code> <strong class="userinput"><code><span><strong class="command">xhelp, 'tvplus'</strong></span></code></strong>
331</pre>
332}}}
333
334To see the source code of {{{tvplus}}}, try:
335
336{{{
337#!html
338<pre xmlns:xl="http://www.w3.org/1999/xlink" class="screen">
339 <code class="prompt">idl&gt;</code> <strong class="userinput"><code><span><strong class="command">xfile, 'tvplus'</strong></span></code></strong>
340</pre>
341}}}
342New Feature
343
344If you use an IDL 6.2 or later revision, you can simply get the help of any command by typing ?'''''command_name''''', for example:
345
346{{{
347#!html
348<pre xmlns:xl="http://www.w3.org/1999/xlink" class="screen">
349 <code class="prompt">idl&gt;</code> <strong class="userinput"><code><span><strong class="command">?tvplus</strong></span></code></strong>
350</pre>
351}}}
352
353
354==== Formal quick look at 2D arrays: pltv ====
355{{{pltv}}} is a mix between tvplus and plt and allow you to have formal quick look of 2D arrays.
356 
357{{{
358#!html
359<pre xmlns:xl="http://www.w3.org/1999/xlink" class="screen">
360  <code class="prompt">idl&gt;</code> <strong class="userinput"><code><span><strong class="command">pltv, dist(20)</strong></span></code></strong> [[Image(source:/trunk/SRC/Documentation/xmldoc/images/showfig.png)]]show result
361  </pre>
362}}}
363
364== Explore gridded data (model outputs and observations) ==
365
366      This section briefly describes the main functionalities offered by SAXO to explore gridded data on regular or irregular grid.
367   
368=== Load the data grid ===
369
370As we focus in this section on the gridded data, we must first load the grid informations before reading and plotting the data. Loading the grid independently of the data allow you to reload the grid only when it is strictly necessary and not every time you access the data. In {{{${HOME}/SAXO_DIR/Tests/}}}, we provide several examples to load a grid.
371     
372==== Easiest solution: load data grid (regular or not) directly from the data file ====
373
374  Example of Levitus temperature on a regular 1x1 grid.
375 
376{{{
377#!html
378<pre xmlns:xl="http://www.w3.org/1999/xlink" class="screen">
379  <code class="prompt">idl&gt;</code> <strong class="userinput"><code><span><strong class="command">@tst_initlev</strong></span></code></strong>
380  <code class="computeroutput">% Compiled module: INITNCDF.</code>
381  <code class="computeroutput">% Compiled module: ISAFILE.</code>
382  <code class="computeroutput">% Compiled module: UNIQ.</code>
383  <code class="computeroutput">% Loaded DLM: NCDF.</code>
384  <code class="computeroutput">% Compiled module: COMPUTEGRID.</code>
385  <code class="computeroutput">% Compiled module: DOMDEF.</code>
386  <code class="computeroutput">% Compiled module: INTER.</code>
387  <code class="computeroutput">% Compiled module: TRIANGULE.</code>
388  <code class="computeroutput">% Compiled module: TRIANGULE_C.</code>
389  <code class="computeroutput">% Compiled module: UNDEFINE.</code>
390  <code class="computeroutput">% Compiled module: TESTVAR.</code>
391  <code class="computeroutput">% Compiled module: DIFFERENT.</code>
392  <code class="computeroutput">% Compiled module: DEFINETRI.</code>
393  </pre>
394}}}
395
396  This [../../Tests/tst_initlev.pro @tst_initlev] command allows us to define:
397 
398 * domain dimensions, stored in {{{jpi, jpj and jpk}}}
399 * points abscissa, stored in 2D array {{{}}}glamt
400 * points ordinates, stored in 2D array {{{}}}gphit
401 * points depths, stored in 1D array {{{}}}gdept
402 * cells corners abscissa, stored in 2D array {{{}}}glamf
403 * cells corners ordinates, stored in 2D array {{{}}}gphif
404 * cells upper boundary depth, stored in 1D array {{{}}}gdepw
405 * land-sea mask, stored in {{{tmask}}}
406 * the cells size in the longitudinal direction, stored in 2D array {{{}}}e1t
407 * the cells size in the latitudinal direction, stored in 2D array {{{}}}e2t
408 * the cells size in the vertical direction, stored in 1D array {{{}}}e3t
409 * the triangulation used to fill the land points, stored in {{{}}}triangles_list
410{{{
411#!html
412<pre xmlns:xl="http://www.w3.org/1999/xlink" class="screen">
413  <code class="prompt">idl&gt;</code> <strong class="userinput"><code><span><strong class="command">help, jpi,jpj,jpk</strong></span></code></strong>
414  <code class="computeroutput">JPI (LOCAL_COORD)   LONG      =          360</code>
415  <code class="computeroutput">JPJ (LOCAL_COORD)   LONG      =          180</code>
416  <code class="computeroutput">JPK (LOCAL_COORD)   LONG      =           33</code>
417  <code class="prompt">idl&gt;</code> <strong class="userinput"><code><span><strong class="command">help, glamt, gphit,glamf, gphif</strong></span></code></strong>
418  <code class="computeroutput">GLAMT (LONGITUDES)  FLOAT     = Array[360, 180]</code>
419  <code class="computeroutput">GPHIT (LATITUDES)   FLOAT     = Array[360, 180]</code>
420  <code class="computeroutput">GLAMF (LONGITUDES)  FLOAT     = Array[360, 180]</code>
421  <code class="computeroutput">GPHIF (LATITUDES)   FLOAT     = Array[360, 180]</code>
422  <code class="prompt">idl&gt;</code> <strong class="userinput"><code><span><strong class="command">help, gdept, gdepw</strong></span></code></strong>
423  <code class="computeroutput">GDEPT (VERTICAL)    FLOAT     = Array[33]</code>
424  <code class="computeroutput">GDEPW (VERTICAL)    FLOAT     = Array[33]</code>
425  <code class="prompt">idl&gt;</code> <strong class="userinput"><code><span><strong class="command">help, e1t, e2t, e3t</strong></span></code></strong>
426  <code class="computeroutput">E1T (SCALE_FACTORS) FLOAT     = Array[360, 180]</code>
427  <code class="computeroutput">E2T (SCALE_FACTORS) FLOAT     = Array[360, 180]</code>
428  <code class="computeroutput">E3T (VERTICAL)      FLOAT     = Array[33]</code>
429  <code class="prompt">idl&gt;</code> <strong class="userinput"><code><span><strong class="command">help, tmask</strong></span></code></strong>
430  <code class="computeroutput">TMASK (MASKS)       BYTE      = Array[360, 180, 33]</code>
431  <code class="prompt">idl&gt;</code> <strong class="userinput"><code><span><strong class="command">help, triangles_list</strong></span></code></strong>
432  <code class="computeroutput">TRIANGLES_LIST (LIEES_A_TRIANGULE) LONG      = Array[3, 128880]</code>
433  <code class="prompt">idl&gt;</code> <strong class="userinput"><code><span><strong class="command">tvplus, glamt*tmask[*,*,0]</strong></span></code></strong>
434  <code class="prompt">idl&gt;</code> <strong class="userinput"><code><span><strong class="command">tvplus, gphit*tmask[*,*,0]</strong></span></code></strong>
435  </pre>
436}}}
437
438  We provide other initialization methods/examples
439 
440 *  [../../Tests/tst_initorca2_short.pro @tst_initorca2_short] : ORCA2 example
441 *  [../../Tests/tst_initorca05_short.pro @tst_initorca05_short] : ORCA05 example
442 *  [../../Tests/tst_initlev_stride.pro @tst_initlev_stride] : same as @tst_initlev but we skip on point over 2 in x and y direction
443 *  [../../Tests/tst_initorca2_short_stride.pro @tst_initorca2_short_stride] : ORCA2 with stride
444 *  [../../Tests/tst_initorca05_short_stride.pro @tst_initorca05_short_stride] : ORCA05 with stride
445 *  [../../Tests/tst_initlev_index.pro @tst_initlev_index] : in that case we load the grid using points index as axis instead of the longitude/latitude position
446 *  [../../Tests/tst_initorca2_index.pro @tst_initorca2_index] : load ORCA2 as it see by the model
447 *  [../../Tests/tst_initorca05_index.pro @tst_initorca05_index] : load ORCA05 as it see by the model
448 *  [../../Tests/tst_initlev_index_stride.pro @tst_initlev_index_stride] : @tst_initlev_index with stride
449 *  [../../Tests/tst_initorca2_index_stride.pro @tst_initorca2_index_stride] : ORCA2 in index with stride
450 *  [../../Tests/tst_initorca05_index_stride.pro @tst_initorca05_index_stride] : ORCA05 in index with stride
451==== Load the grid from OPA meshmask file ====
452
453  When the grid is really irregular (its abscissa and ordinate cannot be descried by a vector), loading the grid directly from the data forces us to make an approximation when computing the grid corners position and the cells size. In that case, it can be preferable to load the grid from the meshmask file created by OPA. As OPA use a Arakawa-C discretization, loading the grid from the meshmask will also define all parameters related to the U, V and F grids (glam[uv],gphi[uv], e[12][uvf]). Note that, when using a simple grid definition from the data itself (with {{{initncdf}}} or {{{computegrid}}}), adding the keyword /FULLCGRID leads also to the definition of all U, V and F grids parameters. There is the examples to load ORCA grids from OPA meshmask.
454 
455 *  [../../Tests/tst_initorca2.pro @tst_initorca2] : ORCA2
456 *  [../../Tests/tst_initorca05.pro @tst_initorca05] : ORCA05
457 *  [../../Tests/tst_initorca2_stride.pro @tst_initorca2_stride] : ORCA2 with stride
458 *  [../../Tests/tst_initorca05_stride.pro @tst_initorca05_stride] : ORCA05 with stride
459 *  [../../Tests/tst_initorca2_index.pro @tst_initorca2_index] : load ORCA2 as it see by the model
460 *  [../../Tests/tst_initorca05_index.pro @tst_initorca05_index] : load ORCA05 as it see by the model
461 *  [../../Tests/tst_initorca2_index_stride.pro @tst_initorca2_index_stride] : ORCA2 in index with stride
462 *  [../../Tests/tst_initorca05_index_stride.pro @tst_initorca05_index_stride] : ORCA05 in index with stride
463=== Horizontal plots and maps ===
464
465  A quick presentation of horizontal plots and maps is shown in [../../Tests/tst_plt.pro tst_plt]. After loading any of the grid (for example with one of the above examples). Just try:
466 
467{{{
468#!html
469<pre xmlns:xl="http://www.w3.org/1999/xlink" class="screen">
470  <code class="prompt">idl&gt;</code> <strong class="userinput"><code><span><strong class="command">tst_plt</strong></span></code></strong>
471  </pre>
472}}}
473''Beware, the command is tst_plt and not @tst_plt as tst_plt.pro is a procedure and not an include.''
474  See the results with
475 
476 * @tst_initlev
477 [figpng/tst_plt_lev_01.png show result]
478 [figpng/tst_plt_lev_02.png show result]
479 [figpng/tst_plt_lev_03.png show result]
480 [figpng/tst_plt_lev_04.png show result]
481 [figpng/tst_plt_lev_05.png show result]
482 [figpng/tst_plt_lev_06.png show result]
483 [figpng/tst_plt_lev_07.png show result]
484 [figpng/tst_plt_lev_08.png show result]
485 [figpng/tst_plt_lev_09.png show result]
486 [figpng/tst_plt_lev_10.png show result]
487 * @tst_initorca2
488 [figpng/tst_plt_orca2_01.png show result]
489 [figpng/tst_plt_orca2_02.png show result]
490 [figpng/tst_plt_orca2_03.png show result]
491 [figpng/tst_plt_orca2_04.png show result]
492 [figpng/tst_plt_orca2_05.png show result]
493 [figpng/tst_plt_orca2_06.png show result]
494 [figpng/tst_plt_orca2_07.png show result]
495 [figpng/tst_plt_orca2_08.png show result]
496 [figpng/tst_plt_orca2_09.png show result]
497 [figpng/tst_plt_orca2_10.png show result]
498 * @tst_initorca05
499 [figpng/tst_plt_orca05_01.png show result]
500 [figpng/tst_plt_orca05_02.png show result]
501 [figpng/tst_plt_orca05_03.png show result]
502 [figpng/tst_plt_orca05_04.png show result]
503 [figpng/tst_plt_orca05_05.png show result]
504 [figpng/tst_plt_orca05_06.png show result]
505 [figpng/tst_plt_orca05_07.png show result]
506 [figpng/tst_plt_orca05_08.png show result]
507 [figpng/tst_plt_orca05_09.png show result]
508 [figpng/tst_plt_orca05_10.png show result]
509 * @tst_initlev_stride
510 [figpng/tst_plt_lev_stride_01.png show result]
511 [figpng/tst_plt_lev_stride_02.png show result]
512 [figpng/tst_plt_lev_stride_03.png show result]
513 [figpng/tst_plt_lev_stride_04.png show result]
514 [figpng/tst_plt_lev_stride_05.png show result]
515 [figpng/tst_plt_lev_stride_06.png show result]
516 [figpng/tst_plt_lev_stride_07.png show result]
517 [figpng/tst_plt_lev_stride_08.png show result]
518 [figpng/tst_plt_lev_stride_09.png show result]
519 [figpng/tst_plt_lev_stride_10.png show result]
520 * @tst_initorca2_stride
521 [figpng/tst_plt_orca2_stride_01.png show result]
522 [figpng/tst_plt_orca2_stride_02.png show result]
523 [figpng/tst_plt_orca2_stride_03.png show result]
524 [figpng/tst_plt_orca2_stride_04.png show result]
525 [figpng/tst_plt_orca2_stride_05.png show result]
526 [figpng/tst_plt_orca2_stride_06.png show result]
527 [figpng/tst_plt_orca2_stride_07.png show result]
528 [figpng/tst_plt_orca2_stride_08.png show result]
529 [figpng/tst_plt_orca2_stride_09.png show result]
530 [figpng/tst_plt_orca2_stride_10.png show result]
531 * @tst_initorca05_stride
532 [figpng/tst_plt_orca05_stride_01.png show result]
533 [figpng/tst_plt_orca05_stride_02.png show result]
534 [figpng/tst_plt_orca05_stride_03.png show result]
535 [figpng/tst_plt_orca05_stride_04.png show result]
536 [figpng/tst_plt_orca05_stride_05.png show result]
537 [figpng/tst_plt_orca05_stride_06.png show result]
538 [figpng/tst_plt_orca05_stride_07.png show result]
539 [figpng/tst_plt_orca05_stride_08.png show result]
540 [figpng/tst_plt_orca05_stride_09.png show result]
541 [figpng/tst_plt_orca05_stride_10.png show result]
542=== Vertical sections ===
543
544  A quick presentation of vertical sections is shown in [../../Tests/tst_pltz.pro tst_pltz]. After loading any of the grid (for example with one of the above examples). Just try:
545 
546{{{
547#!html
548<pre xmlns:xl="http://www.w3.org/1999/xlink" class="screen">
549  <code class="prompt">idl&gt;</code> <strong class="userinput"><code><span><strong class="command">tst_pltz</strong></span></code></strong>
550  </pre>
551}}}
552''Beware, the command is tst_pltz and not @tst_pltz as tst_pltz.pro is a procedure and not an include.''
553  See the results with
554 
555 * @tst_initlev
556 [figpng/tst_pltz_lev_01.png show result]
557 [figpng/tst_pltz_lev_02.png show result]
558 [figpng/tst_pltz_lev_03.png show result]
559 [figpng/tst_pltz_lev_04.png show result]
560 [figpng/tst_pltz_lev_05.png show result]
561 [figpng/tst_pltz_lev_06.png show result]
562 [figpng/tst_pltz_lev_07.png show result]
563 [figpng/tst_pltz_lev_08.png show result]
564 [figpng/tst_pltz_lev_09.png show result]
565 [figpng/tst_pltz_lev_10.png show result]
566 [figpng/tst_pltz_lev_11.png show result]
567 * @tst_initorca2
568 [figpng/tst_pltz_orca2_01.png show result]
569 [figpng/tst_pltz_orca2_02.png show result]
570 [figpng/tst_pltz_orca2_03.png show result]
571 [figpng/tst_pltz_orca2_04.png show result]
572 [figpng/tst_pltz_orca2_05.png show result]
573 [figpng/tst_pltz_orca2_06.png show result]
574 [figpng/tst_pltz_orca2_07.png show result]
575 [figpng/tst_pltz_orca2_08.png show result]
576 [figpng/tst_pltz_orca2_09.png show result]
577 [figpng/tst_pltz_orca2_10.png show result]
578 [figpng/tst_pltz_orca2_11.png show result]
579 [figpng/tst_pltz_orca2_12.png show result]
580 * @tst_initorca05
581 [figpng/tst_pltz_orca05_01.png show result]
582 [figpng/tst_pltz_orca05_02.png show result]
583 [figpng/tst_pltz_orca05_03.png show result]
584 [figpng/tst_pltz_orca05_04.png show result]
585 [figpng/tst_pltz_orca05_05.png show result]
586 [figpng/tst_pltz_orca05_06.png show result]
587 [figpng/tst_pltz_orca05_07.png show result]
588 [figpng/tst_pltz_orca05_08.png show result]
589 [figpng/tst_pltz_orca05_09.png show result]
590 [figpng/tst_pltz_orca05_10.png show result]
591 [figpng/tst_pltz_orca05_11.png show result]
592 [figpng/tst_pltz_orca05_12.png show result]
593 * @tst_initlev_stride
594 [figpng/tst_pltz_lev_stride_01.png show result]
595 [figpng/tst_pltz_lev_stride_02.png show result]
596 [figpng/tst_pltz_lev_stride_03.png show result]
597 [figpng/tst_pltz_lev_stride_04.png show result]
598 [figpng/tst_pltz_lev_stride_05.png show result]
599 [figpng/tst_pltz_lev_stride_06.png show result]
600 [figpng/tst_pltz_lev_stride_07.png show result]
601 [figpng/tst_pltz_lev_stride_08.png show result]
602 [figpng/tst_pltz_lev_stride_09.png show result]
603 [figpng/tst_pltz_lev_stride_10.png show result]
604 [figpng/tst_pltz_lev_stride_11.png show result]
605 * @tst_initorca2_stride
606 [figpng/tst_pltz_orca2_stride_01.png show result]
607 [figpng/tst_pltz_orca2_stride_02.png show result]
608 [figpng/tst_pltz_orca2_stride_03.png show result]
609 [figpng/tst_pltz_orca2_stride_04.png show result]
610 [figpng/tst_pltz_orca2_stride_05.png show result]
611 [figpng/tst_pltz_orca2_stride_06.png show result]
612 [figpng/tst_pltz_orca2_stride_07.png show result]
613 [figpng/tst_pltz_orca2_stride_08.png show result]
614 [figpng/tst_pltz_orca2_stride_09.png show result]
615 [figpng/tst_pltz_orca2_stride_10.png show result]
616 [figpng/tst_pltz_orca2_stride_11.png show result]
617 * @tst_initorca05_stride
618 [figpng/tst_pltz_orca05_stride_01.png show result]
619 [figpng/tst_pltz_orca05_stride_02.png show result]
620 [figpng/tst_pltz_orca05_stride_03.png show result]
621 [figpng/tst_pltz_orca05_stride_04.png show result]
622 [figpng/tst_pltz_orca05_stride_05.png show result]
623 [figpng/tst_pltz_orca05_stride_06.png show result]
624 [figpng/tst_pltz_orca05_stride_07.png show result]
625 [figpng/tst_pltz_orca05_stride_08.png show result]
626 [figpng/tst_pltz_orca05_stride_09.png show result]
627 [figpng/tst_pltz_orca05_stride_10.png show result]
628 [figpng/tst_pltz_orca05_stride_11.png show result]
629=== Hovmoellers and time series ===
630
631  A quick presentation of hovmoellers and time series is shown in [../../Tests/tst_pltt.pro tst_pltt]. After loading any of the grid (for example with one of the above examples). Just try:
632 
633{{{
634#!html
635<pre xmlns:xl="http://www.w3.org/1999/xlink" class="screen">
636  <code class="prompt">idl&gt;</code> <strong class="userinput"><code><span><strong class="command">tst_pltt</strong></span></code></strong>
637  </pre>
638}}}
639''Beware, the command is tst_pltt and not @tst_pltt as tst_pltt.pro is a procedure and not an include.''
640  See the results with
641 
642 * @tst_initlev
643 [figpng/tst_pltt_lev_01.png show result]
644 [figpng/tst_pltt_lev_02.png show result]
645 [figpng/tst_pltt_lev_03.png show result]
646 [figpng/tst_pltt_lev_04.png show result]
647 [figpng/tst_pltt_lev_05.png show result]
648 [figpng/tst_pltt_lev_06.png show result]
649 * @tst_initorca2
650 [figpng/tst_pltt_orca2_01.png show result]
651 [figpng/tst_pltt_orca2_02.png show result]
652 [figpng/tst_pltt_orca2_03.png show result]
653 [figpng/tst_pltt_orca2_04.png show result]
654 [figpng/tst_pltt_orca2_05.png show result]
655 [figpng/tst_pltt_orca2_06.png show result]
656 * @tst_initorca05
657 [figpng/tst_pltt_orca05_01.png show result]
658 [figpng/tst_pltt_orca05_02.png show result]
659 [figpng/tst_pltt_orca05_03.png show result]
660 [figpng/tst_pltt_orca05_04.png show result]
661 [figpng/tst_pltt_orca05_05.png show result]
662 [figpng/tst_pltt_orca05_06.png show result]
663 * @tst_initlev_stride
664 [figpng/tst_pltt_lev_stride_01.png show result]
665 [figpng/tst_pltt_lev_stride_02.png show result]
666 [figpng/tst_pltt_lev_stride_03.png show result]
667 [figpng/tst_pltt_lev_stride_04.png show result]
668 [figpng/tst_pltt_lev_stride_05.png show result]
669 [figpng/tst_pltt_lev_stride_06.png show result]
670 * @tst_initorca2_stride
671 [figpng/tst_pltt_orca2_stride_01.png show result]
672 [figpng/tst_pltt_orca2_stride_02.png show result]
673 [figpng/tst_pltt_orca2_stride_03.png show result]
674 [figpng/tst_pltt_orca2_stride_04.png show result]
675 [figpng/tst_pltt_orca2_stride_05.png show result]
676 [figpng/tst_pltt_orca2_stride_06.png show result]
677 * @tst_initorca05_stride
678 [figpng/tst_pltt_orca05_stride_01.png show result]
679 [figpng/tst_pltt_orca05_stride_02.png show result]
680 [figpng/tst_pltt_orca05_stride_03.png show result]
681 [figpng/tst_pltt_orca05_stride_04.png show result]
682 [figpng/tst_pltt_orca05_stride_05.png show result]
683 [figpng/tst_pltt_orca05_stride_06.png show result]
684=== 1D plots ===
685
686To be continued 

687
Note: See TracBrowser for help on using the repository browser.