[cig-commits] r5798 - geodyn/3D/MAG/trunk/idl

wei at geodynamics.org wei at geodynamics.org
Wed Jan 17 10:13:46 PST 2007


Author: wei
Date: 2007-01-17 10:13:46 -0800 (Wed, 17 Jan 2007)
New Revision: 5798

Modified:
   geodyn/3D/MAG/trunk/idl/magmovieCIG.pro
Log:
Corrections on magmovie procedure. Problem with movie display color still not resolved.

Modified: geodyn/3D/MAG/trunk/idl/magmovieCIG.pro
===================================================================
--- geodyn/3D/MAG/trunk/idl/magmovieCIG.pro	2007-01-17 01:54:39 UTC (rev 5797)
+++ geodyn/3D/MAG/trunk/idl/magmovieCIG.pro	2007-01-17 18:13:46 UTC (rev 5798)
@@ -1,333 +1,342 @@
-;A PROCEDURE TO CREATE A BYTE ARRAY FOR MAKING A MOVIE OF
-;MAGNETOCONVECTION OR DYNAMOS USING RESULTS FROM PROGRAM mag
-
-;THIS PROCEDURE IS MEANT TO DISPLAY RESULTS AT MID-DEPTH OR THE OUTER SURFACE
+;A PROCEDURE TO CREATE A BYTE ARRAY FOR MAKING A MOVIE OF
+;MAGNETOCONVECTION OR DYNAMOS USING RESULTS FROM PROGRAM mag
+
+;THIS PROCEDURE IS MEANT TO DISPLAY RESULTS AT MID-DEPTH OR THE OUTER SURFACE
 ;IN MAP VIEW, ASSUMING SOME LONGITUDINAL SYMMETRY.
 
 ;THIS PROCEDURE ALSO CREATES JPG FILES OF THE IMAGES, FOR WEB MOVIES.
 ;NOTE: The TVRD() and WRITE_JPEG commands may have to be modified, depending on the type of display the image is created on. Consult IDL manual for details.
-;
-
-; *************  TO DISPLAY MOVIE, ENTER "MOVIE,FRAMES,ORDER=0" AFTER
+;
+
+; *************  TO DISPLAY MOVIE, ENTER "MOVIE,FRAMES,ORDER=0" AFTER
 ; *************  THIS PROGRAM HAS TERMINATED
 
 ;SET UP X-WINDOW FOR COLOR DISPLAY
 SET_PLOT,'X'
 ;SET DEVICE FOR COLOR on Mac
