fortran 77 programs for preliminary summarisation of lineament patterns

8
PHOTONIRVACHAK Journal of the Indian Society of Remote Sensing, Vol. 17, No. 4, 1989 FORTRAN 77 PROGRAMS FOR PRELIMINARY SUMMARISATION OF LINEAMENT PATTERNS Venkatesh Raghavan and P.V. Panchanathan Centre for Earth Science Studies, Trivandrum-695 031. ABSTRACT Fortran 77 programs have been developedfor summarisation of lineamentpattern and fracture traces on MS-DOS based micro-computer system. Two menu driven programmes CLAFY and HIST perform the above task. CLAFY reads the X, Y co-ordinates of lineamentend points from an input file and produces an output file containing azimuth frequency, total length and average length for 18 predefined azimuth classes at 10 degree interval. HtSTreads the output generated by CLAFYand offers an option to generate histograms of azimuth frequency/total length/average length on a dot matric printer. CLAFYand HISTwere tested using digitised lineament co-ordinates derived from lineament maps of partsof Central Keralaregion, southwest- ern, India which were prepared based on Landsat imagery interpretation.The programmes afford repetitive manipulation of large quantities of lineament data without ignoring short and/or faint lineaments which have geologic significance. INTRODUCTION Lineament patterns detected from remotely sensed data provide valuable information to ge- ologists especially in the study of basement tectonics, mineral exploration and groundwater targeting. In order to draw meanigful conclusion based on the lineament patterns observed from space and air-borne platforms, it is necessary that they are appropriately summarised. Many of the problems which arise during the manipu- lation of massive lineament data sets can be solved using computers (McGuire and Gal- lagher Jr., 1976). Podwysocki and Lowman Jr. (1974) have written a Fortran IV programme for analysis and summarisation of fracture traces and lineament patterns for using on an IBM 360\67 computer and later modified for use on other computer systems having equivalent stor- age. These programmes were written keeping input devices such as card reader in mind, and therefore do not offer sufficient flexibility to the user. The present paper describes two Fortran 77 programmes to classify lineament parame- ters and present the results as histogram plots. These programs were developed on MS-DOS based micro-computer system using Microsoft Fortran. (Note-The programs were originallywritten for UNIXenviron- ment and laterwere marginally modified to suit MS-DOSen- vironment. The source code listing for unix environment may be obtained from the authors.) DATA PREPARATION Landsat images of 1:250,000 scale (Band 5, 7 and False Colour Composite) and panchro- matic aerial photographs of 1:50, 000 scale were visually interpreted to prepare a lineament map of the Palghat region, southwestern India. The interpreted lineaments were transferred on to topographic maps of 1:250,000 scale using a Carl Zeiss Sketchmaster. In order to digitise the map, a Cartesian co- ordinate system was established with the origin at the upper left hand corner of the map. The x- axis is latitudinal and positive to the right, while the Y-axis is meridional and positive down- wards. North is assumed to be at tbe top of the map. Lineaments were digitised manually by overlaying the map on a millimeter graph sheet and recording the X, Y co-ordinates of lineament end points. PROGRAMME CLAFY CLAFY reads the co-ordinates (Xl, Y1, X2, Y2) of the end points of the lineaments from an input file. The user can define appropriate scale factor to convert the lengths into kilometers. The due north and east trendning lineaments are treated as special cases. The programme utilises the co-ordinate values to calculate (Recd. 9 Aug. 89 in final form 12 Sept. 89) 31

Upload: venkatesh-raghavan

Post on 25-Aug-2016

212 views

Category:

Documents


0 download

TRANSCRIPT

PHOTONIRVACHAK Journal of the Indian Society of Remote Sensing, Vol. 17, No. 4, 1989

FORTRAN 77 PROGRAMS FOR PRELIMINARY SUMMARISATION OF LINEAMENT PATTERNS

Venkatesh Raghavan and P.V. Panchanathan Centre for Earth Science Studies, Trivandrum-695 031.

A B S T R A C T

Fortran 77 programs have been developed for summarisation of lineament pattern and fracture traces on MS-DOS based micro-computer system. Two menu driven programmes CLAFY and HIST perform the above task. CLAFY reads the X, Y co-ordinates of lineament end points from an input file and produces an output file containing azimuth frequency, total length and average length for 18 predefined azimuth classes at 10 degree interval. HtST reads the output generated by CLAFY and offers an option to generate histograms of azimuth frequency/total length/average length on a dot matric printer. CLAFY and HIST were tested using digitised lineament co-ordinates derived from lineament maps of parts of Central Kerala region, southwest- ern, India which were prepared based on Landsat imagery interpretation. The programmes afford repetitive manipulation of large quantities of lineament data without ignoring short and/or faint lineaments which have geologic significance.

