root/doc/trunk/htdocs/vcs_html/vcs-8.html

Revision 5488, 227.1 kB (checked in by dubois, 8 years ago)

Add "Getting Started" document.

Line 
1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN"><HTML>
2 <HEAD>
3 <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
4 <META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
5 <META NAME="GENERATOR" CONTENT="Adobe FrameMaker 6.0/HTML Export Filter">
6 <LINK REL="STYLESHEET" HREF="vcs.css" CHARSET="ISO-8859-1" TYPE="text/css">
7 <TITLE> CHAPTER 8       VCS Examples</TITLE>
8 </HEAD>
9 <BODY BGCOLOR="#ffffff">
10 <H2 CLASS="ChapterTitle">
11 <A NAME="pgfId-904289"></A>CHAPTER 8    <A NAME="83780"></A>VCS Examples</H2>
12 <P CLASS="BodyAfterHead">
13 <A NAME="pgfId-837288"></A>This section shows useful VCS examples.</P>
14 <DIV>
15 <H4 CLASS="Heading1">
16 <A NAME="pgfId-884583"></A><DIV>
17 <IMG SRC="vcs-2.gif">
18 </DIV>
19 Simple Plotting Example:</H4>
20 <P CLASS="LotsOfCode">
21 <A NAME="pgfId-884589"></A>#</P>
22 <P CLASS="LotsOfCode">
23 <A NAME="pgfId-884590"></A># Simple Plot module</P>
24 <P CLASS="LotsOfCode">
25 <A NAME="pgfId-884591"></A>#</P>
26 <P CLASS="LotsOfCode">
27 <A NAME="pgfId-884592"></A>############################################################################</P>
28 <P CLASS="LotsOfCode">
29 <A NAME="pgfId-884593"></A>#                                                                          #</P>
30 <P CLASS="LotsOfCode">
31 <A NAME="pgfId-884594"></A># Module:       simpleplot module                                          #</P>
32 <P CLASS="LotsOfCode">
33 <A NAME="pgfId-884595"></A>#                                                                          #</P>
34 <P CLASS="LotsOfCode">
35 <A NAME="pgfId-884596"></A># Copyright:    2000, Regents of the University of California              #</P>
36 <P CLASS="LotsOfCode">
37 <A NAME="pgfId-884597"></A>#               This software may not be distributed to others without     #</P>
38 <P CLASS="LotsOfCode">
39 <A NAME="pgfId-884598"></A>#               permission of the author.                                  #</P>
40 <P CLASS="LotsOfCode">
41 <A NAME="pgfId-884599"></A>#                                                                          #</P>
42 <P CLASS="LotsOfCode">
43 <A NAME="pgfId-884600"></A># Author:       Dean N. Williams, Lawrence Livermore National Laboratory   #</P>
44 <P CLASS="LotsOfCode">
45 <A NAME="pgfId-884601"></A>#               williams13@llnl.gov                                        #</P>
46 <P CLASS="LotsOfCode">
47 <A NAME="pgfId-884602"></A>#                                                                          #</P>
48 <P CLASS="LotsOfCode">
49 <A NAME="pgfId-884603"></A># Description:  Simple plotting example.                                   #</P>
50 <P CLASS="LotsOfCode">
51 <A NAME="pgfId-884604"></A>#                                                                          #</P>
52 <P CLASS="LotsOfCode">
53 <A NAME="pgfId-884605"></A># Version:      1.0                                                        #</P>
54 <P CLASS="LotsOfCode">
55 <A NAME="pgfId-884606"></A>#                                                                          #</P>
56 <P CLASS="LotsOfCode">
57 <A NAME="pgfId-884607"></A>############################################################################</P>
58 <P CLASS="LotsOfCode">
59 <A NAME="pgfId-884608"></A>#</P>
60 <P CLASS="LotsOfCode">
61 <A NAME="pgfId-884609"></A>#</P>
62 <P CLASS="LotsOfCode">
63 <A NAME="pgfId-884610"></A>#</P>
64 <P CLASS="LotsOfCode">
65 <A NAME="pgfId-884611"></A>############################################################################</P>
66 <P CLASS="LotsOfCode">
67 <A NAME="pgfId-884612"></A>#                                                                          #</P>
68 <P CLASS="LotsOfCode">
69 <A NAME="pgfId-884613"></A># Import: vcs  and cdms modules.                                           #</P>
70 <P CLASS="LotsOfCode">
71 <A NAME="pgfId-884614"></A>#                                                                          #</P>
72 <P CLASS="LotsOfCode">
73 <A NAME="pgfId-884615"></A>############################################################################</P>
74 <P CLASS="LotsOfCode">
75 <A NAME="pgfId-884616"></A>def simpleplot():</P>
76 <P CLASS="LotsOfCode">
77 <A NAME="pgfId-884617"></A>   import vcs,cdms                      # import vcs and cdms</P>
78 <P CLASS="LotsOfCode">
79 <A NAME="pgfId-884618"></A>&nbsp;</P>
80 <P CLASS="LotsOfCode">
81 <A NAME="pgfId-884698"></A>   #####################################################################</P>
82 <P CLASS="LotsOfCode">
83 <A NAME="pgfId-884699"></A>   # See the CDMS document on how to ingest data. Also see the CU and  #</P>
84 <P CLASS="LotsOfCode">
85 <A NAME="pgfId-884700"></A>   # the Numeric documents on alternative ways to import data into VCS #</P>
86 <P CLASS="LotsOfCode">
87 <A NAME="pgfId-884703"></A>   #####################################################################</P>
88 <P CLASS="LotsOfCode">
89 <A NAME="pgfId-884708"></A>&nbsp;</P>
90 <P CLASS="LotsOfCode">
91 <A NAME="pgfId-884619"></A>   f=cdms.openDataset('example.nc')     # open example file</P>
92 <P CLASS="LotsOfCode">
93 <A NAME="pgfId-884620"></A>   clt=f.variables['clt']               # get variable clt</P>
94 <P CLASS="LotsOfCode">
95 <A NAME="pgfId-884621"></A>   s=clt[0]                                                      # get clt data</P>
96 <P CLASS="LotsOfCode">
97 <A NAME="pgfId-884637"></A>&nbsp;</P>
98 <P CLASS="LotsOfCode">
99 <A NAME="pgfId-884658"></A>   #######################################################################</P>
100 <P CLASS="LotsOfCode">
101 <A NAME="pgfId-884659"></A>   # Basically to plot using the VCS module, three steps are required:   #</P>
102 <P CLASS="LotsOfCode">
103 <A NAME="pgfId-884662"></A>   # importing the vcs module; initializing the VCS Canvas Object, and   #</P>
104 <P CLASS="LotsOfCode">
105 <A NAME="pgfId-884669"></A>   # plotting the data on the VCS Canvas.                                #</P>
106 <P CLASS="LotsOfCode">
107 <A NAME="pgfId-884683"></A>   #######################################################################           </P>
108 <P CLASS="LotsOfCode">
109 <A NAME="pgfId-884622"></A>   x=vcs.init()                         # initialize vcs</P>
110 <P CLASS="LotsOfCode">
111 <A NAME="pgfId-884624"></A>   x.plot(s,variable=clt)               # plot data using default values</P>
112 <P CLASS="LotsOfCode">
113 <A NAME="pgfId-884697"></A>&nbsp;</P>
114 <P CLASS="LotsOfCode">
115 <A NAME="pgfId-884641"></A>   print '*******************************************************************'</P>
116 <P CLASS="LotsOfCode">
117 <A NAME="pgfId-884642"></A>   print '******                                                       ******'</P>
118 <P CLASS="LotsOfCode">
119 <A NAME="pgfId-884643"></A>   print '******   S I M P L E   P L O T T I N G   C O M P L E T E D   ******'</P>
120 <P CLASS="LotsOfCode">
121 <A NAME="pgfId-884644"></A>   print '******                                                       ******'</P>
122 <P CLASS="LotsOfCode">
123 <A NAME="pgfId-884645"></A>   print '*******************************************************************'</P>
124 <P CLASS="LotsOfCode">
125 <A NAME="pgfId-884646"></A>&nbsp;</P>
126 <P CLASS="LotsOfCode">
127 <A NAME="pgfId-884647"></A>if __name__==&quot;__main__&quot;:</P>
128 <P CLASS="LotsOfCode">
129 <A NAME="pgfId-884648"></A>   simpleplot()</P>
130 </DIV>
131 <DIV>
132 <H4 CLASS="Heading1">
133 <A NAME="pgfId-884714"></A><DIV>
134 <IMG SRC="vcs-2.gif">
135 </DIV>
136 Simple Overlay Plot Example:</H4>
137 <P CLASS="LotsOfCode">
138 <A NAME="pgfId-884722"></A>#</P>
139 <P CLASS="LotsOfCode">
140 <A NAME="pgfId-884723"></A># Simple Overlay Plot module</P>
141 <P CLASS="LotsOfCode">
142 <A NAME="pgfId-884724"></A>#</P>
143 <P CLASS="LotsOfCode">
144 <A NAME="pgfId-884725"></A>############################################################################</P>
145 <P CLASS="LotsOfCode">
146 <A NAME="pgfId-884726"></A>#                                                                          #</P>
147 <P CLASS="LotsOfCode">
148 <A NAME="pgfId-884727"></A># Module:       simpleoverlay module                                       #</P>
149 <P CLASS="LotsOfCode">
150 <A NAME="pgfId-884728"></A>#                                                                          #</P>
151 <P CLASS="LotsOfCode">
152 <A NAME="pgfId-884729"></A># Copyright:    2000, Regents of the University of California              #</P>
153 <P CLASS="LotsOfCode">
154 <A NAME="pgfId-884730"></A>#               This software may not be distributed to others without     #</P>
155 <P CLASS="LotsOfCode">
156 <A NAME="pgfId-884731"></A>#               permission of the author.                                  #</P>
157 <P CLASS="LotsOfCode">
158 <A NAME="pgfId-884732"></A>#                                                                          #</P>
159 <P CLASS="LotsOfCode">
160 <A NAME="pgfId-884733"></A># Author:       Dean N. Williams, Lawrence Livermore National Laboratory   #</P>
161 <P CLASS="LotsOfCode">
162 <A NAME="pgfId-884734"></A>#               williams13@llnl.gov                                        #</P>
163 <P CLASS="LotsOfCode">
164 <A NAME="pgfId-884735"></A>#                                                                          #</P>
165 <P CLASS="LotsOfCode">
166 <A NAME="pgfId-884736"></A># Description:  Simple overlay plotting example                            #</P>
167 <P CLASS="LotsOfCode">
168 <A NAME="pgfId-884737"></A>#                                                                          #</P>
169 <P CLASS="LotsOfCode">
170 <A NAME="pgfId-884738"></A># Version:      1.0                                                        #</P>
171 <P CLASS="LotsOfCode">
172 <A NAME="pgfId-884739"></A>#                                                                          #</P>
173 <P CLASS="LotsOfCode">
174 <A NAME="pgfId-884740"></A>############################################################################</P>
175 <P CLASS="LotsOfCode">
176 <A NAME="pgfId-884741"></A>#</P>
177 <P CLASS="LotsOfCode">
178 <A NAME="pgfId-884742"></A>#</P>
179 <P CLASS="LotsOfCode">
180 <A NAME="pgfId-884743"></A>#</P>
181 <P CLASS="LotsOfCode">
182 <A NAME="pgfId-884744"></A>############################################################################</P>
183 <P CLASS="LotsOfCode">
184 <A NAME="pgfId-884745"></A>#                                                                          #</P>
185 <P CLASS="LotsOfCode">
186 <A NAME="pgfId-884746"></A># Import: vcs  and cdms modules.                                           #</P>
187 <P CLASS="LotsOfCode">
188 <A NAME="pgfId-884747"></A>#                                                                          #</P>
189 <P CLASS="LotsOfCode">
190 <A NAME="pgfId-884748"></A>############################################################################</P>
191 <P CLASS="LotsOfCode">
192 <A NAME="pgfId-884749"></A>def simpleoverlay():</P>
193 <P CLASS="LotsOfCode">
194 <A NAME="pgfId-884750"></A>   import vcs,cdms                      # import vcs and cdms</P>
195 <P CLASS="LotsOfCode">
196 <A NAME="pgfId-884751"></A>&nbsp;</P>
197 <P CLASS="LotsOfCode">
198 <A NAME="pgfId-884752"></A>   #####################################################################</P>
199 <P CLASS="LotsOfCode">
200 <A NAME="pgfId-884753"></A>   # See the CDMS document on how to ingest data. Also see the CU and  #</P>
201 <P CLASS="LotsOfCode">
202 <A NAME="pgfId-884754"></A>   # the Numeric documents on alternative ways to import data into VCS #</P>
203 <P CLASS="LotsOfCode">
204 <A NAME="pgfId-884755"></A>   #####################################################################</P>
205 <P CLASS="LotsOfCode">
206 <A NAME="pgfId-884756"></A>&nbsp;</P>
207 <P CLASS="LotsOfCode">
208 <A NAME="pgfId-884757"></A>   f=cdms.openDataset('example.nc')     # open example file</P>
209 <P CLASS="LotsOfCode">
210 <A NAME="pgfId-884758"></A>   clt=f.variables['clt']               # get variable clt</P>
211 <P CLASS="LotsOfCode">
212 <A NAME="pgfId-884759"></A>   s=clt[0]                                                      # get clt data</P>
213 <P CLASS="LotsOfCode">
214 <A NAME="pgfId-884763"></A>&nbsp;</P>
215 <P CLASS="LotsOfCode">
216 <A NAME="pgfId-884764"></A>   ########################################################################</P>
217 <P CLASS="LotsOfCode">
218 <A NAME="pgfId-884765"></A>   # Basically to plot using the VCS module, three steps are required:    #</P>
219 <P CLASS="LotsOfCode">
220 <A NAME="pgfId-884766"></A>   # importing the vcs module; initializing the VCS Canvas Object, and    #</P>
221 <P CLASS="LotsOfCode">
222 <A NAME="pgfId-884767"></A>   # plot the data on the VCS Canvas.                                     #</P>
223 <P CLASS="LotsOfCode">
224 <A NAME="pgfId-884813"></A>   #                                                                      #</P>
225 <P CLASS="LotsOfCode">
226 <A NAME="pgfId-884803"></A>   # Note:                                                                #</P>
227 <P CLASS="LotsOfCode">
228 <A NAME="pgfId-884808"></A>   #  In the example below, we are using isofill and isoline to plot the  #</P>
229 <P CLASS="LotsOfCode">
230 <A NAME="pgfId-884809"></A>   #  data. We could just as easily used the `plot()' function to achieve #</P>
231 <P CLASS="LotsOfCode">
232 <A NAME="pgfId-884816"></A>   #  the same result:                                                    #</P>
233 <P CLASS="LotsOfCode">
234 <A NAME="pgfId-884817"></A>   #  x.plot(s,'default', `isofill', variable=clt)                        #</P>
235 <P CLASS="LotsOfCode">
236 <A NAME="pgfId-884818"></A>   #  x.plot(s,'default_dud', `isoline', variable=clt)                    #</P>
237 <P CLASS="LotsOfCode">
238 <A NAME="pgfId-884822"></A>   # Note:                                                                #</P>
239 <P CLASS="LotsOfCode">
240 <A NAME="pgfId-884823"></A>   #   `default' and `default_dud' are passed as the second argument in   #</P>
241 <P CLASS="LotsOfCode">
242 <A NAME="pgfId-884824"></A>   #   plot routines, respectfully. `default' represents a VCS template   #</P>
243 <P CLASS="LotsOfCode">
244 <A NAME="pgfId-884825"></A>   #   that displays the text and plot lengend, while `default_dud' is a  #</P>
245 <P CLASS="LotsOfCode">
246 <A NAME="pgfId-884826"></A>   #   VCS template that will only display the data on the VCS Canvas.    #</P>
247 <P CLASS="LotsOfCode">
248 <A NAME="pgfId-884819"></A>   ########################################################################           </P>
249 <P CLASS="LotsOfCode">
250 <A NAME="pgfId-884769"></A>   x=vcs.init()                             # initialize vcs</P>
251 <P CLASS="LotsOfCode">
252 <A NAME="pgfId-884770"></A>   x.isofill(s,'default',variable=clt)      # plot data using default values</P>
253 <P CLASS="LotsOfCode">
254 <A NAME="pgfId-884988"></A>   x.isoline(s,'default_dud',variable=clt)  # overlay isolines over isofill plot</P>
255 <P CLASS="LotsOfCode">
256 <A NAME="pgfId-884989"></A>&nbsp;</P>
257 <P CLASS="LotsOfCode">
258 <A NAME="pgfId-884990"></A>   print '*****************************************************************'</P>
259 <P CLASS="LotsOfCode">
260 <A NAME="pgfId-884773"></A>   print '******                                                     ******'</P>
261 <P CLASS="LotsOfCode">
262 <A NAME="pgfId-884774"></A>   print '******   S I M P L E   O V E R L A Y   C O M P L E T E D   ******'</P>
263 <P CLASS="LotsOfCode">
264 <A NAME="pgfId-884775"></A>   print '******                                                     ******'</P>
265 <P CLASS="LotsOfCode">
266 <A NAME="pgfId-884776"></A>   print '*****************************************************************'</P>
267 <P CLASS="LotsOfCode">
268 <A NAME="pgfId-884777"></A>&nbsp;</P>
269 <P CLASS="LotsOfCode">
270 <A NAME="pgfId-884778"></A>if __name__==&quot;__main__&quot;:</P>
271 <P CLASS="LotsOfCode">
272 <A NAME="pgfId-884779"></A>   simpleoverlay()</P>
273 </DIV>
274 <DIV>
275 <H4 CLASS="Heading1">
276 <A NAME="pgfId-837381"></A><DIV>
277 <IMG SRC="vcs-2.gif">
278 </DIV>
279 Boxfill Graphics Method Example:</H4>
280 <P CLASS="LotsOfCode">
281 <A NAME="pgfId-837357"></A>#</P>
282 <P CLASS="LotsOfCode">
283 <A NAME="pgfId-837385"></A># Example Boxfill (Gfb) module</P>
284 <P CLASS="LotsOfCode">
285 <A NAME="pgfId-837386"></A>#</P>
286 <P CLASS="LotsOfCode">
287 <A NAME="pgfId-837387"></A>############################################################################</P>
288 <P CLASS="LotsOfCode">
289 <A NAME="pgfId-837388"></A>#                                                                          #</P>
290 <P CLASS="LotsOfCode">
291 <A NAME="pgfId-837389"></A># Module:       exampleboxfill module                                      #</P>
292 <P CLASS="LotsOfCode">
293 <A NAME="pgfId-837390"></A>#                                                                          #</P>
294 <P CLASS="LotsOfCode">
295 <A NAME="pgfId-837391"></A># Copyright:    2000, Regents of the University of California              #</P>
296 <P CLASS="LotsOfCode">
297 <A NAME="pgfId-837392"></A>#               This software may not be distributed to others without     #</P>
298 <P CLASS="LotsOfCode">
299 <A NAME="pgfId-837393"></A>#               permission of the author.                                  #</P>
300 <P CLASS="LotsOfCode">
301 <A NAME="pgfId-837394"></A>#                                                                          #</P>
302 <P CLASS="LotsOfCode">
303 <A NAME="pgfId-837395"></A># Author:       Dean N. Williams, Lawrence Livermore National Laboratory   #</P>
304 <P CLASS="LotsOfCode">
305 <A NAME="pgfId-837396"></A>#               williams13@llnl.gov                                        #</P>
306 <P CLASS="LotsOfCode">
307 <A NAME="pgfId-837397"></A>#                                                                          #</P>
308 <P CLASS="LotsOfCode">
309 <A NAME="pgfId-837398"></A># Description:  Example use of VCS's boxfill graphics method.              #</P>
310 <P CLASS="LotsOfCode">
311 <A NAME="pgfId-837399"></A>#                                                                          #</P>
312 <P CLASS="LotsOfCode">
313 <A NAME="pgfId-837400"></A># Version:      1.0                                                        #</P>
314 <P CLASS="LotsOfCode">
315 <A NAME="pgfId-837401"></A>#                                                                          #</P>
316 <P CLASS="LotsOfCode">
317 <A NAME="pgfId-837402"></A>############################################################################</P>
318 <P CLASS="LotsOfCode">
319 <A NAME="pgfId-837403"></A>#</P>
320 <P CLASS="LotsOfCode">
321 <A NAME="pgfId-837404"></A>#</P>
322 <P CLASS="LotsOfCode">
323 <A NAME="pgfId-837405"></A>#</P>
324 <P CLASS="LotsOfCode">
325 <A NAME="pgfId-837406"></A>############################################################################</P>
326 <P CLASS="LotsOfCode">
327 <A NAME="pgfId-837407"></A>#                                                                          #</P>
328 <P CLASS="LotsOfCode">
329 <A NAME="pgfId-837408"></A># Import: vcs  and cdms modules.                                           #</P>
330 <P CLASS="LotsOfCode">
331 <A NAME="pgfId-837409"></A>#                                                                          #</P>
332 <P CLASS="LotsOfCode">
333 <A NAME="pgfId-837410"></A>############################################################################</P>
334 <P CLASS="LotsOfCode">
335 <A NAME="pgfId-837411"></A>def exampleboxfill():</P>
336 <P CLASS="LotsOfCode">
337 <A NAME="pgfId-837412"></A>   import vcs,cdms                      # import vcs and cdms</P>
338 <P CLASS="LotsOfCode">
339 <A NAME="pgfId-837413"></A>&nbsp;</P>
340 <P CLASS="LotsOfCode">
341 <A NAME="pgfId-837414"></A>   f=cdms.openDataset('example.nc')     # open example file</P>
342 <P CLASS="LotsOfCode">
343 <A NAME="pgfId-837415"></A>   clt=f.variables['clt']               # get variable clt</P>
344 <P CLASS="LotsOfCode">
345 <A NAME="pgfId-881605"></A>   s=clt[0]                                                      # get clt data</P>
346 <P CLASS="LotsOfCode">
347 <A NAME="pgfId-837416"></A>   x=vcs.init()                         # construct vcs canvas</P>
348 <P CLASS="LotsOfCode">
349 <A NAME="pgfId-837417"></A>  </P>
350 <P CLASS="LotsOfCode">
351 <A NAME="pgfId-837418"></A>   x.plot(s,'default','boxfill','quick',variable=clt)# plot slab the old way</P>
352 <P CLASS="LotsOfCode">
353 <A NAME="pgfId-837419"></A>   x.geometry(450,337)                  # change the geometry</P>
354 <P CLASS="LotsOfCode">
355 <A NAME="pgfId-837420"></A>  </P>
356 <P CLASS="LotsOfCode">
357 <A NAME="pgfId-837421"></A>   print x.listelements('boxfill')      # print boxfill Python list</P>
358 <P CLASS="LotsOfCode">
359 <A NAME="pgfId-837422"></A>   x.show('boxfill')                    # show list of boxfill graphics methods</P>
360 <P CLASS="LotsOfCode">
361 <A NAME="pgfId-837423"></A>   a=x.getboxfill('quick')              # get 'quick' boxfill graphics method</P>
362 <P CLASS="LotsOfCode">
363 <A NAME="pgfId-837424"></A>   if x.isgraphicsmethod(a):            # check for graphics method</P>
364 <P CLASS="LotsOfCode">
365 <A NAME="pgfId-837425"></A>      print 'Yes, this is a graphics method'</P>
366 <P CLASS="LotsOfCode">
367 <A NAME="pgfId-837426"></A>      if x.isboxfill(a):                # check for boxfill</P>
368 <P CLASS="LotsOfCode">
369 <A NAME="pgfId-837427"></A>         print 'Yes, this is a isofill graphics method'</P>
370 <P CLASS="LotsOfCode">
371 <A NAME="pgfId-837428"></A>         a.list()                       # list its attributes</P>
372 <P CLASS="LotsOfCode">
373 <A NAME="pgfId-837429"></A>  </P>
374 <P CLASS="LotsOfCode">
375 <A NAME="pgfId-837430"></A>   a.color_1=50                         # change color_1 index attribute</P>
376 <P CLASS="LotsOfCode">
377 <A NAME="pgfId-837431"></A>   a.xticlabels('lon30','lon30')        # change xlabels attribute</P>
378 <P CLASS="LotsOfCode">
379 <A NAME="pgfId-837432"></A>   a.xticlabels('','')                  # change remove xlables from plot</P>
380 <P CLASS="LotsOfCode">
381 <A NAME="pgfId-837433"></A>   a.datawc(-45.0, 45.0, -90.0, 90.0)   # change region</P>
382 <P CLASS="LotsOfCode">
383 <A NAME="pgfId-837434"></A>   a.datawc(1e20,1e20,1e20,1e20)        # change region back</P>
384 <P CLASS="LotsOfCode">
385 <A NAME="pgfId-837435"></A>   a.xticlabels('*')                    # change attribute labels back</P>
386 <P CLASS="LotsOfCode">
387 <A NAME="pgfId-837436"></A>  </P>
388 <P CLASS="LotsOfCode">
389 <A NAME="pgfId-837437"></A>   x.mode=0                             # turn atomatic update off</P>
390 <P CLASS="LotsOfCode">
391 <A NAME="pgfId-837438"></A>   a.color_1=100                        # change color_1 attribute</P>
392 <P CLASS="LotsOfCode">
393 <A NAME="pgfId-837439"></A>   a.color_2=200                        # change color_2 index value</P>
394 <P CLASS="LotsOfCode">
395 <A NAME="pgfId-837440"></A>   a.xticlabels('lon30','lon30')        # change attribute</P>
396 <P CLASS="LotsOfCode">
397 <A NAME="pgfId-837441"></A>   a.yticlabels('','')                  # change y-labels off attribute</P>
398 <P CLASS="LotsOfCode">
399 <A NAME="pgfId-837442"></A>   a.datawc(-45.0, 45.0, -90.0, 90.0)   # change region</P>
400 <P CLASS="LotsOfCode">
401 <A NAME="pgfId-837443"></A>   x.update()                           # view changes now</P>
402 <P CLASS="LotsOfCode">
403 <A NAME="pgfId-837444"></A>  </P>
404 <P CLASS="LotsOfCode">
405 <A NAME="pgfId-837445"></A>   a.script('test','w')                 # save 'quick' boxfill as a Python script</P>
406 <P CLASS="LotsOfCode">
407 <A NAME="pgfId-837446"></A>  </P>
408 <P CLASS="LotsOfCode">
409 <A NAME="pgfId-837447"></A>   x.mode=1                             # turn atomatic update mode back on</P>
410 <P CLASS="LotsOfCode">
411 <A NAME="pgfId-837449"></A>   a.color_1=16                         # change color_1 attribute</P>
412 <P CLASS="LotsOfCode">
413 <A NAME="pgfId-837450"></A>   a.color_2=239                        # change color_2 index value</P>
414 <P CLASS="LotsOfCode">
415 <A NAME="pgfId-837451"></A>   a.level_1=20                         # change level_1</P>
416 <P CLASS="LotsOfCode">
417 <A NAME="pgfId-837452"></A>   a.level_2=80                         # change level_2</P>
418 <P CLASS="LotsOfCode">
419 <A NAME="pgfId-837453"></A>   a.datawc(1e20,1e20,1e20,1e20)        # change region back</P>
420 <P CLASS="LotsOfCode">
421 <A NAME="pgfId-837454"></A>   a.yticlabels('*')                    # change y-labels attribute</P>
422 <P CLASS="LotsOfCode">
423 <A NAME="pgfId-837455"></A>  </P>
424 <P CLASS="LotsOfCode">
425 <A NAME="pgfId-837456"></A>   x.scriptobject(a,'test', 'a')        # append 'quick' to the existing file</P>
426 <P CLASS="LotsOfCode">
427 <A NAME="pgfId-837457"></A>   a.script('test.scr','w')          # save 'quick' as a VCS script file</P>
428 <P CLASS="LotsOfCode">
429 <A NAME="pgfId-837458"></A>&nbsp;</P>
430 <P CLASS="LotsOfCode">
431 <A NAME="pgfId-837459"></A>   x.show('template')                # show the list of templates</P>
432 <P CLASS="LotsOfCode">
433 <A NAME="pgfId-837460"></A>   t=x.createtemplate('test','AMIPDUD')# create template 'test' from AMIPDUD</P>
434 <P CLASS="LotsOfCode">
435 <A NAME="pgfId-837461"></A>&nbsp;</P>
436 <P CLASS="LotsOfCode">
437 <A NAME="pgfId-837462"></A>   x.clear()                            # clear the VCS Canvas</P>
438 <P CLASS="LotsOfCode">
439 <A NAME="pgfId-837463"></A>   x.boxfill(s,a,'default')             # plot using default template</P>
440 <P CLASS="LotsOfCode">
441 <A NAME="pgfId-837464"></A>   x.clear()                            # clear the VCS Canvas</P>
442 <P CLASS="LotsOfCode">
443 <A NAME="pgfId-837465"></A>   x.boxfill(a,'default',s)             # plot using default template, but, reverse the order</P>
444 <P CLASS="LotsOfCode">
445 <A NAME="pgfId-837466"></A>   x.clear()                            # clear the VCS Canvas</P>
446 <P CLASS="LotsOfCode">
447 <A NAME="pgfId-837467"></A>   x.boxfill(s,a,t)                     # plot using template 'test'</P>
448 <P CLASS="LotsOfCode">
449 <A NAME="pgfId-837468"></A>   x.clear()                            # clear the VCS Canvas</P>
450 <P CLASS="LotsOfCode">
451 <A NAME="pgfId-837469"></A>   x.boxfill(a,s,t)                     # plot using template 'test', but reverse the objects</P>
452 <P CLASS="LotsOfCode">
453 <A NAME="pgfId-837470"></A>   x.clear()                            # clear the VCS Canvas</P>
454 <P CLASS="LotsOfCode">
455 <A NAME="pgfId-837471"></A>   x.boxfill(t,a,s)                     # plot using template 'test', but reverse the objects</P>
456 <P CLASS="LotsOfCode">
457 <A NAME="pgfId-837472"></A>   x.clear()                            # clear the VCS Canvas</P>
458 <P CLASS="LotsOfCode">
459 <A NAME="pgfId-837473"></A>&nbsp;</P>
460 <P CLASS="LotsOfCode">
461 <A NAME="pgfId-837474"></A>   x.plot(t,a,s)                        # plot using the new way</P>
462 <P CLASS="LotsOfCode">
463 <A NAME="pgfId-837475"></A>   x.clear()                            # clear the VCS Canvas</P>
464 <P CLASS="LotsOfCode">
465 <A NAME="pgfId-837476"></A>   x.plot(a,t,s)                        # plot using the new way</P>
466 <P CLASS="LotsOfCode">
467 <A NAME="pgfId-837477"></A>   x.clear()                            # clear the VCS Canvas</P>
468 <P CLASS="LotsOfCode">
469 <A NAME="pgfId-837478"></A>   x.plot(s,t,a)                        # plot using the new way</P>
470 <P CLASS="LotsOfCode">
471 <A NAME="pgfId-837479"></A>   x.clear()                            # clear the VCS Canvas</P>
472 <P CLASS="LotsOfCode">
473 <A NAME="pgfId-837480"></A>   x.plot('default',a,s)                # plot using the new way</P>
474 <P CLASS="LotsOfCode">
475 <A NAME="pgfId-837481"></A>   x.clear()                            # clear the VCS Canvas</P>
476 <P CLASS="LotsOfCode">
477 <A NAME="pgfId-837482"></A>   x.plot('default',s)                  # plot using the new way</P>
478 <P CLASS="LotsOfCode">
479 <A NAME="pgfId-837483"></A>&nbsp;</P>
480 <P CLASS="LotsOfCode">
481 <A NAME="pgfId-837484"></A>&nbsp;</P>
482 <P CLASS="LotsOfCode">
483 <A NAME="pgfId-837485"></A>   x.show('boxfill')                    # show boxfill list without test2</P>
484 <P CLASS="LotsOfCode">
485 <A NAME="pgfId-837486"></A>   a=x.createboxfill('test2','quick')   # create 'test2' from 'quick'</P>
486 <P CLASS="LotsOfCode">
487 <A NAME="pgfId-837487"></A>   a.color_1=50                         # change color level</P>
488 <P CLASS="LotsOfCode">
489 <A NAME="pgfId-837488"></A>   a.list()                             # list its attributes</P>
490 <P CLASS="LotsOfCode">
491 <A NAME="pgfId-837489"></A>   x.show('boxfill')                    # show boxfill list with test2</P>
492 <P CLASS="LotsOfCode">
493 <A NAME="pgfId-837490"></A>   x.removeobject(a)                    # remove test2 from boxfill list</P>
494 <P CLASS="LotsOfCode">
495 <A NAME="pgfId-837491"></A>   x.show('boxfill')                    # show boxfill list without test2</P>
496 <P CLASS="LotsOfCode">
497 <A NAME="pgfId-837492"></A>&nbsp;</P>
498 <P CLASS="LotsOfCode">
499 <A NAME="pgfId-837493"></A>   print '*******************************************************************'</P>
500 <P CLASS="LotsOfCode">
501 <A NAME="pgfId-837494"></A>   print '******                                                       ******'</P>
502 <P CLASS="LotsOfCode">
503 <A NAME="pgfId-837495"></A>   print '******   B O X F I L L   E X A M P L E   C O M P L E T E D   ******'</P>
504 <P CLASS="LotsOfCode">
505 <A NAME="pgfId-837496"></A>   print '******                                                       ******'</P>
506 <P CLASS="LotsOfCode">
507 <A NAME="pgfId-837499"></A>   print '*******************************************************************'</P>
508 <P CLASS="LotsOfCode">
509 <A NAME="pgfId-882755"></A>&nbsp;</P>
510 <P CLASS="LotsOfCode">
511 <A NAME="pgfId-882759"></A>if __name__==&quot;__main__&quot;:</P>
512 <P CLASS="LotsOfCode">
513 <A NAME="pgfId-882760"></A>   exampleboxfill()</P>
514 <P CLASS="LotsOfCode">
515 <A NAME="pgfId-882756"></A>&nbsp;</P>
516 <P CLASS="LotsOfCode">
517 <A NAME="pgfId-837500"></A>&nbsp;</P>
518 </DIV>
519 <DIV>
520 <H4 CLASS="Heading1">
521 <A NAME="pgfId-837531"></A><DIV>
522 <IMG SRC="vcs-2.gif">
523 </DIV>
524 Continents Graphics Method Example:</H4>
525 <P CLASS="LotsOfCode">
526 <A NAME="pgfId-882094"></A>#</P>
527 <P CLASS="LotsOfCode">
528 <A NAME="pgfId-882096"></A># Example Continents (Gcon) module</P>
529 <P CLASS="LotsOfCode">
530 <A NAME="pgfId-882097"></A>#</P>
531 <P CLASS="LotsOfCode">
532 <A NAME="pgfId-882098"></A>############################################################################</P>
533 <P CLASS="LotsOfCode">
534 <A NAME="pgfId-882099"></A>#                                                                          #</P>
535 <P CLASS="LotsOfCode">
536 <A NAME="pgfId-882100"></A># Module:       examplecontinents module                                   #</P>
537 <P CLASS="LotsOfCode">
538 <A NAME="pgfId-882101"></A>#                                                                          #</P>
539 <P CLASS="LotsOfCode">
540 <A NAME="pgfId-882102"></A># Copyright:    2000, Regents of the University of California              #</P>
541 <P CLASS="LotsOfCode">
542 <A NAME="pgfId-882103"></A>#               This software may not be distributed to others without     #</P>
543 <P CLASS="LotsOfCode">
544 <A NAME="pgfId-882104"></A>#               permission of the author.                                  #</P>
545 <P CLASS="LotsOfCode">
546 <A NAME="pgfId-882105"></A>#                                                                          #</P>
547 <P CLASS="LotsOfCode">
548 <A NAME="pgfId-882106"></A># Author:       Dean N. Williams, Lawrence Livermore National Laboratory   #</P>
549 <P CLASS="LotsOfCode">
550 <A NAME="pgfId-882107"></A>#               williams13@llnl.gov                                        #</P>
551 <P CLASS="LotsOfCode">
552 <A NAME="pgfId-882108"></A>#                                                                          #</P>
553 <P CLASS="LotsOfCode">
554 <A NAME="pgfId-882109"></A># Description:  Example of VCS's continents graphics method.               #</P>
555 <P CLASS="LotsOfCode">
556 <A NAME="pgfId-882110"></A>#                                                                          #</P>
557 <P CLASS="LotsOfCode">
558 <A NAME="pgfId-882111"></A># Version:      1.0                                                        #</P>
559 <P CLASS="LotsOfCode">
560 <A NAME="pgfId-882112"></A>#                                                                          #</P>
561 <P CLASS="LotsOfCode">
562 <A NAME="pgfId-882113"></A>############################################################################</P>
563 <P CLASS="LotsOfCode">
564 <A NAME="pgfId-882114"></A>#</P>
565 <P CLASS="LotsOfCode">
566 <A NAME="pgfId-882115"></A>#</P>
567 <P CLASS="LotsOfCode">
568 <A NAME="pgfId-882116"></A>#</P>
569 <P CLASS="LotsOfCode">
570 <A NAME="pgfId-882117"></A>############################################################################</P>
571 <P CLASS="LotsOfCode">
572 <A NAME="pgfId-882118"></A>#                                                                          #</P>
573 <P CLASS="LotsOfCode">
574 <A NAME="pgfId-882119"></A># Import: vcs modules.                                                     #</P>
575 <P CLASS="LotsOfCode">
576 <A NAME="pgfId-882120"></A>#                                                                          #</P>
577 <P CLASS="LotsOfCode">
578 <A NAME="pgfId-882121"></A>############################################################################</P>
579 <P CLASS="LotsOfCode">
580 <A NAME="pgfId-882122"></A>def examplecontinents():</P>
581 <P CLASS="LotsOfCode">
582 <A NAME="pgfId-882123"></A>   import vcs                           # import vcs and cu</P>
583 <P CLASS="LotsOfCode">
584 <A NAME="pgfId-882124"></A>&nbsp;</P>
585 <P CLASS="LotsOfCode">
586 <A NAME="pgfId-882125"></A>   x=vcs.init()                         # construct vcs canvas</P>
587 <P CLASS="LotsOfCode">
588 <A NAME="pgfId-882126"></A>&nbsp;</P>
589 <P CLASS="LotsOfCode">
590 <A NAME="pgfId-882127"></A>   x.plot('default','continents','quick')# plot slab the old way</P>
591 <P CLASS="LotsOfCode">
592 <A NAME="pgfId-882128"></A>   x.geometry(450,337,100,0)            # change the geometry and location</P>
593 <P CLASS="LotsOfCode">
594 <A NAME="pgfId-882129"></A>&nbsp;</P>
595 <P CLASS="LotsOfCode">
596 <A NAME="pgfId-882130"></A>&nbsp;</P>
597 <P CLASS="LotsOfCode">
598 <A NAME="pgfId-882131"></A>   x.show('continents')                 # show list of continents</P>
599 <P CLASS="LotsOfCode">
600 <A NAME="pgfId-882132"></A>   a=x.getcontinents('quick')           # get 'quick' continents</P>
601 <P CLASS="LotsOfCode">
602 <A NAME="pgfId-882133"></A>   if x.isgraphicsmethod(a):            # test object 'a' for graphics method</P>
603 <P CLASS="LotsOfCode">
604 <A NAME="pgfId-882134"></A>      print 'Yes, this is a graphics method'</P>
605 <P CLASS="LotsOfCode">
606 <A NAME="pgfId-882135"></A>      if x.iscontinents(a):             # test object 'a' if continents</P>
607 <P CLASS="LotsOfCode">
608 <A NAME="pgfId-882136"></A>         print 'Yes, this is an continents graphics method'</P>
609 <P CLASS="LotsOfCode">
610 <A NAME="pgfId-882137"></A>         a.list()                       # list the continents' attributes and values</P>
611 <P CLASS="LotsOfCode">
612 <A NAME="pgfId-882138"></A>&nbsp;</P>
613 <P CLASS="LotsOfCode">
614 <A NAME="pgfId-882139"></A>   a.script('test','w')                 # save 'quick' continents as a Python script</P>
615 <P CLASS="LotsOfCode">
616 <A NAME="pgfId-882140"></A>&nbsp;</P>
617 <P CLASS="LotsOfCode">
618 <A NAME="pgfId-882141"></A>   a.xticlabels('','')                  # remove the x-axis</P>
619 <P CLASS="LotsOfCode">
620 <A NAME="pgfId-882142"></A>   a.xticlabels('lon30','lon30')        # change the x-axis</P>
621 <P CLASS="LotsOfCode">
622 <A NAME="pgfId-882143"></A>   a.xticlabels('*')                    # put the x-axis</P>
623 <P CLASS="LotsOfCode">
624 <A NAME="pgfId-882144"></A>   a.datawc(-45.0, 45.0, -90.0, 90.0)   # change the region</P>
625 <P CLASS="LotsOfCode">
626 <A NAME="pgfId-882145"></A>   a.datawc(1e20,1e20,1e20,1e20)        # put the region back</P>
627 <P CLASS="LotsOfCode">
628 <A NAME="pgfId-882146"></A>&nbsp;</P>
629 <P CLASS="LotsOfCode">
630 <A NAME="pgfId-882147"></A>   a.line=1                             # same as 'dash', change the line style</P>
631 <P CLASS="LotsOfCode">
632 <A NAME="pgfId-882148"></A>   a.line=2                             # same as 'dot', change the line style</P>
633 <P CLASS="LotsOfCode">
634 <A NAME="pgfId-882149"></A>   a.line=3                             # same as 'dash-dot', change the line style</P>
635 <P CLASS="LotsOfCode">
636 <A NAME="pgfId-882150"></A>   a.line=0                             # same as 'solid', change the line style</P>
637 <P CLASS="LotsOfCode">
638 <A NAME="pgfId-882151"></A>   a.line=4                             # same as 'long-dash', change the line style</P>
639 <P CLASS="LotsOfCode">
640 <A NAME="pgfId-882152"></A>   a.linecolor=(77)                     # change the line color</P>
641 <P CLASS="LotsOfCode">
642 <A NAME="pgfId-882153"></A>   a.linecolor=16                       # change the line color</P>
643 <P CLASS="LotsOfCode">
644 <A NAME="pgfId-882154"></A>   a.linecolor=44                       # same as a.linecolor=(44)</P>
645 <P CLASS="LotsOfCode">
646 <A NAME="pgfId-882155"></A>   a.linecolor=None                     # use the default line color, black</P>
647 <P CLASS="LotsOfCode">
648 <A NAME="pgfId-882156"></A>   a.line=None                          # use default line style, solid black line</P>
649 <P CLASS="LotsOfCode">
650 <A NAME="pgfId-882157"></A>&nbsp;</P>
651 <P CLASS="LotsOfCode">
652 <A NAME="pgfId-882158"></A>   x.clear()                            # clear the VCS Canvas</P>
653 <P CLASS="LotsOfCode">
654 <A NAME="pgfId-882159"></A>   x.continents(a,'default')            # plot continents using 'default' template</P>
655 <P CLASS="LotsOfCode">
656 <A NAME="pgfId-882160"></A>&nbsp;</P>
657 <P CLASS="LotsOfCode">
658 <A NAME="pgfId-882161"></A>   x.show('template')                   # show the list of templates</P>
659 <P CLASS="LotsOfCode">
660 <A NAME="pgfId-882162"></A>   t=x.createtemplate('test')           # create template 'test' from 'default' template</P>
661 <P CLASS="LotsOfCode">
662 <A NAME="pgfId-882163"></A>   if x.istemplate(t):                  # test whether 't' is a template or not</P>
663 <P CLASS="LotsOfCode">
664 <A NAME="pgfId-882164"></A>      x.show('template')                # show the list of templates</P>
665 <P CLASS="LotsOfCode">
666 <A NAME="pgfId-882165"></A>  </P>
667 <P CLASS="LotsOfCode">
668 <A NAME="pgfId-882167"></A>   x.clear()                            # clear the VCS Canvas</P>
669 <P CLASS="LotsOfCode">
670 <A NAME="pgfId-882168"></A>   x.plot(t,a)                          # plot continents using template 't', and continents 'a'</P>
671 <P CLASS="LotsOfCode">
672 <A NAME="pgfId-882169"></A>   x.clear()                            # clear the VCS Canvas</P>
673 <P CLASS="LotsOfCode">
674 <A NAME="pgfId-882170"></A>   x.continents(a,t)                    # plot continents</P>
675 <P CLASS="LotsOfCode">
676 <A NAME="pgfId-882171"></A>&nbsp;</P>
677 <P CLASS="LotsOfCode">
678 <A NAME="pgfId-882172"></A>   #########################################################################</P>
679 <P CLASS="LotsOfCode">
680 <A NAME="pgfId-882173"></A>   # Create line object 'l' from the default line                          #</P>
681 <P CLASS="LotsOfCode">
682 <A NAME="pgfId-882174"></A>   #########################################################################</P>
683 <P CLASS="LotsOfCode">
684 <A NAME="pgfId-882175"></A>   x.show('line')</P>
685 <P CLASS="LotsOfCode">
686 <A NAME="pgfId-882176"></A>   l=x.createline('test')</P>
687 <P CLASS="LotsOfCode">
688 <A NAME="pgfId-882177"></A>   if x.issecondaryobject(l):           # check to see if it is a secondary object</P>
689 <P CLASS="LotsOfCode">
690 <A NAME="pgfId-882178"></A>      print 'Yes, this is a secondary object.'</P>
691 <P CLASS="LotsOfCode">
692 <A NAME="pgfId-882179"></A>      if x.isline(l):                   # check to see if it is a line object</P>
693 <P CLASS="LotsOfCode">
694 <A NAME="pgfId-882180"></A>         print 'Yes, this is a line object.'</P>
695 <P CLASS="LotsOfCode">
696 <A NAME="pgfId-882181"></A>         l.list()                       # list the line's attributes and values</P>
697 <P CLASS="LotsOfCode">
698 <A NAME="pgfId-882182"></A>&nbsp;</P>
699 <P CLASS="LotsOfCode">
700 <A NAME="pgfId-882183"></A>   #########################################################################</P>
701 <P CLASS="LotsOfCode">
702 <A NAME="pgfId-882184"></A>   # Use the create line object 'l' from above and modify the line object  #</P>
703 <P CLASS="LotsOfCode">
704 <A NAME="pgfId-882185"></A>   #########################################################################</P>
705 <P CLASS="LotsOfCode">
706 <A NAME="pgfId-882186"></A>   a.line=l                             # use the line object</P>
707 <P CLASS="LotsOfCode">
708 <A NAME="pgfId-882187"></A>   l.list()                             # list the line object attributes and values</P>
709 <P CLASS="LotsOfCode">
710 <A NAME="pgfId-882188"></A>   l.color = 44                         # change the line color</P>
711 <P CLASS="LotsOfCode">
712 <A NAME="pgfId-882189"></A>   l.type ='dash'                       # change the line type</P>
713 <P CLASS="LotsOfCode">
714 <A NAME="pgfId-882190"></A>&nbsp;</P>
715 <P CLASS="LotsOfCode">
716 <A NAME="pgfId-882191"></A>   x.show('continents')                 # show list of continents</P>
717 <P CLASS="LotsOfCode">
718 <A NAME="pgfId-882192"></A>   r=x.createcontinents('test2','quick')# create continents 'test2'</P>
719 <P CLASS="LotsOfCode">
720 <A NAME="pgfId-882193"></A>   x.show('continents')                 # show list of continents</P>
721 <P CLASS="LotsOfCode">
722 <A NAME="pgfId-882194"></A>   x.removeobject(r)                    # remove continents 'test2'</P>
723 <P CLASS="LotsOfCode">
724 <A NAME="pgfId-882195"></A>   x.show('continents')                 # show list of continents</P>
725 <P CLASS="LotsOfCode">
726 <A NAME="pgfId-882196"></A>&nbsp;</P>
727 <P CLASS="LotsOfCode">
728 <A NAME="pgfId-882197"></A>   ######################################################################</P>
729 <P CLASS="LotsOfCode">
730 <A NAME="pgfId-882198"></A>   # to see how x.update and x.mode work, see testoutline.py            #</P>
731 <P CLASS="LotsOfCode">
732 <A NAME="pgfId-882199"></A>   ######################################################################</P>
733 <P CLASS="LotsOfCode">
734 <A NAME="pgfId-882200"></A>   #x.update()</P>
735 <P CLASS="LotsOfCode">
736 <A NAME="pgfId-882201"></A>   #x.mode=1</P>
737 <P CLASS="LotsOfCode">
738 <A NAME="pgfId-882202"></A>   #x.mode=0</P>
739 <P CLASS="LotsOfCode">
740 <A NAME="pgfId-882203"></A>   print '**********************************************************'</P>
741 <P CLASS="LotsOfCode">
742 <A NAME="pgfId-882204"></A>   print '******                                              ******'</P>
743 <P CLASS="LotsOfCode">
744 <A NAME="pgfId-882205"></A>   print '******   C O N T I N E N T S   C O M P L E T E D    ******'</P>
745 <P CLASS="LotsOfCode">
746 <A NAME="pgfId-882206"></A>   print '******                                              ******'</P>
747 <P CLASS="LotsOfCode">
748 <A NAME="pgfId-882207"></A>   print '**********************************************************'</P>
749 <P CLASS="LotsOfCode">
750 <A NAME="pgfId-882744"></A>&nbsp;</P>
751 <P CLASS="LotsOfCode">
752 <A NAME="pgfId-882748"></A>&nbsp;</P>
753 <P CLASS="LotsOfCode">
754 <A NAME="pgfId-882749"></A>if __name__==&quot;__main__&quot;:</P>
755 <P CLASS="LotsOfCode">
756 <A NAME="pgfId-882750"></A>   examplecontinents()</P>
757 </DIV>
758 <DIV>
759 <H4 CLASS="Heading1">
760 <A NAME="pgfId-881645"></A><DIV>
761 <IMG SRC="vcs-2.gif">
762 </DIV>
763 Isofill Graphics Method Example:</H4>
764 <P CLASS="LotsOfCode">
765 <A NAME="pgfId-881947"></A>#</P>
766 <P CLASS="LotsOfCode">
767 <A NAME="pgfId-881948"></A># Example Isofill (Gfi) module</P>
768 <P CLASS="LotsOfCode">
769 <A NAME="pgfId-881949"></A>#</P>
770 <P CLASS="LotsOfCode">
771 <A NAME="pgfId-881950"></A>############################################################################</P>
772 <P CLASS="LotsOfCode">
773 <A NAME="pgfId-881951"></A>#                                                                          #</P>
774 <P CLASS="LotsOfCode">
775 <A NAME="pgfId-881952"></A># Module:       exampleisofill module                                      #</P>
776 <P CLASS="LotsOfCode">
777 <A NAME="pgfId-881953"></A>#                                                                          #</P>
778 <P CLASS="LotsOfCode">
779 <A NAME="pgfId-881954"></A># Copyright:    2000, Regents of the University of California              #</P>
780 <P CLASS="LotsOfCode">
781 <A NAME="pgfId-881955"></A>#               This software may not be distributed to others without     #</P>
782 <P CLASS="LotsOfCode">
783 <A NAME="pgfId-881956"></A>#               permission of the author.                                  #</P>
784 <P CLASS="LotsOfCode">
785 <A NAME="pgfId-881957"></A>#                                                                          #</P>
786 <P CLASS="LotsOfCode">
787 <A NAME="pgfId-881958"></A># Author:       Dean N. Williams, Lawrence Livermore National Laboratory   #</P>
788 <P CLASS="LotsOfCode">
789 <A NAME="pgfId-881959"></A>#               williams13@llnl.gov                                        #</P>
790 <P CLASS="LotsOfCode">
791 <A NAME="pgfId-881960"></A>#                                                                          #</P>
792 <P CLASS="LotsOfCode">
793 <A NAME="pgfId-881961"></A># Description:  Example use of VCS's isofill graphics method.              #</P>
794 <P CLASS="LotsOfCode">
795 <A NAME="pgfId-881962"></A>#                                                                          #</P>
796 <P CLASS="LotsOfCode">
797 <A NAME="pgfId-881963"></A># Version:      1.0                                                        #</P>
798 <P CLASS="LotsOfCode">
799 <A NAME="pgfId-881964"></A>#                                                                          #</P>
800 <P CLASS="LotsOfCode">
801 <A NAME="pgfId-881965"></A>############################################################################</P>
802 <P CLASS="LotsOfCode">
803 <A NAME="pgfId-881966"></A>#</P>
804 <P CLASS="LotsOfCode">
805 <A NAME="pgfId-881967"></A>#</P>
806 <P CLASS="LotsOfCode">
807 <A NAME="pgfId-881968"></A>#</P>
808 <P CLASS="LotsOfCode">
809 <A NAME="pgfId-881969"></A>############################################################################</P>
810 <P CLASS="LotsOfCode">
811 <A NAME="pgfId-881970"></A>#                                                                          #</P>
812 <P CLASS="LotsOfCode">
813 <A NAME="pgfId-881971"></A># Import: vcs and cdms modules.                                            #</P>
814 <P CLASS="LotsOfCode">
815 <A NAME="pgfId-881972"></A>#                                                                          #</P>
816 <P CLASS="LotsOfCode">
817 <A NAME="pgfId-881973"></A>############################################################################</P>
818 <P CLASS="LotsOfCode">
819 <A NAME="pgfId-881974"></A>def exampleisofill():</P>
820 <P CLASS="LotsOfCode">
821 <A NAME="pgfId-881975"></A>   import vcs,cdms                      # import vcs and cdms</P>
822 <P CLASS="LotsOfCode">
823 <A NAME="pgfId-881976"></A>&nbsp;</P>
824 <P CLASS="LotsOfCode">
825 <A NAME="pgfId-881977"></A>   f=cdms.openDataset('clt.nc')         # open example file</P>
826 <P CLASS="LotsOfCode">
827 <A NAME="pgfId-881978"></A>   clt=f.variables['clt']               # get variable clt</P>
828 <P CLASS="LotsOfCode">
829 <A NAME="pgfId-881979"></A>   s=clt[0]                             # get clt data</P>
830 <P CLASS="LotsOfCode">
831 <A NAME="pgfId-881980"></A>   x=vcs.init()                         # construct vcs canvas</P>
832 <P CLASS="LotsOfCode">
833 <A NAME="pgfId-881981"></A>&nbsp;</P>
834 <P CLASS="LotsOfCode">
835 <A NAME="pgfId-881982"></A>   x.plot(s,'default','isofill','quick')# plot slab the old way</P>
836 <P CLASS="LotsOfCode">
837 <A NAME="pgfId-881983"></A>   x.geometry(450,337,100,0)            # change the geometry and location</P>
838 <P CLASS="LotsOfCode">
839 <A NAME="pgfId-881984"></A>&nbsp;</P>
840 <P CLASS="LotsOfCode">
841 <A NAME="pgfId-881985"></A>   x.show('isofill')                    # show list of isofill graphics method</P>
842 <P CLASS="LotsOfCode">
843 <A NAME="pgfId-881986"></A>   a=x.getisofill('quick')              # get 'quick' isofill graphics method</P>
844 <P CLASS="LotsOfCode">
845 <A NAME="pgfId-881987"></A>   if x.isgraphicsmethod(a):            # test object 'a' for graphics method</P>
846 <P CLASS="LotsOfCode">
847 <A NAME="pgfId-881988"></A>      print 'Yes, this is a graphics method'</P>
848 <P CLASS="LotsOfCode">
849 <A NAME="pgfId-881989"></A>      if x.isisofill(a):                # test object 'a' if isofill</P>
850 <P CLASS="LotsOfCode">
851 <A NAME="pgfId-881990"></A>         print 'Yes, this is an isofill graphics method'</P>
852 <P CLASS="LotsOfCode">
853 <A NAME="pgfId-881991"></A>         a.list()                       # list the isofill's attributes and values</P>
854 <P CLASS="LotsOfCode">
855 <A NAME="pgfId-881992"></A>&nbsp;</P>
856 <P CLASS="LotsOfCode">
857 <A NAME="pgfId-881993"></A>   a.script('test','w')                 # save 'quick' isofill as a Python script</P>
858 <P CLASS="LotsOfCode">
859 <A NAME="pgfId-881994"></A>&nbsp;</P>
860 <P CLASS="LotsOfCode">
861 <A NAME="pgfId-881995"></A>&nbsp;</P>
862 <P CLASS="LotsOfCode">
863 <A NAME="pgfId-881996"></A>   x.show('colormap')                # list all the colormaps</P>
864 <P CLASS="LotsOfCode">
865 <A NAME="pgfId-881997"></A>   x.setcolormap(&quot;AMIP&quot;)             # change the colormap from default to AMIP</P>
866 <P CLASS="LotsOfCode">
867 <A NAME="pgfId-881998"></A>&nbsp;</P>
868 <P CLASS="LotsOfCode">
869 <A NAME="pgfId-881999"></A>   a.missing=241                     # change the missing background color to black</P>
870 <P CLASS="LotsOfCode">
871 <A NAME="pgfId-882000"></A>&nbsp;</P>
872 <P CLASS="LotsOfCode">
873 <A NAME="pgfId-882001"></A>   a.xticlabels('lon30','lon30')        # change the x-axis</P>
874 <P CLASS="LotsOfCode">
875 <A NAME="pgfId-882002"></A>   a.xticlabels('','')                  # remove the x-axis</P>
876 <P CLASS="LotsOfCode">
877 <A NAME="pgfId-882003"></A>   a.xticlabels('*')                    # put the x-axis</P>
878 <P CLASS="LotsOfCode">
879 <A NAME="pgfId-882004"></A>   a.datawc(-45.0, 45.0, -90.0, 90.0)   # change the region</P>
880 <P CLASS="LotsOfCode">
881 <A NAME="pgfId-882005"></A>   a.datawc(1e20,1e20,1e20,1e20)        # put the region back</P>
882 <P CLASS="LotsOfCode">
883 <A NAME="pgfId-882006"></A>&nbsp;</P>
884 <P CLASS="LotsOfCode">
885 <A NAME="pgfId-882007"></A>   a.levels=([0,220],[230,240],[250,260])       # change the isofill levels</P>
886 <P CLASS="LotsOfCode">
887 <A NAME="pgfId-882008"></A>   a.levels=([0,220,225,230,235,240],[230,240],[250,260]) # change the isofill levels</P>
888 <P CLASS="LotsOfCode">
889 <A NAME="pgfId-882009"></A>   a.levels=([0,220,225,230,235,240],)  # change the isofill levels</P>
890 <P CLASS="LotsOfCode">
891 <A NAME="pgfId-882010"></A>   a.levels=([0,220,225,230,235,240,245,250])   # change the isofill levels</P>
892 <P CLASS="LotsOfCode">
893 <A NAME="pgfId-882011"></A>   a.levels=[0,220,225,230,235,240]     # change the isofill levels</P>
894 <P CLASS="LotsOfCode">
895 <A NAME="pgfId-882012"></A>   a.levels=(0.0,220.0,225.0,230.0,235.0,240.0,250.0)    # change the isofill levels</P>
896 <P CLASS="LotsOfCode">
897 <A NAME="pgfId-882013"></A>   a.levels=([1e20])                    # change back to default settings</P>
898 <P CLASS="LotsOfCode">
899 <A NAME="pgfId-882014"></A>   a.levels=(0,220,225,230,235,240,250,260,270) # change the isofill levels</P>
900 <P CLASS="LotsOfCode">
901 <A NAME="pgfId-882015"></A>&nbsp;</P>
902 <P CLASS="LotsOfCode">
903 <A NAME="pgfId-882016"></A>   ##########################################################################</P>
904 <P CLASS="LotsOfCode">
905 <A NAME="pgfId-882017"></A>   # Below will produce an error. Later, if needed, I will add this         #</P>
906 <P CLASS="LotsOfCode">
907 <A NAME="pgfId-882018"></A>   # functionality.                                                         #</P>
908 <P CLASS="LotsOfCode">
909 <A NAME="pgfId-882019"></A>   #a.levels=('0','20','25','30')        # this will produce an error       #</P>
910 <P CLASS="LotsOfCode">
911 <A NAME="pgfId-882020"></A>   ##########################################################################</P>
912 <P CLASS="LotsOfCode">
913 <A NAME="pgfId-882021"></A>&nbsp;</P>
914 <P CLASS="LotsOfCode">
915 <A NAME="pgfId-882022"></A>   a.ext_1='y'                          # add the extended legend arrow to the left</P>
916 <P CLASS="LotsOfCode">
917 <A NAME="pgfId-882023"></A>   a.ext_1='n'                          # remove the extended legend arrow to the left</P>
918 <P CLASS="LotsOfCode">
919 <A NAME="pgfId-882024"></A>   a.ext_2='y'                          # add the extended legend arrow to the right</P>
920 <P CLASS="LotsOfCode">
921 <A NAME="pgfId-882025"></A>   a.ext_2='n'                          # remove the extended legend arrow to the right</P>
922 <P CLASS="LotsOfCode">
923 <A NAME="pgfId-882026"></A>   a.exts('y','y')                      # add the extended legend arrow to left and right</P>
924 <P CLASS="LotsOfCode">
925 <A NAME="pgfId-882027"></A>   a.exts('n','n')                      # remove the extended legend arrow to left and right</P>
926 <P CLASS="LotsOfCode">
927 <A NAME="pgfId-882028"></A>&nbsp;</P>
928 <P CLASS="LotsOfCode">
929 <A NAME="pgfId-882029"></A>   a.fillareastyle='pattern'            # change the fill style to pattern</P>
930 <P CLASS="LotsOfCode">
931 <A NAME="pgfId-882030"></A>   a.fillareastyle='hatch'              # change the fill style to hatch</P>
932 <P CLASS="LotsOfCode">
933 <A NAME="pgfId-882031"></A>   a.fillareaindices=([1,3,5,6,9,20])   # set the hatch index patterns</P>
934 <P CLASS="LotsOfCode">
935 <A NAME="pgfId-882032"></A>&nbsp;</P>
936 <P CLASS="LotsOfCode">
937 <A NAME="pgfId-882033"></A>   a.fillareacolors=([22,33,44,55,66,77])       # set the fill area color indices</P>
938 <P CLASS="LotsOfCode">
939 <A NAME="pgfId-882034"></A>   a.fillareacolors=None                        # use default color indices</P>
940 <P CLASS="LotsOfCode">
941 <A NAME="pgfId-882035"></A>   a.fillareastyle='solid'                      # change the fill style back to solid</P>
942 <P CLASS="LotsOfCode">
943 <A NAME="pgfId-882036"></A>&nbsp;</P>
944 <P CLASS="LotsOfCode">
945 <A NAME="pgfId-882037"></A>   x.clear()                            # clear the VCS Canvas</P>
946 <P CLASS="LotsOfCode">
947 <A NAME="pgfId-882038"></A>   x.isofill(s,a,'default')             # plot isofill using 'default' template</P>
948 <P CLASS="LotsOfCode">
949 <A NAME="pgfId-882039"></A>&nbsp;</P>
950 <P CLASS="LotsOfCode">
951 <A NAME="pgfId-882040"></A>   x.show('template')                   # show the list of templates</P>
952 <P CLASS="LotsOfCode">
953 <A NAME="pgfId-882041"></A>   t=x.createtemplate('test')           # create template 'test' from 'default' template</P>
954 <P CLASS="LotsOfCode">
955 <A NAME="pgfId-882042"></A>   if x.istemplate(t):                  # test whether 't' is a template or not</P>
956 <P CLASS="LotsOfCode">
957 <A NAME="pgfId-882043"></A>      x.show('template')                # show the list of templates</P>
958 <P CLASS="LotsOfCode">
959 <A NAME="pgfId-882044"></A>&nbsp;</P>
960 <P CLASS="LotsOfCode">
961 <A NAME="pgfId-882045"></A>   x.show('fillarea')                   # show the list of fillarea secondary objects</P>
962 <P CLASS="LotsOfCode">
963 <A NAME="pgfId-882046"></A>   f=x.getfillarea('def37')             # get fillarea 'def37'</P>
964 <P CLASS="LotsOfCode">
965 <A NAME="pgfId-882047"></A>   if x.issecondaryobject(f):           # check to see if it is a secondary object</P>
966 <P CLASS="LotsOfCode">
967 <A NAME="pgfId-882048"></A>      print 'Yes, this is a secondary object.'</P>
968 <P CLASS="LotsOfCode">
969 <A NAME="pgfId-882049"></A>      if x.isfillarea(f):               # check to see if it is a fill area</P>
970 <P CLASS="LotsOfCode">
971 <A NAME="pgfId-882050"></A>         print 'Yes, this is a fill area object.'</P>
972 <P CLASS="LotsOfCode">
973 <A NAME="pgfId-882051"></A>         f.list()                       # list the fillarea's attributes and values</P>
974 <P CLASS="LotsOfCode">
975 <A NAME="pgfId-882052"></A>&nbsp;</P>
976 <P CLASS="LotsOfCode">
977 <A NAME="pgfId-882053"></A>   a.levels=(220,225,230,235,240,250,260,270,280,290,300,310)   # change the isofill levels</P>
978 <P CLASS="LotsOfCode">
979 <A NAME="pgfId-882054"></A>   x.clear()                        # clear the VCS Canvas</P>
980 <P CLASS="LotsOfCode">
981 <A NAME="pgfId-882055"></A>   x.plot(a,t,s)                    # plot array using isofill 'a' and template 't'</P>
982 <P CLASS="LotsOfCode">
983 <A NAME="pgfId-882056"></A>   a.list()                         # list isofill's attributes</P>
984 <P CLASS="LotsOfCode">
985 <A NAME="pgfId-882057"></A>   a.fillareaindices=(3,4,7,9,11)   # set the indices</P>
986 <P CLASS="LotsOfCode">
987 <A NAME="pgfId-882058"></A>   a.fillareaindices=(f,f,f,f,f,f)      # set the indices using the fillarea object</P>
988 <P CLASS="LotsOfCode">
989 <A NAME="pgfId-882059"></A>   a.fillareaindices=(f,2,4,7)          # reset the indices using the fillarea object</P>
990 <P CLASS="LotsOfCode">
991 <A NAME="pgfId-882060"></A>   a.fillareaindices=(7,f,f,f,8)        # resett the indices using the fillare object</P>
992 <P CLASS="LotsOfCode">
993 <A NAME="pgfId-882061"></A>&nbsp;</P>
994 <P CLASS="LotsOfCode">
995 <A NAME="pgfId-882062"></A>   f.color=44                           # change the fillarea object's color</P>
996 <P CLASS="LotsOfCode">
997 <A NAME="pgfId-882063"></A>   f.style='hatch'                      # change the fillarea object's fill style</P>
998 <P CLASS="LotsOfCode">
999 <A NAME="pgfId-882064"></A>&nbsp;</P>
1000 <P CLASS="LotsOfCode">
1001 <A NAME="pgfId-882065"></A>   x.scriptobject(a,'test')             # save 'quick' isofill as a Python script</P>
1002 <P CLASS="LotsOfCode">
1003 <A NAME="pgfId-882066"></A>   x.scriptobject(f,'test')             # save 'def37' fill area as a Python script</P>
1004 <P CLASS="LotsOfCode">
1005 <A NAME="pgfId-882067"></A>&nbsp;</P>
1006 <P CLASS="LotsOfCode">
1007 <A NAME="pgfId-882068"></A>   x.show('isofill')                    # show list of isofill</P>
1008 <P CLASS="LotsOfCode">
1009 <A NAME="pgfId-882069"></A>   r=x.createisofill('test2','quick')   # create isofill 'test2'</P>
1010 <P CLASS="LotsOfCode">
1011 <A NAME="pgfId-882070"></A>   x.show('isofill')                    # show list of isofill</P>
1012 <P CLASS="LotsOfCode">
1013 <A NAME="pgfId-882071"></A>   x.removeobject(r)                    # remove isofill 'test2'</P>
1014 <P CLASS="LotsOfCode">
1015 <A NAME="pgfId-882072"></A>   x.show('isofill')                    # show list of isofill</P>
1016 <P CLASS="LotsOfCode">
1017 <A NAME="pgfId-882073"></A>&nbsp;</P>
1018 <P CLASS="LotsOfCode">
1019 <A NAME="pgfId-882074"></A>   #############################################################################</P>
1020 <P CLASS="LotsOfCode">
1021 <A NAME="pgfId-882075"></A>   # to see how x.update and x.mode work, see testisofill.py                   #</P>
1022 <P CLASS="LotsOfCode">
1023 <A NAME="pgfId-882076"></A>   #############################################################################</P>
1024 <P CLASS="LotsOfCode">
1025 <A NAME="pgfId-882077"></A>   #x.update()</P>
1026 <P CLASS="LotsOfCode">
1027 <A NAME="pgfId-882078"></A>   #x.mode=1</P>
1028 <P CLASS="LotsOfCode">
1029 <A NAME="pgfId-882079"></A>   #x.mode=0</P>
1030 <P CLASS="LotsOfCode">
1031 <A NAME="pgfId-882080"></A>&nbsp;</P>
1032 <P CLASS="LotsOfCode">
1033 <A NAME="pgfId-882081"></A>   print '**************************************************'</P>
1034 <P CLASS="LotsOfCode">
1035 <A NAME="pgfId-882082"></A>   print '******                                      ******'</P>
1036 <P CLASS="LotsOfCode">
1037 <A NAME="pgfId-882083"></A>   print '******   I S O F I L L  C O M P L E T E D   ******'</P>
1038 <P CLASS="LotsOfCode">
1039 <A NAME="pgfId-882084"></A>   print '******                                      ******'</P>
1040 <P CLASS="LotsOfCode">
1041 <A NAME="pgfId-882085"></A>   print '**************************************************'</P>
1042 <P CLASS="LotsOfCode">
1043 <A NAME="pgfId-882737"></A>&nbsp;</P>
1044 <P CLASS="LotsOfCode">
1045 <A NAME="pgfId-882738"></A>if __name__==&quot;__main__&quot;:</P>
1046 <P CLASS="LotsOfCode">
1047 <A NAME="pgfId-882739"></A>   exampleisofill()</P>
1048 </DIV>
1049 <DIV>
1050 <H4 CLASS="Heading1">
1051 <A NAME="pgfId-881653"></A><DIV>
1052 <IMG SRC="vcs-2.gif">
1053 </DIV>
1054 Isoline Graphics Method Example:</H4>
1055 <P CLASS="LotsOfCode">
1056 <A NAME="pgfId-837559"></A>#</P>
1057 <P CLASS="LotsOfCode">
1058 <A NAME="pgfId-882264"></A># Example Isoline (Gi) module</P>
1059 <P CLASS="LotsOfCode">
1060 <A NAME="pgfId-882265"></A>#</P>
1061 <P CLASS="LotsOfCode">
1062 <A NAME="pgfId-882266"></A>############################################################################</P>
1063 <P CLASS="LotsOfCode">
1064 <A NAME="pgfId-882267"></A>#                                                                          #</P>
1065 <P CLASS="LotsOfCode">
1066 <A NAME="pgfId-882268"></A># Module:       exampleisoline module                                      #</P>
1067 <P CLASS="LotsOfCode">
1068 <A NAME="pgfId-882269"></A>#                                                                          #</P>
1069 <P CLASS="LotsOfCode">
1070 <A NAME="pgfId-882270"></A># Copyright:    2000, Regents of the University of California              #</P>
1071 <P CLASS="LotsOfCode">
1072 <A NAME="pgfId-882271"></A>#               This software may not be distributed to others without     #</P>
1073 <P CLASS="LotsOfCode">
1074 <A NAME="pgfId-882272"></A>#               permission of the author.                                  #</P>
1075 <P CLASS="LotsOfCode">
1076 <A NAME="pgfId-882273"></A>#                                                                          #</P>
1077 <P CLASS="LotsOfCode">
1078 <A NAME="pgfId-882274"></A># Author:       Dean N. Williams, Lawrence Livermore National Laboratory   #</P>
1079 <P CLASS="LotsOfCode">
1080 <A NAME="pgfId-882275"></A>#               williams13@llnl.gov                                        #</P>
1081 <P CLASS="LotsOfCode">
1082 <A NAME="pgfId-882276"></A>#                                                                          #</P>
1083 <P CLASS="LotsOfCode">
1084 <A NAME="pgfId-882277"></A># Description:  Example use of VCS's isoline graphics method.              #</P>
1085 <P CLASS="LotsOfCode">
1086 <A NAME="pgfId-882278"></A>#                                                                          #</P>
1087 <P CLASS="LotsOfCode">
1088 <A NAME="pgfId-882279"></A># Version:      1.0                                                        #</P>
1089 <P CLASS="LotsOfCode">
1090 <A NAME="pgfId-882280"></A>#                                                                          #</P>
1091 <P CLASS="LotsOfCode">
1092 <A NAME="pgfId-882281"></A>############################################################################</P>
1093 <P CLASS="LotsOfCode">
1094 <A NAME="pgfId-882282"></A>#</P>
1095 <P CLASS="LotsOfCode">
1096 <A NAME="pgfId-882283"></A>#</P>
1097 <P CLASS="LotsOfCode">
1098 <A NAME="pgfId-882284"></A>#</P>
1099 <P CLASS="LotsOfCode">
1100 <A NAME="pgfId-882285"></A>############################################################################</P>
1101 <P CLASS="LotsOfCode">
1102 <A NAME="pgfId-882286"></A>#                                                                          #</P>
1103 <P CLASS="LotsOfCode">
1104 <A NAME="pgfId-882287"></A># Import: vcs and cdms modules.                                            #</P>
1105 <P CLASS="LotsOfCode">
1106 <A NAME="pgfId-882288"></A>#                                                                          #</P>
1107 <P CLASS="LotsOfCode">
1108 <A NAME="pgfId-882289"></A>############################################################################</P>
1109 <P CLASS="LotsOfCode">
1110 <A NAME="pgfId-882290"></A>def exampleisoline():</P>
1111 <P CLASS="LotsOfCode">
1112 <A NAME="pgfId-882291"></A>   import vcs,cdms                      # import vcs and cdms</P>
1113 <P CLASS="LotsOfCode">
1114 <A NAME="pgfId-882292"></A>&nbsp;</P>
1115 <P CLASS="LotsOfCode">
1116 <A NAME="pgfId-882293"></A>   f=cdms.openDataset('clt.nc')         # open example file</P>
1117 <P CLASS="LotsOfCode">
1118 <A NAME="pgfId-882294"></A>   clt=f.variables['clt']               # get variable clt</P>
1119 <P CLASS="LotsOfCode">
1120 <A NAME="pgfId-882295"></A>   s=clt[0]                             # get clt data</P>
1121 <P CLASS="LotsOfCode">
1122 <A NAME="pgfId-882296"></A>   x=vcs.init()                         # construct vcs canvas</P>
1123 <P CLASS="LotsOfCode">
1124 <A NAME="pgfId-882297"></A>&nbsp;</P>
1125 <P CLASS="LotsOfCode">
1126 <A NAME="pgfId-882298"></A>   x.plot(s,'default','isoline','quick',variable=clt)# plot slab the old way</P>
1127 <P CLASS="LotsOfCode">
1128 <A NAME="pgfId-882299"></A>   x.geometry(450,337,0,0)              # change geometry and location</P>
1129 <P CLASS="LotsOfCode">
1130 <A NAME="pgfId-882300"></A>   x.geometry(900,675,0,0)              # change geometry and location</P>
1131 <P CLASS="LotsOfCode">
1132 <A NAME="pgfId-882301"></A>&nbsp;</P>
1133 <P CLASS="LotsOfCode">
1134 <A NAME="pgfId-882302"></A>   x.show('isoline')                    # show list of isoline</P>
1135 <P CLASS="LotsOfCode">
1136 <A NAME="pgfId-882303"></A>   a=x.getisoline('quick')              # get isoline 'quick'</P>
1137 <P CLASS="LotsOfCode">
1138 <A NAME="pgfId-882304"></A>   if x.isgraphicsmethod(a):            # test object 'a' for graphics method</P>
1139 <P CLASS="LotsOfCode">
1140 <A NAME="pgfId-882305"></A>      print 'Yes, this is a graphics method'</P>
1141 <P CLASS="LotsOfCode">
1142 <A NAME="pgfId-882306"></A>      if x.isisoline(a):                # test object 'a' for isoline</P>
1143 <P CLASS="LotsOfCode">
1144 <A NAME="pgfId-882307"></A>         print 'Yes, this is an isoline graphics method'</P>
1145 <P CLASS="LotsOfCode">
1146 <A NAME="pgfId-882308"></A>         a.list()                       # list the isoline's attributes and values</P>
1147 <P CLASS="LotsOfCode">
1148 <A NAME="pgfId-882309"></A>&nbsp;</P>
1149 <P CLASS="LotsOfCode">
1150 <A NAME="pgfId-882310"></A>   a.script('test','w')                 # save 'quick' isoline as a Python script</P>
1151 <P CLASS="LotsOfCode">
1152 <A NAME="pgfId-882311"></A>&nbsp;</P>
1153 <P CLASS="LotsOfCode">
1154 <A NAME="pgfId-882312"></A>   a.xticlabels('lon30','lon30')        # change the x-axis</P>
1155 <P CLASS="LotsOfCode">
1156 <A NAME="pgfId-882313"></A>   a.xticlabels('','')                  # remove the x-axis</P>
1157 <P CLASS="LotsOfCode">
1158 <A NAME="pgfId-882314"></A>   a.xticlabels('*')                    # put the x-axis back</P>
1159 <P CLASS="LotsOfCode">
1160 <A NAME="pgfId-882315"></A>   a.datawc(-45.0, 45.0, -90.0, 90.0)   # change the region</P>
1161 <P CLASS="LotsOfCode">
1162 <A NAME="pgfId-882316"></A>   a.datawc(1e20,1e20,1e20,1e20)        # put the region back</P>
1163 <P CLASS="LotsOfCode">
1164 <A NAME="pgfId-882317"></A>&nbsp;</P>
1165 <P CLASS="LotsOfCode">
1166 <A NAME="pgfId-882318"></A>   #########################################################################</P>
1167 <P CLASS="LotsOfCode">
1168 <A NAME="pgfId-882319"></A>   # Set the isoline level vales                                           #</P>
1169 <P CLASS="LotsOfCode">
1170 <A NAME="pgfId-882320"></A>   #########################################################################</P>
1171 <P CLASS="LotsOfCode">
1172 <A NAME="pgfId-882321"></A>   a.level=([20,0.0],[30,0],[50,0],[60,0])      # change the isoline values</P>
1173 <P CLASS="LotsOfCode">
1174 <A NAME="pgfId-882322"></A>   a.level=[[20,0.0],[30,0],[50,0]]     # change the isoline values</P>
1175 <P CLASS="LotsOfCode">
1176 <A NAME="pgfId-882323"></A>   a.level=((20,0.0),(30,0),(50,0),(60,0),(70,0)) # change the isoline values</P>
1177 <P CLASS="LotsOfCode">
1178 <A NAME="pgfId-882324"></A>   a.level=(25,35,45,55)                # change the isoline values</P>
1179 <P CLASS="LotsOfCode">
1180 <A NAME="pgfId-882325"></A>   a.level=[(22,33,44,55,66)]           # change the isoline values</P>
1181 <P CLASS="LotsOfCode">
1182 <A NAME="pgfId-882326"></A>   a.level=[(23,32,45,50,76),]          # change the isoline values</P>
1183 <P CLASS="LotsOfCode">
1184 <A NAME="pgfId-882327"></A>   a.level=[0]                          # same as a.level=(0,)</P>
1185 <P CLASS="LotsOfCode">
1186 <A NAME="pgfId-882328"></A>   a.level=[[0,1e20]]                   # same as a.level=((0,1e20),), use default settings</P>
1187 <P CLASS="LotsOfCode">
1188 <A NAME="pgfId-882329"></A>&nbsp;</P>
1189 <P CLASS="LotsOfCode">
1190 <A NAME="pgfId-882331"></A>   #########################################################################</P>
1191 <P CLASS="LotsOfCode">
1192 <A NAME="pgfId-882332"></A>   # Turn on and off the isoline level labels                              #</P>
1193 <P CLASS="LotsOfCode">
1194 <A NAME="pgfId-882333"></A>   #########################################################################</P>
1195 <P CLASS="LotsOfCode">
1196 <A NAME="pgfId-882334"></A>   a.label='y'                          # same as a.label=1</P>
1197 <P CLASS="LotsOfCode">
1198 <A NAME="pgfId-882335"></A>   a.label='n'                          # same as a.label=0</P>
1199 <P CLASS="LotsOfCode">
1200 <A NAME="pgfId-882336"></A>&nbsp;</P>
1201 <P CLASS="LotsOfCode">
1202 <A NAME="pgfId-882337"></A>   #########################################################################</P>
1203 <P CLASS="LotsOfCode">
1204 <A NAME="pgfId-882338"></A>   # Set the line style and line color                                     #</P>
1205 <P CLASS="LotsOfCode">
1206 <A NAME="pgfId-882339"></A>   #########################################################################</P>
1207 <P CLASS="LotsOfCode">
1208 <A NAME="pgfId-882340"></A>   a.level=((20,0.0),(30,0),(50,0),(60,0),(70,0)) # change the isoline values</P>
1209 <P CLASS="LotsOfCode">
1210 <A NAME="pgfId-882341"></A>   a.line=[1,3,0,4]                     # same as a.line=(1,3,0,4)</P>
1211 <P CLASS="LotsOfCode">
1212 <A NAME="pgfId-882342"></A>   a.line=(['dash','long-dash','solid'])# same as a.line=([2,4,0])</P>
1213 <P CLASS="LotsOfCode">
1214 <A NAME="pgfId-882343"></A>   a.line=[2,4,1,3,2,0]</P>
1215 <P CLASS="LotsOfCode">
1216 <A NAME="pgfId-882344"></A>   a.linecolors=([22,33,44,55,66,77])   # change the line color</P>
1217 <P CLASS="LotsOfCode">
1218 <A NAME="pgfId-882345"></A>   a.linecolors=(16,19,33,44)           # change the line color</P>
1219 <P CLASS="LotsOfCode">
1220 <A NAME="pgfId-882346"></A>   a.linecolors=None                    # use the default line color</P>
1221 <P CLASS="LotsOfCode">
1222 <A NAME="pgfId-882347"></A>   a.line=None                          # use the default line style, which is solid</P>
1223 <P CLASS="LotsOfCode">
1224 <A NAME="pgfId-882348"></A>&nbsp;</P>
1225 <P CLASS="LotsOfCode">
1226 <A NAME="pgfId-882349"></A>   #########################################################################</P>
1227 <P CLASS="LotsOfCode">
1228 <A NAME="pgfId-882350"></A>   # Set the text font and text color                                      #</P>
1229 <P CLASS="LotsOfCode">
1230 <A NAME="pgfId-882351"></A>   #########################################################################</P>
1231 <P CLASS="LotsOfCode">
1232 <A NAME="pgfId-882352"></A>   a.label='y'                          # same as a.label=1</P>
1233 <P CLASS="LotsOfCode">
1234 <A NAME="pgfId-882353"></A>   a.text=(1,2,3,4,5,6,7,8,9)           # select fonts from 1 through 9</P>
1235 <P CLASS="LotsOfCode">
1236 <A NAME="pgfId-882354"></A>   a.text=[9,8,7,6,5,4,3,2,1]</P>
1237 <P CLASS="LotsOfCode">
1238 <A NAME="pgfId-882355"></A>   a.text=([1,3,5,6,9,2])</P>
1239 <P CLASS="LotsOfCode">
1240 <A NAME="pgfId-882356"></A>   a.textcolors=([22,33,44,55,66,77])   # set the text color</P>
1241 <P CLASS="LotsOfCode">
1242 <A NAME="pgfId-882357"></A>   a.textcolors=(16,19,33,44)</P>
1243 <P CLASS="LotsOfCode">
1244 <A NAME="pgfId-882358"></A>   a.textcolors=None                    # use default text color, black</P>
1245 <P CLASS="LotsOfCode">
1246 <A NAME="pgfId-882359"></A>   a.text=None                          # use default font, 1</P>
1247 <P CLASS="LotsOfCode">
1248 <A NAME="pgfId-882360"></A>&nbsp;</P>
1249 <P CLASS="LotsOfCode">
1250 <A NAME="pgfId-882361"></A>   #########################################################################</P>
1251 <P CLASS="LotsOfCode">
1252 <A NAME="pgfId-882362"></A>   # Create template 'test' from the default template                      #</P>
1253 <P CLASS="LotsOfCode">
1254 <A NAME="pgfId-882363"></A>   #########################################################################</P>
1255 <P CLASS="LotsOfCode">
1256 <A NAME="pgfId-882364"></A>   x.show('template')                   # show the list of templates</P>
1257 <P CLASS="LotsOfCode">
1258 <A NAME="pgfId-882365"></A>   t=x.createtemplate('test')           # create template 'test' from 'default' template</P>
1259 <P CLASS="LotsOfCode">
1260 <A NAME="pgfId-882366"></A>   if x.istemplate(t):                  # test whether 't' is a template or not</P>
1261 <P CLASS="LotsOfCode">
1262 <A NAME="pgfId-882367"></A>      x.show('template')                # show the list of templates</P>
1263 <P CLASS="LotsOfCode">
1264 <A NAME="pgfId-882368"></A>&nbsp;</P>
1265 <P CLASS="LotsOfCode">
1266 <A NAME="pgfId-882369"></A>   #########################################################################</P>
1267 <P CLASS="LotsOfCode">
1268 <A NAME="pgfId-882370"></A>   # Create line object 'l' from the default line                          #</P>
1269 <P CLASS="LotsOfCode">
1270 <A NAME="pgfId-882371"></A>   #########################################################################</P>
1271 <P CLASS="LotsOfCode">
1272 <A NAME="pgfId-882372"></A>   x.show('line')</P>
1273 <P CLASS="LotsOfCode">
1274 <A NAME="pgfId-882373"></A>   l=x.createline('test')</P>
1275 <P CLASS="LotsOfCode">
1276 <A NAME="pgfId-882374"></A>   if x.issecondaryobject(l):           # check to see if it is a secondary object</P>
1277 <P CLASS="LotsOfCode">
1278 <A NAME="pgfId-882375"></A>      print 'Yes, this is a secondary object.'</P>
1279 <P CLASS="LotsOfCode">
1280 <A NAME="pgfId-882376"></A>      if x.isline(l):                   # check to see if it is a line object</P>
1281 <P CLASS="LotsOfCode">
1282 <A NAME="pgfId-882377"></A>         print 'Yes, this is a line object.'</P>
1283 <P CLASS="LotsOfCode">
1284 <A NAME="pgfId-882378"></A>         l.list()                       # list the line's attributes and values</P>
1285 <P CLASS="LotsOfCode">
1286 <A NAME="pgfId-882379"></A>&nbsp;</P>
1287 <P CLASS="LotsOfCode">
1288 <A NAME="pgfId-882380"></A>   x.clear()                            # clear the VCS Canvas</P>
1289 <P CLASS="LotsOfCode">
1290 <A NAME="pgfId-882381"></A>   x.isoline(s,a,t)                     # plot the array using the template and isoline object</P>
1291 <P CLASS="LotsOfCode">
1292 <A NAME="pgfId-882382"></A>   x.clear()                            # clear the VCS Canvas</P>
1293 <P CLASS="LotsOfCode">
1294 <A NAME="pgfId-882383"></A>   x.plot(t,a,s)                        # plot again using the new way</P>
1295 <P CLASS="LotsOfCode">
1296 <A NAME="pgfId-882384"></A>&nbsp;</P>
1297 <P CLASS="LotsOfCode">
1298 <A NAME="pgfId-882385"></A>   #########################################################################</P>
1299 <P CLASS="LotsOfCode">
1300 <A NAME="pgfId-882386"></A>   # Use the create line object 'l' from above and modify the line object  #</P>
1301 <P CLASS="LotsOfCode">
1302 <A NAME="pgfId-882387"></A>   #########################################################################</P>
1303 <P CLASS="LotsOfCode">
1304 <A NAME="pgfId-882388"></A>   a.line=[1,3,0,4]                     # same as a.line=(1,3,0,4)</P>
1305 <P CLASS="LotsOfCode">
1306 <A NAME="pgfId-882389"></A>   a.line=([2,4,0])                     # same as a.line=(['dash', 'long-dash', 'solid'])</P>
1307 <P CLASS="LotsOfCode">
1308 <A NAME="pgfId-882390"></A>   a.line=(l,4,l,0)                     # use the line object</P>
1309 <P CLASS="LotsOfCode">
1310 <A NAME="pgfId-882391"></A>   a.line=(l,3,4,2,0)</P>
1311 <P CLASS="LotsOfCode">
1312 <A NAME="pgfId-882392"></A>   l.list()                             # list the line object attributes and values</P>
1313 <P CLASS="LotsOfCode">
1314 <A NAME="pgfId-882393"></A>   l.color = 44                         # change the line color</P>
1315 <P CLASS="LotsOfCode">
1316 <A NAME="pgfId-882394"></A>   l.type ='dash'                       # change the line type</P>
1317 <P CLASS="LotsOfCode">
1318 <A NAME="pgfId-882395"></A>&nbsp;</P>
1319 <P CLASS="LotsOfCode">
1320 <A NAME="pgfId-882405"></A>   #########################################################################</P>
1321 <P CLASS="LotsOfCode">
1322 <A NAME="pgfId-882406"></A>   # Create the three types of text objects                                #</P>
1323 <P CLASS="LotsOfCode">
1324 <A NAME="pgfId-882407"></A>   #########################################################################</P>
1325 <P CLASS="LotsOfCode">
1326 <A NAME="pgfId-882408"></A>   tc = x.createtextcombined('testc','std', 'testc','7left')</P>
1327 <P CLASS="LotsOfCode">
1328 <A NAME="pgfId-882409"></A>   if x.istextcombined(tc):</P>
1329 <P CLASS="LotsOfCode">
1330 <A NAME="pgfId-882410"></A>      print '*** textcombined listings ***'</P>
1331 <P CLASS="LotsOfCode">
1332 <A NAME="pgfId-882411"></A>      tc.list()</P>
1333 <P CLASS="LotsOfCode">
1334 <A NAME="pgfId-882412"></A>&nbsp;</P>
1335 <P CLASS="LotsOfCode">
1336 <A NAME="pgfId-882413"></A>   tt = x.createtexttable('testt', 'default')</P>
1337 <P CLASS="LotsOfCode">
1338 <A NAME="pgfId-882414"></A>   if x.istexttable(tt):</P>
1339 <P CLASS="LotsOfCode">
1340 <A NAME="pgfId-882415"></A>      print '*** texttable listings ***'</P>
1341 <P CLASS="LotsOfCode">
1342 <A NAME="pgfId-882416"></A>      tt.list()</P>
1343 <P CLASS="LotsOfCode">
1344 <A NAME="pgfId-882417"></A>&nbsp;</P>
1345 <P CLASS="LotsOfCode">
1346 <A NAME="pgfId-882418"></A>   to = x.createtextorientation('testo')</P>
1347 <P CLASS="LotsOfCode">
1348 <A NAME="pgfId-882419"></A>   if x.istextorientation(to):</P>
1349 <P CLASS="LotsOfCode">
1350 <A NAME="pgfId-882420"></A>      print '*** textorientation listings ***'</P>
1351 <P CLASS="LotsOfCode">
1352 <A NAME="pgfId-882421"></A>      to.list()</P>
1353 <P CLASS="LotsOfCode">
1354 <A NAME="pgfId-882422"></A>&nbsp;</P>
1355 <P CLASS="LotsOfCode">
1356 <A NAME="pgfId-882423"></A>   #########################################################################</P>
1357 <P CLASS="LotsOfCode">
1358 <A NAME="pgfId-882424"></A>   # Use the text objects in the isoline plot                              #</P>
1359 <P CLASS="LotsOfCode">
1360 <A NAME="pgfId-882425"></A>   #########################################################################</P>
1361 <P CLASS="LotsOfCode">
1362 <A NAME="pgfId-882426"></A>   a.label='y'                          # make sure that the labels are turn on</P>
1363 <P CLASS="LotsOfCode">
1364 <A NAME="pgfId-882427"></A>   a.text=([1,3,5,6,9,2])               # set the font</P>
1365 <P CLASS="LotsOfCode">
1366 <A NAME="pgfId-882428"></A>   a.text=([tc,tt,to,6,9,2])            # use the created text objects and fonts</P>
1367 <P CLASS="LotsOfCode">
1368 <A NAME="pgfId-882429"></A>&nbsp;</P>
1369 <P CLASS="LotsOfCode">
1370 <A NAME="pgfId-882430"></A>   #########################################################################</P>
1371 <P CLASS="LotsOfCode">
1372 <A NAME="pgfId-882431"></A>   # Change the text object values                                         #</P>
1373 <P CLASS="LotsOfCode">
1374 <A NAME="pgfId-882432"></A>   #########################################################################</P>
1375 <P CLASS="LotsOfCode">
1376 <A NAME="pgfId-882433"></A>   tc.font = 3                          # changing isoline level 20</P>
1377 <P CLASS="LotsOfCode">
1378 <A NAME="pgfId-882434"></A>   tc.height=15</P>
1379 <P CLASS="LotsOfCode">
1380 <A NAME="pgfId-882435"></A>   tc.angle=180</P>
1381 <P CLASS="LotsOfCode">
1382 <A NAME="pgfId-882436"></A>   tc.color=242</P>
1383 <P CLASS="LotsOfCode">
1384 <A NAME="pgfId-882437"></A>   tt.font=2                            # changing isoline level 30</P>
1385 <P CLASS="LotsOfCode">
1386 <A NAME="pgfId-882438"></A>   tt.spacing=20</P>
1387 <P CLASS="LotsOfCode">
1388 <A NAME="pgfId-882439"></A>   to.height=15                         # changing isoline level 50</P>
1389 <P CLASS="LotsOfCode">
1390 <A NAME="pgfId-882440"></A>   to.path='down'</P>
1391 <P CLASS="LotsOfCode">
1392 <A NAME="pgfId-882441"></A>&nbsp;</P>
1393 <P CLASS="LotsOfCode">
1394 <A NAME="pgfId-882442"></A>   a.text=None                          # use default font, which is font 1</P>
1395 <P CLASS="LotsOfCode">
1396 <A NAME="pgfId-882443"></A>   a.line=None                          # use default line, which is solid</P>
1397 <P CLASS="LotsOfCode">
1398 <A NAME="pgfId-882444"></A>&nbsp;</P>
1399 <P CLASS="LotsOfCode">
1400 <A NAME="pgfId-882445"></A>   x.show('isoline')                    # show list of isoline</P>
1401 <P CLASS="LotsOfCode">
1402 <A NAME="pgfId-882446"></A>   r=x.createisoline('test2','quick')   # create isoline 'test2'</P>
1403 <P CLASS="LotsOfCode">
1404 <A NAME="pgfId-882447"></A>   x.show('isoline')                    # show list of isoline</P>
1405 <P CLASS="LotsOfCode">
1406 <A NAME="pgfId-882448"></A>   x.removeobject(r)                    # remove isoline 'test2'</P>
1407 <P CLASS="LotsOfCode">
1408 <A NAME="pgfId-882449"></A>   x.show('isoline')                    # show list of isoline</P>
1409 <P CLASS="LotsOfCode">
1410 <A NAME="pgfId-882450"></A>&nbsp;</P>
1411 <P CLASS="LotsOfCode">
1412 <A NAME="pgfId-882451"></A>   #####################################################################</P>
1413 <P CLASS="LotsOfCode">
1414 <A NAME="pgfId-882452"></A>   # to see how x.update and x.mode work, see testisoline.py           #</P>
1415 <P CLASS="LotsOfCode">
1416 <A NAME="pgfId-882453"></A>   #####################################################################</P>
1417 <P CLASS="LotsOfCode">
1418 <A NAME="pgfId-882454"></A>   #x.update()</P>
1419 <P CLASS="LotsOfCode">
1420 <A NAME="pgfId-882455"></A>   #x.mode=1</P>
1421 <P CLASS="LotsOfCode">
1422 <A NAME="pgfId-882456"></A>   #x.mode=0</P>
1423 <P CLASS="LotsOfCode">
1424 <A NAME="pgfId-882457"></A>   print '***************************************************'</P>
1425 <P CLASS="LotsOfCode">
1426 <A NAME="pgfId-882506"></A>   print '******                                       ******'</P>
1427 <P CLASS="LotsOfCode">
1428 <A NAME="pgfId-882459"></A>   print '******   I S O L I N E   C O M P L E T E D   ******'</P>
1429 <P CLASS="LotsOfCode">
1430 <A NAME="pgfId-882709"></A>   print '******                                       ******'</P>
1431 <P CLASS="LotsOfCode">
1432 <A NAME="pgfId-882715"></A>   print '***************************************************'</P>
1433 <P CLASS="LotsOfCode">
1434 <A NAME="pgfId-882722"></A>&nbsp;</P>
1435 <P CLASS="LotsOfCode">
1436 <A NAME="pgfId-882716"></A>if __name__==&quot;__main__&quot;:</P>
1437 <P CLASS="LotsOfCode">
1438 <A NAME="pgfId-882717"></A>   exampleisoline()</P>
1439 </DIV>
1440 <DIV>
1441 <H4 CLASS="Heading1">
1442 <A NAME="pgfId-882711"></A><DIV>
1443 <IMG SRC="vcs-2.gif">
1444 </DIV>
1445 Outfill Graphics Method Example:</H4>
1446 <P CLASS="LotsOfCode">
1447 <A NAME="pgfId-837565"></A>#</P>
1448 <P CLASS="LotsOfCode">
1449 <A NAME="pgfId-882522"></A># Example Outfill (Gfo) module</P>
1450 <P CLASS="LotsOfCode">
1451 <A NAME="pgfId-882523"></A>#</P>
1452 <P CLASS="LotsOfCode">
1453 <A NAME="pgfId-882524"></A>############################################################################</P>
1454 <P CLASS="LotsOfCode">
1455 <A NAME="pgfId-882525"></A>#                                                                          #</P>
1456 <P CLASS="LotsOfCode">
1457 <A NAME="pgfId-882526"></A># Module:       exampleoutfill module                                      #</P>
1458 <P CLASS="LotsOfCode">
1459 <A NAME="pgfId-882527"></A>#                                                                          #</P>
1460 <P CLASS="LotsOfCode">
1461 <A NAME="pgfId-882528"></A># Copyright:    2000, Regents of the University of California              #</P>
1462 <P CLASS="LotsOfCode">
1463 <A NAME="pgfId-882529"></A>#               This software may not be distributed to others without     #</P>
1464 <P CLASS="LotsOfCode">
1465 <A NAME="pgfId-882530"></A>#               permission of the author.                                  #</P>
1466 <P CLASS="LotsOfCode">
1467 <A NAME="pgfId-882531"></A>#                                                                          #</P>
1468 <P CLASS="LotsOfCode">
1469 <A NAME="pgfId-882532"></A># Author:       Dean N. Williams, Lawrence Livermore National Laboratory   #</P>
1470 <P CLASS="LotsOfCode">
1471 <A NAME="pgfId-882533"></A>#               williams13@llnl.gov                                        #</P>
1472 <P CLASS="LotsOfCode">
1473 <A NAME="pgfId-882534"></A>#                                                                          #</P>
1474 <P CLASS="LotsOfCode">
1475 <A NAME="pgfId-882535"></A># Description:  Example use of VCS's outfill graphics method.              #</P>
1476 <P CLASS="LotsOfCode">
1477 <A NAME="pgfId-882536"></A>#                                                                          #</P>
1478 <P CLASS="LotsOfCode">
1479 <A NAME="pgfId-882537"></A># Version:      1.0                                                        #</P>
1480 <P CLASS="LotsOfCode">
1481 <A NAME="pgfId-882538"></A>#                                                                          #</P>
1482 <P CLASS="LotsOfCode">
1483 <A NAME="pgfId-882539"></A>############################################################################</P>
1484 <P CLASS="LotsOfCode">
1485 <A NAME="pgfId-882540"></A>#</P>
1486 <P CLASS="LotsOfCode">
1487 <A NAME="pgfId-882541"></A>#</P>
1488 <P CLASS="LotsOfCode">
1489 <A NAME="pgfId-882542"></A>#</P>
1490 <P CLASS="LotsOfCode">
1491 <A NAME="pgfId-882543"></A>############################################################################</P>
1492 <P CLASS="LotsOfCode">
1493 <A NAME="pgfId-882544"></A>#                                                                          #</P>
1494 <P CLASS="LotsOfCode">
1495 <A NAME="pgfId-882545"></A># Import: vcs and cdms modules.                                            #</P>
1496 <P CLASS="LotsOfCode">
1497 <A NAME="pgfId-882546"></A>#                                                                          #</P>
1498 <P CLASS="LotsOfCode">
1499 <A NAME="pgfId-882547"></A>############################################################################</P>
1500 <P CLASS="LotsOfCode">
1501 <A NAME="pgfId-882548"></A>def exampleoutfill():</P>
1502 <P CLASS="LotsOfCode">
1503 <A NAME="pgfId-882549"></A>   import vcs,cdms                      # import vcs and cdms</P>
1504 <P CLASS="LotsOfCode">
1505 <A NAME="pgfId-882550"></A>&nbsp;</P>
1506 <P CLASS="LotsOfCode">
1507 <A NAME="pgfId-882551"></A>   f=cdms.openDataset('example.nc')         # open example file</P>
1508 <P CLASS="LotsOfCode">
1509 <A NAME="pgfId-882552"></A>   clt=f.variables['clt']               # get variable clt</P>
1510 <P CLASS="LotsOfCode">
1511 <A NAME="pgfId-882553"></A>   s=clt[0]                             # get clt data</P>
1512 <P CLASS="LotsOfCode">
1513 <A NAME="pgfId-882554"></A>   x=vcs.init()                         # construct vcs canvas</P>
1514 <P CLASS="LotsOfCode">
1515 <A NAME="pgfId-882555"></A>&nbsp;</P>
1516 <P CLASS="LotsOfCode">
1517 <A NAME="pgfId-882556"></A>   x.plot(s,'default','outfill','quick',variable=clt)# plot slab the old way</P>
1518 <P CLASS="LotsOfCode">
1519 <A NAME="pgfId-882557"></A>   x.geometry(450,337,100,0)            # change the geometry and location</P>
1520 <P CLASS="LotsOfCode">
1521 <A NAME="pgfId-882558"></A>&nbsp;</P>
1522 <P CLASS="LotsOfCode">
1523 <A NAME="pgfId-882560"></A>   f2=cdms.openDataset('examlpe.nc') # open surface data</P>
1524 <P CLASS="LotsOfCode">
1525 <A NAME="pgfId-882561"></A>   sft=f2.variables['sft']              # get surface sft</P>
1526 <P CLASS="LotsOfCode">
1527 <A NAME="pgfId-882562"></A>   s=sft[...]                           # get sft data</P>
1528 <P CLASS="LotsOfCode">
1529 <A NAME="pgfId-882563"></A>&nbsp;</P>
1530 <P CLASS="LotsOfCode">
1531 <A NAME="pgfId-882564"></A>   x.clear()                            # clear the VCS Canvas</P>
1532 <P CLASS="LotsOfCode">
1533 <A NAME="pgfId-882565"></A>   x.plot(s,'default','outfill','quick',variable=sft)# plot the surface data</P>
1534 <P CLASS="LotsOfCode">
1535 <A NAME="pgfId-882566"></A>&nbsp;</P>
1536 <P CLASS="LotsOfCode">
1537 <A NAME="pgfId-882567"></A>   x.show('outfill')                    # show list of outfill</P>
1538 <P CLASS="LotsOfCode">
1539 <A NAME="pgfId-882568"></A>   a=x.getoutfill('quick')              # get 'quick' outfill</P>
1540 <P CLASS="LotsOfCode">
1541 <A NAME="pgfId-882569"></A>   if x.isgraphicsmethod(a):            # test object 'a' for graphics method</P>
1542 <P CLASS="LotsOfCode">
1543 <A NAME="pgfId-882570"></A>      print 'Yes, this is a graphics method'</P>
1544 <P CLASS="LotsOfCode">
1545 <A NAME="pgfId-882571"></A>      if x.isoutfill(a):                # test object 'a' if outfill</P>
1546 <P CLASS="LotsOfCode">
1547 <A NAME="pgfId-882572"></A>         print 'Yes, this is an outfill graphics method'</P>
1548 <P CLASS="LotsOfCode">
1549 <A NAME="pgfId-882573"></A>         a.list()                       # list the outfill's attributes and values</P>
1550 <P CLASS="LotsOfCode">
1551 <A NAME="pgfId-882574"></A>&nbsp;</P>
1552 <P CLASS="LotsOfCode">
1553 <A NAME="pgfId-882575"></A>   a.script('test','w')                 # save 'quick' outfill as a Python script</P>
1554 <P CLASS="LotsOfCode">
1555 <A NAME="pgfId-882576"></A>&nbsp;</P>
1556 <P CLASS="LotsOfCode">
1557 <A NAME="pgfId-882577"></A>&nbsp;</P>
1558 <P CLASS="LotsOfCode">
1559 <A NAME="pgfId-882578"></A>   a.xticlabels('lon30','lon30')        # change the x-axis</P>
1560 <P CLASS="LotsOfCode">
1561 <A NAME="pgfId-882579"></A>   a.xticlabels('','')                  # remove the x-axis</P>
1562 <P CLASS="LotsOfCode">
1563 <A NAME="pgfId-882580"></A>   a.xticlabels('*')                    # put the x-axis</P>
1564 <P CLASS="LotsOfCode">
1565 <A NAME="pgfId-882581"></A>   a.datawc(-45.0, 45.0, -90.0, 90.0)   # change the region</P>
1566 <P CLASS="LotsOfCode">
1567 <A NAME="pgfId-882582"></A>   a.datawc(1e20,1e20,1e20,1e20)        # put the region back</P>
1568 <P CLASS="LotsOfCode">
1569 <A NAME="pgfId-882583"></A>&nbsp;</P>
1570 <P CLASS="LotsOfCode">
1571 <A NAME="pgfId-882585"></A>   a.fillareastyle='hatch'              # change the fill style to hatch</P>
1572 <P CLASS="LotsOfCode">
1573 <A NAME="pgfId-882586"></A>   a.fillareaindex=11                   # change the hatch index pattern</P>
1574 <P CLASS="LotsOfCode">
1575 <A NAME="pgfId-882587"></A>   a.fillareacolor=(77)                 # change the hatch color</P>
1576 <P CLASS="LotsOfCode">
1577 <A NAME="pgfId-882588"></A>   a.fillareacolor=16                   # chnage the hatch color</P>
1578 <P CLASS="LotsOfCode">
1579 <A NAME="pgfId-882589"></A>   a.fillareacolor=44                   # same as a.fillareacolor=(44)</P>
1580 <P CLASS="LotsOfCode">
1581 <A NAME="pgfId-882590"></A>   a.fillareacolor=None                 # use the default hatch color (black)</P>
1582 <P CLASS="LotsOfCode">
1583 <A NAME="pgfId-882591"></A>   a.outfill=([0])                      # set the outfill value</P>
1584 <P CLASS="LotsOfCode">
1585 <A NAME="pgfId-882592"></A>   a.outfill=([1])                      # set the outfill value</P>
1586 <P CLASS="LotsOfCode">
1587 <A NAME="pgfId-882593"></A>   a.outfill=([0,1])                    # set the outfill value</P>
1588 <P CLASS="LotsOfCode">
1589 <A NAME="pgfId-882594"></A>   a.outfill=([0])                      # set the outfill value</P>
1590 <P CLASS="LotsOfCode">
1591 <A NAME="pgfId-882595"></A>&nbsp;</P>
1592 <P CLASS="LotsOfCode">
1593 <A NAME="pgfId-882596"></A>&nbsp;</P>
1594 <P CLASS="LotsOfCode">
1595 <A NAME="pgfId-882597"></A>   x.clear()                            # clear the VCS Canvas</P>
1596 <P CLASS="LotsOfCode">
1597 <A NAME="pgfId-882598"></A>   x.outfill(s,a,'default')             # plot outfill using 'default' template</P>
1598 <P CLASS="LotsOfCode">
1599 <A NAME="pgfId-882599"></A>&nbsp;</P>
1600 <P CLASS="LotsOfCode">
1601 <A NAME="pgfId-882600"></A>   x.show('template')                   # show the list of templates</P>
1602 <P CLASS="LotsOfCode">
1603 <A NAME="pgfId-882601"></A>   t=x.createtemplate('test')           # create template 'test' from 'default' template</P>
1604 <P CLASS="LotsOfCode">
1605 <A NAME="pgfId-882602"></A>   if x.istemplate(t):                  # test whether 't' is a template or not</P>
1606 <P CLASS="LotsOfCode">
1607 <A NAME="pgfId-882603"></A>      x.show('template')                # show the list of templates</P>
1608 <P CLASS="LotsOfCode">
1609 <A NAME="pgfId-882604"></A>&nbsp;</P>
1610 <P CLASS="LotsOfCode">
1611 <A NAME="pgfId-882605"></A>   x.clear()                            # clear the VCS Canvas</P>
1612 <P CLASS="LotsOfCode">
1613 <A NAME="pgfId-882606"></A>   x.plot(t,a,s)                        # plot outfill template 't', outfill 'a', and array 's'</P>
1614 <P CLASS="LotsOfCode">
1615 <A NAME="pgfId-882607"></A>   x.clear()                            # clear the VCS Canvas</P>
1616 <P CLASS="LotsOfCode">
1617 <A NAME="pgfId-882608"></A>   x.outfill(a,s,t)                     # plot using outfill 'a', array 's', and template 't'</P>
1618 <P CLASS="LotsOfCode">
1619 <A NAME="pgfId-882609"></A>&nbsp;</P>
1620 <P CLASS="LotsOfCode">
1621 <A NAME="pgfId-882610"></A>   x.show('fillarea')                   # show the list of fillarea secondary objects</P>
1622 <P CLASS="LotsOfCode">
1623 <A NAME="pgfId-882611"></A>   f=x.getfillarea('def37')             # get fillarea 'def37'</P>
1624 <P CLASS="LotsOfCode">
1625 <A NAME="pgfId-882612"></A>   if x.issecondaryobject(f):           # check to see if it is a secondary object</P>
1626 <P CLASS="LotsOfCode">
1627 <A NAME="pgfId-882613"></A>      print 'Yes, this is a secondary object.'</P>
1628 <P CLASS="LotsOfCode">
1629 <A NAME="pgfId-882614"></A>      if x.isfillarea(f):               # check to see if it is a fill area</P>
1630 <P CLASS="LotsOfCode">
1631 <A NAME="pgfId-882615"></A>         print 'Yes, this is a fill area object.'</P>
1632 <P CLASS="LotsOfCode">
1633 <A NAME="pgfId-882616"></A>         f.list()                       # list the fillarea's attributes and values</P>
1634 <P CLASS="LotsOfCode">
1635 <A NAME="pgfId-882617"></A>&nbsp;</P>
1636 <P CLASS="LotsOfCode">
1637 <A NAME="pgfId-882618"></A>   a.fillareastyle=f</P>
1638 <P CLASS="LotsOfCode">
1639 <A NAME="pgfId-882619"></A>   f.color=44                           # change the fillarea object's color</P>
1640 <P CLASS="LotsOfCode">
1641 <A NAME="pgfId-882620"></A>   f.style='hatch'                      # change the fillarea object's fill style</P>
1642 <P CLASS="LotsOfCode">
1643 <A NAME="pgfId-882621"></A>&nbsp;</P>
1644 <P CLASS="LotsOfCode">
1645 <A NAME="pgfId-882622"></A>   x.show('outfill')                    # show list of outfill</P>
1646 <P CLASS="LotsOfCode">
1647 <A NAME="pgfId-882623"></A>   r=x.createoutfill('test2','quick')   # create outfill 'test2'</P>
1648 <P CLASS="LotsOfCode">
1649 <A NAME="pgfId-882624"></A>   x.show('outfill')                    # show list of outfill</P>
1650 <P CLASS="LotsOfCode">
1651 <A NAME="pgfId-882625"></A>   x.removeobject(r)                    # remove outfill 'test2'</P>
1652 <P CLASS="LotsOfCode">
1653 <A NAME="pgfId-882626"></A>   x.show('outfill')                    # show list of outfill</P>
1654 <P CLASS="LotsOfCode">
1655 <A NAME="pgfId-882627"></A>&nbsp;</P>
1656 <P CLASS="LotsOfCode">
1657 <A NAME="pgfId-882628"></A>&nbsp;</P>
1658 <P CLASS="LotsOfCode">
1659 <A NAME="pgfId-882629"></A>   ##################################################################</P>
1660 <P CLASS="LotsOfCode">
1661 <A NAME="pgfId-882630"></A>   # to see how x.update and x.mode work, see testoutfill.py        #</P>
1662 <P CLASS="LotsOfCode">
1663 <A NAME="pgfId-882631"></A>   ##################################################################</P>
1664 <P CLASS="LotsOfCode">
1665 <A NAME="pgfId-882632"></A>   #x.update()</P>
1666 <P CLASS="LotsOfCode">
1667 <A NAME="pgfId-882633"></A>   #x.mode=1</P>
1668 <P CLASS="LotsOfCode">
1669 <A NAME="pgfId-882634"></A>   #x.mode=0</P>
1670 <P CLASS="LotsOfCode">
1671 <A NAME="pgfId-882635"></A>   print '***************************************************'</P>
1672 <P CLASS="LotsOfCode">
1673 <A NAME="pgfId-882636"></A>   print '******                                       ******'</P>
1674 <P CLASS="LotsOfCode">
1675 <A NAME="pgfId-882637"></A>   print '******   O U T F I L L   C O M P L E T E D   ******'</P>
1676 <P CLASS="LotsOfCode">
1677 <A NAME="pgfId-882697"></A>   print '******                                       ******'</P>
1678 <P CLASS="LotsOfCode">
1679 <A NAME="pgfId-882698"></A>   print '***************************************************'</P>
1680 <P CLASS="LotsOfCode">
1681 <A NAME="pgfId-882702"></A>&nbsp;</P>
1682 <P CLASS="LotsOfCode">
1683 <A NAME="pgfId-882703"></A>if __name__==&quot;__main__&quot;:</P>
1684 <P CLASS="LotsOfCode">
1685 <A NAME="pgfId-882705"></A>   exampleoutfill()</P>
1686 </DIV>
1687 <DIV>
1688 <H4 CLASS="Heading1">
1689 <A NAME="pgfId-882699"></A><DIV>
1690 <IMG SRC="vcs-2.gif">
1691 </DIV>
1692 Outline Graphics Method Example:</H4>
1693 <P CLASS="LotsOfCode">
1694 <A NAME="pgfId-837577"></A>#</P>
1695 <P CLASS="LotsOfCode">
1696 <A NAME="pgfId-882773"></A># Example Outline (Go) module</P>
1697 <P CLASS="LotsOfCode">
1698 <A NAME="pgfId-882774"></A>#</P>
1699 <P CLASS="LotsOfCode">
1700 <A NAME="pgfId-882775"></A>############################################################################</P>
1701 <P CLASS="LotsOfCode">
1702 <A NAME="pgfId-882776"></A>#                                                                          #</P>
1703 <P CLASS="LotsOfCode">
1704 <A NAME="pgfId-882777"></A># Module:       exampleoutline module                                      #</P>
1705 <P CLASS="LotsOfCode">
1706 <A NAME="pgfId-882778"></A>#                                                                          #</P>
1707 <P CLASS="LotsOfCode">
1708 <A NAME="pgfId-882779"></A># Copyright:    2000, Regents of the University of California              #</P>
1709 <P CLASS="LotsOfCode">
1710 <A NAME="pgfId-882780"></A>#               This software may not be distributed to others without     #</P>
1711 <P CLASS="LotsOfCode">
1712 <A NAME="pgfId-882781"></A>#               permission of the author.                                  #</P>
1713 <P CLASS="LotsOfCode">
1714 <A NAME="pgfId-882782"></A>#                                                                          #</P>
1715 <P CLASS="LotsOfCode">
1716 <A NAME="pgfId-882783"></A># Author:       Dean N. Williams, Lawrence Livermore National Laboratory   #</P>
1717 <P CLASS="LotsOfCode">
1718 <A NAME="pgfId-882784"></A>#               williams13@llnl.gov                                        #</P>
1719 <P CLASS="LotsOfCode">
1720 <A NAME="pgfId-882785"></A>#                                                                          #</P>
1721 <P CLASS="LotsOfCode">
1722 <A NAME="pgfId-882786"></A># Description:  Example use of VCS's outline graphics method.              #</P>
1723 <P CLASS="LotsOfCode">
1724 <A NAME="pgfId-882787"></A>#                                                                          #</P>
1725 <P CLASS="LotsOfCode">
1726 <A NAME="pgfId-882788"></A># Version:      1.0                                                        #</P>
1727 <P CLASS="LotsOfCode">
1728 <A NAME="pgfId-882789"></A>#                                                                          #</P>
1729 <P CLASS="LotsOfCode">
1730 <A NAME="pgfId-882790"></A>############################################################################</P>
1731 <P CLASS="LotsOfCode">
1732 <A NAME="pgfId-882791"></A>#</P>
1733 <P CLASS="LotsOfCode">
1734 <A NAME="pgfId-882792"></A>#</P>
1735 <P CLASS="LotsOfCode">
1736 <A NAME="pgfId-882793"></A>#</P>
1737 <P CLASS="LotsOfCode">
1738 <A NAME="pgfId-882794"></A>############################################################################</P>
1739 <P CLASS="LotsOfCode">
1740 <A NAME="pgfId-882795"></A>#                                                                          #</P>
1741 <P CLASS="LotsOfCode">
1742 <A NAME="pgfId-882796"></A># Import: vcs and cdms modules.                                            #</P>
1743 <P CLASS="LotsOfCode">
1744 <A NAME="pgfId-882797"></A>#                                                                          #</P>
1745 <P CLASS="LotsOfCode">
1746 <A NAME="pgfId-882798"></A>############################################################################</P>
1747 <P CLASS="LotsOfCode">
1748 <A NAME="pgfId-882799"></A>def exampleoutline():</P>
1749 <P CLASS="LotsOfCode">
1750 <A NAME="pgfId-882800"></A>   import vcs,cdms                      # import vcs and cdms</P>
1751 <P CLASS="LotsOfCode">
1752 <A NAME="pgfId-882801"></A>&nbsp;</P>
1753 <P CLASS="LotsOfCode">
1754 <A NAME="pgfId-882802"></A>   f=cdms.openDataset('example.nc')     # open example file</P>
1755 <P CLASS="LotsOfCode">
1756 <A NAME="pgfId-882803"></A>   clt=f.variables['clt']               # get variable clt</P>
1757 <P CLASS="LotsOfCode">
1758 <A NAME="pgfId-882804"></A>   s=clt[0]                             # get clt data</P>
1759 <P CLASS="LotsOfCode">
1760 <A NAME="pgfId-882805"></A>   x=vcs.init()                         # construct vcs canvas</P>
1761 <P CLASS="LotsOfCode">
1762 <A NAME="pgfId-882806"></A>&nbsp;</P>
1763 <P CLASS="LotsOfCode">
1764 <A NAME="pgfId-882807"></A>   x.plot(s,'default','outline','quick',variable=clt)# plot slab the old way</P>
1765 <P CLASS="LotsOfCode">
1766 <A NAME="pgfId-882808"></A>   x.geometry(450,337,100,0)            # change the geometry and location</P>
1767 <P CLASS="LotsOfCode">
1768 <A NAME="pgfId-882809"></A>&nbsp;</P>
1769 <P CLASS="LotsOfCode">
1770 <A NAME="pgfId-882810"></A>&nbsp;</P>
1771 <P CLASS="LotsOfCode">
1772 <A NAME="pgfId-882811"></A>   f2=cdms.openDataset('example.nc') # open surface data</P>
1773 <P CLASS="LotsOfCode">
1774 <A NAME="pgfId-882812"></A>   sft=f2.variables['sft']               # get variable sft</P>
1775 <P CLASS="LotsOfCode">
1776 <A NAME="pgfId-882813"></A>   s=sft[...]                           # get sft data</P>
1777 <P CLASS="LotsOfCode">
1778 <A NAME="pgfId-882814"></A>   x.clear()                            # clear the VCS Canvas</P>
1779 <P CLASS="LotsOfCode">
1780 <A NAME="pgfId-882815"></A>   x.plot(s,'default','outline','quick',variable=sft)# plot the surface data</P>
1781 <P CLASS="LotsOfCode">
1782 <A NAME="pgfId-882816"></A>&nbsp;</P>
1783 <P CLASS="LotsOfCode">
1784 <A NAME="pgfId-882817"></A>   x.show('outline')                    # show list of outline</P>
1785 <P CLASS="LotsOfCode">
1786 <A NAME="pgfId-882818"></A>   a=x.getoutline('quick')              # get 'quick' outline</P>
1787 <P CLASS="LotsOfCode">
1788 <A NAME="pgfId-882819"></A>   if x.isgraphicsmethod(a):            # test object 'a' for graphics method</P>
1789 <P CLASS="LotsOfCode">
1790 <A NAME="pgfId-882820"></A>      print 'Yes, this is a graphics method'</P>
1791 <P CLASS="LotsOfCode">
1792 <A NAME="pgfId-882821"></A>      if x.isoutline(a):                # test object 'a' if outline</P>
1793 <P CLASS="LotsOfCode">
1794 <A NAME="pgfId-882822"></A>         print 'Yes, this is an outline graphics method'</P>
1795 <P CLASS="LotsOfCode">
1796 <A NAME="pgfId-882823"></A>         a.list()                       # list the isoline's attributes and values</P>
1797 <P CLASS="LotsOfCode">
1798 <A NAME="pgfId-882824"></A>&nbsp;</P>
1799 <P CLASS="LotsOfCode">
1800 <A NAME="pgfId-882825"></A>   a.script('test','w')                 # save 'quick' outline as a Python script</P>
1801 <P CLASS="LotsOfCode">
1802 <A NAME="pgfId-882826"></A>&nbsp;</P>
1803 <P CLASS="LotsOfCode">
1804 <A NAME="pgfId-882827"></A>   a.xticlabels('lon30','lon30')        # change the x-axis</P>
1805 <P CLASS="LotsOfCode">
1806 <A NAME="pgfId-882828"></A>   a.xticlabels('','')                  # remove the x-axis</P>
1807 <P CLASS="LotsOfCode">
1808 <A NAME="pgfId-882829"></A>   a.xticlabels('*')                    # put the x-axis</P>
1809 <P CLASS="LotsOfCode">
1810 <A NAME="pgfId-882830"></A>   a.datawc(-45.0, 45.0, -90.0, 90.0)   # change the region</P>
1811 <P CLASS="LotsOfCode">
1812 <A NAME="pgfId-882831"></A>   a.datawc(1e20,1e20,1e20,1e20)        # put the region back</P>
1813 <P CLASS="LotsOfCode">
1814 <A NAME="pgfId-882832"></A>&nbsp;</P>
1815 <P CLASS="LotsOfCode">
1816 <A NAME="pgfId-882833"></A>   a.line=0                             # same as 'solid', change the line style</P>
1817 <P CLASS="LotsOfCode">
1818 <A NAME="pgfId-882834"></A>   a.line=1                             # same as 'dash', change the line style</P>
1819 <P CLASS="LotsOfCode">
1820 <A NAME="pgfId-882835"></A>   a.line=2                             # same as 'dot', change the line style</P>
1821 <P CLASS="LotsOfCode">
1822 <A NAME="pgfId-882836"></A>   a.line=3                             # same as 'dash-dot', change the line style</P>
1823 <P CLASS="LotsOfCode">
1824 <A NAME="pgfId-882837"></A>   a.line=4                             # same as 'long-dash', change the line style</P>
1825 <P CLASS="LotsOfCode">
1826 <A NAME="pgfId-882838"></A>   a.linecolor=(77)                     # change the line color</P>
1827 <P CLASS="LotsOfCode">
1828 <A NAME="pgfId-882839"></A>   a.linecolor=16                       # change the line color</P>
1829 <P CLASS="LotsOfCode">
1830 <A NAME="pgfId-882840"></A>   a.linecolor=44                       # same as a.linecolor=(44)</P>
1831 <P CLASS="LotsOfCode">
1832 <A NAME="pgfId-882841"></A>   a.linecolor=None                     # use the default line color, black</P>
1833 <P CLASS="LotsOfCode">
1834 <A NAME="pgfId-882842"></A>   a.line=None                          # use default line style, solid black line</P>
1835 <P CLASS="LotsOfCode">
1836 <A NAME="pgfId-882843"></A>&nbsp;</P>
1837 <P CLASS="LotsOfCode">
1838 <A NAME="pgfId-882845"></A>   a.outline=([0])                      # set the outline value</P>
1839 <P CLASS="LotsOfCode">
1840 <A NAME="pgfId-882846"></A>   a.outline=([1])                      # set the outline value</P>
1841 <P CLASS="LotsOfCode">
1842 <A NAME="pgfId-882847"></A>   a.outline=([0,1])                    # set the outline value</P>
1843 <P CLASS="LotsOfCode">
1844 <A NAME="pgfId-882848"></A>   a.outline=([0])                      # set the outline value</P>
1845 <P CLASS="LotsOfCode">
1846 <A NAME="pgfId-882849"></A>&nbsp;</P>
1847 <P CLASS="LotsOfCode">
1848 <A NAME="pgfId-882850"></A>   x.clear()                            # clear the VCS Canvas</P>
1849 <P CLASS="LotsOfCode">
1850 <A NAME="pgfId-882851"></A>   x.outline(s,a,'default')             # plot outline using 'default' template</P>
1851 <P CLASS="LotsOfCode">
1852 <A NAME="pgfId-882852"></A>&nbsp;</P>
1853 <P CLASS="LotsOfCode">
1854 <A NAME="pgfId-882853"></A>   x.show('template')                   # show the list of templates</P>
1855 <P CLASS="LotsOfCode">
1856 <A NAME="pgfId-882854"></A>   t=x.createtemplate('test')           # create template 'test' from 'default' template</P>
1857 <P CLASS="LotsOfCode">
1858 <A NAME="pgfId-882855"></A>   if x.istemplate(t):                  # test whether 't' is a template or not</P>
1859 <P CLASS="LotsOfCode">
1860 <A NAME="pgfId-882856"></A>      x.show('template')                # show the list of templates</P>
1861 <P CLASS="LotsOfCode">
1862 <A NAME="pgfId-882857"></A>&nbsp;</P>
1863 <P CLASS="LotsOfCode">
1864 <A NAME="pgfId-882858"></A>   x.clear()                            # clear the VCS Canvas</P>
1865 <P CLASS="LotsOfCode">
1866 <A NAME="pgfId-882859"></A>   x.plot(t,a,s)                        # plot outline template 't', outline 'a', and array 's'</P>
1867 <P CLASS="LotsOfCode">
1868 <A NAME="pgfId-882860"></A>   x.clear()                            # clear the VCS Canvas</P>
1869 <P CLASS="LotsOfCode">
1870 <A NAME="pgfId-882861"></A>   x.outline(a,s,t)                     # plot using outline 'a', array 's', and template 't'</P>
1871 <P CLASS="LotsOfCode">
1872 <A NAME="pgfId-882862"></A>&nbsp;</P>
1873 <P CLASS="LotsOfCode">
1874 <A NAME="pgfId-882863"></A>   #########################################################################</P>
1875 <P CLASS="LotsOfCode">
1876 <A NAME="pgfId-882864"></A>   # Create line object 'l' from the default line                          #</P>
1877 <P CLASS="LotsOfCode">
1878 <A NAME="pgfId-882865"></A>   #########################################################################</P>
1879 <P CLASS="LotsOfCode">
1880 <A NAME="pgfId-882866"></A>   x.show('line')</P>
1881 <P CLASS="LotsOfCode">
1882 <A NAME="pgfId-882867"></A>   l=x.createline('test')</P>
1883 <P CLASS="LotsOfCode">
1884 <A NAME="pgfId-882868"></A>   if x.issecondaryobject(l):           # check to see if it is a secondary object</P>
1885 <P CLASS="LotsOfCode">
1886 <A NAME="pgfId-882869"></A>      print 'Yes, this is a secondary object.'</P>
1887 <P CLASS="LotsOfCode">
1888 <A NAME="pgfId-882870"></A>      if x.isline(l):                   # check to see if it is a line object</P>
1889 <P CLASS="LotsOfCode">
1890 <A NAME="pgfId-882871"></A>         print 'Yes, this is a line object.'</P>
1891 <P CLASS="LotsOfCode">
1892 <A NAME="pgfId-882872"></A>         l.list()                       # list the line's attributes and values</P>
1893 <P CLASS="LotsOfCode">
1894 <A NAME="pgfId-882873"></A>&nbsp;</P>
1895 <P CLASS="LotsOfCode">
1896 <A NAME="pgfId-882874"></A>   #########################################################################</P>
1897 <P CLASS="LotsOfCode">
1898 <A NAME="pgfId-882875"></A>   # Use the create line object 'l' from above and modify the line object  #</P>
1899 <P CLASS="LotsOfCode">
1900 <A NAME="pgfId-882876"></A>   #########################################################################</P>
1901 <P CLASS="LotsOfCode">
1902 <A NAME="pgfId-882877"></A>   a.line=l                             # use the line object</P>
1903 <P CLASS="LotsOfCode">
1904 <A NAME="pgfId-882878"></A>   l.list()                             # list the line object attributes and values</P>
1905 <P CLASS="LotsOfCode">
1906 <A NAME="pgfId-882879"></A>   l.color = 44                         # change the line color</P>
1907 <P CLASS="LotsOfCode">
1908 <A NAME="pgfId-882880"></A>   l.type ='dash'                       # change the line type</P>
1909 <P CLASS="LotsOfCode">
1910 <A NAME="pgfId-882881"></A>&nbsp;</P>
1911 <P CLASS="LotsOfCode">
1912 <A NAME="pgfId-882882"></A>&nbsp;</P>
1913 <P CLASS="LotsOfCode">
1914 <A NAME="pgfId-882883"></A>   x.show('outline')                    # show list of outline</P>
1915 <P CLASS="LotsOfCode">
1916 <A NAME="pgfId-882884"></A>   r=x.createoutline('test2','quick')   # create outline 'test2'</P>
1917 <P CLASS="LotsOfCode">
1918 <A NAME="pgfId-882885"></A>   x.show('outline')                    # show list of outline</P>
1919 <P CLASS="LotsOfCode">
1920 <A NAME="pgfId-882886"></A>   x.removeobject(r)                    # remove outline 'test2'</P>
1921 <P CLASS="LotsOfCode">
1922 <A NAME="pgfId-882887"></A>   x.show('outline')                    # show list of outline</P>
1923 <P CLASS="LotsOfCode">
1924 <A NAME="pgfId-882888"></A>&nbsp;</P>
1925 <P CLASS="LotsOfCode">
1926 <A NAME="pgfId-882889"></A>&nbsp;</P>
1927 <P CLASS="LotsOfCode">
1928 <A NAME="pgfId-882890"></A>   #####################################################################</P>
1929 <P CLASS="LotsOfCode">
1930 <A NAME="pgfId-882891"></A>   # to see how x.update and x.mode work, see testoutline.py           #</P>
1931 <P CLASS="LotsOfCode">
1932 <A NAME="pgfId-882892"></A>   #####################################################################</P>
1933 <P CLASS="LotsOfCode">
1934 <A NAME="pgfId-882893"></A>   #x.update()</P>
1935 <P CLASS="LotsOfCode">
1936 <A NAME="pgfId-882894"></A>   #x.mode=1</P>
1937 <P CLASS="LotsOfCode">
1938 <A NAME="pgfId-882895"></A>   #x.mode=0</P>
1939 <P CLASS="LotsOfCode">
1940 <A NAME="pgfId-882896"></A>   print '**************************************************'</P>
1941 <P CLASS="LotsOfCode">
1942 <A NAME="pgfId-882897"></A>   print '******                                      ******'</P>
1943 <P CLASS="LotsOfCode">
1944 <A NAME="pgfId-882898"></A>   print '******   O U T F I L L   C O M P L E T E D  ******'</P>
1945 <P CLASS="LotsOfCode">
1946 <A NAME="pgfId-882899"></A>   print '******                                      ******'</P>
1947 <P CLASS="LotsOfCode">
1948 <A NAME="pgfId-882900"></A>   print '**************************************************'</P>
1949 <P CLASS="LotsOfCode">
1950 <A NAME="pgfId-882901"></A>&nbsp;</P>
1951 <P CLASS="LotsOfCode">
1952 <A NAME="pgfId-882902"></A>if __name__==&quot;__main__&quot;:</P>
1953 <P CLASS="LotsOfCode">
1954 <A NAME="pgfId-882903"></A>   exampleoutfill()</P>
1955 </DIV>
1956 <DIV>
1957 <H4 CLASS="Heading1">
1958 <A NAME="pgfId-881677"></A><DIV>
1959 <IMG SRC="vcs-2.gif">
1960 </DIV>
1961 Scatter Graphics Method Example:</H4>
1962 <P CLASS="LotsOfCode">
1963 <A NAME="pgfId-837587"></A>#</P>
1964 <P CLASS="LotsOfCode">
1965 <A NAME="pgfId-882952"></A># Example Scatter (GSp) module</P>
1966 <P CLASS="LotsOfCode">
1967 <A NAME="pgfId-882953"></A>#</P>
1968 <P CLASS="LotsOfCode">
1969 <A NAME="pgfId-882954"></A>############################################################################</P>
1970 <P CLASS="LotsOfCode">
1971 <A NAME="pgfId-882955"></A>#                                                                          #</P>
1972 <P CLASS="LotsOfCode">
1973 <A NAME="pgfId-882956"></A># Module:       examplescatter module                                      #</P>
1974 <P CLASS="LotsOfCode">
1975 <A NAME="pgfId-882957"></A>#                                                                          #</P>
1976 <P CLASS="LotsOfCode">
1977 <A NAME="pgfId-882958"></A># Copyright:    2000, Regents of the University of California              #</P>
1978 <P CLASS="LotsOfCode">
1979 <A NAME="pgfId-882959"></A>#               This software may not be distributed to others without     #</P>
1980 <P CLASS="LotsOfCode">
1981 <A NAME="pgfId-882960"></A>#               permission of the author.                                  #</P>
1982 <P CLASS="LotsOfCode">
1983 <A NAME="pgfId-882961"></A>#                                                                          #</P>
1984 <P CLASS="LotsOfCode">
1985 <A NAME="pgfId-882962"></A># Author:       Dean N. Williams, Lawrence Livermore National Laboratory   #</P>
1986 <P CLASS="LotsOfCode">
1987 <A NAME="pgfId-882963"></A>#               williams13@llnl.gov                                        #</P>
1988 <P CLASS="LotsOfCode">
1989 <A NAME="pgfId-882964"></A>#                                                                          #</P>
1990 <P CLASS="LotsOfCode">
1991 <A NAME="pgfId-882965"></A># Description:  Example use of VCS's scatter graphics method.              #</P>
1992 <P CLASS="LotsOfCode">
1993 <A NAME="pgfId-882966"></A>#                                                                          #</P>
1994 <P CLASS="LotsOfCode">
1995 <A NAME="pgfId-882967"></A># Version:      1.0                                                        #</P>
1996 <P CLASS="LotsOfCode">
1997 <A NAME="pgfId-882968"></A>#                                                                          #</P>
1998 <P CLASS="LotsOfCode">
1999 <A NAME="pgfId-882969"></A>############################################################################</P>
2000 <P CLASS="LotsOfCode">
2001 <A NAME="pgfId-882970"></A>#</P>
2002 <P CLASS="LotsOfCode">
2003 <A NAME="pgfId-882971"></A>#</P>
2004 <P CLASS="LotsOfCode">
2005 <A NAME="pgfId-882972"></A>#</P>
2006 <P CLASS="LotsOfCode">
2007 <A NAME="pgfId-882973"></A>############################################################################</P>
2008 <P CLASS="LotsOfCode">
2009 <A NAME="pgfId-882974"></A>#                                                                          #</P>
2010 <P CLASS="LotsOfCode">
2011 <A NAME="pgfId-882975"></A># Import: vcs and cu modules.                                              #</P>
2012 <P CLASS="LotsOfCode">
2013 <A NAME="pgfId-882976"></A>#                                                                          #</P>
2014 <P CLASS="LotsOfCode">
2015 <A NAME="pgfId-882977"></A>############################################################################</P>
2016 <P CLASS="LotsOfCode">
2017 <A NAME="pgfId-882978"></A>def examplescatter():</P>
2018 <P CLASS="LotsOfCode">
2019 <A NAME="pgfId-882979"></A>   import vcs,cu                        # import vcs, cu</P>
2020 <P CLASS="LotsOfCode">
2021 <A NAME="pgfId-882980"></A>&nbsp;</P>
2022 <P CLASS="LotsOfCode">
2023 <A NAME="pgfId-882987"></A>   f=cu.open('clt2.nc')                 # open clt file</P>
2024 <P CLASS="LotsOfCode">
2025 <A NAME="pgfId-882988"></A>   u=f.getslab('u')                     # get slab u</P>
2026 <P CLASS="LotsOfCode">
2027 <A NAME="pgfId-882989"></A>   v=f.getslab('v')                     # get slab v</P>
2028 <P CLASS="LotsOfCode">
2029 <A NAME="pgfId-882990"></A>&nbsp;</P>
2030 <P CLASS="LotsOfCode">
2031 <A NAME="pgfId-882991"></A>   x=vcs.init()                         # construct vcs canvas</P>
2032 <P CLASS="LotsOfCode">
2033 <A NAME="pgfId-882992"></A>&nbsp;</P>
2034 <P CLASS="LotsOfCode">
2035 <A NAME="pgfId-882993"></A>   x.plot(u, v, 'default','scatter','quick')# plot slab the old way</P>
2036 <P CLASS="LotsOfCode">
2037 <A NAME="pgfId-882994"></A>   x.geometry(450,337,100,0)            # change the geometry and location</P>
2038 <P CLASS="LotsOfCode">
2039 <A NAME="pgfId-882995"></A>&nbsp;</P>
2040 <P CLASS="LotsOfCode">
2041 <A NAME="pgfId-882996"></A>   a=x.getscatter('quick')              # get 'quick' scatter</P>
2042 <P CLASS="LotsOfCode">
2043 <A NAME="pgfId-882997"></A>   if x.isgraphicsmethod(a):            # test object 'a' for graphics method</P>
2044 <P CLASS="LotsOfCode">
2045 <A NAME="pgfId-882998"></A>      print 'Yes, this is a graphics method'</P>
2046 <P CLASS="LotsOfCode">
2047 <A NAME="pgfId-882999"></A>      if x.isscatter(a):                # test object 'a' if scatter</P>
2048 <P CLASS="LotsOfCode">
2049 <A NAME="pgfId-883000"></A>         print 'Yes, this is an scatter graphics method'</P>
2050 <P CLASS="LotsOfCode">
2051 <A NAME="pgfId-883001"></A>         a.list()                       # list the scatter's attributes and values</P>
2052 <P CLASS="LotsOfCode">
2053 <A NAME="pgfId-883002"></A>&nbsp;</P>
2054 <P CLASS="LotsOfCode">
2055 <A NAME="pgfId-883003"></A>   a.script('test','w')                 # save 'quick' scatter as a Python script</P>
2056 <P CLASS="LotsOfCode">
2057 <A NAME="pgfId-883004"></A>&nbsp;</P>
2058 <P CLASS="LotsOfCode">
2059 <A NAME="pgfId-883005"></A>&nbsp;</P>
2060 <P CLASS="LotsOfCode">
2061 <A NAME="pgfId-883006"></A>   a.xticlabels('','')                  # remove the x-axis</P>
2062 <P CLASS="LotsOfCode">
2063 <A NAME="pgfId-883007"></A>   a.xticlabels('*')                    # put the x-axis</P>
2064 <P CLASS="LotsOfCode">
2065 <A NAME="pgfId-883008"></A>&nbsp;</P>
2066 <P CLASS="LotsOfCode">
2067 <A NAME="pgfId-883009"></A>   ############################################################################</P>
2068 <P CLASS="LotsOfCode">
2069 <A NAME="pgfId-883010"></A>   # Change the scatter marker type                                           #</P>
2070 <P CLASS="LotsOfCode">
2071 <A NAME="pgfId-883011"></A>   ############################################################################</P>
2072 <P CLASS="LotsOfCode">
2073 <A NAME="pgfId-883012"></A>   a.marker=1                           # same as a.marker='dot'</P>
2074 <P CLASS="LotsOfCode">
2075 <A NAME="pgfId-883022"></A>   a.marker=2                           # same as a.marker='plus'</P>
2076 <P CLASS="LotsOfCode">
2077 <A NAME="pgfId-883023"></A>   a.marker=3                           # same as a.marker='star'</P>
2078 <P CLASS="LotsOfCode">
2079 <A NAME="pgfId-883024"></A>   a.marker=4                           # same as a.marker='circle'</P>
2080 <P CLASS="LotsOfCode">
2081 <A NAME="pgfId-883025"></A>   a.marker=5                           # same as a.marker='cross'</P>
2082 <P CLASS="LotsOfCode">
2083 <A NAME="pgfId-883026"></A>   a.marker=6                           # same as a.marker='diamond'</P>
2084 <P CLASS="LotsOfCode">
2085 <A NAME="pgfId-883027"></A>   a.marker=7                           # same as a.marker='triangle_up'</P>
2086 <P CLASS="LotsOfCode">
2087 <A NAME="pgfId-883028"></A>   a.marker=8                           # same as a.marker='triangle_down'</P>
2088 <P CLASS="LotsOfCode">
2089 <A NAME="pgfId-883029"></A>   a.marker=9                           # same as a.marker='triangle_left'</P>
2090 <P CLASS="LotsOfCode">
2091 <A NAME="pgfId-883030"></A>   a.marker=10                          # same as a.marker='triangle_right'</P>
2092 <P CLASS="LotsOfCode">
2093 <A NAME="pgfId-883031"></A>   a.marker=11                          # same as a.marker='square'</P>
2094 <P CLASS="LotsOfCode">
2095 <A NAME="pgfId-883032"></A>   a.marker=12                          # same as a.marker='diamond_fill'</P>
2096 <P CLASS="LotsOfCode">
2097 <A NAME="pgfId-883033"></A>   a.marker=13                          # same as a.marker='triangle_up_fill'</P>
2098 <P CLASS="LotsOfCode">
2099 <A NAME="pgfId-883034"></A>   a.marker=14                          # same as a.marker='triangle_down_fill'</P>
2100 <P CLASS="LotsOfCode">
2101 <A NAME="pgfId-883035"></A>   a.marker=15                          # same as a.marker='triangle_left_fill'</P>
2102 <P CLASS="LotsOfCode">
2103 <A NAME="pgfId-883036"></A>   a.marker=16                          # same as a.marker='triangle_right_fill'</P>
2104 <P CLASS="LotsOfCode">
2105 <A NAME="pgfId-883037"></A>   a.marker=17                          # same as a.marker='square_fill'</P>
2106 <P CLASS="LotsOfCode">
2107 <A NAME="pgfId-883038"></A>&nbsp;</P>
2108 <P CLASS="LotsOfCode">
2109 <A NAME="pgfId-883039"></A>   ############################################################################</P>
2110 <P CLASS="LotsOfCode">
2111 <A NAME="pgfId-883040"></A>   # Change the scatter marker size                                           #</P>
2112 <P CLASS="LotsOfCode">
2113 <A NAME="pgfId-883041"></A>   ############################################################################</P>
2114 <P CLASS="LotsOfCode">
2115 <A NAME="pgfId-883042"></A>   a.markersize=5</P>
2116 <P CLASS="LotsOfCode">
2117 <A NAME="pgfId-883043"></A>   a.markersize=55</P>
2118 <P CLASS="LotsOfCode">
2119 <A NAME="pgfId-883044"></A>   a.markersize=100</P>
2120 <P CLASS="LotsOfCode">
2121 <A NAME="pgfId-883045"></A>   a.markersize=300</P>
2122 <P CLASS="LotsOfCode">
2123 <A NAME="pgfId-883046"></A>   a.markersize=15</P>
2124 <P CLASS="LotsOfCode">
2125 <A NAME="pgfId-883047"></A>&nbsp;</P>
2126 <P CLASS="LotsOfCode">
2127 <A NAME="pgfId-883048"></A>   ############################################################################</P>
2128 <P CLASS="LotsOfCode">
2129 <A NAME="pgfId-883049"></A>   # Change the scatter marker color                                          #</P>
2130 <P CLASS="LotsOfCode">
2131 <A NAME="pgfId-883050"></A>   ############################################################################</P>
2132 <P CLASS="LotsOfCode">
2133 <A NAME="pgfId-883051"></A>   a.markercolor=(77)</P>
2134 <P CLASS="LotsOfCode">
2135 <A NAME="pgfId-883052"></A>   a.markercolor=16</P>
2136 <P CLASS="LotsOfCode">
2137 <A NAME="pgfId-883053"></A>   a.markercolor=44                     # same as a.markercolor=(44)</P>
2138 <P CLASS="LotsOfCode">
2139 <A NAME="pgfId-883054"></A>&nbsp;</P>
2140 <P CLASS="LotsOfCode">
2141 <A NAME="pgfId-883055"></A>   ############################################################################</P>
2142 <P CLASS="LotsOfCode">
2143 <A NAME="pgfId-883056"></A>   # Change the scatter settings to default                                   #</P>
2144 <P CLASS="LotsOfCode">
2145 <A NAME="pgfId-883057"></A>   ############################################################################</P>
2146 <P CLASS="LotsOfCode">
2147 <A NAME="pgfId-883058"></A>   a.markercolor=None</P>
2148 <P CLASS="LotsOfCode">
2149 <A NAME="pgfId-883059"></A>   a.markersize=None</P>
2150 <P CLASS="LotsOfCode">
2151 <A NAME="pgfId-883060"></A>   a.marker=None</P>
2152 <P CLASS="LotsOfCode">
2153 <A NAME="pgfId-883061"></A>&nbsp;</P>
2154 <P CLASS="LotsOfCode">
2155 <A NAME="pgfId-883062"></A>   a.marker=1                           # same as a.marker='dot'</P>
2156 <P CLASS="LotsOfCode">
2157 <A NAME="pgfId-883063"></A>&nbsp;</P>
2158 <P CLASS="LotsOfCode">
2159 <A NAME="pgfId-883064"></A>   x.clear()                            # clear the VCS Canvas</P>
2160 <P CLASS="LotsOfCode">
2161 <A NAME="pgfId-883065"></A>   x.scatter(u, v, a,'default')         # plot scatter using 'default' template</P>
2162 <P CLASS="LotsOfCode">
2163 <A NAME="pgfId-883066"></A>&nbsp;</P>
2164 <P CLASS="LotsOfCode">
2165 <A NAME="pgfId-883067"></A>   x.show('template')                   # show the list of templates</P>
2166 <P CLASS="LotsOfCode">
2167 <A NAME="pgfId-883068"></A>   t=x.createtemplate('test')           # create template 'test' from 'default' template</P>
2168 <P CLASS="LotsOfCode">
2169 <A NAME="pgfId-883069"></A>   if x.istemplate(t):                  # test whether 't' is a template or not</P>
2170 <P CLASS="LotsOfCode">
2171 <A NAME="pgfId-883070"></A>      x.show('template')                # show the list of templates</P>
2172 <P CLASS="LotsOfCode">
2173 <A NAME="pgfId-883071"></A>&nbsp;</P>
2174 <P CLASS="LotsOfCode">
2175 <A NAME="pgfId-883072"></A>   x.clear()                            # clear the VCS Canvas</P>
2176 <P CLASS="LotsOfCode">
2177 <A NAME="pgfId-883073"></A>   x.plot(t,a,u,v)                      # plot scatter template 't', outline 'a', and arrays 'u':'v'</P>
2178 <P CLASS="LotsOfCode">
2179 <A NAME="pgfId-883074"></A>   x.clear()                            # clear the VCS Canvas</P>
2180 <P CLASS="LotsOfCode">
2181 <A NAME="pgfId-883075"></A>   x.scatter(a,u,v,t)                   # plot using outline 'a', array 'u':'v', and template 't'</P>
2182 <P CLASS="LotsOfCode">
2183 <A NAME="pgfId-883076"></A>&nbsp;</P>
2184 <P CLASS="LotsOfCode">
2185 <A NAME="pgfId-883077"></A>   x.show('marker')                     # show the list of marker secondary objects</P>
2186 <P CLASS="LotsOfCode">
2187 <A NAME="pgfId-883078"></A>   m=x.getmarker('red')                 # get marker 'red'</P>
2188 <P CLASS="LotsOfCode">
2189 <A NAME="pgfId-883079"></A>   if x.issecondaryobject(m):           # check to see if it is a secondary object</P>
2190 <P CLASS="LotsOfCode">
2191 <A NAME="pgfId-883080"></A>      print 'Yes, this is a secondary object.'</P>
2192 <P CLASS="LotsOfCode">
2193 <A NAME="pgfId-883081"></A>      if x.ismarker(m):                 # check to see if it is a fill area</P>
2194 <P CLASS="LotsOfCode">
2195 <A NAME="pgfId-883082"></A>         print 'Yes, this is a marker object.'</P>
2196 <P CLASS="LotsOfCode">
2197 <A NAME="pgfId-883083"></A>         m.list()                       # list the marker's attributes and values</P>
2198 <P CLASS="LotsOfCode">
2199 <A NAME="pgfId-883084"></A>&nbsp;</P>
2200 <P CLASS="LotsOfCode">
2201 <A NAME="pgfId-883094"></A>   ###########################################################################</P>
2202 <P CLASS="LotsOfCode">
2203 <A NAME="pgfId-883095"></A>   # Use the create marker object 'm' from above and modify the line object  #</P>
2204 <P CLASS="LotsOfCode">
2205 <A NAME="pgfId-883096"></A>   ###########################################################################</P>
2206 <P CLASS="LotsOfCode">
2207 <A NAME="pgfId-883097"></A>   a.marker=m                           # use the marker object</P>
2208 <P CLASS="LotsOfCode">
2209 <A NAME="pgfId-883098"></A>   m.list()                             # list the marker object attributes and values</P>
2210 <P CLASS="LotsOfCode">
2211 <A NAME="pgfId-883099"></A>   m.color = 44                         # change the marker color</P>
2212 <P CLASS="LotsOfCode">
2213 <A NAME="pgfId-883100"></A>   m.type ='square'                     # change the marker type</P>
2214 <P CLASS="LotsOfCode">
2215 <A NAME="pgfId-883101"></A>   m.size=20                            # change the marker size</P>
2216 <P CLASS="LotsOfCode">
2217 <A NAME="pgfId-883102"></A>&nbsp;</P>
2218 <P CLASS="LotsOfCode">
2219 <A NAME="pgfId-883103"></A>   x.show('scatter')                    # show list of scatter</P>
2220 <P CLASS="LotsOfCode">
2221 <A NAME="pgfId-883104"></A>   r=x.createscatter('test2','quick')   # create scatter 'test2'</P>
2222 <P CLASS="LotsOfCode">
2223 <A NAME="pgfId-883105"></A>   x.show('scatter')                    # show list of scatter</P>
2224 <P CLASS="LotsOfCode">
2225 <A NAME="pgfId-883106"></A>   x.removeobject(r)                    # remove scatter 'test2'</P>
2226 <P CLASS="LotsOfCode">
2227 <A NAME="pgfId-883107"></A>   x.show('scatter')                    # show list of scatter</P>
2228 <P CLASS="LotsOfCode">
2229 <A NAME="pgfId-883108"></A>&nbsp;</P>
2230 <P CLASS="LotsOfCode">
2231 <A NAME="pgfId-883109"></A>   #####################################################################</P>
2232 <P CLASS="LotsOfCode">
2233 <A NAME="pgfId-883110"></A>   # to see how x.update and x.mode work, see testoutline.py           #</P>
2234 <P CLASS="LotsOfCode">
2235 <A NAME="pgfId-883111"></A>   #####################################################################</P>
2236 <P CLASS="LotsOfCode">
2237 <A NAME="pgfId-883112"></A>   #x.update()</P>
2238 <P CLASS="LotsOfCode">
2239 <A NAME="pgfId-883113"></A>   #x.mode=1</P>
2240 <P CLASS="LotsOfCode">
2241 <A NAME="pgfId-883114"></A>   #x.mode=0</P>
2242 <P CLASS="LotsOfCode">
2243 <A NAME="pgfId-883115"></A>   print '***************************************************'</P>
2244 <P CLASS="LotsOfCode">
2245 <A NAME="pgfId-883116"></A>   print '******                                       ******'</P>
2246 <P CLASS="LotsOfCode">
2247 <A NAME="pgfId-883117"></A>   print '******   S C A T T E R   C O M P L E T E D   ******'</P>
2248 <P CLASS="LotsOfCode">
2249 <A NAME="pgfId-883118"></A>   print '******                                       ******'</P>
2250 <P CLASS="LotsOfCode">
2251 <A NAME="pgfId-883119"></A>   print '***************************************************'</P>
2252 <P CLASS="LotsOfCode">
2253 <A NAME="pgfId-883120"></A>&nbsp;</P>
2254 <P CLASS="LotsOfCode">
2255 <A NAME="pgfId-883121"></A>if __name__==&quot;__main__&quot;:</P>
2256 <P CLASS="LotsOfCode">
2257 <A NAME="pgfId-883122"></A>   examplescatter()</P>
2258 <P CLASS="LotsOfCode">
2259 <A NAME="pgfId-883123"></A>&nbsp;</P>
2260 </DIV>
2261 <DIV>
2262 <H4 CLASS="Heading1">
2263 <A NAME="pgfId-881685"></A><DIV>
2264 <IMG SRC="vcs-2.gif">
2265 </DIV>
2266 Vector Graphics Method Example:</H4>
2267 <P CLASS="LotsOfCode">
2268 <A NAME="pgfId-837593"></A>#</P>
2269 <P CLASS="LotsOfCode">
2270 <A NAME="pgfId-883176"></A># Example Vector (Gv) module</P>
2271 <P CLASS="LotsOfCode">
2272 <A NAME="pgfId-883177"></A>#</P>
2273 <P CLASS="LotsOfCode">
2274 <A NAME="pgfId-883178"></A>############################################################################</P>
2275 <P CLASS="LotsOfCode">
2276 <A NAME="pgfId-883179"></A>#                                                                          #</P>
2277 <P CLASS="LotsOfCode">
2278 <A NAME="pgfId-883180"></A># Module:       examplevector module                                       #</P>
2279 <P CLASS="LotsOfCode">
2280 <A NAME="pgfId-883181"></A>#                                                                          #</P>
2281 <P CLASS="LotsOfCode">
2282 <A NAME="pgfId-883182"></A># Copyright:    2000, Regents of the University of California              #</P>
2283 <P CLASS="LotsOfCode">
2284 <A NAME="pgfId-883183"></A>#               This software may not be distributed to others without     #</P>
2285 <P CLASS="LotsOfCode">
2286 <A NAME="pgfId-883184"></A>#               permission of the author.                                  #</P>
2287 <P CLASS="LotsOfCode">
2288 <A NAME="pgfId-883185"></A>#                                                                          #</P>
2289 <P CLASS="LotsOfCode">
2290 <A NAME="pgfId-883186"></A># Author:       Dean N. Williams, Lawrence Livermore National Laboratory   #</P>
2291 <P CLASS="LotsOfCode">
2292 <A NAME="pgfId-883187"></A>#               williams13@llnl.gov                                        #</P>
2293 <P CLASS="LotsOfCode">
2294 <A NAME="pgfId-883188"></A>#                                                                          #</P>
2295 <P CLASS="LotsOfCode">
2296 <A NAME="pgfId-883189"></A># Description:  Used to test VCS's vector graphics method.                 #</P>
2297 <P CLASS="LotsOfCode">
2298 <A NAME="pgfId-883190"></A>#                                                                          #</P>
2299 <P CLASS="LotsOfCode">
2300 <A NAME="pgfId-883191"></A># Version:      1.0                                                        #</P>
2301 <P CLASS="LotsOfCode">
2302 <A NAME="pgfId-883192"></A>#                                                                          #</P>
2303 <P CLASS="LotsOfCode">
2304 <A NAME="pgfId-883193"></A>############################################################################</P>
2305 <P CLASS="LotsOfCode">
2306 <A NAME="pgfId-883194"></A>#</P>
2307 <P CLASS="LotsOfCode">
2308 <A NAME="pgfId-883195"></A>#</P>
2309 <P CLASS="LotsOfCode">
2310 <A NAME="pgfId-883196"></A>#</P>
2311 <P CLASS="LotsOfCode">
2312 <A NAME="pgfId-883197"></A>############################################################################</P>
2313 <P CLASS="LotsOfCode">
2314 <A NAME="pgfId-883198"></A>#                                                                          #</P>
2315 <P CLASS="LotsOfCode">
2316 <A NAME="pgfId-883199"></A># Import: vcs and cu modules.                                              #</P>
2317 <P CLASS="LotsOfCode">
2318 <A NAME="pgfId-883200"></A>#                                                                          #</P>
2319 <P CLASS="LotsOfCode">
2320 <A NAME="pgfId-883201"></A>############################################################################</P>
2321 <P CLASS="LotsOfCode">
2322 <A NAME="pgfId-883202"></A>def examplevector():</P>
2323 <P CLASS="LotsOfCode">
2324 <A NAME="pgfId-883203"></A>   import vcs,cu                        # import vcs and cu</P>
2325 <P CLASS="LotsOfCode">
2326 <A NAME="pgfId-883204"></A>&nbsp;</P>
2327 <P CLASS="LotsOfCode">
2328 <A NAME="pgfId-883205"></A>   f=cu.open('clt.nc')                  # open clt file</P>
2329 <P CLASS="LotsOfCode">
2330 <A NAME="pgfId-883206"></A>   u=f.getslab('u',':',':',-10.,0.,0,10)# get slab u</P>
2331 <P CLASS="LotsOfCode">
2332 <A NAME="pgfId-883207"></A>   v=f.getslab('v',':',':',-10.,0.,0,10)# get slab v</P>
2333 <P CLASS="LotsOfCode">
2334 <A NAME="pgfId-883208"></A>   x=vcs.init()                         # construct vcs canvas</P>
2335 <P CLASS="LotsOfCode">
2336 <A NAME="pgfId-883209"></A>&nbsp;</P>
2337 <P CLASS="LotsOfCode">
2338 <A NAME="pgfId-883210"></A>   x.plot(u, v, 'default','vector','quick')     # plot slab the old way</P>
2339 <P CLASS="LotsOfCode">
2340 <A NAME="pgfId-883211"></A>   x.geometry(450,337,100,0)            # change the geometry and location</P>
2341 <P CLASS="LotsOfCode">
2342 <A NAME="pgfId-883212"></A>&nbsp;</P>
2343 <P CLASS="LotsOfCode">
2344 <A NAME="pgfId-883213"></A>   a=x.getvector('quick')               # get 'quick' vector</P>
2345 <P CLASS="LotsOfCode">
2346 <A NAME="pgfId-883214"></A>   if x.isgraphicsmethod(a):            # test object 'a' for graphics method</P>
2347 <P CLASS="LotsOfCode">
2348 <A NAME="pgfId-883215"></A>      print 'Yes, this is a graphics method'</P>
2349 <P CLASS="LotsOfCode">
2350 <A NAME="pgfId-883216"></A>      if x.isvector(a):                 # test object 'a' if vector</P>
2351 <P CLASS="LotsOfCode">
2352 <A NAME="pgfId-883217"></A>         print 'Yes, this is an vector graphics method'</P>
2353 <P CLASS="LotsOfCode">
2354 <A NAME="pgfId-883218"></A>         a.list()                       # list the vector's attributes and values</P>
2355 <P CLASS="LotsOfCode">
2356 <A NAME="pgfId-883219"></A>&nbsp;</P>
2357 <P CLASS="LotsOfCode">
2358 <A NAME="pgfId-883220"></A>   a.script('test','w')                 # save 'quick' vector as a Python script</P>
2359 <P CLASS="LotsOfCode">
2360 <A NAME="pgfId-883221"></A>&nbsp;</P>
2361 <P CLASS="LotsOfCode">
2362 <A NAME="pgfId-883222"></A>&nbsp;</P>
2363 <P CLASS="LotsOfCode">
2364 <A NAME="pgfId-883223"></A>   a.xticlabels('','')                  # remove the x-axis</P>
2365 <P CLASS="LotsOfCode">
2366 <A NAME="pgfId-883224"></A>   a.xticlabels('*')                    # put the x-axis</P>
2367 <P CLASS="LotsOfCode">
2368 <A NAME="pgfId-883225"></A>&nbsp;</P>
2369 <P CLASS="LotsOfCode">
2370 <A NAME="pgfId-883226"></A>   ############################################################################</P>
2371 <P CLASS="LotsOfCode">
2372 <A NAME="pgfId-883227"></A>   # Change the vector scale                                                  #</P>
2373 <P CLASS="LotsOfCode">
2374 <A NAME="pgfId-883228"></A>   ############################################################################</P>
2375 <P CLASS="LotsOfCode">
2376 <A NAME="pgfId-883229"></A>   a.scale=2.0</P>
2377 <P CLASS="LotsOfCode">
2378 <A NAME="pgfId-883230"></A>   a.scale=5.0</P>
2379 <P CLASS="LotsOfCode">
2380 <A NAME="pgfId-883231"></A>   a.scale=1.5</P>
2381 <P CLASS="LotsOfCode">
2382 <A NAME="pgfId-883232"></A>   a.scale=0.0</P>
2383 <P CLASS="LotsOfCode">
2384 <A NAME="pgfId-883233"></A>   a.scale=-1.5</P>
2385 <P CLASS="LotsOfCode">
2386 <A NAME="pgfId-883234"></A>   a.scale=-2.0</P>
2387 <P CLASS="LotsOfCode">
2388 <A NAME="pgfId-883235"></A>   a.scale=-5.0</P>
2389 <P CLASS="LotsOfCode">
2390 <A NAME="pgfId-883236"></A>&nbsp;</P>
2391 <P CLASS="LotsOfCode">
2392 <A NAME="pgfId-883237"></A>   ############################################################################</P>
2393 <P CLASS="LotsOfCode">
2394 <A NAME="pgfId-883238"></A>   # Change the vector typeiiiiiii                                            #</P>
2395 <P CLASS="LotsOfCode">
2396 <A NAME="pgfId-883239"></A>   ############################################################################</P>
2397 <P CLASS="LotsOfCode">
2398 <A NAME="pgfId-883240"></A>   a.type=0                             # same as a.type = 'arrows'</P>
2399 <P CLASS="LotsOfCode">
2400 <A NAME="pgfId-883241"></A>   a.type=1                             # same as a.type = 'barbs'</P>
2401 <P CLASS="LotsOfCode">
2402 <A NAME="pgfId-883242"></A>   a.type=2                             # same as a.type = 'solidarrows'</P>
2403 <P CLASS="LotsOfCode">
2404 <A NAME="pgfId-883243"></A>&nbsp;</P>
2405 <P CLASS="LotsOfCode">
2406 <A NAME="pgfId-883245"></A>   ############################################################################</P>
2407 <P CLASS="LotsOfCode">
2408 <A NAME="pgfId-883246"></A>   # Change the vector reference                                              #</P>
2409 <P CLASS="LotsOfCode">
2410 <A NAME="pgfId-883247"></A>   ############################################################################</P>
2411 <P CLASS="LotsOfCode">
2412 <A NAME="pgfId-883248"></A>   a.reference=10.</P>
2413 <P CLASS="LotsOfCode">
2414 <A NAME="pgfId-883249"></A>   a.reference=100.</P>
2415 <P CLASS="LotsOfCode">
2416 <A NAME="pgfId-883250"></A>   a.reference=4.</P>
2417 <P CLASS="LotsOfCode">
2418 <A NAME="pgfId-883251"></A>   a.reference=5.</P>
2419 <P CLASS="LotsOfCode">
2420 <A NAME="pgfId-883252"></A>&nbsp;</P>
2421 <P CLASS="LotsOfCode">
2422 <A NAME="pgfId-883253"></A>   ############################################################################</P>
2423 <P CLASS="LotsOfCode">
2424 <A NAME="pgfId-883254"></A>   # Change the vector alignment                                              #</P>
2425 <P CLASS="LotsOfCode">
2426 <A NAME="pgfId-883255"></A>   ############################################################################</P>
2427 <P CLASS="LotsOfCode">
2428 <A NAME="pgfId-883256"></A>   a.alignment='head'                   # same as a.alignment=0</P>
2429 <P CLASS="LotsOfCode">
2430 <A NAME="pgfId-883257"></A>   a.alignment='center'                 # same as a.alignment=1</P>
2431 <P CLASS="LotsOfCode">
2432 <A NAME="pgfId-883258"></A>   a.alignment='tail'                   # same as a.alignment=2</P>
2433 <P CLASS="LotsOfCode">
2434 <A NAME="pgfId-883259"></A>&nbsp;</P>
2435 <P CLASS="LotsOfCode">
2436 <A NAME="pgfId-883260"></A>   ############################################################################</P>
2437 <P CLASS="LotsOfCode">
2438 <A NAME="pgfId-883261"></A>   # Change the vector line                                                   #</P>
2439 <P CLASS="LotsOfCode">
2440 <A NAME="pgfId-883262"></A>   ############################################################################</P>
2441 <P CLASS="LotsOfCode">
2442 <A NAME="pgfId-883263"></A>   a.line=0                             # same as 'solid'</P>
2443 <P CLASS="LotsOfCode">
2444 <A NAME="pgfId-883264"></A>   a.line=1                             # same as 'dash'</P>
2445 <P CLASS="LotsOfCode">
2446 <A NAME="pgfId-883265"></A>   a.line=2                             # same as 'dot'</P>
2447 <P CLASS="LotsOfCode">
2448 <A NAME="pgfId-883266"></A>   a.line=3                             # same as 'dash-dot'</P>
2449 <P CLASS="LotsOfCode">
2450 <A NAME="pgfId-883267"></A>   a.line=4                             # same as 'long-dash'</P>
2451 <P CLASS="LotsOfCode">
2452 <A NAME="pgfId-883268"></A>   a.line=None                          # use default line</P>
2453 <P CLASS="LotsOfCode">
2454 <A NAME="pgfId-883269"></A>&nbsp;</P>
2455 <P CLASS="LotsOfCode">
2456 <A NAME="pgfId-883270"></A>   ############################################################################</P>
2457 <P CLASS="LotsOfCode">
2458 <A NAME="pgfId-883271"></A>   # Change the vector line color                                             #</P>
2459 <P CLASS="LotsOfCode">
2460 <A NAME="pgfId-883272"></A>   ############################################################################</P>
2461 <P CLASS="LotsOfCode">
2462 <A NAME="pgfId-883273"></A>   a.linecolor=(77)</P>
2463 <P CLASS="LotsOfCode">
2464 <A NAME="pgfId-883274"></A>   a.linecolor=16</P>
2465 <P CLASS="LotsOfCode">
2466 <A NAME="pgfId-883275"></A>   a.linecolor=44  # same as a.color=(44)</P>
2467 <P CLASS="LotsOfCode">
2468 <A NAME="pgfId-883276"></A>   a.linecolor=None</P>
2469 <P CLASS="LotsOfCode">
2470 <A NAME="pgfId-883277"></A>&nbsp;</P>
2471 <P CLASS="LotsOfCode">
2472 <A NAME="pgfId-883278"></A>   x.clear()                            # clear the VCS Canvas</P>
2473 <P CLASS="LotsOfCode">
2474 <A NAME="pgfId-883279"></A>   x.vector(u, v, a,'default')          # plot vector using 'default' template</P>
2475 <P CLASS="LotsOfCode">
2476 <A NAME="pgfId-883280"></A>&nbsp;</P>
2477 <P CLASS="LotsOfCode">
2478 <A NAME="pgfId-883281"></A>   x.show('template')                   # show the list of templates</P>
2479 <P CLASS="LotsOfCode">
2480 <A NAME="pgfId-883282"></A>   t=x.createtemplate('test')           # create template 'test' from 'default' template</P>
2481 <P CLASS="LotsOfCode">
2482 <A NAME="pgfId-883283"></A>   if x.istemplate(t):                  # test whether 't' is a template or not</P>
2483 <P CLASS="LotsOfCode">
2484 <A NAME="pgfId-883284"></A>      x.show('template')                # show the list of templates</P>
2485 <P CLASS="LotsOfCode">
2486 <A NAME="pgfId-883285"></A>&nbsp;</P>
2487 <P CLASS="LotsOfCode">
2488 <A NAME="pgfId-883286"></A>   x.clear()                            # clear the VCS Canvas</P>
2489 <P CLASS="LotsOfCode">
2490 <A NAME="pgfId-883287"></A>   x.plot(t,a,u,v)                      # plot vector template 't', outline 'a', and arrays 'u':'v'</P>
2491 <P CLASS="LotsOfCode">
2492 <A NAME="pgfId-883288"></A>   x.clear()                            # clear the VCS Canvas</P>
2493 <P CLASS="LotsOfCode">
2494 <A NAME="pgfId-883289"></A>   x.vector(a,u,v,t)                    # plot using outline 'a', array 'u':'v', and template 't'</P>
2495 <P CLASS="LotsOfCode">
2496 <A NAME="pgfId-883290"></A>&nbsp;</P>
2497 <P CLASS="LotsOfCode">
2498 <A NAME="pgfId-883291"></A>   x.show('line')                       # show the list of line secondary objects</P>
2499 <P CLASS="LotsOfCode">
2500 <A NAME="pgfId-883292"></A>   l=x.getline('red')                   # get line 'red'</P>
2501 <P CLASS="LotsOfCode">
2502 <A NAME="pgfId-883293"></A>   if x.issecondaryobject(l):           # check to see if it is a secondary object</P>
2503 <P CLASS="LotsOfCode">
2504 <A NAME="pgfId-883294"></A>      print 'Yes, this is a secondary object.'</P>
2505 <P CLASS="LotsOfCode">
2506 <A NAME="pgfId-883295"></A>      if x.isline(l):                   # check to see if it is a line</P>
2507 <P CLASS="LotsOfCode">
2508 <A NAME="pgfId-883296"></A>         print 'Yes, this is a line object.'</P>
2509 <P CLASS="LotsOfCode">
2510 <A NAME="pgfId-883297"></A>         l.list()                       # list the line's attributes and values</P>
2511 <P CLASS="LotsOfCode">
2512 <A NAME="pgfId-883298"></A>&nbsp;</P>
2513 <P CLASS="LotsOfCode">
2514 <A NAME="pgfId-883299"></A>   ###########################################################################</P>
2515 <P CLASS="LotsOfCode">
2516 <A NAME="pgfId-883300"></A>   # Use the create line object 'm' from above and modify the line object    #</P>
2517 <P CLASS="LotsOfCode">
2518 <A NAME="pgfId-883301"></A>   ###########################################################################</P>
2519 <P CLASS="LotsOfCode">
2520 <A NAME="pgfId-883302"></A>   a.line=l                             # use the line object</P>
2521 <P CLASS="LotsOfCode">
2522 <A NAME="pgfId-883303"></A>   l.list()                             # list the line object attributes and values</P>
2523 <P CLASS="LotsOfCode">
2524 <A NAME="pgfId-883304"></A>   l.color = 44                         # change the line color</P>
2525 <P CLASS="LotsOfCode">
2526 <A NAME="pgfId-883305"></A>   l.style ='square'                    # change the line type</P>
2527 <P CLASS="LotsOfCode">
2528 <A NAME="pgfId-883306"></A>   l.width=4                            # change the line size</P>
2529 <P CLASS="LotsOfCode">
2530 <A NAME="pgfId-883307"></A>&nbsp;</P>
2531 <P CLASS="LotsOfCode">
2532 <A NAME="pgfId-883308"></A>   x.show('vector')                     # show list of vector</P>
2533 <P CLASS="LotsOfCode">
2534 <A NAME="pgfId-883309"></A>   r=x.createvector('test2','quick')    # create vector 'test2'</P>
2535 <P CLASS="LotsOfCode">
2536 <A NAME="pgfId-883310"></A>   x.show('vector')                     # show list of vector</P>
2537 <P CLASS="LotsOfCode">
2538 <A NAME="pgfId-883311"></A>   x.removeobject(r)                    # remove vector 'test2'</P>
2539 <P CLASS="LotsOfCode">
2540 <A NAME="pgfId-883312"></A>   x.show('vector')                     # show list of vector</P>
2541 <P CLASS="LotsOfCode">
2542 <A NAME="pgfId-883313"></A>&nbsp;</P>
2543 <P CLASS="LotsOfCode">
2544 <A NAME="pgfId-883319"></A>   #########################################################################</P>
2545 <P CLASS="LotsOfCode">
2546 <A NAME="pgfId-883320"></A>   # to see how x.update and x.mode work, see testoutline.py               #</P>
2547 <P CLASS="LotsOfCode">
2548 <A NAME="pgfId-883321"></A>   #########################################################################</P>
2549 <P CLASS="LotsOfCode">
2550 <A NAME="pgfId-883322"></A>   #x.update()</P>
2551 <P CLASS="LotsOfCode">
2552 <A NAME="pgfId-883323"></A>   #x.mode=1</P>
2553 <P CLASS="LotsOfCode">
2554 <A NAME="pgfId-883324"></A>   #x.mode=0</P>
2555 <P CLASS="LotsOfCode">
2556 <A NAME="pgfId-883325"></A>   print '*************************************************'</P>
2557 <P CLASS="LotsOfCode">
2558 <A NAME="pgfId-883326"></A>   print '******                                     ******'</P>
2559 <P CLASS="LotsOfCode">
2560 <A NAME="pgfId-883327"></A>   print '******   V E C T O R   C O M P L E T E D   ******'</P>
2561 <P CLASS="LotsOfCode">
2562 <A NAME="pgfId-883328"></A>   print '******                                     ******'</P>
2563 <P CLASS="LotsOfCode">
2564 <A NAME="pgfId-883329"></A>   print '*************************************************'</P>
2565 <P CLASS="LotsOfCode">
2566 <A NAME="pgfId-883330"></A>&nbsp;</P>
2567 <P CLASS="LotsOfCode">
2568 <A NAME="pgfId-883331"></A>if __name__==&quot;__main__&quot;:</P>
2569 <P CLASS="LotsOfCode">
2570 <A NAME="pgfId-883332"></A>   examplevector()</P>
2571 <P CLASS="LotsOfCode">
2572 <A NAME="pgfId-883333"></A>&nbsp;</P>
2573 </DIV>
2574 <DIV>
2575 <H4 CLASS="Heading1">
2576 <A NAME="pgfId-881709"></A><DIV>
2577 <IMG SRC="vcs-2.gif">
2578 </DIV>
2579 XvsY Graphics Method Example:</H4>
2580 <P CLASS="LotsOfCode">
2581 <A NAME="pgfId-837605"></A>#</P>
2582 <P CLASS="LotsOfCode">
2583 <A NAME="pgfId-883373"></A># Example XvsY (GXY) module</P>
2584 <P CLASS="LotsOfCode">
2585 <A NAME="pgfId-883374"></A>#</P>
2586 <P CLASS="LotsOfCode">
2587 <A NAME="pgfId-883375"></A>############################################################################</P>
2588 <P CLASS="LotsOfCode">
2589 <A NAME="pgfId-883376"></A>#                                                                          #</P>
2590 <P CLASS="LotsOfCode">
2591 <A NAME="pgfId-883377"></A># Module:       examplexvsy module                                         #</P>
2592 <P CLASS="LotsOfCode">
2593 <A NAME="pgfId-883378"></A>#                                                                          #</P>
2594 <P CLASS="LotsOfCode">
2595 <A NAME="pgfId-883379"></A># Copyright:    2000, Regents of the University of California              #</P>
2596 <P CLASS="LotsOfCode">
2597 <A NAME="pgfId-883380"></A>#               This software may not be distributed to others without     #</P>
2598 <P CLASS="LotsOfCode">
2599 <A NAME="pgfId-883381"></A>#               permission of the author.                                  #</P>
2600 <P CLASS="LotsOfCode">
2601 <A NAME="pgfId-883382"></A>#                                                                          #</P>
2602 <P CLASS="LotsOfCode">
2603 <A NAME="pgfId-883383"></A># Author:       Dean N. Williams, Lawrence Livermore National Laboratory   #</P>
2604 <P CLASS="LotsOfCode">
2605 <A NAME="pgfId-883384"></A>#               williams13@llnl.gov                                        #</P>
2606 <P CLASS="LotsOfCode">
2607 <A NAME="pgfId-883385"></A>#                                                                          #</P>
2608 <P CLASS="LotsOfCode">
2609 <A NAME="pgfId-883386"></A># Description:  Example use of VCS's XvsY graphics method.                 #</P>
2610 <P CLASS="LotsOfCode">
2611 <A NAME="pgfId-883387"></A>#                                                                          #</P>
2612 <P CLASS="LotsOfCode">
2613 <A NAME="pgfId-883388"></A># Version:      1.0                                                        #</P>
2614 <P CLASS="LotsOfCode">
2615 <A NAME="pgfId-883389"></A>#                                                                          #</P>
2616 <P CLASS="LotsOfCode">
2617 <A NAME="pgfId-883390"></A>############################################################################</P>
2618 <P CLASS="LotsOfCode">
2619 <A NAME="pgfId-883391"></A>#</P>
2620 <P CLASS="LotsOfCode">
2621 <A NAME="pgfId-883392"></A>#</P>
2622 <P CLASS="LotsOfCode">
2623 <A NAME="pgfId-883393"></A>#</P>
2624 <P CLASS="LotsOfCode">
2625 <A NAME="pgfId-883394"></A>############################################################################</P>
2626 <P CLASS="LotsOfCode">
2627 <A NAME="pgfId-883395"></A>#                                                                          #</P>
2628 <P CLASS="LotsOfCode">
2629 <A NAME="pgfId-883396"></A># Import: vcs and cu modules.                                              #</P>
2630 <P CLASS="LotsOfCode">
2631 <A NAME="pgfId-883397"></A>#                                                                          #</P>
2632 <P CLASS="LotsOfCode">
2633 <A NAME="pgfId-883398"></A>############################################################################</P>
2634 <P CLASS="LotsOfCode">
2635 <A NAME="pgfId-883399"></A>def examplexvsy():</P>
2636 <P CLASS="LotsOfCode">
2637 <A NAME="pgfId-883400"></A>   import vcs,cu                        # import vcs and cu</P>
2638 <P CLASS="LotsOfCode">
2639 <A NAME="pgfId-883401"></A>&nbsp;</P>
2640 <P CLASS="LotsOfCode">
2641 <A NAME="pgfId-883402"></A>   f=cu.open('clt.nc')                  # open clt file</P>
2642 <P CLASS="LotsOfCode">
2643 <A NAME="pgfId-883403"></A>   u=f.getslab('u')                     # get slab u</P>
2644 <P CLASS="LotsOfCode">
2645 <A NAME="pgfId-883404"></A>   v=f.getslab('v')                     # get slab v</P>
2646 <P CLASS="LotsOfCode">
2647 <A NAME="pgfId-883405"></A>   x=vcs.init()                         # construct vcs canvas</P>
2648 <P CLASS="LotsOfCode">
2649 <A NAME="pgfId-883406"></A>&nbsp;</P>
2650 <P CLASS="LotsOfCode">
2651 <A NAME="pgfId-883407"></A>   x.plot(u, v, 'default','xvsy','quick')       # plot slabs the old way</P>
2652 <P CLASS="LotsOfCode">
2653 <A NAME="pgfId-883408"></A>   x.geometry(450,337,100,0)            # change the geometry and location</P>
2654 <P CLASS="LotsOfCode">
2655 <A NAME="pgfId-883409"></A>&nbsp;</P>
2656 <P CLASS="LotsOfCode">
2657 <A NAME="pgfId-883410"></A>   a=x.getxvsy('quick')                 # get 'quick' xvsy</P>
2658 <P CLASS="LotsOfCode">
2659 <A NAME="pgfId-883411"></A>   if x.isgraphicsmethod(a):            # test object 'a' for graphics method</P>
2660 <P CLASS="LotsOfCode">
2661 <A NAME="pgfId-883412"></A>      print 'Yes, this is a graphics method'</P>
2662 <P CLASS="LotsOfCode">
2663 <A NAME="pgfId-883413"></A>      if x.isxvsy(a):                   # test object 'a' if xvsy</P>
2664 <P CLASS="LotsOfCode">
2665 <A NAME="pgfId-883414"></A>         print 'Yes, this is an xvsy graphics method'</P>
2666 <P CLASS="LotsOfCode">
2667 <A NAME="pgfId-883415"></A>         a.list()                       # list the xvsy's attributes and values</P>
2668 <P CLASS="LotsOfCode">
2669 <A NAME="pgfId-883416"></A>&nbsp;</P>
2670 <P CLASS="LotsOfCode">
2671 <A NAME="pgfId-883417"></A>   a.script('test','w')                 # save 'quick' xvsy as a Python script</P>
2672 <P CLASS="LotsOfCode">
2673 <A NAME="pgfId-883418"></A>&nbsp;</P>
2674 <P CLASS="LotsOfCode">
2675 <A NAME="pgfId-883419"></A>   a.xticlabels('','')                  # remove the x-axis</P>
2676 <P CLASS="LotsOfCode">
2677 <A NAME="pgfId-883420"></A>   a.xticlabels('*')                    # put the x-axis</P>
2678 <P CLASS="LotsOfCode">
2679 <A NAME="pgfId-883421"></A>&nbsp;</P>
2680 <P CLASS="LotsOfCode">
2681 <A NAME="pgfId-883422"></A>   ############################################################################</P>
2682 <P CLASS="LotsOfCode">
2683 <A NAME="pgfId-883423"></A>   # Change the xvsy line                                                     #</P>
2684 <P CLASS="LotsOfCode">
2685 <A NAME="pgfId-883424"></A>   ############################################################################</P>
2686 <P CLASS="LotsOfCode">
2687 <A NAME="pgfId-883425"></A>   a.line=0                             # same as 'solid'</P>
2688 <P CLASS="LotsOfCode">
2689 <A NAME="pgfId-883426"></A>   a.line=1                             # same as 'dash'</P>
2690 <P CLASS="LotsOfCode">
2691 <A NAME="pgfId-883427"></A>   a.line=2                             # same as 'dot'</P>
2692 <P CLASS="LotsOfCode">
2693 <A NAME="pgfId-883428"></A>   a.line=3                             # same as 'dash-dot'</P>
2694 <P CLASS="LotsOfCode">
2695 <A NAME="pgfId-883429"></A>   a.line=4                             # same as 'long-dash'</P>
2696 <P CLASS="LotsOfCode">
2697 <A NAME="pgfId-883430"></A>&nbsp;</P>
2698 <P CLASS="LotsOfCode">
2699 <A NAME="pgfId-883431"></A>   ############################################################################</P>
2700 <P CLASS="LotsOfCode">
2701 <A NAME="pgfId-883432"></A>   # Change the xvsy line color                                               #</P>
2702 <P CLASS="LotsOfCode">
2703 <A NAME="pgfId-883433"></A>   ############################################################################</P>
2704 <P CLASS="LotsOfCode">
2705 <A NAME="pgfId-883434"></A>   a.linecolor=(77)</P>
2706 <P CLASS="LotsOfCode">
2707 <A NAME="pgfId-883435"></A>   a.linecolor=16</P>
2708 <P CLASS="LotsOfCode">
2709 <A NAME="pgfId-883436"></A>   a.linecolor=44                       # same as a.color=(44)</P>
2710 <P CLASS="LotsOfCode">
2711 <A NAME="pgfId-883437"></A>   a.linecolor=None</P>
2712 <P CLASS="LotsOfCode">
2713 <A NAME="pgfId-883438"></A>&nbsp;</P>
2714 <P CLASS="LotsOfCode">
2715 <A NAME="pgfId-883444"></A>   ############################################################################</P>
2716 <P CLASS="LotsOfCode">
2717 <A NAME="pgfId-883445"></A>   # Change the xvsy marker                                                   #</P>
2718 <P CLASS="LotsOfCode">
2719 <A NAME="pgfId-883446"></A>   ############################################################################</P>
2720 <P CLASS="LotsOfCode">
2721 <A NAME="pgfId-883447"></A>   a.marker=1                           # Same as a.marker='dot'</P>
2722 <P CLASS="LotsOfCode">
2723 <A NAME="pgfId-883448"></A>   a.marker=2                           # Same as a.marker='plus'</P>
2724 <P CLASS="LotsOfCode">
2725 <A NAME="pgfId-883449"></A>   a.marker=3                           # Same as a.marker='star'</P>
2726 <P CLASS="LotsOfCode">
2727 <A NAME="pgfId-883450"></A>   a.marker=4                           # Same as a.marker='circle'</P>
2728 <P CLASS="LotsOfCode">
2729 <A NAME="pgfId-883451"></A>   a.marker=5                           # Same as a.marker='cross'</P>
2730 <P CLASS="LotsOfCode">
2731 <A NAME="pgfId-883452"></A>   a.marker=6                           # Same as a.marker='diamond'</P>
2732 <P CLASS="LotsOfCode">
2733 <A NAME="pgfId-883453"></A>   a.marker=7                           # Same as a.marker='triangle_up'</P>
2734 <P CLASS="LotsOfCode">
2735 <A NAME="pgfId-883454"></A>   a.marker=8                           # Same as a.marker='triangle_down'</P>
2736 <P CLASS="LotsOfCode">
2737 <A NAME="pgfId-883455"></A>   a.marker=9                           # Same as a.marker='triangle_left'</P>
2738 <P CLASS="LotsOfCode">
2739 <A NAME="pgfId-883456"></A>   a.marker=10                          # Same as a.marker='triangle_right'</P>
2740 <P CLASS="LotsOfCode">
2741 <A NAME="pgfId-883457"></A>   a.marker=11                          # Same as a.marker='square'</P>
2742 <P CLASS="LotsOfCode">
2743 <A NAME="pgfId-883458"></A>   a.marker=12                          # Same as a.marker='diamond_fill'</P>
2744 <P CLASS="LotsOfCode">
2745 <A NAME="pgfId-883459"></A>   a.marker=13                          # Same as a.marker='triangle_up_fill'</P>
2746 <P CLASS="LotsOfCode">
2747 <A NAME="pgfId-883460"></A>   a.marker=14                          # Same as a.marker='triangle_down_fill'</P>
2748 <P CLASS="LotsOfCode">
2749 <A NAME="pgfId-883461"></A>   a.marker=15                          # Same as a.marker='triangle_left_fill'</P>
2750 <P CLASS="LotsOfCode">
2751 <A NAME="pgfId-883462"></A>   a.marker=16                          # Same as a.marker='triangle_right_fill'</P>
2752 <P CLASS="LotsOfCode">
2753 <A NAME="pgfId-883463"></A>   a.marker=17                          # Same as a.marker='square_fill'</P>
2754 <P CLASS="LotsOfCode">
2755 <A NAME="pgfId-883464"></A>   a.marker=None                        # Draw no markers</P>
2756 <P CLASS="LotsOfCode">
2757 <A NAME="pgfId-883465"></A>&nbsp;</P>
2758 <P CLASS="LotsOfCode">
2759 <A NAME="pgfId-883466"></A>   ############################################################################</P>
2760 <P CLASS="LotsOfCode">
2761 <A NAME="pgfId-883467"></A>   # Change the xvsy marker color                                             #</P>
2762 <P CLASS="LotsOfCode">
2763 <A NAME="pgfId-883468"></A>   ############################################################################</P>
2764 <P CLASS="LotsOfCode">
2765 <A NAME="pgfId-883469"></A>   a.marker='dot'</P>
2766 <P CLASS="LotsOfCode">
2767 <A NAME="pgfId-883470"></A>   a.markercolor=16</P>
2768 <P CLASS="LotsOfCode">
2769 <A NAME="pgfId-883471"></A>   a.markercolor=44                     # same as a.markercolor=(44)</P>
2770 <P CLASS="LotsOfCode">
2771 <A NAME="pgfId-883472"></A>   a.markercolor=None</P>
2772 <P CLASS="LotsOfCode">
2773 <A NAME="pgfId-883473"></A>&nbsp;</P>
2774 <P CLASS="LotsOfCode">
2775 <A NAME="pgfId-883474"></A>   ############################################################################</P>
2776 <P CLASS="LotsOfCode">
2777 <A NAME="pgfId-883475"></A>   # Change the xvsy marker size                                              #</P>
2778 <P CLASS="LotsOfCode">
2779 <A NAME="pgfId-883476"></A>   ############################################################################</P>
2780 <P CLASS="LotsOfCode">
2781 <A NAME="pgfId-883477"></A>   a.markersize=5</P>
2782 <P CLASS="LotsOfCode">
2783 <A NAME="pgfId-883478"></A>   a.markersize=55</P>
2784 <P CLASS="LotsOfCode">
2785 <A NAME="pgfId-883479"></A>   a.markersize=10</P>
2786 <P CLASS="LotsOfCode">
2787 <A NAME="pgfId-883480"></A>   a.markersize=100</P>
2788 <P CLASS="LotsOfCode">
2789 <A NAME="pgfId-883481"></A>   a.markersize=300</P>
2790 <P CLASS="LotsOfCode">
2791 <A NAME="pgfId-883482"></A>   a.markersize=None</P>
2792 <P CLASS="LotsOfCode">
2793 <A NAME="pgfId-883483"></A>&nbsp;</P>
2794 <P CLASS="LotsOfCode">
2795 <A NAME="pgfId-883484"></A>   x.clear()                            # clear the VCS Canvas</P>
2796 <P CLASS="LotsOfCode">
2797 <A NAME="pgfId-883485"></A>   x.xvsy(u, v, a,'default')            # plot xvsy using 'default' template</P>
2798 <P CLASS="LotsOfCode">
2799 <A NAME="pgfId-883486"></A>&nbsp;</P>
2800 <P CLASS="LotsOfCode">
2801 <A NAME="pgfId-883487"></A>   x.show('template')                   # show the list of templates</P>
2802 <P CLASS="LotsOfCode">
2803 <A NAME="pgfId-883488"></A>   t=x.createtemplate('test')           # create template 'test' from 'default' template</P>
2804 <P CLASS="LotsOfCode">
2805 <A NAME="pgfId-883489"></A>   if x.istemplate(t):                  # test whether 't' is a template or not</P>
2806 <P CLASS="LotsOfCode">
2807 <A NAME="pgfId-883490"></A>      x.show('template')                # show the list of templates</P>
2808 <P CLASS="LotsOfCode">
2809 <A NAME="pgfId-883491"></A>&nbsp;</P>
2810 <P CLASS="LotsOfCode">
2811 <A NAME="pgfId-883492"></A>   x.clear()                            # clear the VCS Canvas</P>
2812 <P CLASS="LotsOfCode">
2813 <A NAME="pgfId-883493"></A>   x.plot(t,a,u,v)                      # plot xvsy template 't', outline 'a', and arrays 'u':'v'</P>
2814 <P CLASS="LotsOfCode">
2815 <A NAME="pgfId-883494"></A>   x.clear()                            # clear the VCS Canvas</P>
2816 <P CLASS="LotsOfCode">
2817 <A NAME="pgfId-883495"></A>   x.xvsy(a,u,v,t)                      # plot using outline 'a', array 'u':'v', and template 't'</P>
2818 <P CLASS="LotsOfCode">
2819 <A NAME="pgfId-883496"></A>&nbsp;</P>
2820 <P CLASS="LotsOfCode">
2821 <A NAME="pgfId-883497"></A>   x.show('line')                       # show the list of line secondary objects</P>
2822 <P CLASS="LotsOfCode">
2823 <A NAME="pgfId-883498"></A>   l=x.getline('red')                   # get line 'red'</P>
2824 <P CLASS="LotsOfCode">
2825 <A NAME="pgfId-883499"></A>   if x.issecondaryobject(l):           # check to see if it is a secondary object</P>
2826 <P CLASS="LotsOfCode">
2827 <A NAME="pgfId-883500"></A>      print 'Yes, this is a secondary object.'</P>
2828 <P CLASS="LotsOfCode">
2829 <A NAME="pgfId-883501"></A>      if x.isline(l):                   # check to see if it is a line</P>
2830 <P CLASS="LotsOfCode">
2831 <A NAME="pgfId-883502"></A>         print 'Yes, this is a line object.'</P>
2832 <P CLASS="LotsOfCode">
2833 <A NAME="pgfId-883503"></A>         l.list()                       # list the line's attributes and values</P>
2834 <P CLASS="LotsOfCode">
2835 <A NAME="pgfId-883504"></A>&nbsp;</P>
2836 <P CLASS="LotsOfCode">
2837 <A NAME="pgfId-883514"></A>   ###########################################################################</P>
2838 <P CLASS="LotsOfCode">
2839 <A NAME="pgfId-883515"></A>   # Use the create line object 'm' from above and modify the line object    #</P>
2840 <P CLASS="LotsOfCode">
2841 <A NAME="pgfId-883516"></A>   ###########################################################################</P>
2842 <P CLASS="LotsOfCode">
2843 <A NAME="pgfId-883517"></A>   a.line=l                             # use the line object</P>
2844 <P CLASS="LotsOfCode">
2845 <A NAME="pgfId-883518"></A>   l.list()                             # list the line object attributes and values</P>
2846 <P CLASS="LotsOfCode">
2847 <A NAME="pgfId-883519"></A>   l.color = 44                         # change the line color</P>
2848 <P CLASS="LotsOfCode">
2849 <A NAME="pgfId-883520"></A>   l.style ='dot'                       # change the line type</P>
2850 <P CLASS="LotsOfCode">
2851 <A NAME="pgfId-883521"></A>   l.width=4                            # change the line size</P>
2852 <P CLASS="LotsOfCode">
2853 <A NAME="pgfId-883522"></A>&nbsp;</P>
2854 <P CLASS="LotsOfCode">
2855 <A NAME="pgfId-883523"></A>   x.show('marker')                     # show the list of marker secondary objects</P>
2856 <P CLASS="LotsOfCode">
2857 <A NAME="pgfId-883524"></A>   m=x.getmarker('red')                 # get marker 'red'</P>
2858 <P CLASS="LotsOfCode">
2859 <A NAME="pgfId-883525"></A>   if x.issecondaryobject(m):           # check to see if it is a secondary object</P>
2860 <P CLASS="LotsOfCode">
2861 <A NAME="pgfId-883526"></A>      print 'Yes, this is a secondary object.'</P>
2862 <P CLASS="LotsOfCode">
2863 <A NAME="pgfId-883527"></A>      if x.ismarker(m):                 # check to see if it is a fill area</P>
2864 <P CLASS="LotsOfCode">
2865 <A NAME="pgfId-883528"></A>         print 'Yes, this is a marker object.'</P>
2866 <P CLASS="LotsOfCode">
2867 <A NAME="pgfId-883529"></A>         m.list()                       # list the marker's attributes and values</P>
2868 <P CLASS="LotsOfCode">
2869 <A NAME="pgfId-883530"></A>&nbsp;</P>
2870 <P CLASS="LotsOfCode">
2871 <A NAME="pgfId-883531"></A>   ###########################################################################</P>
2872 <P CLASS="LotsOfCode">
2873 <A NAME="pgfId-883532"></A>   # Use the create marker object 'm' from above and modify the line object  #</P>
2874 <P CLASS="LotsOfCode">
2875 <A NAME="pgfId-883533"></A>   ###########################################################################</P>
2876 <P CLASS="LotsOfCode">
2877 <A NAME="pgfId-883534"></A>   a.marker=m                           # use the marker object</P>
2878 <P CLASS="LotsOfCode">
2879 <A NAME="pgfId-883535"></A>   m.list()                             # list the marker object attributes and values</P>
2880 <P CLASS="LotsOfCode">
2881 <A NAME="pgfId-883536"></A>   m.color = 44                         # change the marker color</P>
2882 <P CLASS="LotsOfCode">
2883 <A NAME="pgfId-883537"></A>   m.type ='square'                     # change the marker type</P>
2884 <P CLASS="LotsOfCode">
2885 <A NAME="pgfId-883538"></A>   m.size=20                            # change the marker size</P>
2886 <P CLASS="LotsOfCode">
2887 <A NAME="pgfId-883539"></A>&nbsp;</P>
2888 <P CLASS="LotsOfCode">
2889 <A NAME="pgfId-883540"></A>   x.show('xvsy')                       # show list of xvsy</P>
2890 <P CLASS="LotsOfCode">
2891 <A NAME="pgfId-883541"></A>   r=x.createxvsy('test2','quick')      # create xvsy 'test2'</P>
2892 <P CLASS="LotsOfCode">
2893 <A NAME="pgfId-883542"></A>   x.show('xvsy')                       # show list of xvsy</P>
2894 <P CLASS="LotsOfCode">
2895 <A NAME="pgfId-883543"></A>   x.removeobject(r)                    # remove xvsy 'test2'</P>
2896 <P CLASS="LotsOfCode">
2897 <A NAME="pgfId-883544"></A>   x.show('xvsy')                       # show list of xvsy</P>
2898 <P CLASS="LotsOfCode">
2899 <A NAME="pgfId-883545"></A>&nbsp;</P>
2900 <P CLASS="LotsOfCode">
2901 <A NAME="pgfId-883546"></A>   #####################################################################</P>
2902 <P CLASS="LotsOfCode">
2903 <A NAME="pgfId-883547"></A>   # to see how x.update and x.mode work, see testoutline.py           #</P>
2904 <P CLASS="LotsOfCode">
2905 <A NAME="pgfId-883548"></A>   #####################################################################</P>
2906 <P CLASS="LotsOfCode">
2907 <A NAME="pgfId-883549"></A>   #x.update()</P>
2908 <P CLASS="LotsOfCode">
2909 <A NAME="pgfId-883550"></A>   #x.mode=1</P>
2910 <P CLASS="LotsOfCode">
2911 <A NAME="pgfId-883551"></A>   #x.mode=0</P>
2912 <P CLASS="LotsOfCode">
2913 <A NAME="pgfId-883552"></A>   print '**********************************************'</P>
2914 <P CLASS="LotsOfCode">
2915 <A NAME="pgfId-883553"></A>   print '******                                 ******'</P>
2916 <P CLASS="LotsOfCode">
2917 <A NAME="pgfId-883554"></A>   print '******   X v s Y   C O M P L E T E D   ******'</P>
2918 <P CLASS="LotsOfCode">
2919 <A NAME="pgfId-883555"></A>   print '******                                 ******'</P>
2920 <P CLASS="LotsOfCode">
2921 <A NAME="pgfId-883556"></A>   print '*********************************************'</P>
2922 <P CLASS="LotsOfCode">
2923 <A NAME="pgfId-883557"></A>&nbsp;</P>
2924 <P CLASS="LotsOfCode">
2925 <A NAME="pgfId-883558"></A>if __name__==&quot;__main__&quot;:</P>
2926 <P CLASS="LotsOfCode">
2927 <A NAME="pgfId-883559"></A>   examplexvsy()</P>
2928 <P CLASS="LotsOfCode">
2929 <A NAME="pgfId-883560"></A>&nbsp;</P>
2930 </DIV>
2931 <DIV>
2932 <H4 CLASS="Heading1">
2933 <A NAME="pgfId-881701"></A><DIV>
2934 <IMG SRC="vcs-2.gif">
2935 </DIV>
2936 Xyvsy Graphics Method Example:</H4>
2937 <P CLASS="LotsOfCode">
2938 <A NAME="pgfId-837611"></A>#</P>
2939 <P CLASS="LotsOfCode">
2940 <A NAME="pgfId-883652"></A># Example Xyvsy (GXy) module</P>
2941 <P CLASS="LotsOfCode">
2942 <A NAME="pgfId-883653"></A>#</P>
2943 <P CLASS="LotsOfCode">
2944 <A NAME="pgfId-883654"></A>############################################################################</P>
2945 <P CLASS="LotsOfCode">
2946 <A NAME="pgfId-883655"></A>#                                                                          #</P>
2947 <P CLASS="LotsOfCode">
2948 <A NAME="pgfId-883656"></A># Module:       examplexyvsy module                                        #</P>
2949 <P CLASS="LotsOfCode">
2950 <A NAME="pgfId-883657"></A>#                                                                          #</P>
2951 <P CLASS="LotsOfCode">
2952 <A NAME="pgfId-883658"></A># Copyright:    2000, Regents of the University of California              #</P>
2953 <P CLASS="LotsOfCode">
2954 <A NAME="pgfId-883659"></A>#               This software may not be distributed to others without     #</P>
2955 <P CLASS="LotsOfCode">
2956 <A NAME="pgfId-883660"></A>#               permission of the author.                                  #</P>
2957 <P CLASS="LotsOfCode">
2958 <A NAME="pgfId-883661"></A>#                                                                          #</P>
2959 <P CLASS="LotsOfCode">
2960 <A NAME="pgfId-883662"></A># Author:       Dean N. Williams, Lawrence Livermore National Laboratory   #</P>
2961 <P CLASS="LotsOfCode">
2962 <A NAME="pgfId-883663"></A>#               williams13@llnl.gov                                        #</P>
2963 <P CLASS="LotsOfCode">
2964 <A NAME="pgfId-883664"></A>#                                                                          #</P>
2965 <P CLASS="LotsOfCode">
2966 <A NAME="pgfId-883665"></A># Description:  Example use of VCS's Xyvsy graphics method.                #</P>
2967 <P CLASS="LotsOfCode">
2968 <A NAME="pgfId-883666"></A>#                                                                          #</P>
2969 <P CLASS="LotsOfCode">
2970 <A NAME="pgfId-883667"></A># Version:      1.0                                                        #</P>
2971 <P CLASS="LotsOfCode">
2972 <A NAME="pgfId-883668"></A>#                                                                          #</P>
2973 <P CLASS="LotsOfCode">
2974 <A NAME="pgfId-883669"></A>############################################################################</P>
2975 <P CLASS="LotsOfCode">
2976 <A NAME="pgfId-883670"></A>#</P>
2977 <P CLASS="LotsOfCode">
2978 <A NAME="pgfId-883671"></A>#</P>
2979 <P CLASS="LotsOfCode">
2980 <A NAME="pgfId-883672"></A>#</P>
2981 <P CLASS="LotsOfCode">
2982 <A NAME="pgfId-883673"></A>############################################################################</P>
2983 <P CLASS="LotsOfCode">
2984 <A NAME="pgfId-883674"></A>#                                                                          #</P>
2985 <P CLASS="LotsOfCode">
2986 <A NAME="pgfId-883675"></A># Import: vcs and cu modules.                                              #</P>
2987 <P CLASS="LotsOfCode">
2988 <A NAME="pgfId-883676"></A>#                                                                          #</P>
2989 <P CLASS="LotsOfCode">
2990 <A NAME="pgfId-883677"></A>############################################################################</P>
2991 <P CLASS="LotsOfCode">
2992 <A NAME="pgfId-883678"></A>def examplexyvsy():</P>
2993 <P CLASS="LotsOfCode">
2994 <A NAME="pgfId-883679"></A>   import vcs,cu                        # import vcs and cu</P>
2995 <P CLASS="LotsOfCode">
2996 <A NAME="pgfId-883680"></A>&nbsp;</P>
2997 <P CLASS="LotsOfCode">
2998 <A NAME="pgfId-883681"></A>   f=cu.open('clt.nc')                  # open clt file</P>
2999 <P CLASS="LotsOfCode">
3000 <A NAME="pgfId-883682"></A>   u=f.getslab('u')                     # get slab u</P>
3001 <P CLASS="LotsOfCode">
3002 <A NAME="pgfId-883683"></A>   x=vcs.init()                         # construct vcs canvas</P>
3003 <P CLASS="LotsOfCode">
3004 <A NAME="pgfId-883684"></A>&nbsp;</P>
3005 <P CLASS="LotsOfCode">
3006 <A NAME="pgfId-883685"></A>   x.plot(u, 'default','xyvsy','quick') # plot slab the old way</P>
3007 <P CLASS="LotsOfCode">
3008 <A NAME="pgfId-883686"></A>   x.geometry(450,337,100,0)            # change the geometry and location</P>
3009 <P CLASS="LotsOfCode">
3010 <A NAME="pgfId-883687"></A>&nbsp;</P>
3011 <P CLASS="LotsOfCode">
3012 <A NAME="pgfId-883688"></A>   a=x.getxyvsy('quick')                # get 'quick' xyvsy</P>
3013 <P CLASS="LotsOfCode">
3014 <A NAME="pgfId-883689"></A>   if x.isgraphicsmethod(a):            # test object 'a' for graphics method</P>
3015 <P CLASS="LotsOfCode">
3016 <A NAME="pgfId-883690"></A>      print 'Yes, this is a graphics method'</P>
3017 <P CLASS="LotsOfCode">
3018 <A NAME="pgfId-883691"></A>      if x.isxyvsy(a):                  # test object 'a' if xyvsy</P>
3019 <P CLASS="LotsOfCode">
3020 <A NAME="pgfId-883692"></A>         print 'Yes, this is an xyvsy graphics method'</P>
3021 <P CLASS="LotsOfCode">
3022 <A NAME="pgfId-883693"></A>         a.list()                       # list the xyvsy's attributes and values</P>
3023 <P CLASS="LotsOfCode">
3024 <A NAME="pgfId-883694"></A>&nbsp;</P>
3025 <P CLASS="LotsOfCode">
3026 <A NAME="pgfId-883695"></A>   a.script('test','w')                 # save 'quick' xyvsy as a Python script</P>
3027 <P CLASS="LotsOfCode">
3028 <A NAME="pgfId-883696"></A>&nbsp;</P>
3029 <P CLASS="LotsOfCode">
3030 <A NAME="pgfId-883697"></A>   a.xticlabels('','')                  # remove the x-axis</P>
3031 <P CLASS="LotsOfCode">
3032 <A NAME="pgfId-883698"></A>   a.xticlabels('*')                    # put the x-axis</P>
3033 <P CLASS="LotsOfCode">
3034 <A NAME="pgfId-883699"></A>&nbsp;</P>
3035 <P CLASS="LotsOfCode">
3036 <A NAME="pgfId-883700"></A>   ############################################################################</P>
3037 <P CLASS="LotsOfCode">
3038 <A NAME="pgfId-883701"></A>   # Change the xyvsy line                                                    #</P>
3039 <P CLASS="LotsOfCode">
3040 <A NAME="pgfId-883702"></A>   ############################################################################</P>
3041 <P CLASS="LotsOfCode">
3042 <A NAME="pgfId-883703"></A>   a.line=0                             # same as 'solid'</P>
3043 <P CLASS="LotsOfCode">
3044 <A NAME="pgfId-883704"></A>   a.line=1                             # same as 'dash'</P>
3045 <P CLASS="LotsOfCode">
3046 <A NAME="pgfId-883705"></A>   a.line=2                             # same as 'dot'</P>
3047 <P CLASS="LotsOfCode">
3048 <A NAME="pgfId-883706"></A>   a.line=3                             # same as 'dash-dot'</P>
3049 <P CLASS="LotsOfCode">
3050 <A NAME="pgfId-883707"></A>   a.line=4                             # same as 'long-dash'</P>
3051 <P CLASS="LotsOfCode">
3052 <A NAME="pgfId-883708"></A>&nbsp;</P>
3053 <P CLASS="LotsOfCode">
3054 <A NAME="pgfId-883709"></A>   ############################################################################</P>
3055 <P CLASS="LotsOfCode">
3056 <A NAME="pgfId-883710"></A>   # Change the xyvsy line color                                              #</P>
3057 <P CLASS="LotsOfCode">
3058 <A NAME="pgfId-883711"></A>   ############################################################################</P>
3059 <P CLASS="LotsOfCode">
3060 <A NAME="pgfId-883712"></A>   a.linecolor=(77)</P>
3061 <P CLASS="LotsOfCode">
3062 <A NAME="pgfId-883713"></A>   a.linecolor=16</P>
3063 <P CLASS="LotsOfCode">
3064 <A NAME="pgfId-883714"></A>   a.linecolor=44                       # same as a.color=(44)</P>
3065 <P CLASS="LotsOfCode">
3066 <A NAME="pgfId-883715"></A>   a.linecolor=None</P>
3067 <P CLASS="LotsOfCode">
3068 <A NAME="pgfId-883716"></A>&nbsp;</P>
3069 <P CLASS="LotsOfCode">
3070 <A NAME="pgfId-883717"></A>   ############################################################################</P>
3071 <P CLASS="LotsOfCode">
3072 <A NAME="pgfId-883719"></A>   # Change the xyvsy marker                                                  #</P>
3073 <P CLASS="LotsOfCode">
3074 <A NAME="pgfId-883720"></A>   ############################################################################</P>
3075 <P CLASS="LotsOfCode">
3076 <A NAME="pgfId-883721"></A>   a.marker=1                           # Same as a.marker='dot'</P>
3077 <P CLASS="LotsOfCode">
3078 <A NAME="pgfId-883722"></A>   a.marker=2                           # Same as a.marker='plus'</P>
3079 <P CLASS="LotsOfCode">
3080 <A NAME="pgfId-883723"></A>   a.marker=3                           # Same as a.marker='star'</P>
3081 <P CLASS="LotsOfCode">
3082 <A NAME="pgfId-883724"></A>   a.marker=4                           # Same as a.marker='circle'</P>
3083 <P CLASS="LotsOfCode">
3084 <A NAME="pgfId-883725"></A>   a.marker=5                           # Same as a.marker='cross'</P>
3085 <P CLASS="LotsOfCode">
3086 <A NAME="pgfId-883726"></A>   a.marker=6                           # Same as a.marker='diamond'</P>
3087 <P CLASS="LotsOfCode">
3088 <A NAME="pgfId-883727"></A>   a.marker=7                           # Same as a.marker='triangle_up'</P>
3089 <P CLASS="LotsOfCode">
3090 <A NAME="pgfId-883728"></A>   a.marker=8                           # Same as a.marker='triangle_down'</P>
3091 <P CLASS="LotsOfCode">
3092 <A NAME="pgfId-883729"></A>   a.marker=9                           # Same as a.marker='triangle_left'</P>
3093 <P CLASS="LotsOfCode">
3094 <A NAME="pgfId-883730"></A>   a.marker=10                          # Same as a.marker='triangle_right'</P>
3095 <P CLASS="LotsOfCode">
3096 <A NAME="pgfId-883731"></A>   a.marker=11                          # Same as a.marker='square'</P>
3097 <P CLASS="LotsOfCode">
3098 <A NAME="pgfId-883732"></A>   a.marker=12                          # Same as a.marker='diamond_fill'</P>
3099 <P CLASS="LotsOfCode">
3100 <A NAME="pgfId-883733"></A>   a.marker=13                          # Same as a.marker='triangle_up_fill'</P>
3101 <P CLASS="LotsOfCode">
3102 <A NAME="pgfId-883734"></A>   a.marker=14                          # Same as a.marker='triangle_down_fill'</P>
3103 <P CLASS="LotsOfCode">
3104 <A NAME="pgfId-883735"></A>   a.marker=15                          # Same as a.marker='triangle_left_fill'</P>
3105 <P CLASS="LotsOfCode">
3106 <A NAME="pgfId-883736"></A>   a.marker=16                          # Same as a.marker='triangle_right_fill'</P>
3107 <P CLASS="LotsOfCode">
3108 <A NAME="pgfId-883737"></A>   a.marker=17                          # Same as a.marker='square_fill'</P>
3109 <P CLASS="LotsOfCode">
3110 <A NAME="pgfId-883738"></A>   a.marker=None                        # Draw no markers</P>
3111 <P CLASS="LotsOfCode">
3112 <A NAME="pgfId-883739"></A>&nbsp;</P>
3113 <P CLASS="LotsOfCode">
3114 <A NAME="pgfId-883740"></A>   ############################################################################</P>
3115 <P CLASS="LotsOfCode">
3116 <A NAME="pgfId-883741"></A>   # Change the xyvsy marker color                                            #</P>
3117 <P CLASS="LotsOfCode">
3118 <A NAME="pgfId-883742"></A>   ############################################################################</P>
3119 <P CLASS="LotsOfCode">
3120 <A NAME="pgfId-883743"></A>   a.marker='dot'</P>
3121 <P CLASS="LotsOfCode">
3122 <A NAME="pgfId-883744"></A>   a.markercolor=16</P>
3123 <P CLASS="LotsOfCode">
3124 <A NAME="pgfId-883745"></A>   a.markercolor=44                     # same as a.markercolor=(44)</P>
3125 <P CLASS="LotsOfCode">
3126 <A NAME="pgfId-883746"></A>   a.markercolor=None</P>
3127 <P CLASS="LotsOfCode">
3128 <A NAME="pgfId-883747"></A>&nbsp;</P>
3129 <P CLASS="LotsOfCode">
3130 <A NAME="pgfId-883748"></A>   ############################################################################</P>
3131 <P CLASS="LotsOfCode">
3132 <A NAME="pgfId-883749"></A>   # Change the xyvsy marker size                                             #</P>
3133 <P CLASS="LotsOfCode">
3134 <A NAME="pgfId-883750"></A>   ############################################################################</P>
3135 <P CLASS="LotsOfCode">
3136 <A NAME="pgfId-883751"></A>   a.markersize=5</P>
3137 <P CLASS="LotsOfCode">
3138 <A NAME="pgfId-883752"></A>   a.markersize=55</P>
3139 <P CLASS="LotsOfCode">
3140 <A NAME="pgfId-883753"></A>   a.markersize=10</P>
3141 <P CLASS="LotsOfCode">
3142 <A NAME="pgfId-883754"></A>   a.markersize=100</P>
3143 <P CLASS="LotsOfCode">
3144 <A NAME="pgfId-883755"></A>   a.markersize=300</P>
3145 <P CLASS="LotsOfCode">
3146 <A NAME="pgfId-883756"></A>   a.markersize=None</P>
3147 <P CLASS="LotsOfCode">
3148 <A NAME="pgfId-883757"></A>&nbsp;</P>
3149 <P CLASS="LotsOfCode">
3150 <A NAME="pgfId-883758"></A>   x.clear()                            # clear the VCS Canvas</P>
3151 <P CLASS="LotsOfCode">
3152 <A NAME="pgfId-883759"></A>   x.xyvsy(u, a,'default')              # plot xyvsy using 'default' template</P>
3153 <P CLASS="LotsOfCode">
3154 <A NAME="pgfId-883760"></A>&nbsp;</P>
3155 <P CLASS="LotsOfCode">
3156 <A NAME="pgfId-883761"></A>   x.show('template')                   # show the list of templates</P>
3157 <P CLASS="LotsOfCode">
3158 <A NAME="pgfId-883762"></A>   t=x.createtemplate('test')           # create template 'test' from 'default' template</P>
3159 <P CLASS="LotsOfCode">
3160 <A NAME="pgfId-883763"></A>   if x.istemplate(t):                  # test whether 't' is a template or not</P>
3161 <P CLASS="LotsOfCode">
3162 <A NAME="pgfId-883764"></A>      x.show('template')                # show the list of templates</P>
3163 <P CLASS="LotsOfCode">
3164 <A NAME="pgfId-883765"></A>&nbsp;</P>
3165 <P CLASS="LotsOfCode">
3166 <A NAME="pgfId-883766"></A>   x.clear()                            # clear the VCS Canvas</P>
3167 <P CLASS="LotsOfCode">
3168 <A NAME="pgfId-883767"></A>   x.plot(t,a,u)                        # plot xyvsy template 't', outline 'a', and arrays 'u':'v'</P>
3169 <P CLASS="LotsOfCode">
3170 <A NAME="pgfId-883768"></A>   x.clear()                            # clear the VCS Canvas</P>
3171 <P CLASS="LotsOfCode">
3172 <A NAME="pgfId-883769"></A>   x.xyvsy(a,u,t)                       # plot using outline 'a', array 'u':'v', and template 't'</P>
3173 <P CLASS="LotsOfCode">
3174 <A NAME="pgfId-883770"></A>&nbsp;</P>
3175 <P CLASS="LotsOfCode">
3176 <A NAME="pgfId-883771"></A>   x.show('line')                       # show the list of line secondary objects</P>
3177 <P CLASS="LotsOfCode">
3178 <A NAME="pgfId-883772"></A>   l=x.getline('red')                   # get line 'red'</P>
3179 <P CLASS="LotsOfCode">
3180 <A NAME="pgfId-883773"></A>   if x.issecondaryobject(l):           # check to see if it is a secondary object</P>
3181 <P CLASS="LotsOfCode">
3182 <A NAME="pgfId-883774"></A>      print 'Yes, this is a secondary object.'</P>
3183 <P CLASS="LotsOfCode">
3184 <A NAME="pgfId-883775"></A>      if x.isline(l):                   # check to see if it is a line</P>
3185 <P CLASS="LotsOfCode">
3186 <A NAME="pgfId-883776"></A>         print 'Yes, this is a line object.'</P>
3187 <P CLASS="LotsOfCode">
3188 <A NAME="pgfId-883777"></A>         l.list()                       # list the line's attributes and values</P>
3189 <P CLASS="LotsOfCode">
3190 <A NAME="pgfId-883778"></A>&nbsp;</P>
3191 <P CLASS="LotsOfCode">
3192 <A NAME="pgfId-883779"></A>   ###########################################################################</P>
3193 <P CLASS="LotsOfCode">
3194 <A NAME="pgfId-883780"></A>   # Use the create line object 'm' from above and modify the line object    #</P>
3195 <P CLASS="LotsOfCode">
3196 <A NAME="pgfId-883781"></A>   ###########################################################################</P>
3197 <P CLASS="LotsOfCode">
3198 <A NAME="pgfId-883782"></A>   a.line=l                             # use the line object</P>
3199 <P CLASS="LotsOfCode">
3200 <A NAME="pgfId-883783"></A>   l.list()                             # list the line object attributes and values</P>
3201 <P CLASS="LotsOfCode">
3202 <A NAME="pgfId-883784"></A>   l.color = 44                         # change the line color</P>
3203 <P CLASS="LotsOfCode">
3204 <A NAME="pgfId-883785"></A>   l.style ='dot'                       # change the line type</P>
3205 <P CLASS="LotsOfCode">
3206 <A NAME="pgfId-883786"></A>   l.width=4                            # change the line size</P>
3207 <P CLASS="LotsOfCode">
3208 <A NAME="pgfId-883787"></A>&nbsp;</P>
3209 <P CLASS="LotsOfCode">
3210 <A NAME="pgfId-883788"></A>   x.show('marker')                     # show the list of marker secondary objects</P>
3211 <P CLASS="LotsOfCode">
3212 <A NAME="pgfId-883790"></A>   m=x.getmarker('red')                 # get marker 'red'</P>
3213 <P CLASS="LotsOfCode">
3214 <A NAME="pgfId-883791"></A>   if x.issecondaryobject(m):           # check to see if it is a secondary object</P>
3215 <P CLASS="LotsOfCode">
3216 <A NAME="pgfId-883792"></A>      print 'Yes, this is a secondary object.'</P>
3217 <P CLASS="LotsOfCode">
3218 <A NAME="pgfId-883793"></A>      if x.ismarker(m):                 # check to see if it is a fill area</P>
3219 <P CLASS="LotsOfCode">
3220 <A NAME="pgfId-883794"></A>         print 'Yes, this is a marker object.'</P>
3221 <P CLASS="LotsOfCode">
3222 <A NAME="pgfId-883795"></A>         m.list()                       # list the marker's attributes and values</P>
3223 <P CLASS="LotsOfCode">
3224 <A NAME="pgfId-883796"></A>&nbsp;</P>
3225 <P CLASS="LotsOfCode">
3226 <A NAME="pgfId-883797"></A>   ###########################################################################</P>
3227 <P CLASS="LotsOfCode">
3228 <A NAME="pgfId-883798"></A>   # Use the create marker object 'm' from above and modify the line object  #</P>
3229 <P CLASS="LotsOfCode">
3230 <A NAME="pgfId-883799"></A>   ###########################################################################</P>
3231 <P CLASS="LotsOfCode">
3232 <A NAME="pgfId-883800"></A>   a.marker=m                           # use the marker object</P>
3233 <P CLASS="LotsOfCode">
3234 <A NAME="pgfId-883801"></A>   m.list()                             # list the marker object attributes and values</P>
3235 <P CLASS="LotsOfCode">
3236 <A NAME="pgfId-883802"></A>   m.color = 44                         # change the marker color</P>
3237 <P CLASS="LotsOfCode">
3238 <A NAME="pgfId-883803"></A>   m.type ='square'                     # change the marker type</P>
3239 <P CLASS="LotsOfCode">
3240 <A NAME="pgfId-883804"></A>   m.size=20                            # change the marker size</P>
3241 <P CLASS="LotsOfCode">
3242 <A NAME="pgfId-883805"></A>&nbsp;</P>
3243 <P CLASS="LotsOfCode">
3244 <A NAME="pgfId-883806"></A>   x.show('xyvsy')                      # show list of xyvsy</P>
3245 <P CLASS="LotsOfCode">
3246 <A NAME="pgfId-883807"></A>   r=x.createxyvsy('test2','quick')     # create xyvsy 'test2'</P>
3247 <P CLASS="LotsOfCode">
3248 <A NAME="pgfId-883808"></A>   x.show('xyvsy')                      # show list of xyvsy</P>
3249 <P CLASS="LotsOfCode">
3250 <A NAME="pgfId-883809"></A>   x.removeobject(r)                    # remove xyvsy 'test2'</P>
3251 <P CLASS="LotsOfCode">
3252 <A NAME="pgfId-883810"></A>   x.show('xyvsy')                      # show list of xyvsy</P>
3253 <P CLASS="LotsOfCode">
3254 <A NAME="pgfId-883811"></A>&nbsp;</P>
3255 <P CLASS="LotsOfCode">
3256 <A NAME="pgfId-883812"></A>   ###################################################################</P>
3257 <P CLASS="LotsOfCode">
3258 <A NAME="pgfId-883813"></A>   # to see how x.update and x.mode work, see testoutline.py         #</P>
3259 <P CLASS="LotsOfCode">
3260 <A NAME="pgfId-883814"></A>   ###################################################################</P>
3261 <P CLASS="LotsOfCode">
3262 <A NAME="pgfId-883815"></A>   #x.update()</P>
3263 <P CLASS="LotsOfCode">
3264 <A NAME="pgfId-883816"></A>   #x.mode=1</P>
3265 <P CLASS="LotsOfCode">
3266 <A NAME="pgfId-883817"></A>   #x.mode=0</P>
3267 <P CLASS="LotsOfCode">
3268 <A NAME="pgfId-883818"></A>   print '***********************************************'</P>
3269 <P CLASS="LotsOfCode">
3270 <A NAME="pgfId-883819"></A>   print '******                                   ******'</P>
3271 <P CLASS="LotsOfCode">
3272 <A NAME="pgfId-883820"></A>   print '******   X y v s y   C O M P L E T E D   ******'</P>
3273 <P CLASS="LotsOfCode">
3274 <A NAME="pgfId-883821"></A>   print '******                                   ******'</P>
3275 <P CLASS="LotsOfCode">
3276 <A NAME="pgfId-883822"></A>   print '***********************************************'</P>
3277 <P CLASS="LotsOfCode">
3278 <A NAME="pgfId-883823"></A>&nbsp;</P>
3279 <P CLASS="LotsOfCode">
3280 <A NAME="pgfId-883824"></A>if __name__==&quot;__main__&quot;:</P>
3281 <P CLASS="LotsOfCode">
3282 <A NAME="pgfId-883825"></A>   examplexyvsy()</P>
3283 <P CLASS="LotsOfCode">
3284 <A NAME="pgfId-883826"></A>&nbsp;</P>
3285 </DIV>
3286 <DIV>
3287 <H4 CLASS="Heading1">
3288 <A NAME="pgfId-881693"></A><DIV>
3289 <IMG SRC="vcs-2.gif">
3290 </DIV>
3291 Yxvsx Graphics Method Example:</H4>
3292 <P CLASS="LotsOfCode">
3293 <A NAME="pgfId-883865"></A>#</P>
3294 <P CLASS="LotsOfCode">
3295 <A NAME="pgfId-883867"></A># Example Yxvsx (GYx) module</P>
3296 <P CLASS="LotsOfCode">
3297 <A NAME="pgfId-883868"></A>#</P>
3298 <P CLASS="LotsOfCode">
3299 <A NAME="pgfId-883869"></A>############################################################################</P>
3300 <P CLASS="LotsOfCode">
3301 <A NAME="pgfId-883870"></A>#                                                                          #</P>
3302 <P CLASS="LotsOfCode">
3303 <A NAME="pgfId-883871"></A># Module:       exampleyxvsx module                                        #</P>
3304 <P CLASS="LotsOfCode">
3305 <A NAME="pgfId-883872"></A>#                                                                          #</P>
3306 <P CLASS="LotsOfCode">
3307 <A NAME="pgfId-883873"></A># Copyright:    2000, Regents of the University of California              #</P>
3308 <P CLASS="LotsOfCode">
3309 <A NAME="pgfId-883874"></A>#               This software may not be distributed to others without     #</P>
3310 <P CLASS="LotsOfCode">
3311 <A NAME="pgfId-883875"></A>#               permission of the author.                                  #</P>
3312 <P CLASS="LotsOfCode">
3313 <A NAME="pgfId-883876"></A>#                                                                          #</P>
3314 <P CLASS="LotsOfCode">
3315 <A NAME="pgfId-883877"></A># Author:       Dean N. Williams, Lawrence Livermore National Laboratory   #</P>
3316 <P CLASS="LotsOfCode">
3317 <A NAME="pgfId-883878"></A>#               williams13@llnl.gov                                        #</P>
3318 <P CLASS="LotsOfCode">
3319 <A NAME="pgfId-883879"></A>#                                                                          #</P>
3320 <P CLASS="LotsOfCode">
3321 <A NAME="pgfId-883880"></A># Description:  Example use of VCS's Yxvsx graphics method.                #</P>
3322 <P CLASS="LotsOfCode">
3323 <A NAME="pgfId-883881"></A>#                                                                          #</P>
3324 <P CLASS="LotsOfCode">
3325 <A NAME="pgfId-883882"></A># Version:      1.0                                                        #</P>
3326 <P CLASS="LotsOfCode">
3327 <A NAME="pgfId-883883"></A>#                                                                          #</P>
3328 <P CLASS="LotsOfCode">
3329 <A NAME="pgfId-883884"></A>############################################################################</P>
3330 <P CLASS="LotsOfCode">
3331 <A NAME="pgfId-883885"></A>#</P>
3332 <P CLASS="LotsOfCode">
3333 <A NAME="pgfId-883886"></A>#</P>
3334 <P CLASS="LotsOfCode">
3335 <A NAME="pgfId-883887"></A>#</P>
3336 <P CLASS="LotsOfCode">
3337 <A NAME="pgfId-883888"></A>############################################################################</P>
3338 <P CLASS="LotsOfCode">
3339 <A NAME="pgfId-883889"></A>#                                                                          #</P>
3340 <P CLASS="LotsOfCode">
3341 <A NAME="pgfId-883890"></A># Import: vcs and cu modules.                                              #</P>
3342 <P CLASS="LotsOfCode">
3343 <A NAME="pgfId-883891"></A>#                                                                          #</P>
3344 <P CLASS="LotsOfCode">
3345 <A NAME="pgfId-883892"></A>############################################################################</P>
3346 <P CLASS="LotsOfCode">
3347 <A NAME="pgfId-883893"></A>def exampleyxvsx():</P>
3348 <P CLASS="LotsOfCode">
3349 <A NAME="pgfId-883894"></A>   import vcs,cu                        # import vcs and cu</P>
3350 <P CLASS="LotsOfCode">
3351 <A NAME="pgfId-883895"></A>&nbsp;</P>
3352 <P CLASS="LotsOfCode">
3353 <A NAME="pgfId-883896"></A>   f=cu.open('clt.nc')                  # open clt file</P>
3354 <P CLASS="LotsOfCode">
3355 <A NAME="pgfId-883897"></A>   u=f.getslab('u')                     # get slab u</P>
3356 <P CLASS="LotsOfCode">
3357 <A NAME="pgfId-883898"></A>   x=vcs.init()                         # construct vcs canvas</P>
3358 <P CLASS="LotsOfCode">
3359 <A NAME="pgfId-883899"></A>&nbsp;</P>
3360 <P CLASS="LotsOfCode">
3361 <A NAME="pgfId-883900"></A>   x.plot(u, 'default','yxvsx','quick') # plot slab the old way</P>
3362 <P CLASS="LotsOfCode">
3363 <A NAME="pgfId-883901"></A>   x.geometry(450,337,100,0)            # change the geometry and location</P>
3364 <P CLASS="LotsOfCode">
3365 <A NAME="pgfId-883902"></A>&nbsp;</P>
3366 <P CLASS="LotsOfCode">
3367 <A NAME="pgfId-883903"></A>   a=x.getyxvsx('quick')                # get 'quick' yxvsx</P>
3368 <P CLASS="LotsOfCode">
3369 <A NAME="pgfId-883904"></A>   if x.isgraphicsmethod(a):            # test object 'a' for graphics method</P>
3370 <P CLASS="LotsOfCode">
3371 <A NAME="pgfId-883905"></A>      print 'Yes, this is a graphics method'</P>
3372 <P CLASS="LotsOfCode">
3373 <A NAME="pgfId-883906"></A>      if x.isyxvsx(a):                  # test object 'a' if yxvsx</P>
3374 <P CLASS="LotsOfCode">
3375 <A NAME="pgfId-883907"></A>         print 'Yes, this is an yxvsx graphics method'</P>
3376 <P CLASS="LotsOfCode">
3377 <A NAME="pgfId-883908"></A>         a.list()                       # list the yxvsx's attributes and values</P>
3378 <P CLASS="LotsOfCode">
3379 <A NAME="pgfId-883909"></A>&nbsp;</P>
3380 <P CLASS="LotsOfCode">
3381 <A NAME="pgfId-883910"></A>   a.script('test','w')                 # save 'quick' yxvsx as a Python script</P>
3382 <P CLASS="LotsOfCode">
3383 <A NAME="pgfId-883911"></A>&nbsp;</P>
3384 <P CLASS="LotsOfCode">
3385 <A NAME="pgfId-883912"></A>   a.xticlabels('','')                  # remove the x-axis</P>
3386 <P CLASS="LotsOfCode">
3387 <A NAME="pgfId-883913"></A>   a.xticlabels('*')                    # put the x-axis</P>
3388 <P CLASS="LotsOfCode">
3389 <A NAME="pgfId-883914"></A>&nbsp;</P>
3390 <P CLASS="LotsOfCode">
3391 <A NAME="pgfId-883915"></A>   ############################################################################</P>
3392 <P CLASS="LotsOfCode">
3393 <A NAME="pgfId-883916"></A>   # Change the yxvsx line                                                    #</P>
3394 <P CLASS="LotsOfCode">
3395 <A NAME="pgfId-883917"></A>   ############################################################################</P>
3396 <P CLASS="LotsOfCode">
3397 <A NAME="pgfId-883918"></A>   a.line=0                             # same as 'solid'</P>
3398 <P CLASS="LotsOfCode">
3399 <A NAME="pgfId-883919"></A>   a.line=1                             # same as 'dash'</P>
3400 <P CLASS="LotsOfCode">
3401 <A NAME="pgfId-883920"></A>   a.line=2                             # same as 'dot'</P>
3402 <P CLASS="LotsOfCode">
3403 <A NAME="pgfId-883921"></A>   a.line=3                             # same as 'dash-dot'</P>
3404 <P CLASS="LotsOfCode">
3405 <A NAME="pgfId-883922"></A>   a.line=4                             # same as 'long-dash'</P>
3406 <P CLASS="LotsOfCode">
3407 <A NAME="pgfId-883923"></A>&nbsp;</P>
3408 <P CLASS="LotsOfCode">
3409 <A NAME="pgfId-883924"></A>   ############################################################################</P>
3410 <P CLASS="LotsOfCode">
3411 <A NAME="pgfId-883925"></A>   # Change the yxvsx line color                                              #</P>
3412 <P CLASS="LotsOfCode">
3413 <A NAME="pgfId-883926"></A>   ############################################################################</P>
3414 <P CLASS="LotsOfCode">
3415 <A NAME="pgfId-883927"></A>   a.linecolor=(77)</P>
3416 <P CLASS="LotsOfCode">
3417 <A NAME="pgfId-883928"></A>   a.linecolor=16</P>
3418 <P CLASS="LotsOfCode">
3419 <A NAME="pgfId-883929"></A>   a.linecolor=44                       # same as a.color=(44)</P>
3420 <P CLASS="LotsOfCode">
3421 <A NAME="pgfId-883930"></A>   a.linecolor=None</P>
3422 <P CLASS="LotsOfCode">
3423 <A NAME="pgfId-883931"></A>&nbsp;</P>
3424 <P CLASS="LotsOfCode">
3425 <A NAME="pgfId-883932"></A>   ############################################################################</P>
3426 <P CLASS="LotsOfCode">
3427 <A NAME="pgfId-883934"></A>   # Change the yxvsx marker                                                  #</P>
3428 <P CLASS="LotsOfCode">
3429 <A NAME="pgfId-883935"></A>   ############################################################################</P>
3430 <P CLASS="LotsOfCode">
3431 <A NAME="pgfId-883936"></A>   a.marker=1                           # Same as a.marker='dot'</P>
3432 <P CLASS="LotsOfCode">
3433 <A NAME="pgfId-883937"></A>   a.marker=2                           # Same as a.marker='plus'</P>
3434 <P CLASS="LotsOfCode">
3435 <A NAME="pgfId-883938"></A>   a.marker=3                           # Same as a.marker='star'</P>
3436 <P CLASS="LotsOfCode">
3437 <A NAME="pgfId-883939"></A>   a.marker=4                           # Same as a.marker='circle'</P>
3438 <P CLASS="LotsOfCode">
3439 <A NAME="pgfId-883940"></A>   a.marker=5                           # Same as a.marker='cross'</P>
3440 <P CLASS="LotsOfCode">
3441 <A NAME="pgfId-883941"></A>   a.marker=6                           # Same as a.marker='diamond'</P>
3442 <P CLASS="LotsOfCode">
3443 <A NAME="pgfId-883942"></A>   a.marker=7                           # Same as a.marker='triangle_up'</P>
3444 <P CLASS="LotsOfCode">
3445 <A NAME="pgfId-883943"></A>   a.marker=8                           # Same as a.marker='triangle_down'</P>
3446 <P CLASS="LotsOfCode">
3447 <A NAME="pgfId-883944"></A>   a.marker=9                           # Same as a.marker='triangle_left'</P>
3448 <P CLASS="LotsOfCode">
3449 <A NAME="pgfId-883945"></A>   a.marker=10                          # Same as a.marker='triangle_right'</P>
3450 <P CLASS="LotsOfCode">
3451 <A NAME="pgfId-883946"></A>   a.marker=11                          # Same as a.marker='square'</P>
3452 <P CLASS="LotsOfCode">
3453 <A NAME="pgfId-883947"></A>   a.marker=12                          # Same as a.marker='diamond_fill'</P>
3454 <P CLASS="LotsOfCode">
3455 <A NAME="pgfId-883948"></A>   a.marker=13                          # Same as a.marker='triangle_up_fill'</P>
3456 <P CLASS="LotsOfCode">
3457 <A NAME="pgfId-883949"></A>   a.marker=14                          # Same as a.marker='triangle_down_fill'</P>
3458 <P CLASS="LotsOfCode">
3459 <A NAME="pgfId-883950"></A>   a.marker=15                          # Same as a.marker='triangle_left_fill'</P>
3460 <P CLASS="LotsOfCode">
3461 <A NAME="pgfId-883951"></A>   a.marker=16                          # Same as a.marker='triangle_right_fill'</P>
3462 <P CLASS="LotsOfCode">
3463 <A NAME="pgfId-883952"></A>   a.marker=17                          # Same as a.marker='square_fill'</P>
3464 <P CLASS="LotsOfCode">
3465 <A NAME="pgfId-883953"></A>   a.marker=None                        # Draw no markers</P>
3466 <P CLASS="LotsOfCode">
3467 <A NAME="pgfId-883954"></A>&nbsp;</P>
3468 <P CLASS="LotsOfCode">
3469 <A NAME="pgfId-883955"></A>   ############################################################################</P>
3470 <P CLASS="LotsOfCode">
3471 <A NAME="pgfId-883956"></A>   # Change the yxvsx marker color                                            #</P>
3472 <P CLASS="LotsOfCode">
3473 <A NAME="pgfId-883957"></A>   ############################################################################</P>
3474 <P CLASS="LotsOfCode">
3475 <A NAME="pgfId-883958"></A>   a.marker='dot'</P>
3476 <P CLASS="LotsOfCode">
3477 <A NAME="pgfId-883959"></A>   a.markercolor=16</P>
3478 <P CLASS="LotsOfCode">
3479 <A NAME="pgfId-883960"></A>   a.markercolor=44                     # same as a.markercolor=(44)</P>
3480 <P CLASS="LotsOfCode">
3481 <A NAME="pgfId-883961"></A>   a.markercolor=None</P>
3482 <P CLASS="LotsOfCode">
3483 <A NAME="pgfId-883962"></A>&nbsp;</P>
3484 <P CLASS="LotsOfCode">
3485 <A NAME="pgfId-883963"></A>   ############################################################################</P>
3486 <P CLASS="LotsOfCode">
3487 <A NAME="pgfId-883964"></A>   # Change the yxvsx marker size                                             #</P>
3488 <P CLASS="LotsOfCode">
3489 <A NAME="pgfId-883965"></A>   ############################################################################</P>
3490 <P CLASS="LotsOfCode">
3491 <A NAME="pgfId-883966"></A>   a.markersize=5</P>
3492 <P CLASS="LotsOfCode">
3493 <A NAME="pgfId-883967"></A>   a.markersize=55</P>
3494 <P CLASS="LotsOfCode">
3495 <A NAME="pgfId-883968"></A>   a.markersize=10</P>
3496 <P CLASS="LotsOfCode">
3497 <A NAME="pgfId-883969"></A>   a.markersize=100</P>
3498 <P CLASS="LotsOfCode">
3499 <A NAME="pgfId-883970"></A>   a.markersize=300</P>
3500 <P CLASS="LotsOfCode">
3501 <A NAME="pgfId-883971"></A>   a.markersize=None</P>
3502 <P CLASS="LotsOfCode">
3503 <A NAME="pgfId-883972"></A>&nbsp;</P>
3504 <P CLASS="LotsOfCode">
3505 <A NAME="pgfId-883973"></A>   x.clear()                            # clear the VCS Canvas</P>
3506 <P CLASS="LotsOfCode">
3507 <A NAME="pgfId-883974"></A>   x.yxvsx(u, a,'default')              # plot yxvsx using 'default' template</P>
3508 <P CLASS="LotsOfCode">
3509 <A NAME="pgfId-883975"></A>&nbsp;</P>
3510 <P CLASS="LotsOfCode">
3511 <A NAME="pgfId-883976"></A>   x.show('template')                   # show the list of templates</P>
3512 <P CLASS="LotsOfCode">
3513 <A NAME="pgfId-883977"></A>   t=x.createtemplate('test')           # create template 'test' from 'default' template</P>
3514 <P CLASS="LotsOfCode">
3515 <A NAME="pgfId-883978"></A>   if x.istemplate(t):                  # test whether 't' is a template or not</P>
3516 <P CLASS="LotsOfCode">
3517 <A NAME="pgfId-883979"></A>      x.show('template')                # show the list of templates</P>
3518 <P CLASS="LotsOfCode">
3519 <A NAME="pgfId-883980"></A>&nbsp;</P>
3520 <P CLASS="LotsOfCode">
3521 <A NAME="pgfId-883981"></A>   x.clear()                            # clear the VCS Canvas</P>
3522 <P CLASS="LotsOfCode">
3523 <A NAME="pgfId-883982"></A>   x.plot(t,a,u)                        # plot yxvsx template 't', outline 'a', and arrays 'u':'v'</P>
3524 <P CLASS="LotsOfCode">
3525 <A NAME="pgfId-883983"></A>   x.clear()                            # clear the VCS Canvas</P>
3526 <P CLASS="LotsOfCode">
3527 <A NAME="pgfId-883984"></A>   x.yxvsx(a,u,t)                       # plot using outline 'a', array 'u':'v', and template 't'</P>
3528 <P CLASS="LotsOfCode">
3529 <A NAME="pgfId-883985"></A>&nbsp;</P>
3530 <P CLASS="LotsOfCode">
3531 <A NAME="pgfId-883986"></A>   x.show('line')                       # show the list of line secondary objects</P>
3532 <P CLASS="LotsOfCode">
3533 <A NAME="pgfId-883987"></A>   l=x.getline('red')                   # get line 'red'</P>
3534 <P CLASS="LotsOfCode">
3535 <A NAME="pgfId-883988"></A>   if x.issecondaryobject(l):           # check to see if it is a secondary object</P>
3536 <P CLASS="LotsOfCode">
3537 <A NAME="pgfId-883989"></A>      print 'Yes, this is a secondary object.'</P>
3538 <P CLASS="LotsOfCode">
3539 <A NAME="pgfId-883990"></A>      if x.isline(l):                   # check to see if it is a line</P>
3540 <P CLASS="LotsOfCode">
3541 <A NAME="pgfId-883991"></A>         print 'Yes, this is a line object.'</P>
3542 <P CLASS="LotsOfCode">
3543 <A NAME="pgfId-883992"></A>         l.list()                       # list the line's attributes and values</P>
3544 <P CLASS="LotsOfCode">
3545 <A NAME="pgfId-883993"></A>&nbsp;</P>
3546 <P CLASS="LotsOfCode">
3547 <A NAME="pgfId-883994"></A>   ###########################################################################</P>
3548 <P CLASS="LotsOfCode">
3549 <A NAME="pgfId-883996"></A>   # Use the create line object 'm' from above and modify the line object    #</P>
3550 <P CLASS="LotsOfCode">
3551 <A NAME="pgfId-883997"></A>   ###########################################################################</P>
3552 <P CLASS="LotsOfCode">
3553 <A NAME="pgfId-883998"></A>   a.line=l                             # use the line object</P>
3554 <P CLASS="LotsOfCode">
3555 <A NAME="pgfId-883999"></A>   l.list()                             # list the line object attributes and values</P>
3556 <P CLASS="LotsOfCode">
3557 <A NAME="pgfId-884000"></A>   l.color = 44                         # change the line color</P>
3558 <P CLASS="LotsOfCode">
3559 <A NAME="pgfId-884001"></A>   l.style ='dot'                       # change the line type</P>
3560 <P CLASS="LotsOfCode">
3561 <A NAME="pgfId-884002"></A>   l.width=4                            # change the line size</P>
3562 <P CLASS="LotsOfCode">
3563 <A NAME="pgfId-884003"></A>&nbsp;</P>
3564 <P CLASS="LotsOfCode">
3565 <A NAME="pgfId-884004"></A>   x.show('marker')                     # show the list of marker secondary objects</P>
3566 <P CLASS="LotsOfCode">
3567 <A NAME="pgfId-884005"></A>   m=x.getmarker('red')                 # get marker 'red'</P>
3568 <P CLASS="LotsOfCode">
3569 <A NAME="pgfId-884006"></A>   if x.issecondaryobject(m):           # check to see if it is a secondary object</P>
3570 <P CLASS="LotsOfCode">
3571 <A NAME="pgfId-884007"></A>      print 'Yes, this is a secondary object.'</P>
3572 <P CLASS="LotsOfCode">
3573 <A NAME="pgfId-884008"></A>      if x.ismarker(m):                 # check to see if it is a fill area</P>
3574 <P CLASS="LotsOfCode">
3575 <A NAME="pgfId-884009"></A>         print 'Yes, this is a marker object.'</P>
3576 <P CLASS="LotsOfCode">
3577 <A NAME="pgfId-884010"></A>         m.list()                       # list the marker's attributes and values</P>
3578 <P CLASS="LotsOfCode">
3579 <A NAME="pgfId-884011"></A>&nbsp;</P>
3580 <P CLASS="LotsOfCode">
3581 <A NAME="pgfId-884012"></A>   ###########################################################################</P>
3582 <P CLASS="LotsOfCode">
3583 <A NAME="pgfId-884013"></A>   # Use the create marker object 'm' from above and modify the line object  #</P>
3584 <P CLASS="LotsOfCode">
3585 <A NAME="pgfId-884014"></A>   ###########################################################################</P>
3586 <P CLASS="LotsOfCode">
3587 <A NAME="pgfId-884015"></A>   a.marker=m                           # use the marker object</P>
3588 <P CLASS="LotsOfCode">
3589 <A NAME="pgfId-884016"></A>   m.list()                             # list the marker object attributes and values</P>
3590 <P CLASS="LotsOfCode">
3591 <A NAME="pgfId-884017"></A>   m.color = 44                         # change the marker color</P>
3592 <P CLASS="LotsOfCode">
3593 <A NAME="pgfId-884018"></A>   m.type ='square'                     # change the marker type</P>
3594 <P CLASS="LotsOfCode">
3595 <A NAME="pgfId-884019"></A>   m.size=20                            # change the marker size</P>
3596 <P CLASS="LotsOfCode">
3597 <A NAME="pgfId-884020"></A>&nbsp;</P>
3598 <P CLASS="LotsOfCode">
3599 <A NAME="pgfId-884021"></A>   x.show('yxvsx')                      # show list of yxvsx</P>
3600 <P CLASS="LotsOfCode">
3601 <A NAME="pgfId-884022"></A>   r=x.createyxvsx('test2','quick')     # create yxvsx 'test2'</P>
3602 <P CLASS="LotsOfCode">
3603 <A NAME="pgfId-884023"></A>   x.show('yxvsx')                      # show list of yxvsx</P>
3604 <P CLASS="LotsOfCode">
3605 <A NAME="pgfId-884024"></A>   x.removeobject(r)                    # remove yxvsx 'test2'</P>
3606 <P CLASS="LotsOfCode">
3607 <A NAME="pgfId-884025"></A>   x.show('yxvsx')                      # show list of yxvsx</P>
3608 <P CLASS="LotsOfCode">
3609 <A NAME="pgfId-884026"></A>&nbsp;</P>
3610 <P CLASS="LotsOfCode">
3611 <A NAME="pgfId-884027"></A>   ##################################################################</P>
3612 <P CLASS="LotsOfCode">
3613 <A NAME="pgfId-884028"></A>   # to see how x.update and x.mode work, see testoutline.py        #</P>
3614 <P CLASS="LotsOfCode">
3615 <A NAME="pgfId-884029"></A>   ##################################################################</P>
3616 <P CLASS="LotsOfCode">
3617 <A NAME="pgfId-884030"></A>   #x.update()</P>
3618 <P CLASS="LotsOfCode">
3619 <A NAME="pgfId-884031"></A>   #x.mode=1</P>
3620 <P CLASS="LotsOfCode">
3621 <A NAME="pgfId-884032"></A>   #x.mode=0</P>
3622 <P CLASS="LotsOfCode">
3623 <A NAME="pgfId-884033"></A>   print '***********************************************'</P>
3624 <P CLASS="LotsOfCode">
3625 <A NAME="pgfId-884034"></A>   print '******                                   ******'</P>
3626 <P CLASS="LotsOfCode">
3627 <A NAME="pgfId-884035"></A>   print '******   Y x v s x   C O M P L E T E D   ******'</P>
3628 <P CLASS="LotsOfCode">
3629 <A NAME="pgfId-884036"></A>   print '******                                   ******'</P>
3630 <P CLASS="LotsOfCode">
3631 <A NAME="pgfId-884037"></A>   print '***********************************************'</P>
3632 <P CLASS="LotsOfCode">
3633 <A NAME="pgfId-884038"></A>&nbsp;</P>
3634 <P CLASS="LotsOfCode">
3635 <A NAME="pgfId-884039"></A>if __name__==&quot;__main__&quot;:</P>
3636 <P CLASS="LotsOfCode">
3637 <A NAME="pgfId-884040"></A>   exampleyxvsx()</P>
3638 </DIV>
3639 <DIV>
3640 <H4 CLASS="Heading1">
3641 <A NAME="pgfId-884079"></A><DIV>
3642 <IMG SRC="vcs-2.gif">
3643 </DIV>
3644 Colormap Example:</H4>
3645 <P CLASS="LotsOfCode">
3646 <A NAME="pgfId-837542"></A>#</P>
3647 <P CLASS="LotsOfCode">
3648 <A NAME="pgfId-884095"></A># Example Colormap (Cp) module</P>
3649 <P CLASS="LotsOfCode">
3650 <A NAME="pgfId-884096"></A>#</P>
3651 <P CLASS="LotsOfCode">
3652 <A NAME="pgfId-884097"></A>############################################################################</P>
3653 <P CLASS="LotsOfCode">
3654 <A NAME="pgfId-884098"></A>#                                                                          #</P>
3655 <P CLASS="LotsOfCode">
3656 <A NAME="pgfId-884099"></A># Module:       examplecolormap module                                     #</P>
3657 <P CLASS="LotsOfCode">
3658 <A NAME="pgfId-884100"></A>#                                                                          #</P>
3659 <P CLASS="LotsOfCode">
3660 <A NAME="pgfId-884101"></A># Copyright:    2000, Regents of the University of California              #</P>
3661 <P CLASS="LotsOfCode">
3662 <A NAME="pgfId-884102"></A>#               This software may not be distributed to others without     #</P>
3663 <P CLASS="LotsOfCode">
3664 <A NAME="pgfId-884103"></A>#               permission of the author.                                  #</P>
3665 <P CLASS="LotsOfCode">
3666 <A NAME="pgfId-884104"></A>#                                                                          #</P>
3667 <P CLASS="LotsOfCode">
3668 <A NAME="pgfId-884105"></A># Author:       Dean N. Williams, Lawrence Livermore National Laboratory   #</P>
3669 <P CLASS="LotsOfCode">
3670 <A NAME="pgfId-884106"></A>#               williams13@llnl.gov                                        #</P>
3671 <P CLASS="LotsOfCode">
3672 <A NAME="pgfId-884107"></A>#                                                                          #</P>
3673 <P CLASS="LotsOfCode">
3674 <A NAME="pgfId-884108"></A># Description:  Example use of VCS's color map.                            #</P>
3675 <P CLASS="LotsOfCode">
3676 <A NAME="pgfId-884109"></A>#                                                                          #</P>
3677 <P CLASS="LotsOfCode">
3678 <A NAME="pgfId-884110"></A># Version:      1.0                                                        #</P>
3679 <P CLASS="LotsOfCode">
3680 <A NAME="pgfId-884111"></A>#                                                                          #</P>
3681 <P CLASS="LotsOfCode">
3682 <A NAME="pgfId-884112"></A>############################################################################</P>
3683 <P CLASS="LotsOfCode">
3684 <A NAME="pgfId-884113"></A>#</P>
3685 <P CLASS="LotsOfCode">
3686 <A NAME="pgfId-884114"></A>#</P>
3687 <P CLASS="LotsOfCode">
3688 <A NAME="pgfId-884115"></A>#</P>
3689 <P CLASS="LotsOfCode">
3690 <A NAME="pgfId-884116"></A>############################################################################</P>
3691 <P CLASS="LotsOfCode">
3692 <A NAME="pgfId-884117"></A>#                                                                          #</P>
3693 <P CLASS="LotsOfCode">
3694 <A NAME="pgfId-884118"></A># Import: vcs and cu modules.                                              #</P>
3695 <P CLASS="LotsOfCode">
3696 <A NAME="pgfId-884119"></A>#                                                                          #</P>
3697 <P CLASS="LotsOfCode">
3698 <A NAME="pgfId-884120"></A>############################################################################</P>
3699 <P CLASS="LotsOfCode">
3700 <A NAME="pgfId-884121"></A>def examplecolormap():</P>
3701 <P CLASS="LotsOfCode">
3702 <A NAME="pgfId-884122"></A>   import vcs,cu                        # import vcs and cu</P>
3703 <P CLASS="LotsOfCode">
3704 <A NAME="pgfId-884123"></A>&nbsp;</P>
3705 <P CLASS="LotsOfCode">
3706 <A NAME="pgfId-884124"></A>   f=cu.open('example.nc')              # open clt file</P>
3707 <P CLASS="LotsOfCode">
3708 <A NAME="pgfId-884125"></A>   s=f.getslab('clt')                   # get slab clt</P>
3709 <P CLASS="LotsOfCode">
3710 <A NAME="pgfId-884126"></A>   x=vcs.init()                         # construct vcs canvas</P>
3711 <P CLASS="LotsOfCode">
3712 <A NAME="pgfId-884127"></A>&nbsp;</P>
3713 <P CLASS="LotsOfCode">
3714 <A NAME="pgfId-884128"></A>   x.plot(s,'default','isofill','quick')# plot slab the old way</P>
3715 <P CLASS="LotsOfCode">
3716 <A NAME="pgfId-884129"></A>   x.geometry(450,337,0,0)              # change the geometry</P>
3717 <P CLASS="LotsOfCode">
3718 <A NAME="pgfId-884130"></A>&nbsp;</P>
3719 <P CLASS="LotsOfCode">
3720 <A NAME="pgfId-884131"></A>   x.setcolormap(&quot;AMIP&quot;)                # change the colormap</P>
3721 <P CLASS="LotsOfCode">
3722 <A NAME="pgfId-884132"></A>&nbsp;</P>
3723 <P CLASS="LotsOfCode">
3724 <A NAME="pgfId-884133"></A>   ############################################################</P>
3725 <P CLASS="LotsOfCode">
3726 <A NAME="pgfId-884134"></A>   # Change the color map cell 31.                            #</P>
3727 <P CLASS="LotsOfCode">
3728 <A NAME="pgfId-884135"></A>   ############################################################</P>
3729 <P CLASS="LotsOfCode">
3730 <A NAME="pgfId-884136"></A>   x.setcolorcell(31,0,0,0)</P>
3731 <P CLASS="LotsOfCode">
3732 <A NAME="pgfId-884137"></A>   x.setcolorcell(31,100,0,0)</P>
3733 <P CLASS="LotsOfCode">
3734 <A NAME="pgfId-884138"></A>   x.setcolorcell(31,0,100,0)</P>
3735 <P CLASS="LotsOfCode">
3736 <A NAME="pgfId-884139"></A>   x.setcolorcell(31,0,0,100)</P>
3737 <P CLASS="LotsOfCode">
3738 <A NAME="pgfId-884140"></A>   x.setcolorcell(31,100,100,100)</P>
3739 <P CLASS="LotsOfCode">
3740 <A NAME="pgfId-884141"></A>   x.setcolorcell(31,70,70,70)</P>
3741 <P CLASS="LotsOfCode">
3742 <A NAME="pgfId-884993"></A>&nbsp;</P>
3743 <P CLASS="LotsOfCode">
3744 <A NAME="pgfId-885020"></A>   #################################################################</P>
3745 <P CLASS="LotsOfCode">
3746 <A NAME="pgfId-885034"></A>   # NOTE:                                                         #</P>
3747 <P CLASS="LotsOfCode">
3748 <A NAME="pgfId-885035"></A>   #       The colormapgui command will only work if the display   #</P>
3749 <P CLASS="LotsOfCode">
3750 <A NAME="pgfId-885036"></A>   #       depth is set to 8-bit pseudo color. The next release    #</P>
3751 <P CLASS="LotsOfCode">
3752 <A NAME="pgfId-885000"></A>   #       will allow for the colormap's graphical user interface  #</P>
3753 <P CLASS="LotsOfCode">
3754 <A NAME="pgfId-885001"></A>   #       (GUI) and the animation's GUI to work in 16-, 24-, or   #</P>
3755 <P CLASS="LotsOfCode">
3756 <A NAME="pgfId-885053"></A>   #       32-bit True color visual classes.                       #</P>
3757 <P CLASS="LotsOfCode">
3758 <A NAME="pgfId-885021"></A>   #################################################################</P>
3759 <P CLASS="LotsOfCode">
3760 <A NAME="pgfId-885062"></A>   x.colormapgui()</P>
3761 <P CLASS="LotsOfCode">
3762 <A NAME="pgfId-884994"></A>&nbsp;</P>
3763 <P CLASS="LotsOfCode">
3764 <A NAME="pgfId-884142"></A>&nbsp;</P>
3765 <P CLASS="LotsOfCode">
3766 <A NAME="pgfId-884143"></A>   print '*****************************************************'</P>
3767 <P CLASS="LotsOfCode">
3768 <A NAME="pgfId-884144"></A>   print '******                                         ******'</P>
3769 <P CLASS="LotsOfCode">
3770 <A NAME="pgfId-884145"></A>   print '******   C O L O R M A P   C O M P L E T E D   ******'</P>
3771 <P CLASS="LotsOfCode">
3772 <A NAME="pgfId-884146"></A>   print '******                                         ******'</P>
3773 <P CLASS="LotsOfCode">
3774 <A NAME="pgfId-884147"></A>   print '*****************************************************'</P>
3775 <P CLASS="LotsOfCode">
3776 <A NAME="pgfId-884148"></A>&nbsp;</P>
3777 <P CLASS="LotsOfCode">
3778 <A NAME="pgfId-884149"></A>&nbsp;</P>
3779 <P CLASS="LotsOfCode">
3780 <A NAME="pgfId-884150"></A>if __name__==&quot;__main__&quot;:</P>
3781 <P CLASS="LotsOfCode">
3782 <A NAME="pgfId-884151"></A>   examplecolormap()</P>
3783 </DIV>
3784 <DIV>
3785 <H4 CLASS="Heading1">
3786 <A NAME="pgfId-884187"></A><DIV>
3787 <IMG SRC="vcs-2.gif">
3788 </DIV>
3789 Hardcopy Example:</H4>
3790 <P CLASS="LotsOfCode">
3791 <A NAME="pgfId-884185"></A>#</P>
3792 <P CLASS="LotsOfCode">
3793 <A NAME="pgfId-884195"></A># Example Hardcopy module</P>
3794 <P CLASS="LotsOfCode">
3795 <A NAME="pgfId-884196"></A>#</P>
3796 <P CLASS="LotsOfCode">
3797 <A NAME="pgfId-884197"></A>############################################################################</P>
3798 <P CLASS="LotsOfCode">
3799 <A NAME="pgfId-884198"></A>#                                                                          #</P>
3800 <P CLASS="LotsOfCode">
3801 <A NAME="pgfId-884199"></A># Module:       examplehardcopy module                                     #</P>
3802 <P CLASS="LotsOfCode">
3803 <A NAME="pgfId-884200"></A>#                                                                          #</P>
3804 <P CLASS="LotsOfCode">
3805 <A NAME="pgfId-884201"></A># Copyright:    2000, Regents of the University of California              #</P>
3806 <P CLASS="LotsOfCode">
3807 <A NAME="pgfId-884202"></A>#               This software may not be distributed to others without     #</P>
3808 <P CLASS="LotsOfCode">
3809 <A NAME="pgfId-884203"></A>#               permission of the author.                                  #</P>
3810 <P CLASS="LotsOfCode">
3811 <A NAME="pgfId-884204"></A>#                                                                          #</P>
3812 <P CLASS="LotsOfCode">
3813 <A NAME="pgfId-884205"></A># Author:       Dean N. Williams, Lawrence Livermore National Laboratory   #</P>
3814 <P CLASS="LotsOfCode">
3815 <A NAME="pgfId-884206"></A>#               williams13@llnl.gov                                        #</P>
3816 <P CLASS="LotsOfCode">
3817 <A NAME="pgfId-884207"></A>#                                                                          #</P>
3818 <P CLASS="LotsOfCode">
3819 <A NAME="pgfId-884208"></A># Description:  Exmaple use of VCS's hard copy.                            #</P>
3820 <P CLASS="LotsOfCode">
3821 <A NAME="pgfId-884209"></A>#                                                                          #</P>
3822 <P CLASS="LotsOfCode">
3823 <A NAME="pgfId-884210"></A># Version:      1.0                                                        #</P>
3824 <P CLASS="LotsOfCode">
3825 <A NAME="pgfId-884211"></A>#                                                                          #</P>
3826 <P CLASS="LotsOfCode">
3827 <A NAME="pgfId-884212"></A>############################################################################</P>
3828 <P CLASS="LotsOfCode">
3829 <A NAME="pgfId-884213"></A>#</P>
3830 <P CLASS="LotsOfCode">
3831 <A NAME="pgfId-884214"></A>#</P>
3832 <P CLASS="LotsOfCode">
3833 <A NAME="pgfId-884215"></A>#</P>
3834 <P CLASS="LotsOfCode">
3835 <A NAME="pgfId-884216"></A>############################################################################</P>
3836 <P CLASS="LotsOfCode">
3837 <A NAME="pgfId-884217"></A>#                                                                          #</P>
3838 <P CLASS="LotsOfCode">
3839 <A NAME="pgfId-884218"></A># Import: vcs and cu modules.                                              #</P>
3840 <P CLASS="LotsOfCode">
3841 <A NAME="pgfId-884219"></A>#                                                                          #</P>
3842 <P CLASS="LotsOfCode">
3843 <A NAME="pgfId-884220"></A>############################################################################</P>
3844 <P CLASS="LotsOfCode">
3845 <A NAME="pgfId-884221"></A>def examplehardcopy():</P>
3846 <P CLASS="LotsOfCode">
3847 <A NAME="pgfId-884222"></A>   import vcs,cu                        # import vcs and cu</P>
3848 <P CLASS="LotsOfCode">
3849 <A NAME="pgfId-884223"></A>&nbsp;</P>
3850 <P CLASS="LotsOfCode">
3851 <A NAME="pgfId-884224"></A>   f=cu.open('clt.nc')                  # open clt file</P>
3852 <P CLASS="LotsOfCode">
3853 <A NAME="pgfId-884225"></A>   s=f.getslab('clt')                   # get slab clt</P>
3854 <P CLASS="LotsOfCode">
3855 <A NAME="pgfId-884226"></A>   x=vcs.init()                         # construct vcs canvas</P>
3856 <P CLASS="LotsOfCode">
3857 <A NAME="pgfId-884227"></A>&nbsp;</P>
3858 <P CLASS="LotsOfCode">
3859 <A NAME="pgfId-884228"></A>   x.plot(s,'default','isofill','quick', bg=1) # plot slab the old way, but in background</P>
3860 <P CLASS="LotsOfCode">
3861 <A NAME="pgfId-884229"></A>   x.gif('test')                        # generate gif file</P>
3862 <P CLASS="LotsOfCode">
3863 <A NAME="pgfId-884230"></A>   x.postscript('test')                 # generate postscript file</P>
3864 <P CLASS="LotsOfCode">
3865 <A NAME="pgfId-884231"></A>   x.cgm('test')                        # generate cgm file</P>
3866 <P CLASS="LotsOfCode">
3867 <A NAME="pgfId-897181"></A>   x.raster(`test')                                             # generate a raster file</P>
3868 <P CLASS="LotsOfCode">
3869 <A NAME="pgfId-884232"></A>&nbsp;</P>
3870 <P CLASS="LotsOfCode">
3871 <A NAME="pgfId-884233"></A>   x.setcolormap(&quot;AMIP&quot;)                # change the colormap</P>
3872 <P CLASS="LotsOfCode">
3873 <A NAME="pgfId-884234"></A>   x.clear()                            # clear all segments</P>
3874 <P CLASS="LotsOfCode">
3875 <A NAME="pgfId-884235"></A>&nbsp;</P>
3876 <P CLASS="LotsOfCode">
3877 <A NAME="pgfId-884236"></A>   t1=x.createtemplate('test1','AMIP_1of2') # create template 'test' from AMIPDUD</P>
3878 <P CLASS="LotsOfCode">
3879 <A NAME="pgfId-884237"></A>   t2=x.createtemplate('test2','AMIP_2of2') # create template 'test' from AMIPDUD</P>
3880 <P CLASS="LotsOfCode">
3881 <A NAME="pgfId-884238"></A>   isof=x.createisofill('test')         # create isofill graphics method from default</P>
3882 <P CLASS="LotsOfCode">
3883 <A NAME="pgfId-884239"></A>   isol=x.createisoline('test')         # create isoline graphics method from default</P>
3884 <P CLASS="LotsOfCode">
3885 <A NAME="pgfId-884240"></A>&nbsp;</P>
3886 <P CLASS="LotsOfCode">
3887 <A NAME="pgfId-884241"></A>   ######################################################################</P>
3888 <P CLASS="LotsOfCode">
3889 <A NAME="pgfId-884242"></A>   # draw isofill plot on top, then an isoline plot on the bottom       #</P>
3890 <P CLASS="LotsOfCode">
3891 <A NAME="pgfId-884243"></A>   ######################################################################</P>
3892 <P CLASS="LotsOfCode">
3893 <A NAME="pgfId-884244"></A>   x.plot(s,t1,isof, bg=1)              # generate isofill plot in background</P>
3894 <P CLASS="LotsOfCode">
3895 <A NAME="pgfId-884245"></A>   x.plot(s,t2, isol, bg=1)             # generate isoline plot in background</P>
3896 <P CLASS="LotsOfCode">
3897 <A NAME="pgfId-884246"></A>   x.gif('test2.gif')                   # generate gif file</P>
3898 <P CLASS="LotsOfCode">
3899 <A NAME="pgfId-884247"></A>   x.postscript('test2.ps')             # generate postscript file</P>
3900 <P CLASS="LotsOfCode">
3901 <A NAME="pgfId-884248"></A>   x.cgm('test2.cgm')                   # generate cgm file</P>
3902 <P CLASS="LotsOfCode">
3903 <A NAME="pgfId-884249"></A>&nbsp;</P>
3904 <P CLASS="LotsOfCode">
3905 <A NAME="pgfId-884250"></A>   x.clear()                            # clear all segments</P>
3906 <P CLASS="LotsOfCode">
3907 <A NAME="pgfId-884251"></A>&nbsp;</P>
3908 <P CLASS="LotsOfCode">
3909 <A NAME="pgfId-884252"></A>   ######################################################################</P>
3910 <P CLASS="LotsOfCode">
3911 <A NAME="pgfId-884253"></A>   # draw isofill plot, then overlay an isoline plot                    #</P>
3912 <P CLASS="LotsOfCode">
3913 <A NAME="pgfId-884254"></A>   ######################################################################</P>
3914 <P CLASS="LotsOfCode">
3915 <A NAME="pgfId-884255"></A>   x.plot(s, isof, bg=1)                # generate isofill plot</P>
3916 <P CLASS="LotsOfCode">
3917 <A NAME="pgfId-884256"></A>   x.plot(s, isol, 'default', bg=1)     # generate isoline plot</P>
3918 <P CLASS="LotsOfCode">
3919 <A NAME="pgfId-884257"></A>   x.gif('test3.gif')                   # generate gif file</P>
3920 <P CLASS="LotsOfCode">
3921 <A NAME="pgfId-884258"></A>&nbsp;</P>
3922 <P CLASS="LotsOfCode">
3923 <A NAME="pgfId-884260"></A>   x.clear()                            # clear all segments</P>
3924 <P CLASS="LotsOfCode">
3925 <A NAME="pgfId-884261"></A>   x.setcolormap(&quot;default&quot;)             # change colormap to default</P>
3926 <P CLASS="LotsOfCode">
3927 <A NAME="pgfId-884262"></A>   x.plot(s,bg=1)                       # plot boxfill</P>
3928 <P CLASS="LotsOfCode">
3929 <A NAME="pgfId-884263"></A>   x.postscript('test4.ps')             # create a postscript file</P>
3930 <P CLASS="LotsOfCode">
3931 <A NAME="pgfId-884264"></A>   x.('test4.ps')                # generate a gif file from the postscript file</P>
3932 <P CLASS="LotsOfCode">
3933 <A NAME="pgfId-884265"></A>&nbsp;</P>
3934 <P CLASS="LotsOfCode">
3935 <A NAME="pgfId-884266"></A>   print '*****************************************************'</P>
3936 <P CLASS="LotsOfCode">
3937 <A NAME="pgfId-884267"></A>   print '******                                         ******'</P>
3938 <P CLASS="LotsOfCode">
3939 <A NAME="pgfId-884268"></A>   print '******   H A R D C O P Y   C O M P L E T E D   ******'</P>
3940 <P CLASS="LotsOfCode">
3941 <A NAME="pgfId-884269"></A>   print '******                                         ******'</P>
3942 <P CLASS="LotsOfCode">
3943 <A NAME="pgfId-884270"></A>   print '*****************************************************'</P>
3944 <P CLASS="LotsOfCode">
3945 <A NAME="pgfId-884271"></A>&nbsp;</P>
3946 <P CLASS="LotsOfCode">
3947 <A NAME="pgfId-884272"></A>&nbsp;</P>
3948 <P CLASS="LotsOfCode">
3949 <A NAME="pgfId-884273"></A>if __name__==&quot;__main__&quot;:</P>
3950 <P CLASS="LotsOfCode">
3951 <A NAME="pgfId-884274"></A>   examplehardcopy()</P>
3952 </DIV>
3953 <DIV>
3954 <H4 CLASS="Heading1">
3955 <A NAME="pgfId-884306"></A><DIV>
3956 <IMG SRC="vcs-2.gif">
3957 </DIV>
3958 Picture Template Example:</H4>
3959 <P CLASS="LotsOfCode">
3960 <A NAME="pgfId-884304"></A>#</P>
3961 <P CLASS="LotsOfCode">
3962 <A NAME="pgfId-884314"></A># Example Picture Template (P) module</P>
3963 <P CLASS="LotsOfCode">
3964 <A NAME="pgfId-884315"></A>#</P>
3965 <P CLASS="LotsOfCode">
3966 <A NAME="pgfId-884316"></A>############################################################################</P>
3967 <P CLASS="LotsOfCode">
3968 <A NAME="pgfId-884317"></A>#                                                                          #</P>
3969 <P CLASS="LotsOfCode">
3970 <A NAME="pgfId-884318"></A># Module:       exampletemplate module                                     #</P>
3971 <P CLASS="LotsOfCode">
3972 <A NAME="pgfId-884319"></A>#                                                                          #</P>
3973 <P CLASS="LotsOfCode">
3974 <A NAME="pgfId-884320"></A># Copyright:    2000, Regents of the University of California              #</P>
3975 <P CLASS="LotsOfCode">
3976 <A NAME="pgfId-884321"></A>#               This software may not be distributed to others without     #</P>
3977 <P CLASS="LotsOfCode">
3978 <A NAME="pgfId-884322"></A>#               permission of the author.                                  #</P>
3979 <P CLASS="LotsOfCode">
3980 <A NAME="pgfId-884323"></A>#                                                                          #</P>
3981 <P CLASS="LotsOfCode">
3982 <A NAME="pgfId-884324"></A># Author:       Dean N. Williams, Lawrence Livermore National Laboratory   #</P>
3983 <P CLASS="LotsOfCode">
3984 <A NAME="pgfId-884325"></A>#               williams13@llnl.gov                                        #</P>
3985 <P CLASS="LotsOfCode">
3986 <A NAME="pgfId-884326"></A>#                                                                          #</P>
3987 <P CLASS="LotsOfCode">
3988 <A NAME="pgfId-884327"></A># Description:  Example use of VCS's template object.                      #</P>
3989 <P CLASS="LotsOfCode">
3990 <A NAME="pgfId-884328"></A>#                                                                          #</P>
3991 <P CLASS="LotsOfCode">
3992 <A NAME="pgfId-884329"></A># Version:      1.0                                                        #</P>
3993 <P CLASS="LotsOfCode">
3994 <A NAME="pgfId-884330"></A>#                                                                          #</P>
3995 <P CLASS="LotsOfCode">
3996 <A NAME="pgfId-884331"></A>############################################################################</P>
3997 <P CLASS="LotsOfCode">
3998 <A NAME="pgfId-884332"></A>#</P>
3999 <P CLASS="LotsOfCode">
4000 <A NAME="pgfId-884333"></A>#</P>
4001 <P CLASS="LotsOfCode">
4002 <A NAME="pgfId-884334"></A>#</P>
4003 <P CLASS="LotsOfCode">
4004 <A NAME="pgfId-884335"></A>############################################################################</P>
4005 <P CLASS="LotsOfCode">
4006 <A NAME="pgfId-884336"></A>#                                                                          #</P>
4007 <P CLASS="LotsOfCode">
4008 <A NAME="pgfId-884337"></A># Import: vcs and cu modules.                                              #</P>
4009 <P CLASS="LotsOfCode">
4010 <A NAME="pgfId-884338"></A>#                                                                          #</P>
4011 <P CLASS="LotsOfCode">
4012 <A NAME="pgfId-884339"></A>############################################################################</P>
4013 <P CLASS="LotsOfCode">
4014 <A NAME="pgfId-884340"></A>def exampletemplate():</P>
4015 <P CLASS="LotsOfCode">
4016 <A NAME="pgfId-884341"></A>   import vcs,cu                        # import vcs and cu</P>
4017 <P CLASS="LotsOfCode">
4018 <A NAME="pgfId-884342"></A>&nbsp;</P>
4019 <P CLASS="LotsOfCode">
4020 <A NAME="pgfId-884343"></A>   f=cu.open('clt.nc')                  # open clt file</P>
4021 <P CLASS="LotsOfCode">
4022 <A NAME="pgfId-884344"></A>   s=f.getslab('clt')                   # get slab clt</P>
4023 <P CLASS="LotsOfCode">
4024 <A NAME="pgfId-884345"></A>   x=vcs.init()                         # construct vcs canvas</P>
4025 <P CLASS="LotsOfCode">
4026 <A NAME="pgfId-884346"></A>&nbsp;</P>
4027 <P CLASS="LotsOfCode">
4028 <A NAME="pgfId-884347"></A>   x.show('template')                   # show the list of templates</P>
4029 <P CLASS="LotsOfCode">
4030 <A NAME="pgfId-884348"></A>   t=x.createtemplate('test','AMIP')    # create template 'test' from AMIP</P>
4031 <P CLASS="LotsOfCode">
4032 <A NAME="pgfId-884349"></A>   x.show('template')                   # show the list of templates</P>
4033 <P CLASS="LotsOfCode">
4034 <A NAME="pgfId-884350"></A>&nbsp;</P>
4035 <P CLASS="LotsOfCode">
4036 <A NAME="pgfId-884351"></A>   t.script('test','w')                 # save test template as a Python script</P>
4037 <P CLASS="LotsOfCode">
4038 <A NAME="pgfId-884352"></A>&nbsp;</P>
4039 <P CLASS="LotsOfCode">
4040 <A NAME="pgfId-884353"></A>   g=x.createisofill('test')            # create isofill 'test' from 'default' isofill</P>
4041 <P CLASS="LotsOfCode">
4042 <A NAME="pgfId-884354"></A>&nbsp;</P>
4043 <P CLASS="LotsOfCode">
4044 <A NAME="pgfId-884355"></A>   x.plot(g,s,t)                        # make isofill plot</P>
4045 <P CLASS="LotsOfCode">
4046 <A NAME="pgfId-884356"></A>#   x.isofill(g,s,t)                    # make isofill plot</P>
4047 <P CLASS="LotsOfCode">
4048 <A NAME="pgfId-884357"></A>&nbsp;</P>
4049 <P CLASS="LotsOfCode">
4050 <A NAME="pgfId-884358"></A>&nbsp;</P>
4051 <P CLASS="LotsOfCode">
4052 <A NAME="pgfId-884359"></A>   #############################################################################</P>
4053 <P CLASS="LotsOfCode">
4054 <A NAME="pgfId-884360"></A>   # Show the many different ways to show the template members (attributes)    #</P>
4055 <P CLASS="LotsOfCode">
4056 <A NAME="pgfId-884361"></A>   # and their values.                                                         #</P>
4057 <P CLASS="LotsOfCode">
4058 <A NAME="pgfId-884362"></A>   #############################################################################</P>
4059 <P CLASS="LotsOfCode">
4060 <A NAME="pgfId-884363"></A>   t.list()                 # list the templates members</P>
4061 <P CLASS="LotsOfCode">
4062 <A NAME="pgfId-884364"></A>   t.list('text')           # list only text members, same as t.list('Pt')</P>
4063 <P CLASS="LotsOfCode">
4064 <A NAME="pgfId-884365"></A>   t.list('format')         # list only format members, same as t.list('Pf')</P>
4065 <P CLASS="LotsOfCode">
4066 <A NAME="pgfId-884366"></A>   t.list('xtickmarks')     # list only xtickmarks members, same as t.list('Pxt')</P>
4067 <P CLASS="LotsOfCode">
4068 <A NAME="pgfId-884367"></A>   t.list('ytickmarks')     # list only ytickmarks members, same as t.list('Pyt')</P>
4069 <P CLASS="LotsOfCode">
4070 <A NAME="pgfId-884368"></A>   t.list('xlabels')        # list only xlabels members, same as t.list('Pxl')</P>
4071 <P CLASS="LotsOfCode">
4072 <A NAME="pgfId-884369"></A>   t.list('ylabels')        # list only ylabels members, same as t.list('Pyl')</P>
4073 <P CLASS="LotsOfCode">
4074 <A NAME="pgfId-884370"></A>   t.list('boxeslines')     # list only boxeslines members, same as t.list('Pbl')</P>
4075 <P CLASS="LotsOfCode">
4076 <A NAME="pgfId-884371"></A>   t.list('legend')         # list only legend member, same as t.list('Pls')</P>
4077 <P CLASS="LotsOfCode">
4078 <A NAME="pgfId-884372"></A>   t.list('data')           # list only data member, same as t.list('Pds')</P>
4079 <P CLASS="LotsOfCode">
4080 <A NAME="pgfId-884373"></A>   t.list('file')           # list only file member and its values</P>
4081 <P CLASS="LotsOfCode">
4082 <A NAME="pgfId-884374"></A>   t.file.list()            # list only file member and its values</P>
4083 <P CLASS="LotsOfCode">
4084 <A NAME="pgfId-884375"></A>   t.list('mean')           # list only mean member and its values</P>
4085 <P CLASS="LotsOfCode">
4086 <A NAME="pgfId-884376"></A>   t.mean.list()            # list only mean member and its values</P>
4087 <P CLASS="LotsOfCode">
4088 <A NAME="pgfId-884377"></A>&nbsp;</P>
4089 <P CLASS="LotsOfCode">
4090 <A NAME="pgfId-884379"></A>   #############################################################################</P>
4091 <P CLASS="LotsOfCode">
4092 <A NAME="pgfId-884380"></A>   # The screen x and y positions on the screen are normalized between 0 and 1 #</P>
4093 <P CLASS="LotsOfCode">
4094 <A NAME="pgfId-884381"></A>   # for both the x and y axis.                                                #</P>
4095 <P CLASS="LotsOfCode">
4096 <A NAME="pgfId-884382"></A>   #############################################################################</P>
4097 <P CLASS="LotsOfCode">
4098 <A NAME="pgfId-884383"></A>   t.mean.priority = 0      # remove the &quot;Mean&quot; text from the plot</P>
4099 <P CLASS="LotsOfCode">
4100 <A NAME="pgfId-884384"></A>   t.mean.priority = 1      # re-display the &quot;Mean&quot; text on the plot</P>
4101 <P CLASS="LotsOfCode">
4102 <A NAME="pgfId-884385"></A>   t.mean.x=0.5             # move the &quot;Mean&quot; text to x-axis center</P>
4103 <P CLASS="LotsOfCode">
4104 <A NAME="pgfId-884386"></A>   t.mean.y=0.5             # move the &quot;Mean&quot; text to y-axis center</P>
4105 <P CLASS="LotsOfCode">
4106 <A NAME="pgfId-884387"></A>&nbsp;</P>
4107 <P CLASS="LotsOfCode">
4108 <A NAME="pgfId-884388"></A>   #############################################################################</P>
4109 <P CLASS="LotsOfCode">
4110 <A NAME="pgfId-884389"></A>   # Position the data in front of the &quot;Mean&quot; text, then move the &quot;Mean&quot; text  #</P>
4111 <P CLASS="LotsOfCode">
4112 <A NAME="pgfId-884390"></A>   # in front of the data.                                                     #</P>
4113 <P CLASS="LotsOfCode">
4114 <A NAME="pgfId-884391"></A>   #############################################################################</P>
4115 <P CLASS="LotsOfCode">
4116 <A NAME="pgfId-884392"></A>   t.data.priority = 2</P>
4117 <P CLASS="LotsOfCode">
4118 <A NAME="pgfId-884393"></A>   t.data.priority=3</P>
4119 <P CLASS="LotsOfCode">
4120 <A NAME="pgfId-884395"></A>&nbsp;</P>
4121 <P CLASS="LotsOfCode">
4122 <A NAME="pgfId-884396"></A>   #############################################################################</P>
4123 <P CLASS="LotsOfCode">
4124 <A NAME="pgfId-884397"></A>   # Change the font representation for the &quot;Mean&quot; text.                       #</P>
4125 <P CLASS="LotsOfCode">
4126 <A NAME="pgfId-884398"></A>   # You can set the text by using text objects or text names.                 #</P>
4127 <P CLASS="LotsOfCode">
4128 <A NAME="pgfId-884399"></A>   #############################################################################</P>
4129 <P CLASS="LotsOfCode">
4130 <A NAME="pgfId-884400"></A>   tt = x.createtexttable('test')</P>
4131 <P CLASS="LotsOfCode">
4132 <A NAME="pgfId-884401"></A>   to = x.createtextorientation('test')</P>
4133 <P CLASS="LotsOfCode">
4134 <A NAME="pgfId-884402"></A>   t.mean.texttable = tt                # set texttable by using texttable object</P>
4135 <P CLASS="LotsOfCode">
4136 <A NAME="pgfId-884403"></A>   t.mean.textorientation = 'test'      # set textorientation by using textorientation name</P>
4137 <P CLASS="LotsOfCode">
4138 <A NAME="pgfId-884404"></A>   t.mean.list()                        # show the mean member and their new values</P>
4139 <P CLASS="LotsOfCode">
4140 <A NAME="pgfId-884405"></A>   tt.font=2                            # change the font</P>
4141 <P CLASS="LotsOfCode">
4142 <A NAME="pgfId-884406"></A>   to.height=40                         # change the height</P>
4143 <P CLASS="LotsOfCode">
4144 <A NAME="pgfId-884407"></A>&nbsp;</P>
4145 <P CLASS="LotsOfCode">
4146 <A NAME="pgfId-884408"></A>   #############################################################################</P>
4147 <P CLASS="LotsOfCode">
4148 <A NAME="pgfId-884409"></A>   # Change the legend space.                                                  #</P>
4149 <P CLASS="LotsOfCode">
4150 <A NAME="pgfId-884410"></A>   #############################################################################</P>
4151 <P CLASS="LotsOfCode">
4152 <A NAME="pgfId-884411"></A>   t.legend.list()                      # list the legend members</P>
4153 <P CLASS="LotsOfCode">
4154 <A NAME="pgfId-884412"></A>   x.mode=0                             # turn the automatic update off</P>
4155 <P CLASS="LotsOfCode">
4156 <A NAME="pgfId-884413"></A>   t.legend.x1=0.85</P>
4157 <P CLASS="LotsOfCode">
4158 <A NAME="pgfId-884414"></A>   t.legend.y1=0.90</P>
4159 <P CLASS="LotsOfCode">
4160 <A NAME="pgfId-884415"></A>   t.legend.x2=0.95</P>
4161 <P CLASS="LotsOfCode">
4162 <A NAME="pgfId-884416"></A>   t.legend.y2=0.16</P>
4163 <P CLASS="LotsOfCode">
4164 <A NAME="pgfId-884417"></A>   x.update()</P>
4165 <P CLASS="LotsOfCode">
4166 <A NAME="pgfId-884419"></A>&nbsp;</P>
4167 <P CLASS="LotsOfCode">
4168 <A NAME="pgfId-884420"></A>   print '*****************************************************'</P>
4169 <P CLASS="LotsOfCode">
4170 <A NAME="pgfId-884421"></A>   print '******                                         ******'</P>
4171 <P CLASS="LotsOfCode">
4172 <A NAME="pgfId-884422"></A>   print '******   T E M P L A T E   C O M P L E T E D   ******'</P>
4173 <P CLASS="LotsOfCode">
4174 <A NAME="pgfId-884423"></A>   print '******                                         ******'</P>
4175 <P CLASS="LotsOfCode">
4176 <A NAME="pgfId-884424"></A>   print '*****************************************************'</P>
4177 <P CLASS="LotsOfCode">
4178 <A NAME="pgfId-884425"></A>&nbsp;</P>
4179 <P CLASS="LotsOfCode">
4180 <A NAME="pgfId-884426"></A>if __name__==&quot;__main__&quot;:</P>
4181 <P CLASS="LotsOfCode">
4182 <A NAME="pgfId-884427"></A>   exampletemplate()</P>
4183 <P CLASS="LotsOfCode">
4184 <A NAME="pgfId-884428"></A>&nbsp;</P>
4185 </DIV>
4186 <DIV>
4187 <H4 CLASS="Heading1">
4188 <A NAME="pgfId-885079"></A><DIV>
4189 <IMG SRC="vcs-2.gif">
4190 </DIV>
4191 Simple Animation Example:</H4>
4192 <P CLASS="LotsOfCode">
4193 <A NAME="pgfId-885080"></A>#</P>
4194 <P CLASS="LotsOfCode">
4195 <A NAME="pgfId-885081"></A># Simple animation module</P>
4196 <P CLASS="LotsOfCode">
4197 <A NAME="pgfId-885082"></A>#</P>
4198 <P CLASS="LotsOfCode">
4199 <A NAME="pgfId-885083"></A>############################################################################</P>
4200 <P CLASS="LotsOfCode">
4201 <A NAME="pgfId-885084"></A>#                                                                          #</P>
4202 <P CLASS="LotsOfCode">
4203 <A NAME="pgfId-885085"></A># Module:       simpleanimation module                                     #</P>
4204 <P CLASS="LotsOfCode">
4205 <A NAME="pgfId-885086"></A>#                                                                          #</P>
4206 <P CLASS="LotsOfCode">
4207 <A NAME="pgfId-885087"></A># Copyright:    2000, Regents of the University of California              #</P>
4208 <P CLASS="LotsOfCode">
4209 <A NAME="pgfId-885088"></A>#               This software may not be distributed to others without     #</P>
4210 <P CLASS="LotsOfCode">
4211 <A NAME="pgfId-885089"></A>#               permission of the author.                                  #</P>
4212 <P CLASS="LotsOfCode">
4213 <A NAME="pgfId-885090"></A>#                                                                          #</P>
4214 <P CLASS="LotsOfCode">
4215 <A NAME="pgfId-885091"></A># Author:       Dean N. Williams, Lawrence Livermore National Laboratory   #</P>
4216 <P CLASS="LotsOfCode">
4217 <A NAME="pgfId-885092"></A>#               williams13@llnl.gov                                        #</P>
4218 <P CLASS="LotsOfCode">
4219 <A NAME="pgfId-885093"></A>#                                                                          #</P>
4220 <P CLASS="LotsOfCode">
4221 <A NAME="pgfId-885094"></A># Description:  Simple animation example.                                  #</P>
4222 <P CLASS="LotsOfCode">
4223 <A NAME="pgfId-885095"></A>#               NOTE:                                                      #</P>
4224 <P CLASS="LotsOfCode">
4225 <A NAME="pgfId-885096"></A>#                     The animation module will only work if the display   #</P>
4226 <P CLASS="LotsOfCode">
4227 <A NAME="pgfId-885097"></A>#                     depth is set to 8-bit pseudo color. The next release #</P>
4228 <P CLASS="LotsOfCode">
4229 <A NAME="pgfId-885098"></A>#                     will allow for the animation's graphical user        #</P>
4230 <P CLASS="LotsOfCode">
4231 <A NAME="pgfId-885099"></A>#                     interface (GUI) and the colormap's GUI to display    #</P>
4232 <P CLASS="LotsOfCode">
4233 <A NAME="pgfId-885100"></A>#                     in 16-, 24-, or 32-bit True color visual classess.   #</P>
4234 <P CLASS="LotsOfCode">
4235 <A NAME="pgfId-885101"></A>#                                                                          #</P>
4236 <P CLASS="LotsOfCode">
4237 <A NAME="pgfId-885102"></A># Version:      1.0                                                        #</P>
4238 <P CLASS="LotsOfCode">
4239 <A NAME="pgfId-885103"></A>#                                                                          #</P>
4240 <P CLASS="LotsOfCode">
4241 <A NAME="pgfId-885104"></A>############################################################################</P>
4242 <P CLASS="LotsOfCode">
4243 <A NAME="pgfId-885105"></A>#</P>
4244 <P CLASS="LotsOfCode">
4245 <A NAME="pgfId-885106"></A>#</P>
4246 <P CLASS="LotsOfCode">
4247 <A NAME="pgfId-885107"></A>#</P>
4248 <P CLASS="LotsOfCode">
4249 <A NAME="pgfId-885108"></A>############################################################################</P>
4250 <P CLASS="LotsOfCode">
4251 <A NAME="pgfId-885109"></A>#                                                                          #</P>
4252 <P CLASS="LotsOfCode">
4253 <A NAME="pgfId-885110"></A># Import: vcs  and cdms modules.                                           #</P>
4254 <P CLASS="LotsOfCode">
4255 <A NAME="pgfId-885111"></A>#                                                                          #</P>
4256 <P CLASS="LotsOfCode">
4257 <A NAME="pgfId-885112"></A>############################################################################</P>
4258 <P CLASS="LotsOfCode">
4259 <A NAME="pgfId-885113"></A>def simpleanimation():</P>
4260 <P CLASS="LotsOfCode">
4261 <A NAME="pgfId-885114"></A>   import vcs,cdms                      # import vcs and cdms</P>
4262 <P CLASS="LotsOfCode">
4263 <A NAME="pgfId-885115"></A>&nbsp;</P>
4264 <P CLASS="LotsOfCode">
4265 <A NAME="pgfId-885116"></A>   #####################################################################</P>
4266 <P CLASS="LotsOfCode">
4267 <A NAME="pgfId-885117"></A>   # See the CDMS document on how to ingest data. Also see the CU and  #</P>
4268 <P CLASS="LotsOfCode">
4269 <A NAME="pgfId-885118"></A>   # the Numeric documents on alternative ways to import data into VCS #</P>
4270 <P CLASS="LotsOfCode">
4271 <A NAME="pgfId-885119"></A>   #####################################################################</P>
4272 <P CLASS="LotsOfCode">
4273 <A NAME="pgfId-885120"></A>&nbsp;</P>
4274 <P CLASS="LotsOfCode">
4275 <A NAME="pgfId-885121"></A>   f=cdms.openDataset('example.nc')     # open example file</P>
4276 <P CLASS="LotsOfCode">
4277 <A NAME="pgfId-885122"></A>   clt=f.variables['clt']               # get variable clt</P>
4278 <P CLASS="LotsOfCode">
4279 <A NAME="pgfId-885123"></A>   s=clt[0]                                                      # get clt data</P>
4280 <P CLASS="LotsOfCode">
4281 <A NAME="pgfId-885124"></A>&nbsp;</P>
4282 <P CLASS="LotsOfCode">
4283 <A NAME="pgfId-885125"></A>   ##################################################################</P>
4284 <P CLASS="LotsOfCode">
4285 <A NAME="pgfId-885126"></A>   # At the moment, VCS can only animate one variable at a time.    #</P>
4286 <P CLASS="LotsOfCode">
4287 <A NAME="pgfId-885127"></A>   ##################################################################           </P>
4288 <P CLASS="LotsOfCode">
4289 <A NAME="pgfId-885128"></A>   x=vcs.init()                # initialize vcs</P>
4290 <P CLASS="LotsOfCode">
4291 <A NAME="pgfId-885129"></A>   x.plot(s,variable=clt)      # plot data using default values</P>
4292 <P CLASS="LotsOfCode">
4293 <A NAME="pgfId-885233"></A>   x.animate()</P>
4294 <P CLASS="LotsOfCode">
4295 <A NAME="pgfId-885130"></A>   </P>
4296 <P CLASS="LotsOfCode">
4297 <A NAME="pgfId-885131"></A>   print '*********************************************************************'</P>
4298 <P CLASS="LotsOfCode">
4299 <A NAME="pgfId-885132"></A>   print '******                                                         ******'</P>
4300 <P CLASS="LotsOfCode">
4301 <A NAME="pgfId-885133"></A>   print '******   S I M P L E   A N I M A T I O N   C O M P L E T E D   ******'</P>
4302 <P CLASS="LotsOfCode">
4303 <A NAME="pgfId-885134"></A>   print '******                                                         ******'</P>
4304 <P CLASS="LotsOfCode">
4305 <A NAME="pgfId-885135"></A>   print '*********************************************************************'</P>
4306 <P CLASS="LotsOfCode">
4307 <A NAME="pgfId-885136"></A>&nbsp;</P>
4308 <P CLASS="LotsOfCode">
4309 <A NAME="pgfId-885137"></A>if __name__==&quot;__main__&quot;:</P>
4310 <P CLASS="LotsOfCode">
4311 <A NAME="pgfId-885138"></A>   simpleanimation()</P>
4312 </DIV>
4313 <P><A HREF="vcs.html">Go to Main</A>      <A HREF="vcs-7.html">Go to Previous</A>       <A HREF="vcs-9.html">Go to Next</A></P>
4314 </BODY>
4315 </HTML>
Note: See TracBrowser for help on using the browser.