[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