-DEVICE, RETAIN=2, DECOMPOSED=0
-
-;DEFINE THE VALUE OF PI:
-	PI= 3.1415926
-;ACCESS RGB-VALUES OF COLOR TABLE
-         COMMON COLORS,R_ORIG,G_ORIG,B_ORIG,R_CURR,G_CURR,B_CURR
-
-;READS IN DATA FILENAME.
-	FILENAME=''
-         GIFNAME=''
-         GIFFULLNAME=''
-	PRINT,'ENTER MOVIE DATA FILENAME:'
-	READ,FILENAME
-
-;OPEN DATA FILE AND READ PRELIMINARIES
-	OPENR, 1, FILENAME                      ;OPEN FILE FOR READ
-	RUNID=' '
-	READF,1,RUNID               		;IDENTIFYING HEADER: RUNID
-	READF,1,TSCALE,VSCALE                   ;TIME SCALE, VELOCITY SCALE
-
-
-	READF,1,NR,NI,NPFULL,NSYM,NFRAME        ;RECORD NUMBERS & FRAMES
-
-         PRINT,RUNID
-         PRINT,'NR,NI,NPFULL,NSYM,NFRAME= ',NR,NI,NPFULL,NSYM,NFRAME
-
-         PRINT,'Stop at frame NFSTOP ?'
-         READ,NFSTOP
-         PRINT,'Interpolate frames? No=0  Yes=1'
-         READ,IINTER
-
-;NUMBER OF FRAMES
-         NFR=(NFSTOP+2)*(IINTER+1)
-
-;NOTE: NSYM=N-FOLD SYMMETRY IN PHI:
-         NP=NPFULL/NSYM
-         NPFULL=NPFULL+1                         ;WRAP-AROUND POINT ADDED
-
-;CHOOSE A VARIABLE
-         CHOICE=1
-;          IF IOP GT 1 THEN BEGIN
-         PRINT,'SELECT DISPLAY (Br surface=1, Br middepth=2):'
-	READ,CHOICE
-         PRINT,'Select Polarity (Reverse=1; Normal=-1):'
-	READ,POLAR
-;           ENDIF
-
-;GIF-FILE OPTION
-         PRINT,'CREATE JPEG-FILES FOR WEB DISPLAY ?  NO=0  YES=1'
-         READ,IGIF
-         IF IGIF EQ 1 THEN BEGIN
-           PRINT,'ENTER JPG-FILENAME (WITHOUT SUFFIXES):'
-           READ,GIFNAME
-         ENDIF
-
-;DECLARE COORDINATE ARRAYS
-         THET  = FLTARR(NI)
-         PHI   = FLTARR(NPFULL)
-         LON   = FLTARR(NPFULL)
-         LAT   = FLTARR(NI)
-;DEFINE DATA ARRAY SIZES
-          V1   = FLTARR(NP)
-          B1   = FLTARR(NP)
-          B0   = FLTARR(NP)
-           V   = FLTARR(NPFULL,NI)
-           VI  = FLTARR(NPFULL,NI)
-
+DEVICE, RETAIN=2, DECOMPOSED=0
+
+;DEFINE THE VALUE OF PI:
+	PI= 3.1415926
+;ACCESS RGB-VALUES OF COLOR TABLE
+         COMMON COLORS,R_ORIG,G_ORIG,B_ORIG,R_CURR,G_CURR,B_CURR
+
+;READS IN DATA FILENAME.
+	FILENAME=''
+         GIFNAME=''
+         GIFFULLNAME=''
+	PRINT,'ENTER MOVIE DATA FILENAME:'
+	READ,FILENAME
+
+;OPEN DATA FILE AND READ PRELIMINARIES
+	OPENR, 1, FILENAME                      ;OPEN FILE FOR READ
+	RUNID=' '
+	READF,1,RUNID               		;IDENTIFYING HEADER: RUNID
+	READF,1,TSCALE,VSCALE                   ;TIME SCALE, VELOCITY SCALE
+
+
+	READF,1,NR,NI,NPFULL,NSYM,NFRAME        ;RECORD NUMBERS & FRAMES
+
+         PRINT,RUNID
+         PRINT,'NR,NI,NPFULL,NSYM,NFRAME= ',NR,NI,NPFULL,NSYM,NFRAME
+
+;DEFAULTS
+	NFSTOP=NFRAME-1
+	IINTER=0
+;INTERPOLATION AND FRAMES
+         PRINT,'Stop at frame NFSTOP ?'
+         READ,NFSTOP
+         PRINT,'Interpolate frames? No=0  Yes=1'
+         READ,IINTER
+
+;NUMBER OF FRAMES
+         NFR=(NFSTOP+2)*(IINTER+1)
+
+;NOTE: NSYM=N-FOLD SYMMETRY IN PHI:
+         NP=NPFULL/NSYM
+         NPFULL=NPFULL+1                         ;WRAP-AROUND POINT ADDED
+
+;CHOOSE A VARIABLE
+         CHOICE=1
+;          IF IOP GT 1 THEN BEGIN
+         PRINT,'SELECT DISPLAY (Br surface=1, Br middepth=2):'
+	READ,CHOICE
+         PRINT,'Select Polarity (Reverse=1; Normal=-1):'
+	READ,POLAR
+;           ENDIF
+
+;GIF-FILE OPTION
+         PRINT,'CREATE JPEG-FILES FOR WEB DISPLAY ?  NO=0  YES=1'
+         READ,IGIF
+         IF IGIF EQ 1 THEN BEGIN
+           PRINT,'ENTER JPG-FILENAME (WITHOUT SUFFIXES):'
+           READ,GIFNAME
+         ENDIF
+
+;DECLARE COORDINATE ARRAYS
+         THET  = FLTARR(NI)
+         PHI   = FLTARR(NPFULL)
+         LON   = FLTARR(NPFULL)
+         LAT   = FLTARR(NI)
+;DEFINE DATA ARRAY SIZES
+          V1   = FLTARR(NP)
+          B1   = FLTARR(NP)
+          B0   = FLTARR(NP)
+           V   = FLTARR(NPFULL,NI)
+           VI  = FLTARR(NPFULL,NI)
+
 ;DEFINE WINDOW SIZE