INTRODUCTION Lineament patterns detected from remotely

sensed data provide valuable information to ge- ologists especially in the study of basement tectonics, mineral exploration and groundwater targeting. In order to draw meanigful conclusion based on the lineament patterns observed from space and air-borne platforms, it is necessary that they are appropriately summarised. Many of the problems which arise during the manipu- lation of massive lineament data sets can be solved using computers (McGuire and Gal- lagher Jr., 1976). Podwysocki and Lowman Jr. (1974) have written a Fortran IV programme for analysis and summarisation of fracture traces and lineament patterns for using on an IBM 360\67 computer and later modified for use on other computer systems having equivalent stor- age. These programmes were written keeping input devices such as card reader in mind, and therefore do not offer sufficient flexibility to the user. The present paper describes two Fortran 77 programmes to classify lineament parame- ters and present the results as histogram plots. These programs were developed on MS-DOS based micro-computer system using Microsoft Fortran. (Note-The programs were originally written for UNIX environ- ment and laterwere marginally modified to suit MS-DOS en- vironment. The source code listing for unix environment may be obtained from the authors.)

DATA PREPARATION Landsat images of 1:250,000 scale (Band

5, 7 and False Colour Composite) and panchro- matic aerial photographs of 1:50, 000 scale were visually interpreted to prepare a lineament map of the Palghat region, southwestern India. The interpreted lineaments were transferred on to topographic maps of 1:250,000 scale using a Carl Zeiss Sketchmaster.

In order to digitise the map, a Cartesian co- ordinate system was established with the origin at the upper left hand corner of the map. The x- axis is latitudinal and positive to the right, while the Y-axis is meridional and positive down- wards. North is assumed to be at tbe top of the map. Lineaments were digitised manually by overlaying the map on a millimeter graph sheet and recording the X, Y co-ordinates of lineament end points.

PROGRAMME CLAFY CLAFY reads the co-ordinates (Xl, Y1, X2,

Y2) of the end points of the lineaments from an input file. The user can define appropriate scale factor to convert the lengths into kilometers. The due north and east trendning lineaments are treated as special cases. The programme utilises the co-ordinate values to calculate

(Recd. 9 Aug. 89 in final form 12 Sept. 89) 31

slopes, used to calculate azimuths (Azim). The length (Veclen) of each lineament is also calcu- lated. The above parameters are classified into 18 predefined azimuth classes (N) with 10 degree azimuth interval. The lineament fre- quency (Freq), total lineament length (Azlen) per azimuth class and average lineament length (Avlen) per azimuth class are computed and stored in an output file. The source programme listing of CLAFY, test data input file and the output file generated for test data are given in Appendix I.

PROGRAMME HIST This programme is a modified version of the

subroutine HIST published by Lagios (1984) and based on IBM Scientific Subroutine Pack- age. The programme reads the output file gen- erated by CLAFY and the plot of a histogram of the user's choice (azimuth class vs azimuth frequency/total length of lineaments/average length of lineaments) is produced. The plot can be stored in a file and printed on a dot matrix printer. The plots for sample lineament data set are produced in Histograms 1, 2 and 3. The source programme listing of HIST is given in Appendix II.

DISCUSSION Computer aided analysis of lineament data

enables handling large volume of data sets. Thus, short or faint lineaments which were hitherto excluded from the analysis to reduce manual work can be considered in the rapid

computer aided analysis. Two Fortran 77 pro- grammes presented ;n the paper afford the preliminary summarisation of lineament data. The programmes can be executed on MS-DOS based microcomputers and the ot~tput can be generated on standard dot matrix printers. The histogram plots of specified lineament parame- ters express the preffered directions, deviations from those trends and the relative amplitude of one trend compared to the other both visually and numerically.

ACKNOWLEDGEMENTS The authors thank the Director, Centre for

Earth Science Studies for facilities and permis- sion for publication. Thanks are also due to Mr. Gopakumar, CESE, Bombay for useful sugges- tions.

REFERENCES Lagios, E., 1984, A Fortran IV program for a least square gravity base station network ad- justments, Computers and Geosciences, Vol. 10, NO. 2-3, pp. 263-276.

McGuire, M.J. and Gallagher Jr., J.Ko, 1976, Techniques for computer-aided analysis of line- aments, Basement Tectonics Contribution No. 62, p. 528-541.

