|
NOAA GVI GUIDEAppendix I |
Introduction Page,
GVI Guide TOC, Acronyms
This appendix contains the job control language (JCL) for an IBM mainframe which can be used as a prototype for extracting the Continental Weekly Composite data from tape. This JCL is called "tape.jcl". Also, this appendix contains a FORTRAN program ("calibrd.for") for converting the one-byte image data to IBM formatted data for browsing. A floppy diskette containing "tape.jcl" and "calibrd.for" is available upon request from SSB.
A listing of "tape.jcl" follows:
//WWMAP JOB (XXXXXXXXXXXXXXX,WWB07,SO),'STEVE : GLOBRD',REGION=0K, // TIME=(5,00),MSGCLASS=T,MSGLEVEL=(1,1),NOTIFY=$ED12SO //*MAIN LINES=60,CLASS=XACHK,FAILURE=CANCEL //*FORMAT PR,DDNAME=JESMSG,COPIES=0 //*FORMAT PR,DDNAME=JESJCL,COPIES=0 //*FORMAT PR,DDNAME=SYSMSG,COPIES=0 //*FORMAT PR,DDNAME=SYSPRINT,COPIES=0 //*FORMAT PR,DDNAME=SYSTERM,COPIES=0 //* //*FORMAT PR,DDNAME=,DEST=WWBP3 //****** //****** //COPY2 EXEC PGM=IEBGENER //SYSPRINT DD SYSOUT=T //SYSIN DD DUMMY //SYSUT1 DD VOL=SER=E08500,UNIT=T6250,DISP=(OLD,PASS), // DCB=(LRECL=200,BLKSIZE=200,RECFM=FB),LABEL=(1,NL,,IN) //SYSUT2 DD DSN=$ED12SO.TAPE.HDR,DISP=(NEW,CATLG), // DCB=(LRECL=200,BLKSIZE=200,RECFM=FB),UNIT=TSODA, // VOL=SER=CACTMP,SPACE=(TRK,(2,2)) //COPY2 EXEC PGM=IEBGENER //SYSPRINT DD SYSOUT=T //SYSIN DD DUMMY //SYSUT1 DD VOL=SER=E08500,UNIT=T6250,DISP=(OLD,PASS), // DCB=(LRECL=6,BLKSIZE=6354,RECFM=FB),LABEL=(2,NL,,IN) //SYSUT2 DD DSN=$ED12SO.TAPE.DAT,DISP=(NEW,CATLG), // DCB=(LRECL=6,BLKSIZE=6354,RECFM=FB),UNIT=TSODA, // VOL=SER=CACTMP,SPACE=(TRK,(50,50)) /*To convert the one-byte image data (of the mixed-mode records) to IBM formatted data for browsing, the program "calibrd.for" may be used. Several input parameters need to be specified. The following text describes each input parameter:
1. Specify continent (ILAND). The choices are:
3. Specify the number of weeks in the data set to process (IWKS). Valid numbers range from 1 to the total number of weeks in the data set.
4. Specify the starting week (ISTWK). Valid numbers for the starting week could be from the first week to the last week in the data set.
The formatted output ASCII data set will have a record length of 80 characters and will contain the following information in the order given:
1. The pre-launch AVHRR Ch1, visible reflectance, which has been normalized by the cosine of the Solar Zenith Angle.
2. The pre-launch AVHRR Ch2, near-IR reflectance, which has been normalized by the cosine of the Solar Zenith Angle.
3. The AVHRR Ch4 brightness temperature.
4. The AVHRR Ch5 brightness temperature.
5. The AVHRR Solar Zenith Angle (SZA).
6. The AVHRR Scan Angle (SCA).
7. The latitude of the map cell.
8. The longitude of the map cell.
9. The 2-digit year and 3-digit day of year of the map cell, (e.g., "89001", represents January 1, 1989, and "93365" represents December 31, 1993).
A listing of "calibrd.for" follows:
PROGRAM CALCON
****************************************************************************
*
* PROGRAM: CALIBRATE TYPE: MAIN
*
* LANGUAGE: VS FORTRAN PROGRAMMER: STEVE OLSON, RDC, INC.
*
* VERSION: 1.0 DATE: 3/9/94
*
* PURPOSE: TO CALIBRATE A CONTINENTAL MAPPED TIME SERIES OF
* GVI DATA AND OUTPUT THE DATA TO UNIT 95.
*
*
*
****************************************************************************
REAL*4 CH1,CH2,CH4,CH5,SCA,SZA,NDVI
CHARACTER*1 ALL(6,900),OUTMOD
CHARACTER*5 CDAT
CHARACTER*6 CTEMP,LAT,LON,CONT(6)
INTEGER*4 ILOC,IWKS,SATID,IVAL(6),IUNIT,WKSTOT,IPIX(6),WKDIF,KK
INTEGER*4 DARNUM,ICCC,IAVCH1,DATE,YEAR,IPIXEL
DATA CONT/'NORTHA','SOUTHA','EUROPE','AFRICA','ASIA','AUSTRA'/
DATA IPIX/28011,14808,24906,28683,41820,9729/
C
C ** OPEN THE APPROPRIATE FILES
C
C OPEN(20,'$ED12SO.NAM.DAT',STATUS='OLD')
C OPEN(95,'$ED12SO.CALIB.DATA',STATUS='OLD')
C
C ** SELECT THE APPROPRIATE CONTINENT (ILAND).
C
C 1=NORTH AMERICA
C 2=SOUTH AMERICA
C 3=EUROPE
C 4=AFRICA
C 5=ASIA
C 6=AUSTRALIA
C
ILAND=1
C
C ** SELECT THE NUMBER OF TOTAL WEEKS IN THE DATASET (WKSTOT)
C
C ** NORTH AMERICAN DATA IS BROKEN UP ONTO TWO TAPES.
C TAPE 1 HAS 399 WEEKS : WEEKS 1 - 399
C TAPE 2 HAS 4 WEEKS : WEEKS 400 - 403
C ** SOUTH AMERICAN DATA IS ALL ON ONE TAPE OF 403 WEEKS
C ** EUROPEAN DATA IS ALL ON ONE TAPE OF 403 WEEKS
C ** AFRICAN DATA IS BROKEN UP ONTO TWO TAPES.
C TAPE 1 HAS 391 WEEKS : WEEKS 1 - 391
C TAPE 2 HAS 12 WEEKS : WEEKS 392 - 403
C ** ASIAN DATA IS BROKEN UP ONTO TWO TAPES.
C TAPE 1 HAS 247 WEEKS : WEEKS 1 - 247
C TAPE 2 HAS 156 WEEKS : WEEKS 248 - 403
C ** AUSTRALIAN DATA IS ALL ON ONE TAPE OF 403 WEEKS
C
C ** SELECT THE APPROPRIATE NUMBER OF WEEKS WHICH HAS BEEN
C GIVEN ON THE CONTINENTAL TAPES (WKSTOT)
C
WKSTOT=399
C
C ** SELECT THE NUMBER OF WEEKS OF DATA TO PROCESS (IWKS)
C THIS NUMBER, IWKS, WILL USUALLY BE THE SAME AS THE NUMBER
C OF TOTAL WEEKS, WKSTOT. HOWEVER, YOU CAN PROCESS A SUBSET OF
C WEEKS FROM THE TOTAL NUMBER OF WEEKS, WKSTOT
IWKS=1
C
C ** SELECT THE STARTING WEEK NUMBER TO BEGIN PROCESSING (ISTWK).
C THIS NUMBER WILL USUALLY BE EQUAL TO 1, BUT IT DOESN'T HAVE
C TO BE.
C
ISTWK=1
C
C ** THE NUMBER OF PIXELS IS AUTOMATICALLY SELECTED WITH YOUR
C SELECTION OF ILAND (CONTINENT)
C
IPIXEL=IPIX(ILAND)
WRITE(6,*) 'PROCESSING CONTINENT ',CONT(ILAND)
NWKS=2*(IWKS+1)
IPWKS = 2*(IWKS+ISTWK)
IUNIT=20
REWIND(IUNIT)
DO 20 K=1,IPIXEL
READ (IUNIT,'(A6)') LAT
READ (IUNIT,'(A6)') LON
READ(LAT,'(I6)') ILAT
READ(LON,'(I6)') ILON
RLAT=ILAT/100.0
RLON=ILON/100.0
DO 30 I=1,2*(ISTWK-1)
READ (IUNIT,'(A6)') CTEMP
30 CONTINUE
DO 35 I=1,IWKS*2,2
READ (IUNIT,'(6A1)') (ALL(J,I),J=1,6)
READ (IUNIT,'(6A1)') (ALL(J,I+1),J=1,6)
35 CONTINUE
DO 40 JWKS=1,IWKS*2,2
DO 50 I=1,5
CDAT(I:I)=ALL(I,JWKS)
50 CONTINUE
SATID=ICHAR(ALL(6,JWKS))
DO 60 I=1,6
IVAL(I) = ICHAR(ALL(I,JWKS+1))
60 CONTINUE
C **************************************************************************
C ***** CALIBRATE DATA
C **************************************************************************
IF (SATID.EQ.9) THEN
CH1=4.0*0.10634*(IVAL(1)) - 3.84638
CH2=4.0*0.10749*(IVAL(2)) - 3.87701
ELSE
CH1=4.0*0.095*(IVAL(1)) - 3.780
CH2=4.0*0.0900*(IVAL(2)) - 3.600
ENDIF
IF (IVAL(3).GT.177) THEN
CH4=(IVAL(3)-419.05128)/(-1.006412)
ELSE
CH4= 330.0 - (IVAL(3)/2.0)
ENDIF
IF (IVAL(4).GT.177) THEN
CH5=(IVAL(4)-419.05128)/(-1.006412)
ELSE
CH5= 330.0 - (IVAL(4)/2.0)
ENDIF
SZA = IVAL(5)/2.0
SZAX=SZA*3.1415927/180.
SCA = IVAL(6)/2.0 -55.0
READ(CDAT,'(I5)') IDAT
C
C ** DIVIDE CHANNELS 1 & 2 BY THE COSINE OF THE SOLAR ZENITH ANGLE
C
CH1=CH1/COS(SZAX)
CH2=CH2/COS(SZAX)
C
C ** CALCULATE THE NORMALIZED DIFFERENCE VEGETATION INDEX
C
NDVI = (CH2-CH1)*100./(CH2+CH1)
WRITE(95,61) CH1,CH2,CH4,CH5,SZA,SCA,RLAT,RLON,IDAT
61 FORMAT(6(F7.2,1X),F7.2,1X,F7.2,1X,I5)
40 CONTINUE
C
C ** ADVANCE TO NEXT PIXEL
C
WKDIF = WKSTOT-(IWKS+ISTWK-1)
IF (WKDIF.GT.0) THEN
WKDIF=WKDIF*2
DO 70 I=1,WKDIF
READ(IUNIT,'(A6)') CTEMP
70 CONTINUE
ENDIF
20 CONTINUE
C
C
699 STOP
END
| Previous Section | Top of Page | Next Section |