-	 WXSIZE=300
-	PRINT,'WINDOW SIZE IN PIXEL?  DEFAULT=300'
-         READ,WXSIZE
-         WYSIZE=WXSIZE
-
-;DIMENSION THE BYTE ARRAY
-	FRAMES=BYTARR(WXSIZE,WYSIZE,NFR)
-
-;CREATE A WINDOW
-	WINDOW,2,XSIZE=WXSIZE,YSIZE=WYSIZE
-
-;READ IN COLATITUDES
-	READF,1,THET
-        
-
-
-;create array PHI of longitudes of data points (in radians)
-	PI2NP = 2*PI/(NPFULL-1)
-	PHI=PI2NP*(FINDGEN(NPFULL))
-;converts PHI to array LON from -180 to 180 degrees
-	LON=180*PHI/PI - 180.0
-;converts THET into array LAT from 90 to -90 degrees
-         LAT=90-180*THET/PI
-
-
-;SET UP CONTOUR LEVELS AND COLOR SCHEME
-
-;NUMBER OF CONTOURS
-	NLV=17
-;SCALE FACTOR
-         VSCALE=1.0
-;PROJECTION ANGLES
-         INCL=30.
-         LONSHIFT=0.0
-
-;COLORS
-	CTABLE=39                        ; 39: rainbow, 0: black/white
-	LOADCT,CTABLE                   ;LOADS COLOR TABLE NUMBER
-; SELF-DEFINED COLOR TABLE
-; BLACK COLOR AT START OF SPECTRUM
-         R_CURR(000)= 00 & G_CURR(000)= 00 & B_CURR(000)= 00
-; WHITE COLOR AT END OF SPECTRUM
-;       R_CURR(255)=255 & G_CURR(255)=255 & B_CURR(255)=255
-; DARK GREY
-         R_CURR( 01)= 90 & G_CURR( 01)= 90 & B_CURR( 01)= 90
-; LIGHT GREY
-         R_CURR( 02)=190 & G_CURR( 02)=190 & B_CURR( 02)=190
-
-         R_CURR( 60)= 35 & G_CURR( 70)=  0 & B_CURR( 70)=230
-         R_CURR( 70)= 20 & G_CURR( 70)=  0 & B_CURR( 70)=245
-         R_CURR( 80)=  0 & G_CURR( 80)= 60 & B_CURR( 80)=255
-         R_CURR( 90)=  0 & G_CURR( 90)=110 & B_CURR( 90)=255
-         R_CURR(100)=  0 & G_CURR(100)=150 & B_CURR(100)=255
-         R_CURR(110)= 20 & G_CURR(110)=200 & B_CURR(110)=255
-         R_CURR(120)= 70 & G_CURR(120)=240 & B_CURR(120)=255
-         R_CURR(130)=150 & G_CURR(130)=255 & B_CURR(130)=240
-         R_CURR(140)=225 & G_CURR(140)=255 & B_CURR(140)=225
-
-         R_CURR(150)=255 & G_CURR(150)=255 & B_CURR(150)=185
-         R_CURR(160)=255 & G_CURR(160)=255 & B_CURR(160)= 75
-         R_CURR(170)=255 & G_CURR(170)=225 & B_CURR(170)=  0
-         R_CURR(180)=255 & G_CURR(180)=175 & B_CURR(180)=  0
-         R_CURR(190)=255 & G_CURR(190)=125 & B_CURR(190)=  0
-         R_CURR(192)=255 & G_CURR(192)= 75 & B_CURR(192)=  0
-         R_CURR(194)=255 & G_CURR(194)=  0 & B_CURR(194)=  0
-         R_CURR(196)=230 & G_CURR(196)=  0 & B_CURR(196)= 35
-
-         TVLCT,R_CURR,G_CURR,B_CURR
-
-   VCOLORS=[70,80,90,100,110,120,130,140,150,160,170,180,190,192,194,196,$
-            196,70]
-
-;  VCOLORS=[35,45,55,65,75,85,95,115,156,166,172,180,187,194,200,206,211]
-
-	!P.THICK=2                      ;DRAWS THICK LINES
-         !P.POSITION=[.025,.025,.975,.975] ;ENSURE SQUARE FIGURE
-	ICTC=0  ;NO TANGENT CYLINDER -- DEFAULT
-
-;************************************************************************
-;READ IN DATA ARRAYS FROM FORTRAN DATAFILE INTO IDL ARRAYS.
-;**************************************************
-;**************************************************
-;BEGIN TO MAKE MOVIE
-;**************************************************
-
-;MAIN FRAME LOOP
-         IFR=-1
-         IGIFFR=0
-FOR IFRAME=0,NFSTOP-1 DO BEGIN
-         IFR=IFR+1
-
-         READF,1,IDAT,TIME
-         PRINT,'FRAME= ',IDAT-1,'  TIME= ',TIME
-
-;BUILD 2D ARRAYS
-	FOR IT=0,NI-1 DO BEGIN
-	READF,1,B0
-
-
-;CONSTRUCT FULL 2D ARRAYS
-         IF CHOICE EQ 1 THEN BEGIN
-           IF IINTER EQ 1 THEN BEGIN
-              FOR NS=0,NSYM-1 DO BEGIN
-                 J0=NS*NP
-                 J1=J0+NP-1
-                 VI(J0:J1,IT)=0.5*(B0+V(J0:J1,IT))
-              ENDFOR
-              VI(NPFULL-1,IT)=0.5*(B0(0)+V(NPFULL-1,IT))
-           ENDIF
-
-              FOR NS=0,NSYM-1 DO BEGIN
-                 J0=NS*NP
-                 J1=J0+NP-1
-                 V(J0:J1,IT)=B0
-              END
-              V(NPFULL-1,IT)=B0(0)
-           ENDIF
-        	ENDFOR ;END OF IMAGE READ
-
-
-	FOR IT=0,NI-1 DO BEGIN
-	READF,1,B1
-
-;CONSTRUCT FULL 2D ARRAYS
-         IF CHOICE EQ 2 THEN BEGIN
-           IF IINTER EQ 1 THEN BEGIN
-              FOR NS=0,NSYM-1 DO BEGIN
-                 J0=NS*NP
-                 J1=J0+NP-1
-                 VI(J0:J1,IT)=0.5*(B1+V(J0:J1,IT))
-              ENDFOR
-              VI(NPFULL-1,IT)=0.5*(B1(0)+V(NPFULL-1,IT))
-           ENDIF
-
-              FOR NS=0,NSYM-1 DO BEGIN
-                 J0=NS*NP
-                 J1=J0+NP-1
-                 V(J0:J1,IT)=B1
-              END
-              V(NPFULL-1,IT)=B1(0)
-           END
-	ENDFOR ;END OF IMAGE READ
-
-
-
-;AT FIRST FRAME, SET CONTOURING LEVELS
-
-LABEL0:  IF IFRAME EQ 0 THEN BEGIN
-           VMAX=MAX(ABS(V)) / VSCALE
-           VSTEP=2*VMAX/(NLV-1)
-           VV = FINDGEN(NLV)*VSTEP-VMAX
-          ENDIF
-
-; DEFINE MAPPING PROJECTIONS
-          CASE CHOICE OF
-          1: MAP_SET,INCL,LONSHIFT,0,/ORTHOGRAPHIC,TITLE='CMB RADIAL FIELD'
-          2: MAP_SET,INCL,LONSHIFT,0,/ORTHOGRAPHIC,TITLE='MIDDEPTH RADIAL FIELD'
-          3: MAP_SET,INCL,LONSHIFT,0,/ORTHOGRAPHIC,TITLE='MIDDEPTH RAD. VELOCITY'
-          ENDCASE
-
-;PLOT CONTOURS
-
-;INTERPOLATED IMAGE
-
-          IF IINTER EQ 1 AND IFRAME GT 0 THEN BEGIN
-            ERASE
-
- 
-CONTOUR,POLAR*VI,LON,LAT,LEVELS=VV,/OVERPLOT,C_COLORS=VCOLORS,/CELL_FILL
-            MAP_GRID,COLOR=0,GLINESTYLE=1,GLINETHICK=1
-; PLOT TANGENT CYLINDER INTERSECTION
-	 IF ICTC EQ 1 THEN BEGIN
-	  TCLAT=69.6
-	  PLOTS,2*FINDGEN(180),REPLICATE(TCLAT,180),PSYM=3,SYMSIZE=.5,COLOR=255
- 
-PLOTS,2*FINDGEN(180),REPLICATE(-TCLAT,180),PSYM=3,SYMSIZE=.5,COLOR=255
-	 ENDIF
+	 WXSIZE=300
+	PRINT,'WINDOW SIZE IN PIXEL?  DEFAULT=300'
+         READ,WXSIZE
+         WYSIZE=WXSIZE
 