Podwysocki, MH. and Lowman Jr., P.D., 1974, Fortran IV programs for summarisation and analysis of fracture trace and lineament pat- terns, X -644-74-3, Goddard Space Flight Centre, Maryland, pp. 1-17.

32

NO: I HISTOGRAM OF LINE&WENT FREQUENCY I I 3 4 8 4 3 6 3 2 1 3 3 9 7 6 4 1

9 *

8 * •

7 • * • 6 • • * • *

..5 • * * • *

4 • • * * * * • •

3 * • * * • • • • • • * * *

2 * * * * * * * * * * • * * •

I • * • * • • • • • • • • * • • • • •

,,,,,,,-,--,---,---,---,---,---,---,---,--,,--,,--,--,-,-,,-,,,,--,, CLASS

W N E AZIMUTH CLASS INTERVAL IS I0 DEGREES

NO: 2 HISTOGRAM OF TOTAL LINEAMENT LENGTH/AZIMUTH CLASS

36 27 84 142 201 240 71 145 49 40 15 78 55 170 180 185 116 3 8

F.ACH • FX~UALS 11 KILOHETERS

231 *

220 • 2 0 9 *

198 * *

1 8 7 • *

176 * *

165 • *

154 • * 143 • • *

1 3 2 * * * *

1 2 1 * * * *

1 1 0 * * * *

9 9 * • * •

8 8 * * • •

77 * * * * • • • * * * *

55 • • * * • *

33 * • * • * * • * *

* * • * *

• • * • •

• * * * * *

* * • * • •

* • * • * * *

* * * * • * * 22 * * * • * * • * * *

1 1 • * * * • * * * • * * * • * * * * *

INTERVAL 1 2 3 4 5 6 7 8 9 i0 II 12 13 14 15 16 17 1 8

CLASS

W N E AZIMUTH CLASS INTERVAL IS 10 DEGREES

NO: 3 HISTOGRAM OF AVG. LINEAMENT LENGTH/AZIMUTH CLASS

36 27 28 35 25 60 24 24 16 20 15 26 18 19 26 31 29 38

EACH * ~ALS 4 KILO~TEES

60 * 56 * 52 * 48 *

40 * 36 * * .

32 * * * * 2 8 * * * * • * * 24 • * • • m * • * . • . . • 20 * * * * * * * * * * • • * *

4 * * * * * * • • • * * • * • * • * *

INTERVAL 1 2 3 4 5 6 7 8 9 I0 II 12 13 14 15 16 17 18 CLASS

W N E AZIMUTH CLASS INTERVAL IS I0 DEGREES

33

Appendix 1

Program CLAFY Dimension Cmin (18), Cmax (18), Azlen (18), Freq (18), Avlen (18), Pn (18), P1 (18) Character *80 Fnl, Fn2 Integer Class, Freq Data Cmin/270.0,280.0,290.0,300.0,310.0, 320.0.330.0,340.0,350.0,0.0,10.0,20.0,30.0,40.0, 50.0,60.0,70.0,80.0 Data Cmax/280.0, 290.0, 300.0,310.0, 320.0, 330.0,340.0, 350.0,360.0,10.0,20.0,30.0, 40.0,50.0,60.0,70.0,80.0,90.0/ Write (*, 1)

Format(' Give Input File Name :'$) Read(*,'(A80) ') Fnl Open (Unit = 3,File = Fnl, Status = 'OLD')" Write(*,2)

2 Format ( ' Give Output File Name : '$) Read (*,' (A80) ')Fn2 Write(*,3)

3 Format(' 1 mm on map equals how many kms?' $) Read(*,*) Scale Open (Unit =5,File = Fn2,Status= 'NEW') Do41 = 1,18 Freq(I) =0 Azlen(l) =0.

4 Continue 5 Read(3,*,end =6) Xl,YI,X2,Y2

Xl = Xl * Scale Y1 = Y1 * Scale X2 = X2 * Scale Y2 = Y2 * Scale

If (Yl.eq.Y2.and.Xl.lt. X2) go to 7 If (YI.lt.Y2) go to 8 go to 9

8 Z2 = Y2 Y2 = Y1

7

10

12

14

11

15

13

Y1 = Z2

Zl = X2 X2 = Xl Xl = Z1

Veclen = Sqrt ( ((X2-Xl) * * 2) + ((Y2-Y1) **2)) If (Xl.ne.X2) go to 10 Sip = -573.0 Azim = 0.0 go to 13

