PTCount-A Fortran 77 Computer Program
Post on 11-Jan-2017
Embed Size (px)
by William Z. Savage1, Jeffrey A. Coe1, and Ronald E. Sweeney2
U.S. DEPARTMENT OF THE INTERIORU.S. GEOLOGICAL SURVEY
PTCOUNTA Fortran-77 Computer Programto Calculate the Areal Distribution of Mapped Data PointsUsing Count-Circle Methodology
This report is preliminary and has not been reviewed for conformity with U.S. Geological Survey editorialstandards or with the North American Stratigraphic Code. Any use of trade, firm, or product names is fordescriptive purposes only and does not imply endorsement by the U.S. Government.
Open-File Report 01-0002
1Denver Federal CenterBox 25046, M.S. 966Denver, Colorado 80225
2Denver Federal CenterBox 25046, M.S. 973Denver, Colorado 80225
This open-file report was prepared by an agency ofthe United States Government. Neither the UnitedStates Government nor any agency thereof nor anyof their employees makes any warranty, expressed orimplied, or assumes any legal liability or responsibil-ity for the accuracy, completeness, or usefulness ofany information, apparatus, product, or process dis-closed in this report or represents that its use wouldnot infringe privately owned rights. Reference there-in to any specific commercial product, process, orservice by trade name, trademark, manufacturer, orotherwise does not constitute or imply its endorse-ment, recommendation, or favoring by the UnitedStates Government or any agency thereof.
Although all data and software in this open-filereport have been used by the USGS, no warranty,expressed or implied, is made by the USGS as to theaccuracy of the data and related materials and (or)the functioning of the software. The act of distribu-tion shall not constitute any such warranty, and noresponsibility is assumed by the USGS in the use ofthese data, software, or related materials.
PTCOUNTA FORTRAN-77 Computer Program to Calculate the Areal Distribution of Mapped Data Points Using Count-Circle Methodology
Count-circle methodology is typically used for stere-onet analyses of structural data (for example, seeRamsay and Huber, 1987, p. 335). Many computerprograms are available for stereonet analyses (forexample, the Stereo module of Rockware98, 1998),but, to our knowledge, there were no programs avail-able as of June 2000 for application of count-circlemethodology to mapped point data.
Application of count-circle methods to mapped dataleads to the creation of isopleth maps. Contours(isopleths) on an isopleth map (see Schmid andMacCannel, 1955) connect equal numbers or densi-ties of mapped features that occur within a fixed area.A population density map is an example of an iso-pleth map. To manually create an isopleth map, anequally spaced grid is overlain on the geologic map.Then the center of a count circle of fixed area issequentially placed at each grid node and the numberof mapped features falling within the circle are count-ed and recorded. Finally, the number of mapped fea-tures at each grid coordinate is contoured to producean isopleth map. For examples of manually createdisopleth maps see Campbell (1973), Wieczorek andother (1988), and Coe and Godt (in review).
The PTCOUNT program described in this reportautomates the production of count-circle data fromdigital map data. Below, we describe the programand the automated point-counting procedures, presentresults from an application of the program, provideguidelines for determining grid spacing and count-cir-cle size, and present a tutorial (Appendix A) thatincludes instructions on running PTCOUNT.EXE, asample input file, and a sample output file. Lastly,two FORTRAN-77 listings of PTCOUNT.FOR aregiven in Appendix B. The first listing is that forPTCOUNT.EXE and the second is a UNIX version.
A brief description of the PTCOUNTprogram
The program carries out point counting procedure bythe following steps. First, increments in x and y, forthe rectangular grid shown in Figure 1 are obtainedby respectively dividing the maximum and minimumx and y coordinates (xmin, xmax, ymin, and ymax inthe program listing) by the number of x- and y-steps(nxs and nys) to give,
Next beginning at x = xmin and y = ymin, that is, atthe first grid node, i = 1 and j = 1 in Figure 1, theradii to all input data points in the arrays xcrd(k) andycrd(k) where k = 1, npoint, are calculated by thePythagorean theorem,
The calculated radii, r, are compared with the count-circle radius, ccrad, and the resulting number ofpoints falling within the count circle are automatical-ly counted and stored in the nz(i,j) array in the pro-gram. The program then moves the count-circle cen-ter to the next grid node given by i = 2 and j = 1 andthe procedure for computing the number of datapoints within the count-circle radius is repeated. Theprogram continues to move the count-circle center(from the left to the right and upward as shown inFigure 1) to each grid node and repeats the countingprocedure until the maximum x and y coordinates(xmax and ymax, i.e., when i = nxs + 1 and j = nys+1) are reached. Grid coordinates are defined by x =x + ix and y = y + iy and the number of geologic fea-tures found by the counting procedure at each ofthese centers are stored in the nz(i,j) array.
y = (y max y min)nys
x = (x max x min)nxs
r = [xcrd (k) x]2 + [ycrd (k) y]2
Figure 1. This figure is a sketch of the configuration for automated point count-ing of mapped data. Data points with x and y coordinates are indicated as blackdots. The x,y coordinate system, the grid, the point counting circle, and an exam-ple of movement of the point circle center (from grid node i = 3, j = 5 to gridnode i = 5, j = 5) are shown.
Output from the program gives the number of geo-logic features at each x,y grid coordinate in a formthat allows these data to be contoured to produce anisopleth map. A contour (isopleth) map of landslidedensities produced by using output data fromPTCOUNT.exe in SURFER 7 (Golden Software,1999) is shown in Figure 2. The original locationdata is from a database of 1358 Seattle-area land-slides by Laprade, and others (2000). For this appli-cation of PTCOUNT.exe, x,y coordinates are inUTM format with xmin = 543600 m, xmax = 557200
m, ymin = 5260500 m, and ymax = 5286900 m. Thegrid is constructed using 68 xsteps and 132 ysteps.This choice of x and y steps, nxs = 68 and nys = 132,results in a grid where x and y are both equal to 200meters. The radius of the point counting circle is 226meters. This gives an area roughly 4 times the areaof the largest landslides in the Seattle database. Wemade this choice of point-circle radius to minimizecalculations. As we will see in the next section, it islarger than the radius used by Coe and others (2000)to create an isopleth map from the Seattle landslidedata.
Guidelines for determining grid spacing and count-circle size
The choice of grid spacing and count-circle radiusaffects the overall smoothness and compactness ofoutput data and final contours on the isopleth map. Asmall grid spacing produces smoother output datathan does a large grid spacing. Large count circlesspread the output data over a more regional area thando small count circles. The only rule that should befollowed to ensure consistent counting of input datais that there should be at least 50% overlap betweencount circles placed at successive grid locations. Toachieve 50% overlap or greater, the grid spacingshould be less than or equal to the circle radius. Theindividual user should carefully consider the con-straints of their input data and the look they hope toachieve with their final product before selecting agrid spacing and circle radius. For example, in theversion of Figure 2 published by Coe and others(2000) we use a grid spacing of 25 m. This gridspacing is roughly equivalent to an average residen-tial lot in Seattle. The count-circle size of 40,000 m2
(radius of 113 m) is used because it is roughly equiv-alent to the mapped area of the largest landslides inSeattle. Examples of additional grid spacings and cir-cle radii used for various landslide projects are givenin Table1. In general, the best approach is to experi-ment with various grid-spacings and radii beforedeciding which to use.
Figure 2. This figure shows a contour (isopleth) mapof landslide densities in the Seattle area produced byusing output data from PTCOUNT.exe in SURFER7. Coordinate values are in UTM format.
Table 1. Examples of previously used grid spacing and count circle radii.
Reference Scale ofisopleth map
Grid spacing Count circleradius
Ratio of GridSpacing toCircle radius
24,000 1000 ft. 1128 ft. 89%
Wright andNilsen (1974)
125,000 5208 ft. 5208 ft. 100%
Coe and Godt(in review)
24,000 250 m 282 m 89%
Coe and others(2000)
25,000 25 m 113 m 22%
Campbell, R.H., 1973, Isopleth map of landslidedeposits, Point Dume Quadrangle, LosAngeles county, California, an experiment ingeneralizing and quantifying areal distribu-tion of landslides: U.S. Geological SurveyMiscellaneous Field Studies Map MF-535,scale 1:24,000.
Coe, J.A. and Godt, J.W., in review, Debris flowstriggered by the El Nio generated rainstorm ofFebruary 2-3, 1998, Walpert Ridge and vicinity,Alameda County, California, U.S. GeologicalSurvey Miscellaneous Field Investigation SeriesMap, scale 1:24,000.
Coe, J.A., Michael, J.A., Crovelli, R.A., and Savage,W.Z., 2000, Preliminary map showing landslidedensities, mean recurrence intervals, andexceedance probabilities as determined fromhistoric records, Seattle, Washington: U.S.Geological Survey Open-File Report 00-303, 25p., scale 1:25,000.
Golden Software, Inc., 1999, Surfer 7: Contouringand 3D surface mapping software by GoldenSoftware, Inc, Golden, CO.
Laprade, W.T., Kirkland, T.E., Nashem, W.D., andRobertson, C.A., 2000, Seattle Landslide Study,Shannon and Wilson, Inc. Internal Report W-7992-01, 164 p.
Ramsay, J.G. and Huber, M., 1987, The techniques ofmodern structural geology: Academic Press,London, 700 p.
Rockware, Inc., 1998, RockWorks98: A suite of com-puter programs by RockWare, Inc., Golden, CO.
Schmid, R.H. and MacCannel, 1955, Basic problems,techniques, and theory of isopleth mapping:Journal of the American Statistical Association,v. 50, no. 269, p. 220-239.
Wright, R.H. and Nilsen, T.H., 1974, Isopleth map oflandslide deposits, southern San Francisco Bayregion, California: U.S. Geological SurveyMiscellaneous Field Studies Map MF-550, scale1:125,000.
For immediate application, we have included an exe-cutable version of the program PTCOUNT.exe. Thefirst FORTRAN-77 listing in Appendix B is thesource code for PTCOUNT.exe.
The executable version of the programPTCOUNT.exe requires specification of the numberof x- and y-steps (nxs and nys), the number of datapoints (npoint), maximum and minimum x and ycoordinates (xmin, xmax, and ymin, and ymax), theradius of the count circle (ccrad), and the coordinatesof all data points (the arrays xcrd(k) and ycrd(k)where k = 1, npoint). These variables must be includ-ed in an input file named point.dat. Input data isplaced in the file in the following order,
nxs,nys,npointxmin, xmax, ymin,ymax,ccradxcrd,ycrd
Note that the input data are in free format, i.e., com-mas separate input values.
The executable version of PTCOUNT.exe allows thegrid to have 2001 x and 2001 y values, that is, nxsand nys can have maximum values of 2000. Also theexecutable version allows a maximum of 50,000 datapoints, that is, npoint 50,000. Output data, placed inan output file named grid.dat, are in the orderi,j,x,y,nz(i,j). The Format of the output file is2i5,2f15.3,i10.
A sample input file listing coordinates of landslidesmodified from Coe, and others (2000) is included inprogram. Execution of the program creates the out-put file grid.dat and contouring of the results withSURFER 7 or equivalent contouring softwareshould lead to the isopleth map shown in Figure 2.
PTCOUNT.exe was compiled with MicroSoftDeveloper FORTRAN on a PC running MicroSoftWindows 2000. It should run on most PCs with aWindows operating system and 64 MB of RAM forarray allocation. To download and run the test case ,first, create a directory on your PC for the executableprogram file PTCOUNT.exe, input data file point.dat,and output data file grid.dat. Next click on programand then double click on PTCOUNT.exe to downloadthe executable program file to your new directory.You will also need to download the data file point.datto your new directory in the same way. To executethe program double click on ptcount.exe in yourdirectory. The program will then run and create theoutput file grid.dat that can then be contoured using acontouring package such as SURFER 7
Appendix B: FORTRAN-77 Listings ofPTCOUNT.FOR
Two listings are given. In the first listing the userinputs the maximum and minimum x and y coordi-nates of the input data. The second listing, written fora UNIX operating system, automatically calculatesmaximum and minimum x and y coordinates from theinput data.
First listing of PTCOUNT.FOR
dimension nz(2000,2000)dimension xc(2000,2000),yc(2000,2000)double precision xcrd(50000),ycrd(50000)double precision xmin,xmax,ymin,ymax,ccradopen(10,file='point.dat')open(11, file='grid.dat')read(10,*)nxs,nys,npointread(10,*) xmin,xmax,ymin,ymax,ccradxns=float(nxs)yns=float(nys)xinc=(xmax-xmin)/xnsyinc=(ymax-ymin)/ynsdo 1 n=1,npointread(10,*) xcrd(n),ycrd(n)
1 continuey=ymindo 30 j=1,nys+1x=xmindo 20 i=1,nxs+1ncount=0do 5 k=1,npointr=sqrt((xcrd(k)-x)**2+(ycrd(k)-y)**2)if(r .le. ccrad) thenncount=ncount+1nz(i,j)=ncountelsegoto 5end if
5 continuewrite(11,1200) i,j,x,y,nz(i,j)xc(i,j)=xyc(i,j)=y
20 x=x+xinc30 y=y+yinc
1200 format(2i5,2f15.3,i10)close(10)close(11)end 8
Second listing of PTCOUNT.FOR
dimension nz(2000,2000)double precision xcrd(50000),ycrd(50000)double precision xmin,xmax,ymin,ymax,ccraddouble precision x,y,xpt,ypt,xns,yns,xinc,yinc
1 format(' Enter input x,y point filename: ',$)read(5,2) infil
3 format(' Enter output ASCII grid filename: ',$)read(5,2) iofilopen(unit=11,file=iofil,status='new',form='formatted')write(6,4)
4 format(' Enter number of columns & rows for output grid: ',$)read(5,*) nxs,nyswrite(6,5)
5 format(' Enter length of radius for point count circle: ',$)read(5,*) ccrad
cc Calculate xmin, xmax, ymin, ymax for input point data.c
npoint=08 read(10,*,end=10) xpt,ypt
xmin=xptelse if(xpt.gt.xmax) then
xmax=xptend ifif(ypt.lt.ymin) then
ymin=yptelse if(ypt.gt.ymax) then
end ifgo to 8
10 close(10) 9
cc Round off xmin, xmax, ymin, ymax.c
11 format(' Number of points in input point file = ',i10,/,1 ' xmin = '...