-;CREATE FRAME
-            FRAMES(0,0,IFR)=TVRD(TRUE=3)
-            IFR=IFR+1
-
-;INCREMENT JPG  FILE COUNTER
-     IF IGIF EQ 1 THEN IGIFFR=IGIFFR+1
-;CREATE JPG FILE
-            IF IGIFFR GT 0  THEN BEGIN
-             IF IGIFFR LT 10 THEN $
-              GIFFULLNAME=GIFNAME+'00'+STRTRIM(FIX(IGIFFR),2)+'.JPG' $
-              ELSE IF IGIFFR LT 100 THEN $
-              GIFFULLNAME=GIFNAME+'0'+STRTRIM(FIX(IGIFFR),2)+'.JPG'$
-              ELSE GIFFULLNAME=GIFNAME+STRTRIM(FIX(IGIFFR),2)+'.JPG'
-
-             WRITE_JPEG,GIFFULLNAME,TVRD(TRUE=3),TRUE=3
-             IGIFFR=IGIFFR+1
-            ENDIF
-          ENDIF
-
-;NEW IMAGE
-
-          ERASE
-          CONTOUR,POLAR*V,LON,LAT,LEVELS=VV,/OVERPLOT,C_COLORS=VCOLORS,/CELL_FILL
-          MAP_GRID,COLOR=0,GLINESTYLE=1,GLINETHICK=1
-
-; PLOT TANGENT CYLINDER INTERSECTION
-	 IF ICTC EQ 1 THEN BEGIN
-	  TCLAT=69.6
-	  PLOTS,2*FINDGEN(180),REPLICATE(TCLAT,180),PSYM=3,SYMSIZE=.5,COLOR=255
- 
-PLOTS,2*FINDGEN(180),REPLICATE(-TCLAT,180),PSYM=3,SYMSIZE=.5,COLOR=255
-	 ENDIF
-
-
-;AT FIRST FRAME OPTION TO CHANGE SCALING OR PROJECTIONS
-
-          IF IFRAME EQ 0 THEN BEGIN
-            PRINT,'CHANGE SCALING OR PROJECTION ?  YES=1'
-            READ,IOPT
-            IF IOPT EQ 1 THEN BEGIN
-              PRINT,'SCALE FACTOR, INCLINATION, LONGITUDE ?'
-              READ,VSCALE,INCL,LONSHIFT
-              PRINT, 'PLOT TANGENT CYLINDER INTERSECTION ? YES=1'
-              READ,ICTC
-              GOTO, LABEL0
-            END
-          END
-
-;LOAD IMAGE INTO BYTE ARRAY
-	 FRAMES(0,0,IFR)=TVRD(TRUE=3)
-
-;INCREMENT JPG FILE COUNTER
-      IF IGIF EQ 1 THEN IGIFFR=IGIFFR+1
-;CREATE JPG FILE
-            IF IGIFFR GT 0  THEN BEGIN
-             IF IGIFFR LT 10 THEN $
-              GIFFULLNAME=GIFNAME+'00'+STRTRIM(FIX(IGIFFR),2)+'.JPG' $
-              ELSE IF IGIFFR LT 100 THEN $
-              GIFFULLNAME=GIFNAME+'0'+STRTRIM(FIX(IGIFFR),2)+'.JPG'$
-              ELSE GIFFULLNAME=GIFNAME+STRTRIM(FIX(IGIFFR),2)+'.JPG'
-             WRITE_JPEG,GIFFULLNAME,TVRD(TRUE=3),TRUE=3
-            ENDIF
-
-
-ENDFOR  ;END OF MOVIE LOOP
-
-CLOSE,1   ;CLOSE DATA FILE
-PRINT,'FOR DISPLAY OF MOVIE TYPE:  MOVIE,FRAMES,ORDER=0'
-
-;END OF PROCEDURE
-END
\ No newline at end of file
+;DIMENSION THE BYTE ARRAY
+	FRAMES=BYTARR(WXSIZE,WYSIZE,NFR)
+
+;CREATE A WINDOW
+	WINDOW,2,XSIZE=WXSIZE,YSIZE=WYSIZE
+
+;READ IN COLATITUDES
+	READF,1,THET
+        
+
+
+;create array PHI of longitudes of data points (in radians)
+	PI2NP = 2*PI/(NPFULL-1)
+	PHI=PI2NP*(FINDGEN(NPFULL))
+;converts PHI to array LON from -180 to 180 degrees
+	LON=180*PHI/PI - 180.0
+;converts THET into array LAT from 90 to -90 degrees
+         LAT=90-180*THET/PI
+
+
+;SET UP CONTOUR LEVELS AND COLOR SCHEME
+
+;NUMBER OF CONTOURS
+	NLV=17
+;SCALE FACTOR
+         VSCALE=1.0
+;PROJECTION ANGLES
+         INCL=30.
+         LONSHIFT=0.0
+
+;COLORS
+	CTABLE=39                        ; 39: rainbow, 0: black/white
+	LOADCT,CTABLE                   ;LOADS COLOR TABLE NUMBER
+; SELF-DEFINED COLOR TABLE
+; BLACK COLOR AT START OF SPECTRUM
+         R_CURR(000)= 00 & G_CURR(000)= 00 & B_CURR(000)= 00
+; WHITE COLOR AT END OF SPECTRUM
+;       R_CURR(255)=255 & G_CURR(255)=255 & B_CURR(255)=255
+; DARK GREY
+         R_CURR( 01)= 90 & G_CURR( 01)= 90 & B_CURR( 01)= 90
+; LIGHT GREY
+         R_CURR( 02)=190 & G_CURR( 02)=190 & B_CURR( 02)=190
+
+         R_CURR( 60)= 35 & G_CURR( 70)=  0 & B_CURR( 70)=230
+         R_CURR( 70)= 20 & G_CURR( 70)=  0 & B_CURR( 70)=245
+         R_CURR( 80)=  0 & G_CURR( 80)= 60 & B_CURR( 80)=255
+         R_CURR( 90)=  0 & G_CURR( 90)=110 & B_CURR( 90)=255
+         R_CURR(100)=  0 & G_CURR(100)=150 & B_CURR(100)=255
+         R_CURR(110)= 20 & G_CURR(110)=200 & B_CURR(110)=255
+         R_CURR(120)= 70 & G_CURR(120)=240 & B_CURR(120)=255
+         R_CURR(130)=150 & G_CURR(130)=255 & B_CURR(130)=240
+         R_CURR(140)=225 & G_CURR(140)=255 & B_CURR(140)=225
+
+         R_CURR(150)=255 & G_CURR(150)=255 & B_CURR(150)=185
+         R_CURR(160)=255 & G_CURR(160)=255 & B_CURR(160)= 75
+         R_CURR(170)=255 & G_CURR(170)=225 & B_CURR(170)=  0
+         R_CURR(180)=255 & G_CURR(180)=175 & B_CURR(180)=  0
+         R_CURR(190)=255 & G_CURR(190)=125 & B_CURR(190)=  0
+         R_CURR(192)=255 & G_CURR(192)= 75 & B_CURR(192)=  0
+         R_CURR(194)=255 & G_CURR(194)=  0 & B_CURR(194)=  0
+         R_CURR(196)=230 & G_CURR(196)=  0 & B_CURR(196)= 35
+
+         TVLCT,R_CURR,G_CURR,B_CURR
+
+   VCOLORS=[70,80,90,100,110,120,130,140,150,160,170,180,190,192,194,196,$
+            196,70]
+
+;  VCOLORS=[35,45,55,65,75,85,95,115,156,166,172,180,187,194,200,206,211]
+
+	!P.THICK=2                      ;DRAWS THICK LINES
+         !P.POSITION=[.025,.025,.975,.975] ;ENSURE SQUARE FIGURE
+	ICTC=0  ;NO TANGENT CYLINDER -- DEFAULT
+
+;************************************************************************
+;READ IN DATA ARRAYS FROM FORTRAN DATAFILE INTO IDL ARRAYS.
+;**************************************************
+;**************************************************
+;BEGIN TO MAKE MOVIE
+;**************************************************
+
+;MAIN FRAME LOOP
+         IFR=-1
+         IGIFFR=0
+FOR IFRAME=0,NFSTOP-1 DO BEGIN
+         IFR=IFR+1
+
+         READF,1,IDAT,TIME
+         PRINT,'FRAME= ',IDAT-1,'  TIME= ',TIME
+
+;BUILD 2D ARRAYS
+
+;READ FIRST IMAGE
+   FOR IT=0,NI-1 DO BEGIN
+	READF,1,B0
+
+;CONSTRUCT FULL 2D ARRAYS
+         IF CHOICE EQ 1 THEN BEGIN
+           IF IINTER EQ 1 THEN BEGIN
+              FOR NS=0,NSYM-1 DO BEGIN
+                 J0=NS*NP
+                 J1=J0+NP-1
+                 VI(J0:J1,IT)=0.5*(B0+V(J0:J1,IT))
+              ENDFOR
+              VI(NPFULL-1,IT)=0.5*(B0(0)+V(NPFULL-1,IT))
+           ENDIF
+
+              FOR NS=0,NSYM-1 DO BEGIN
+                 J0=NS*NP
+                 J1=J0+NP-1
+                 V(J0:J1,IT)=B0
+              ENDFOR
+              V(NPFULL-1,IT)=B0(0)
+         ENDIF
+     ENDFOR ;END OF FIRST IMAGE READ
+
+
+;READ SECOND IMAGE
+   FOR IT=0,NI-1 DO BEGIN
+	READF,1,B1
+
+;CONSTRUCT FULL 2D ARRAYS
+         IF CHOICE EQ 2 THEN BEGIN
+           IF IINTER EQ 1 THEN BEGIN
+              FOR NS=0,NSYM-1 DO BEGIN
+                 J0=NS*NP
+                 J1=J0+NP-1
+                 VI(J0:J1,IT)=0.5*(B1+V(J0:J1,IT))
+              ENDFOR
+              VI(NPFULL-1,IT)=0.5*(B1(0)+V(NPFULL-1,IT))
+           ENDIF
+
+              FOR NS=0,NSYM-1 DO BEGIN
+                 J0=NS*NP
+                 J1=J0+NP-1
+                 V(J0:J1,IT)=B1
+              ENDFOR
+              V(NPFULL-1,IT)=B1(0)
+         ENDIF
+  ENDFOR ;END OF SECOND IMAGE READ
+
+;READ THIRD IMAGE
+   FOR IT=0,NI-1 DO BEGIN
+	READF,1,B1
+  ENDFOR  ;END OF THIRD IMAGE READ
+
+;AT FIRST FRAME, SET CONTOURING LEVELS
+
+LABEL0:  IF IFRAME EQ 0 THEN BEGIN
+           VMAX=MAX(ABS(V)) / VSCALE
+           VSTEP=2*VMAX/(NLV-1)
+           VV = FINDGEN(NLV)*VSTEP-VMAX
+          ENDIF
+
+; DEFINE MAPPING PROJECTIONS
+          CASE CHOICE OF
+          1: MAP_SET,INCL,LONSHIFT,0,/ORTHOGRAPHIC,TITLE='CMB RADIAL FIELD'
+          2: MAP_SET,INCL,LONSHIFT,0,/ORTHOGRAPHIC,TITLE='MIDDEPTH RADIAL FIELD'
+          3: MAP_SET,INCL,LONSHIFT,0,/ORTHOGRAPHIC,TITLE='MIDDEPTH RAD. VELOCITY'
+          ENDCASE
+
+;PLOT CONTOURS
+
+;INTERPOLATED IMAGE
+
+          IF IINTER EQ 1 AND IFRAME GT 0 THEN BEGIN
+            ERASE
+
+ 
+CONTOUR,POLAR*VI,LON,LAT,LEVELS=VV,/OVERPLOT,C_COLORS=VCOLORS,/CELL_FILL
+            MAP_GRID,COLOR=0,GLINESTYLE=1,GLINETHICK=1
+; PLOT TANGENT CYLINDER INTERSECTION
+	 IF ICTC EQ 1 THEN BEGIN
+	  TCLAT=69.6
+	  PLOTS,2*FINDGEN(180),REPLICATE(TCLAT,180),PSYM=3,SYMSIZE=.5,COLOR=255
+ 
+PLOTS,2*FINDGEN(180),REPLICATE(-TCLAT,180),PSYM=3,SYMSIZE=.5,COLOR=255
+	 ENDIF
+
+;CREATE FRAME
+            FRAMES(0,0,IFR)=TVRD(TRUE=3)
+            IFR=IFR+1
+
+;INCREMENT JPG  FILE COUNTER
+     IF IGIF EQ 1 THEN IGIFFR=IGIFFR+1
+;CREATE JPG FILE
+            IF IGIFFR GT 0  THEN BEGIN
+             IF IGIFFR LT 10 THEN $
+              GIFFULLNAME=GIFNAME+'00'+STRTRIM(FIX(IGIFFR),2)+'.JPG' $
+              ELSE IF IGIFFR LT 100 THEN $
+              GIFFULLNAME=GIFNAME+'0'+STRTRIM(FIX(IGIFFR),2)+'.JPG'$
+              ELSE GIFFULLNAME=GIFNAME+STRTRIM(FIX(IGIFFR),2)+'.JPG'
+
+             WRITE_JPEG,GIFFULLNAME,TVRD(TRUE=3),TRUE=3
+             IGIFFR=IGIFFR+1
+            ENDIF
+          ENDIF
+
+;NEW IMAGE
+
+          ERASE
+          CONTOUR,POLAR*V,LON,LAT,LEVELS=VV,/OVERPLOT,C_COLORS=VCOLORS,/CELL_FILL
+          MAP_GRID,COLOR=0,GLINESTYLE=1,GLINETHICK=1
+
+; PLOT TANGENT CYLINDER INTERSECTION
+	 IF ICTC EQ 1 THEN BEGIN
+	  TCLAT=69.6
+	  PLOTS,2*FINDGEN(180),REPLICATE(TCLAT,180),PSYM=3,SYMSIZE=.5,COLOR=255
+ 
+PLOTS,2*FINDGEN(180),REPLICATE(-TCLAT,180),PSYM=3,SYMSIZE=.5,COLOR=255
+	 ENDIF
+
+
+;AT FIRST FRAME OPTION TO CHANGE SCALING OR PROJECTIONS
+
+          IF IFRAME EQ 0 THEN BEGIN
+            PRINT,'CHANGE SCALING OR PROJECTION ?  YES=1'
+            READ,IOPT
+            IF IOPT EQ 1 THEN BEGIN
+              PRINT,'SCALE FACTOR, INCLINATION, LONGITUDE ?'
+              READ,VSCALE,INCL,LONSHIFT
+              PRINT, 'PLOT TANGENT CYLINDER INTERSECTION ? YES=1'
+              READ,ICTC
+              GOTO, LABEL0
+            END
+          END
+
+;LOAD IMAGE INTO BYTE ARRAY
+	FRAMES(0,0,IFR)=TVRD(TRUE=3)
+
+;INCREMENT JPG FILE COUNTER
+      IF IGIF EQ 1 THEN IGIFFR=IGIFFR+1
+;CREATE JPG FILE
+            IF IGIFFR GT 0  THEN BEGIN
+             IF IGIFFR LT 10 THEN $
+              GIFFULLNAME=GIFNAME+'00'+STRTRIM(FIX(IGIFFR),2)+'.JPG' $
+              ELSE IF IGIFFR LT 100 THEN $
+              GIFFULLNAME=GIFNAME+'0'+STRTRIM(FIX(IGIFFR),2)+'.JPG'$
+              ELSE GIFFULLNAME=GIFNAME+STRTRIM(FIX(IGIFFR),2)+'.JPG'
+             WRITE_JPEG,GIFFULLNAME,TVRD(TRUE=3),TRUE=3
+            ENDIF
+
+
+ENDFOR  ;END OF MOVIE LOOP
+
+CLOSE,1   ;CLOSE DATA FILE
+PRINT,'FOR DISPLAY OF MOVIE TYPE:  MOVIE,FRAMES,ORDER=0'
+
+;END OF PROCEDURE
+END



More information about the cig-commits mailing list