Sip = (Y2-Y1) / (X2-Xl) If (Sip. lt.0.0) then

Azim = 90.- ((Atan(Abs(SIp)) * 180.) / 3.14159

else Azim = 270. + ((Atan(SIp) * 180.) / 3. t 4159) end if If (Azim.eq.270.0) go to 11 If (Azim.eq.0.0) go to 12 goto 13

If (Azlen(9). ge.Azlen(10) go to 14 Azlen(10) = Azlen (10) + Veclen Freq(10) = freq (10) + 1

Azlen(1) = Azlen (1) + Veclen Freq(1) = Freq(1) + 1 go to 5

If (Azlen(1).ge.Azlen(18)) go to 15 Azlen(18) = Azlen(18) + Veclen Freq(18) = Freq(18) + 1

Azlen(1) = Azlen(1) + Veclen Freq(1) = Freq (1) +1 go to 5

Do 16J=1,18 If (Azim.ge.Cmin(J) and Azim.lt. Cmax(J) ) then Class = d Freq(Class) = Freq(Class) + 1 Azlen (Class) = Azlen(Class) = Veclen end if

34

16 continue go to 5

6 continue

Write (5,20) Write (5,18)

18 Format (6X,'N', 5X, 'CMIN ',6X, 'CMAX',7X, 'FR EQ',5X,'AZLEN',5X, 'AVLEN',5X,'L%',6X,'N%')

Write (5,20) Tot1 = 0. Tot2 = 0. Do 17N = 1,18 Tot1 = Tot1 + Freq(N) Tot2 = Tot2 + Azlen(N)

17 continue

Do25 N=1,18 Pn(N) = (Freq(N)/Totl) * 100.0 Pn(N) = (Azlen(N)/Tot2) * 100.0 If (Freq(N).ne.0) then Avlen(N) = Azlen(N) / Freq(N) end if

25 Write (5, 19) N, Cmin (N), Cmax(N), Freq(N), Azlen(N), Avlen(N), Pn(N), Pi(N)

19 Format (5X,12,5X,F5.1, 5X, F5.1 4X,14,6X, F6.1,4X, F6.1,3X, F5.1,3X, F5.1)) M = int(Totl) Write(5,22) Write(5,21) M,Tot2 Write(5,20)

20 Format(4X,70('-'). )

21 Format(/,5X,'TOTAL', 20X,15,6X, F7.2)

22 Format(31X,18('-')) Stop End

SAMPLE INPUT DATA

89,102,132,125 93,111,107,128 118,121,130,156 100,147,108,175 132,136,178,178 130,171,143,200 122,182,105,200 153,188,138,200 163,181,135,200 162,169,184,200 192,191,201,200 155,142,203,171 166,148,202,153 124,68,229,200 188,120,195,129 186,99,175,110 148,92,184,118 186,124,176,132 179,124,168,136 200,149,185,167 148,112,137,122 158,137,140,157 128,128,124,142 104,5,110,22 105,22,115,33 110,21,122,32 105,2,130,11 122,2,143,15 134,50,111,97 142,142,3,143,24 142,1,154,6 154,2,156,16 179,12,193,25 188,25,202,34 192,41,197,57 176,44,197,52 109,80,118,96 132,68.,162,103 118,22,128,40 158,68,163,156 184,57,197,72 195,55,202,82 132,74,139,81 124,7,111,21 142,20,115,36

35

160,3,143,18 146,36,112,44 145,44,137,52 134;50,111,97 149,91,123,103 170,88,126,105 199,75,154,103 210,97,172,98 172,82,160,87 195,79,176,84 190,60,178,74 196,49,176,56

148,25,109,35 169,33,158,47 172,0,121,21 180,3,174,14 181,9,172,20 179,7,183,23 208,13,180,25 189,24,186,50 191,42,179,49 183,40,170,49 185,42,176,47 102,10,100,24

Output of CLAFY and input for HIST Programmes

N CMIN CMAX FREQ AZLEN AVLEN L% N%

1 270.0 280.0 1. 36.3 36.3 1.4 1.8 2 280.0 290.0 1. 26.6 26.6 1.4 1.3 3 290.0 300.0 3. 84.2 28.1 4.3 4.2 4 300.0 310.0 4. 141.8 35.5 5.8 7.1 5 310.0 320.0 8. 201.1 25.1 11.6 10.1 6 320.0 330.0 4. 240.1 60.0 5.8 12.1 7 330.0 340 3. 70.7 23.6 4.3 3.6 8 340.0 350.0 6. 145.3 24.2 8.7 7.3 9 350.0 360.0 3. 123.3 41.1 4.3 6.2 10 360.0 10.0 2. 40.3 20.2 2.9 2.0 11 10.0 20.0 1. 14.6 14.6 1.4 .7 12 20.0 30.0 3. 117.2 39.1 4.3 5.9 13 30.0 40.0 3. 55.4 18.5 4.3 2.8 14 40.0 50.0 ~ 9. 169.9 18.9 13.0 8.6 15 50.0 60.0 7. 179.9 25.7 10.1 9.1 16 60.0 70.0 6. 184.7 30.8 8.7 9.3 17 70.0 80.0 4. 116.0 29.0 5.8 5.8 18 80.0 90.0 1. 38;0 38.0 1.4 1.9

Total 69 1985.64

36

1000

2000

3000

4000

50OO

6000

7000

8000 9O00

Appendix II

Program Hist Dimension Jout (20), Acls (20), Freq (18) Charcter *80 Fnl,Fn2,Title Integer Acls Write (*, 1000) Format(' Give Input File Name:' $) Read( *, '(A80)') Fnl Write ( *, 2000) Format ( ' Give Output File Name' $) Read ( * , ' (A80)') Fn2 Open(l, File = Fnl, Status = 'OLD', Form = 'FORMATTED') Open(2, File = Fn2, Status = 'NEW', From =. 'FORMATTED') write ( *, 3000) Format ( ' Give Histogram Number: '$) Write( *, 4000) Read (1,' (A80) ' ) Title Read (1, ' (A80) ' ) Title- Read (1,' (A80) ' ) Title Format ( ' Plot Freq/Totlen/Avlen (011/2)' $) Read (*, '(11)' If lag if (If lag. eq. 0) then Read (1,' (3Ix, F5.0) ') (Freq(n) n= 1,18) elsif (If lag .eq. 1) then Read (1, '(42x,F6.1) ' ) (Freq(n) n= 1,18) elseif (ff lag .eq.2) then Read (1, '(52x, F6.1) ') (Freq(n), n = 1,18) end if

Format (3x, 'EACH *', 'EQUALS', 12, 'NO. OF LINEAMENTS',/) Format (3x, 'EACH *', 'EQUAL~' 12 'KILOMETERS' ,/) Format ('INTERVAL' , lx, 17(12,2x), 12) Format (70x, 'NO:', 13) Format (' CLASS')

10000 Format (80 ( ' - ' ) ) write (2,8000) NU

11000

12000

if (Iflag. eq. 0) then write (2, 11000) Format (23x, ' HISTOGRAM OF LINEAMENT FREQUENCY',/) elseif (Iflag. eq. 1) then write (2, 12000) Format (10x, 'HISTOGRAM OF TOTAL LINEMENT LENGTH/AZI- MUTH CLASS',./) elseif (lflag .eq. 2) then write (2, 13000)

13000

14000

Format (10x, 'HISTOGRAM OF AVG. LINEAMENT LENGTH/AZI- MUTH CLASS',/) endif Format (10x, 'W', 31x, 'N', 35x, 'E')

15

16

17 18

Do 151 = 1,18 Jout(I) -- Freq(I) Write (2, '(8x,17(13,x),x,13)') (Jout(I), I = 1,18) Do 16 I= 1,18 Acls(I) = I write (2,10000) Fmax = 0.0 Do 181 = 1,18 If (Freq(I) - Fmax) 18,18,17 Fmax = Freq(I) Continue Jscal = 1 If (Fmax - 50.) 20,20,19

19 Jscal = (Fmax + 49.0)/25.0 If (lflag. eq. 0) then Write (2, 5000) Jscal else Write (2,6000) Jscal endif

20 21

Do 211 = 1,18 Jout(I) = ' ' Max = Fmax / Float (Jscal) Do 221 = 1, Max

37

24 23

22

x = Max-( I -1) Do 2 3 J = 1,18 If (Freq(J)/Float (Jscal)-x) 23,24,24

Jout(J) = '*' Continue IX = X * Float (Jscal) Write(2, '(16,x, 17(3x,a1),3x,a1)' Ix, (Jout(J), J = 1,18) Do 251 = 1,18

25

26000

Jout(I) = I Write (2,10000) Write(2,7000) (Jout(I), I-- 1,18) Write(2,9000) Write (2,14000) Write(2,26000)

Format (20x, 'AZIMUTH CLASS INTERVAL IS 10 DEGREES') Stop 'Normal End of Program' end

38