Elliptic Fourier analysis F. James Rohlf (f.james.rohlf at stonybrook.edu) and Scott Ferson (firstname.lastname@example.org) Department of Ecology and Evolution State University of New York Stony Brook, NY 11794 4/22/92 Two sets of programs are a part of this package. EFA and EFAW are programs to compute the elliptic Fourier coefficients for an outline described by a set of x,y-coordinates (EFAW is the version for use with MS Windows 3.0+). The program allows for various simple transformations so that the results will be invariant to size, location, rotation, and starting point of the digitized outline. These methods are described in: Ferson, S. F., F. J. Rohlf, and R. K. Koehn. 1985. Measuring shape variation of two-dimensional outlines. Syst. Zoology, 34:59-68. EFA3 and EFA3W are programs for a generalization of the above method for outline contours in 3 dimensions (EFA3W is the version for MS Windows). The generalization corresponds simply to adding a Fourier analysis of the delta Z coordinates and making the analyses of all three coordinates a function of arc length along a 3-dimensional contour curve. Size standardization (for the 2-dimensional case) is achieved by estimating the area of the enclosed region (measured as the area of the ellipse defined by the first harmonic) and then dividing everything by its square root. Invariance to location is done by estimating the x and y-coordinates of the centroid of the enclosed region and then subtracting these from the input x and y-coordinates. Invariance to rotation and starting point are achieved by procedures that are somewhat arbitrary. The outline is rotated so that the major axis of the ellipse defined by the first harmonic is parallel to the x-axis. Invariance to starting position is achieved by restarting the outline at a point at the end of this ellipse in the positive direction along the x-axis. These two operations have the problem that they make the alignment of outlines dependent on their shape. It is usually best to provide data that have already been aligned and with the outlines starting from a well-defined landmark. The 3-dimensional case is more comples. At present, the EFA3 and EFA3W programs do not make any of the adjustements described above. The input is a file of X,Y coordinates (or X, Y, Z coordinates for a 3-dimensional contour) for 1 or more outlines. Output is a file that contains elliptic Fourier coefficients and (optionally) an estimated outline based on the specified number of harmonics. Details of computations are described in comment lines in the programs. The program were written in FORTRAN for the Microsoft FORTRAN compiler version 5.1 for computers compatible with the IBM PC. A version for DOS, EFA.EXE, and a version for MS Windows 3.0, EFAW.EXE, are distributed. ---------------------- Installation ---------------------------- There is no special installation procedure needed for the DOS version of the program. Simply unpack the archive file and copy the files to your hard disk. If you are using a computer that does not have a math coprocessor then you may have to have to use the following DOS command to enable the program to correctly detect the fact that the chip is not present: SET NO87=X For the Windows version you may wish to intall the program as an icon in the Program Manager. To do this copy the EFAW.EXE file to your hard disk and then click on "Files" and then "New" in the menu of the Program Manager. ---------------------- Input data format ---------------------------- label for file <------ comment to label ouput n <------ no. points around outline x1 y1 x2 y2 ... <------ coordinate pairs, free format ... xn yn n <------ start of second outline (if any) x1 y1 x2 y2 ... etc. etc. The TESTEFA.DTA file is provided as a simple example of a data file. Sample output from that file is provided below. Note: do not duplicate first x,y at the end of the outline (program assumes it has to complete the contour). The input described above can be placed in a file or else entered interactively as the program runs. For 3-dimensional data use the same format as above but list the X, Y, and Z coordinates for each point along the contour. ---------------------- Program limitations ------------------------ The program uses dynamic storage allocation procedures so the limitation on the size of data sets that can be analyzed is simply the amount of available RAM. The amount of RAM available before running EFA can be determined by using the DOS program MEM. The program itself requires about 60K. The program uses 7 arrays of length equal to the number of data points and 4 arrays of length equal to the desired number of harmonics. Each number requires 6 bytes of RAM. It should normally be possible to process outlines consisting of several thousand points. The Windows version, EFAW.EXE, can take advantage of the large amount of memory typically made available by Windows. Click on "Help" and then "About" in the menu for the Program Manager to see how much memory is available. Often around 10MB is available! Thus very long outlines can be processed. Normally, the limitation will be computer time rather than available memory. ----------------------- Running the program ------------------------ DOS version: At the DOS prompt type: EFA (or EFA3). The program will ask for the names of the input and output files. If you enter USER for the input file then the program will expect to read the data from the keyboard. If you enter USER for the output file then the results will be displayed on the screen. You may also enter the input and output file names at the command line as follows: "EFA FINPUT FOUTPUT", where FINPUT is the name of your input file and FOUTPUT is the name of your output file. MS Windows version: If the program has been installed as an icon then you can just double click the icon to start the program. If not, then click on "Files" and then "Run" in the Program Manager's menu. Then type "EFAW" or "EFAW FINPUT FOUTPUT" (or "EFA3W FINPUT FOUTPUT") in the window and click "OK" or else press the enter key. If you did not furnish the names for the input and output files, the program will ask for them. If you enter USER for the input file then the program will expect to read the data from the keyboard. If you enter USER for the output file then the results will be displayed in a window. After the run is complete you can copy the information in the results window to the Windows Clipboard and then save it in a file or else paste it into some other Windows program (e.g., a wordprocessor or spreadsheet). ----------------------- Program prompts ---------------------------- The EFA and EFAW programs ask the following questions after it opens the input data file (both the DOS and the Windows versions): Number of harmonics to be computed Make invariant to object size? (Y=yes) Make invariant to object location? Make invariant to object rotation? Make invariant to starting position? Estimate outline from coefficients? The number of harmonics requested will be constrained to be equal to or less than the number of points divided by 2 (divided by 3 for 3-dimensional data). The questions about results being invariant give you the ability to get a set of descriptors that are invariant under rotation, scale change, and choice of starting point. These questions are asked only once for a data file. If there is more than one outline in a file then the same options will be applied to all of them. The results are listed in the output file. If you say "Y" to the question about estimating the outline then the program will also try to reproduce the original set of x,y-coordinates based on the specified number of coordinates. This can be helpful at first so you can determine how many harmonics are needed. Note: one does not expect each point in the reproduced outline to to match the corresponding point in the input. This is because the points in the output are equally spaced along the reproduced outline and that is unlikely to be true in the input. To check the results you must plot the reproduced outline to see if it gives the same shape as the input outline. ------------------------ Output ----------------------------------- Example of EFA using the TESTEFA.DTA file for input and answering "Y" to adjusting for size but "N" to all other questions about invariance. Six harmonics were requested. Elliptic Fourier analysis 12/12/91 Input file: testefa.dta Output file: testefa.out Label: TEST DATA FOR ELLIPTIC FOURIER N points = 12 N harmonics = 6 Invariant to size (area) Area = 1.995527 Elliptic Fourier coefficients: Zeroth harmonic: A0= 2.940963 C0= 2.344097 Coefficients for harmonics: A B C D 1 -.795240700 -.552156200 -.551345500 .486770100 2 -.114832100 .344645600E-01 .924464600E-01 .390060900E-01 3 .255298300E-01 -.676450500E-01 -.112082300 .350138700E-01 4 .735372500E-02 .432591000E-01 -.555184400E-01 -.484213800E-01 5 -.347009100E-01 .152764000E-01 .817555700E-02 -.251324900E-02 6 -.799765200E-02 -.159095800E-01 -.930708600E-02 .990867100E-02 Reproduced outline: 1 2.02107500 1.71646500 2 1.96044600 2.21181500 3 2.04717600 2.65626900 4 2.60191200 2.65468200 5 2.94341000 2.82384600 6 3.14311900 3.19724200 7 3.62989800 3.02697000 8 3.94991000 2.62665000 9 3.91100000 2.12781100 10 3.54038100 1.75619600 11 3.04523100 1.65737700 12 2.49799500 1.67383800 Note that you get 4 coefficients for each harmonic (ordinary Fourier analyses only give you 2 numbers per harmonic). Please read the note about the reproduced outline in the section on Program Prompts above. For the 3-dimensional case you will get 6 coefficients per harmonic.