You are on page 1of 180

Decomposing Waveform Lidar for Individual Tree Species Recognition

Nicholas Vaughn

A dissertation submitted in partial fulllment of the requirements for the degree of

Doctor of Philosophy

University of Washington

2011

Program Authorized to Oer Degree: School of Forest Resources

University of Washington Graduate School

This is to certify that I have examined this copy of a doctoral dissertation by Nicholas Vaughn and have found that it is complete and satisfactory in all respects, and that any and all revisions required by the nal examining committee have been made.

Chair of the Supervisory Committee:

Eric C. Turnblom

Reading Committee:

L. Monika Moskal David G. Briggs Eric C. Turnblom

Date:

In presenting this dissertation in partial fulllment of the requirements for the doctoral degree at the University of Washington, I agree that the Library shall make its copies freely available for inspection. I further agree that extensive copying of this dissertation is allowable only for scholarly purposes, consistent with fair use as prescribed in the U.S. Copyright Law. Requests for copying or reproduction of this dissertation may be referred to Proquest Information and Learning, 300 North Zeeb Road, Ann Arbor, MI 48106-1346, 1-800-521-0600, to whom the author has granted the right to reproduce and sell (a) copies of the manuscript in microform and/or (b) printed copies of the manuscript made from microform.

Signature

Date

University of Washington Abstract

Decomposing Waveform Lidar for Individual Tree Species Recognition


Nicholas Vaughn Chair of the Supervisory Committee: Associate Professor Eric C. Turnblom School of Forest Resources The potential of waveform Lidar is investigated in a series of three articles. In the rst, a new approach is found to capture patterns within waveforms using an old technique: the Fourier transform. The mean spectral pattern between waveforms hitting an individual tree is found to aid in discriminating species. Using the full dataset, an overall accuracy of 75 percent is achieved using a classication tree approach for 44 sample trees of 3 hardwood species native to the Pacic Northwest of the United States. Important wavelengths within the waveforms include 1.5, 0.75, and 0.35 meters. In a second article, the ability of the above technique to classify species using datasets of lower densities is analyzed. From the original dataset with approximately 10 waveforms/pulses crossing a square meter at ground level (equivalent to a rst and last return discrete point dataset of about 20 points per square meter), reduced datasets were created at 80, 60, 40 and 20 percent of the original density. The classication was then performed at each density level. Reducing the density to 80 percent actually increased the overall accuracy to 82 percent, while subsequent reductions reduced the accuracy to 61, 54, and 66 percent respectively for the 60, 40 and 20 percent reduced datasets. A third article compares a combination of several variables obtained from a discrete

point Lidar dataset before and after the addition of variables obtained from waveform Lidar data. The addition of waveform information aided in the classication of ve species, as well as in the classication of several two-species subsets. Performance of small groups of similar discrete point Lidar-derived variables varied much more between dierent species combinations, but when grouped they performed very well in all combinations. These results provide some suggestive evidence that ne-scale waveform Lidar information is important to classication of at least some tree species.

TABLE OF CONTENTS
Page List of Figures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . List of Tables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Glossary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Chapter 1: Introduction and Layout . . . . . . . . . . . . . . . . . . . . . . 1.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.2 Layout of Thesis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Chapter 2: 2.1 2.2 2.3 2.4 Progress Towards the Accurate Identication of Species with Remote Sensing Data . . . . . . . Background . . . . . . . . . . . . . . . . . . . . . . . Individual Tree Segmentation . . . . . . . . . . . . . Individual Tree Species Detection . . . . . . . . . . . Discussion . . . . . . . . . . . . . . . . . . . . . . . . Individual . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Tree . . . . . . . . . . . . . . . . . . . . . . . . iii iv v 1 1 5

7 7 9 12 25 28 28 28 30 36 41

Chapter 3: Fourier Transform of 3.1 Abstract . . . . . . . . . . 3.2 Introduction . . . . . . . . 3.3 Methods . . . . . . . . . . 3.4 Results and Discussion . . 3.5 Conclusion . . . . . . . . . Chapter 4: Fourier Transform of data requirements . 4.1 Abstract . . . . . . . . . . 4.2 Introduction . . . . . . . .

Waveform Lidar for Species Recognition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Waveform . . . . . . . . . . . . . . . . . . i Lidar for Species . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Recognition . . . . . . . . . . . . . . . . . . . . .

42 42 43

4.3 Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.4 Results and Discussion . . . . . . . . . . . . . . . . . . . . . . . . . . 4.5 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Chapter 5: 5.1 5.2 5.3 5.4 5.5 Increasing Individual Tree Species Classication Accuracy by Incorporating Raw Waveform Lidar Data . . . . . . . . . . . . . . Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Discussion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Used . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

46 55 60

61 61 65 76 80 85 87 87 87 89 108 108 113 132 132 133 135 139 146 146 148 150 152 153 159

Chapter 6: Further Detail of Methods 6.1 Introduction . . . . . . . . . . . 6.2 Data . . . . . . . . . . . . . . . 6.3 Methods . . . . . . . . . . . . .

Chapter 7: General Discussion and Conclusions . . . . . . . . . . . . . . . 7.1 Discussion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.2 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Appendix A: Voxel-based Clustering A.1 File constants.py . . . . . . A.2 File cellfunctions.py . . . . . A.3 File cellcluster.py . . . . . . A.4 File crownseg.py . . . . . . Appendix B: Miscellaneous B.1 File richlucy.c . . . B.2 File getpeaks.c . . B.3 File voxeltest.r . . B.4 File neighbors.r . . B.5 File predvars.r . . . B.6 File liddelltest.r . . Segmentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Computer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

ii

LIST OF FIGURES
Figure Number 3.1 Map of the Washington Park Arboretum . . . . . . . . . . . . . . . . 3.2 Example classication tree . . . . . . . . . . . . . . . . . . . . . . . . 3.3 Ranges of the common classication variables . . . . . . . . . . . . . 4.1 4.2 4.3 4.4 4.5 Dierence between waveform and discrete Lidar data Map of the Washington Park Arboretum . . . . . . . Example spectral decomposition . . . . . . . . . . . . Example classication tree . . . . . . . . . . . . . . . Range of scan angles for individual trees . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Page 32 35 40 45 48 50 53 59 64 75 77

5.1 Example waveform . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.2 Loading of the principal components of median data . . . . . . . . . . 5.3 Loading of the principal components of IQR data . . . . . . . . . . .

iii

LIST OF TABLES
Table Number 3.1 Classication results . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2 Commonly used classication variables . . . . . . . . . . . . . . . . . 4.1 Classication results . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.2 Dataset reduction results . . . . . . . . . . . . . . . . . . . . . . . . . 5.1 5.2 5.3 5.4 6.1 6.2 6.3 6.4 6.5 6.6 6.7 6.8 6.9 6.10 6.11 Tree height statistics . . . . . . . . . . . . Canonical correlation coecients . . . . . Five species classication confusion matrix Classication accuracy results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Page 36 38 56 57 68 77 79 80 88 93 101 102 103 103 104 104 105 106 107

Waveform Lidar acquisition parameters . . . . . . . . . . Default parameter values of the segmentation algorithm . Summary statistics of the predictor variables in group a . Summary statistics of the predictor variables in group b . Summary statistics of the predictor variables in group c . Summary statistics of the predictor variables in group d . Summary statistics of the predictor variables in group e . Summary statistics of the predictor variables in group f . Summary statistics of the predictor variables in group h . Summary statistics of the predictor variables in group i . Summary statistics of the predictor variables in group j .

iv

GLOSSARY
ATM:

Airborne Thematic Mapper, an aerial multispectral sensor Compact Airborne Spectrographic Imager, an aerial multispectral sensor

CASI(-2): CIR:

Color-InfraRed, photographic lm with layers which reproduce infrared as red, red as green, and green as blue Canopy Height (or Surface) Model,which is a DSM of canopy surface height above ground Digital Surface (or Elevation) Model, a two-dimensional raster model of surface elevation Digital Terrain Model, which describes a DSM of the bare-earth elevation above a specied geoid

CHM/CSM:

DSM/DEM:

DTM:

GPS:

Global Positioning System, a system of satellites with known position used to triangulate a two- or three-dimensional position of an object in near real-time

HSI/HSV/HSL:

color models, often used in computer graphics, which provide alternatives to the red, green, blue (RGB) color model that attempt to more accurately match how the human eye perceives color

HYPERSPATIAL:

geospatial data with a high spatial resolution, i.e. minimal pixel width and height in the case of raster data geospatial data with a large number of bands covering a large range of the electromagnetic spectrum geospatial data with two to several repeated measurements across a range of time A commercial satellite system oering multispectral imagery v

HYPERSPECTRAL:

HYPERTEMPORAL:

IKONOS:

IMU:

Inertial Measurement Unit, an instrument using accelerometers and gyroscopes to measure angular rotation and speed of change in angular rotation. Linear Discriminant Analysis, a parametric classication rule assuming a multivariate normal distribution for the predictor variables Light Detection And Ranging

LDA:

LIDAR/LIDAR/LIDAR: MEIS: ML:

Multispectral Electro-optical Imaging Sensor, an aerial multispectral sensor Maximum Likelihood, a parametric classication rule

MULTISPECTRAL:

geospatial data with a limited number of bands covering a range of the electromagnetic spectrum, typically referring to data with more than just red, green and blue components Principal Component Analysis, a data dimension reduction technique

PCA:

RASTER:

a data set consisting of an indexed array (usually two-dimensional) of cells, each cell containing a single value representing the variable of interest for the indexed area in space Spectral Angle Mapper, a non-parametric classication rule Support Vector Machine, a non-parametric classication rule

SAM:

SVM:

vi

ACKNOWLEDGMENTS
I would like to thank those, without whom completion of this dissertation would not have been possible. Financial support was provided for several quarters by both the Precision Forestry Cooperative and Corkery family. The waveform Lidar dataset was provided by Terrapoint, USA. Dave Ward and Craig Glennie at Terrapoint provided much technical assistance when transforming the raw waveform and position data into map coordinates. Bob McGaughey and Steve Reutebuch, at the Pacic Northwest Research Station also provided their expertise in this area. My committee has provided endless feedback and motivational support along the way to completion of this work and I have learned much from working with and asking questions of each member. Without this support, I would not have even known where to begin this endeavor. Sooyoung Kim collected the original data used in part of this work and was gracious enough to provide it for my work. Andrew Hill was very helpful in the remeasurement and validation of this data. He continued to help even after I dragged a sample of canine digestive output into his vehicle on my boot. Other students in the RSGAL at University of Washington have helped in dierent ways. Je Richardson answered my many questions about specic tools. I gained from the experience of my comrades in many aspects of remote sensing work. Friends and family provided along with moral support, occasional babysitting which was very important to both my sanity and completion of my work. Maria Petrova, provided much appreciated, last-minute babysitting service in order for me vii

to give an important presentation. Both grandma Judys were very instrumental in getting me time to work during their visits. My wife, Jilleen, made sure to work hard watching the boys after long, hard days at work in order to get me essential work time. Her constant support was the biggest reason I could even make it to the nish line (physically and mentally). My boys, Reid and Zack, reminded me to enjoy my time with them while I have it. They provided much entertainment and a great way to get my mind o of work for a while.

viii

DEDICATION
To my amazing wife, Jilleen and our two boys for providing me with unending support and inspiration

ix

Chapter 1 INTRODUCTION AND LAYOUT


1.1 Introduction

1.1.1 Species Recognition As in many applications of modern technology to long-standing occupations, there is a great potential to increase either the speed or quality, as well as reduce the costs of forest inventory. The entire eld of precision forestry developed very rapidly around this idea. Such outcomes are highly needed in modern forestry, where providing a steady ow of merchantable timber is no longer the only objective of a manager. The number of competing objectives is continually increasing, especially on public forests, and modern tools can provide the greater detail necessary to make optimal decisions that balance these objectives. There are several situations where remote sensing of forest lands can be of great use. In forest inventory, for instance, the greater detail and coverage available from remote sensing products can improve eciency of estimates of almost any quantity of interest. This can be as simple as stratifying an area of interest into closely related compartments based on aerial photography of the area. Such stratication has been used for many years to reduce overall variance in the estimates. Modern remote sensing products are now of sucient resolution and accuracy to push such stratication to a new extreme. From modern products, highly accurate positional information is known for any given subset of the data. Additionally, the spatial resolution available is incredibly high compared to just a decade ago. Enabled by these two important properties, an approach wherein statistics are compiled for individual tree crowns should oer even greater eciency. Most stand-level statistics

estimated from eld-data have always been derived from at least some individual-tree measurements because this detail was available. Until recently, the same has not been possible for estimates based on remote sensing data. While not yet readily obtained, an accurate estimate of the species of individual trees represented in remotely sensed data alone would provide even further benets in many situations. Timber value is determined by species, and the models predicting tree size from remotely sensed data dier greatly by species. Knowledge of species could improve accuracy and precision by incorporating these dierences. Models not directly measuring tree species from the remote sensing data are augmented by models based on the relative abundance of the individual species within the eld data. With great enough accuracy, direct prediction of species for each crown should allow for better estimates of the other variables of interest in an inventory. If timber values are not of interest, several additional applications can easily be found where species information would be tremendously useful. One could more easily predict habitat quality for plants and animals associated with particular stand types. Risk assessment for re or beetle outbreaks would benet from species detection as mapping high-risk areas could quickly be done. Additionally, changes in site conditions often result in changes in species composition, and discovery of such changes could be a rather straightforward process. Researchers have been working on automatic individual tree species detection for more than twenty years. In publications from this time period, improvements can be observed as data sources and algorithms have improved. Several types of data have been incorporated to achieve accurate species detection. These types include high spatial resolution imagery, as well as still-improving hyperspectral data. Alongside imagery, however, a newer form of three-dimensional remote sensing data has changed the game signicantly.

1.1.2 Lidar Lidar comes from the phrase Light Detection and Ranging, which is the formal name of a modern remote sensing system. This system takes advantage of the constant speed of light emitted from an highly directional beam to record the distance to targets within the beams path. A Lidar system typically emits a very large number of pulses while rapidly changing the direction of the light beam. When the location of the mobile instrument, as well as the orientation of the light beam are accurately known, the system can create a large array of points representing surfaces of high specular reectivity along the known paths from all pulses of the directional beam. This is called discrete point Lidar data, though it is often just referred to as Lidar. Discrete point Lidar is relatively common today in many elds, however it has only recently become popular in some areas for forest inventory. Lidar (airborne) data is gathered in the following manner: An aircraft carrying the sensor is own in overlapping strips over the area of interest. The widths of these strips are determined by the range of angles taken by the light beam and the height of craft. The sensor is paired with a dierential Global Positioning System (GPS) unit and an Inertial Measurement Unit (IMU), the combination of which enables precise measurement of aircraft position and orientation at a given time. The sensor contains a directional light source with very low divergence, and the angle of this beam can be precisely measured at a given time. The light pulses at a very high rate, currently up to several hundred thousand times a second. For each pulse the sensor measures the intensity of light reected back from the target (ground or vegetation) and marks the time at which peaks are found in

this return signal.

The time of the pulse and the exact travel time of the light to the given peak can be used to precisely locate the point in space that deected the light pulse back to the sensor (called a return).

The collection of these returns, each containing an X, Y, and Z component and commonly a peak returned intensity component, is cleaned and subsequently provided to the client as a nal dataset.

The three-dimensional point cloud received by the client is typically used to create a digital surface/elevation model (DSM/DEM) of ground elevation above a specied geoid. Those in the forestry sector then will usually create a digital surface model of the canopy surface (CSM) above the ground elevation, often called a canopy height model (CHM). The properties of this CHM allow tree heights and crown volumes to be estimated, both of which can be linked to tree stem diameter and volume. Some authors have used these data to identify species of individual trees. The arrangement of the points from each tree can give many descriptive statistics that indicate the shape of the crown. Additionally, the intensity information of the points can be summarized in a form that is aected by tree species. There has been some great success for certain species using this method, but there will always be room for improvement, especially if the number of species increases. The use of Lidar information alone for species detection, without incorporating multispectral imagery for instance, would be ideal. If this can be realized, then one dataset could be used for all aspects of a forest inventory with outstanding precision. To aide in this process, a newer format of Lidar now exists, called waveform (or fullwave) Lidar that contains additional information which may be able to improve the classication accuracy of individual trees.

1.1.3 Waveform Lidar Waveform Lidar is recorded using most of the same steps and mostly the same instrumentation as discrete point Lidar. The dierence is in how the return signal of light reecting o the ground and vegetation surface is recorded. Rather than detecting peaks in this signal, the sensor rapidly samples the signal at a set rate. In this way, the return signal is mapped in the same way that sound is digitally recorded. This dierence is an important one as the shape of the entire return signal is known rather than just the points where peaks occur. Some work has shown that the shape of a peak is related to surface properties of the target. A few researchers have broken down the waveforms into series of peaks, for which individual peak shape information is retained. Smaller peaks that would be skipped by the on-board peak detector in discrete point systems can now be discovered. At minimum, this results in a discrete point dataset of very high density. Theoretically, the extra information contained in the peak shape information is useful for target discrimination.

1.1.4 Objectives The objective of this dissertation work was to investigate whether or not waveform Lidar contains additional information over that contained in discrete point Lidar that can be used to improve individual tree species recognition. 1.2 Layout of Thesis

This dissertation is a bound collection of four individual articles, appearing as chapters 2, 3, 4, and 5. Chapter 2 contains the rst article, which is an extensive literature review. This review was intended to be a stand-alone work with the potential to be published as a separate work. Chapter 6 contains a more detailed description of many of the methods and materials used in the three technical articles that follow. The intent of this overview is to provide the missing detail that often must unfortunately

be trimmed from articles to meet publication constraints. The next three chapters contain the technical articles that are the main focus of this thesis. Chapter 3 is an article published in the December 2010 issue of Remote Sensing Letters. It is a brief article describing some preliminary test of a new technique for analyzing waveform Lidar information. Chapter 4 contains an article that extends the results of this preliminary test. It was presented at (and appears in the proceedings of) the 2010 Silvilaser conference in Freiburg, Baden-W rttemberg, u Germany. Chapter 5 is an article describing a more thorough examination of the potential of waveform Lidar over discrete data alone for species classication. Finally, chapter 7 is a general discussion of the entire dissertation work presented in previous chapters. The discussion sections of the other chapters are much more specic. The purpose of the general discussion is to emphasize important points and provide a more broad overview of relevance of this dissertation when presented along with the contributions of other authors in the eld. This layout was designed to provide a sucient amount of continuity among the individual articles presented to aid the reader with comprehension. At the same time, the purpose was to not excessively repeat information, which may in fact distract the reader.

Chapter 2 PROGRESS TOWARDS THE ACCURATE IDENTIFICATION OF INDIVIDUAL TREE SPECIES WITH REMOTE SENSING DATA
2.1 Background

The eld work required to achieve precise estimates of forest stand characteristics can become very expensive and time-consuming. Typically, the largest share of the cost of a eld survey is associated with placing a measurement crew at the site for the number of hours needed for the desired level of precision. Improvements in sampling designs have reduced these costs signicantly, but we constantly seek out tools that can oer even greater reduction in eld time requirements or improvements in precision. Modern remote sensing tools oer the additional information needed to greatly reduce survey costs by reducing the number of plots necessary (Aldred and Hall 1975). While eld costs never decrease, costs of remote sensing products have generally decreased for a given level of resolution over the last few decades. This results in ever-increasing motivation to incorporate remotely sensed information into sampling designs. For a given level of precision, it is becoming more and more likely that signicant cost savings can be realized. The improvement in eciency provided by remote sensing tools will be most noticeable for larger areas of interest, and the cost savings increase as coverage area increases. For example, Mumby et al. (1999) found that satellite sensors outperform the traditional approach to coastal habitat mapping. Kleinn (2002) and Tomppo and Czaplewski (2002) show that for national and global-scale surveys, respectively, designs incorporating remote sensing technology could reduce total inventory cost. The

number of eld plots required to use a model-based sampling scheme increases more directly with the number of strata and heterogeneity within strata than with the total area of interest. Additionally, in some cases, it is very aordable to obtain satellite data for a very large coverage area. Several forest inventory variables are now readily obtained from remote sensing products. At the stand level, low-cost satellite imagery is often used for stand delineation and classication, as well as for measuring size and productivity of stands (Magnusson 2006, Boyd and Danson 2005). For example, stand volume or biomass has been linked with several variables easily obtained from multispectral satellite imagery (Foody et al. 2003, Hall et al. 2002, Roy et al. 1991, Sader et al. 1989). Additionally, species composition for individual stands has often been estimated from multispectral data (Heikkinen et al. 2010, Kamagata et al. 2005, Franklin et al. 2000, Treitz and Howarth 2000, Martin et al. 1998, Gong et al. 1997, Walsh 1980, Beaubien 1979). However, multi-temporal data (Xiao et al. 2002, Mickelson et al. 1998, Wolter et al. 1995, Everitt and Judd 1989) and hyperspatial data (Ke et al. 2010, Wulder et al. 2004, Treitz and Howarth 2000) have been used for this task as well. Some authors have even classied stands with Lidar data alone (Donoghue et al. 2007, Schreier et al. 1985), or in combination with imagery (Ke et al. 2010). With the improvement in data resolution and the increased availability of new tools, some have begun to focus on individual trees rather than the whole stand as the classication unit (Lim et al. 2003, Gougeon and Leckie 2003). The immediate advantage of such an approach is more detail and a potential for higher precision (Culvenor 2003). Both of these are due to a smaller size and drastically increased number of the sampling unit. Many advances have been made in this area of remote sensing, both in data availability and analysis techniques. Spatial resolution has increased substantially, as well as spectral resolution. Additionally, the computer speed and storage available in a modern desktop computer allow for execution of very complex algorithms in little time.

Despite the progress in individual tree analysis, one variable remains very dicult to obtain: species. Species information about individual trees within a forest (or knowledge of species mixture of a stand) can be of great use when decisions regarding forest health or estimations of resource values must be made. Whether forest resource value is dened monetarily or otherwise, it usually depends highly on the species present. Many variables one can measure from a forest are even more descriptive when species information is available. As a result there is much potential to increase precision in the desired estimates. Without species-specic information, species information must either be extrapolated from the eld data component of a survey or even disregarded altogether. In the recent past many strides have been made in the ability to remotely detect stand species composition and individual tree species. Slowly, as instruments improve and algorithms evolve, the potential for accurate prediction of individual tree species grows. The objective of this paper is to review and discuss the published results obtained so far in the extraction of individual tree species information from remote sensing products. 2.2 Individual Tree Segmentation

The rst step in identifying the species of individual trees is to nd which subsets of the data represent each tree. Completing this step more accurately leads to an increase in potential for accurate species identication. With aerial photos, a trained human interpreter could easily dierentiate one tree from another. However, with larger coverage data sets and lower resolution data, the job of individual tree segmentation is given to a computer algorithm. The clusters resulting from this segmentation are usually considered as individual trees, but may in fact represent several trees or only one part of a tree. Due to the ability of dominant crowns to obscure sub-canopy information and the two-dimensional nature of aerial and satellite raster data, individual tree segmenta-

10

tion is inherently dicult using such data. Despite the challenges involved, several methods have been introduced in the literature. Culvenor (2003) provides a brief overview of these techniques. Most algorithms, starting with an algorithm proposed in Gougeon (1995a), rely on the pattern of bright sunlit sides of crowns adjacent to shadowed areas. The brightness of a pixel in the original image is considered representative of the proximity of a pixel to the top of a tree. For most coniferous and broadleaf species with strong apical dominance, the brightest pixel within the area of a trees crown is considered the center of the tree. Areas of shadow around the brighter pixels help dene the crown perimeter. Ke and Quackenbush (2008) test several popular methods on common datasets. Such methods are of great use on images of dense stands, or those with ample amount of shadow (Leckie et al. 2003). Other methods that do not rely as much on shadow are better for more isolated trees (Leckie et al. 2003). Some examples using templates or pattern signatures are Pollock (1996) and Brandtberg and Walter (1998). Pattern recognition is a rapidly growing eld, fueled by interest in both remote sensing and articial intelligence, and new advancements will likely come along soon. However, many are using a new data source to geographically locate tree crowns for further analysis. The three-dimensional nature of Lidar data makes individual tree segmentation much more direct. To conrm this, one must only look at the great number of recent publications reporting positive results using Lidar for this procedure. Hyypp a and Inkinen (1999) took the idea of extracting tree outlines from raster imagery and extended it to a Canopy Height Model (CHM) dataset created from discrete point Lidar data. The CHM is smoothed using a simple convolution lter prior to segmentation to reduce the number of local maxima. Stand-level attributes are then available by summing the attributes obtained for the individual crown segments. In several publications that follow, it is this basic process that is extended or rened. One opportunity for renement comes with the choice of the single lter to apply to the entire CHM. This step is important because individual tree sizes can vary

11

greatly, and adapting the lter to the local tree height distribution can help account for this variation. Persson and Holmgren (2002) t parabolic forms to local maxima in the CHM image to determine appropriate parameters for a Gaussian smoothing of the CHM. Popescu et al. (2002) adjusted lter window size based on a model of tree crown width predicted from canopy height. Brandtberg et al. (2003) created a state-space representation of the CHM. Pitknen et al. (2004) test three adaptations of Popescu a et al. (2002) and Brandtberg et al. (2003) for optimal performance. Reitberger et al. (2007) used an iterative smoothing algorithm on the CHM rather than a direct lter approach. Besides optimizing the classication of local maxima as tree tops, some modify the procedure used to group individual pixels of the CHM to a given maxima. Brandtberg et al. (2003) used a state-space blob signature to detect trees. Solberg et al. (2006) introduced a star-shaped criterion to restrict which pixels could be amalgamated into a tree cluster. If a vector from the tree center to a given pixel center exits the current crown outline before entering the pixel, the pixel is not included. Koch et al. (2006) used a similar idea to nalize crown outlines at the end of segmentation. In this algorithm, large changes in elevation between two pixels of the CHM along a vector signify the boundary of the crown. Chen et al. (2006) and Kwak et al. (2007) use a distance to the nearest center transformation to outline tree crowns. In all of the publications above, the CHM is used for both local maxima detection and for crown region-growing. Some authors have suggested methods that deviate from this process. Morsdorf et al. (2003) used a clustering approach on the Lidar point data, informed by the location of the local maxima on the CHM. Reitberger et al. (2009) started with tree positions estimated from the CHM, but then changed to a voxel representation of the area. They used a raster normalized cut algorithm, which had been modied to work in three dimensions, to decide if an individual cluster represented multiple trees.

12

2.3

Individual Tree Species Detection

With a description of the physical space occupied by an individual tree, the next step is to link this position with geographically positioned data. In the case of raster data, this would be the pixels occupying the two-dimensional outline of the extent the crown of a single tree. However, in the case of Lidar and other three-dimensional data, all data contained within the volume of space occupied by the tree is considered relevant. This section is a review of works published in the last two decades for the identication of individual tree species using data relevant to the tree position. It is divided into two parts, data from passive sensors provided in raster form, and another for data from Lidar, which currently is the only active sensor used for such work.

2.3.1 Passive sensors alone The increase in spatial resolution available from commercial or public imagery sources over the past few decades did not directly improve stand type classication as expected (Dikshit 1996). The decrease in pixel size unfortunately results in greater variation within the pixels representing a given class (Marceau et al. 1994). However, the ability of researchers to identify individual tree crowns as well as analyze patterns within these crowns has increased. There is an endless number of variables one can compute from just the pixels identied within the crown polygons in an image, and some have worked quite well. Three main types of patterns have been used to identify tree species: spectral patterns in multi- and hyperspectral data, textural patterns within hyperspatial data, and, quite rarely, patterns across multiple images taken at dierent times. Many authors have noted that tree species can have signature spectral reection and absorption patterns across the electromagnetic spectrum (Cochrane 2000, Roller 2000, Van Aardt 2000, Asner 1998, Datt 1998, Fung et al. 1998, Gong et al. 1997). Accordingly, it is usually possible to use the values of several spectral bands for

13

the pixels falling within an individual tree crown. This method tends to be fairly successful at the individual tree level, given the spatial resolution within the data is ne enough that the spectral signal mixture comes from the tree crown alone. Fine resolution multispectral data can still be rather expensive, and several studies opportunistically work with data that has been acquired for use in multiple projects. Pinz et al. (1993) gave an exposition of several modern neural-network training techniques. They use multiple segmentation approaches and separate four conifers from beech in a Canadian forest using four-band aerial imagery acquired with the Multispectral Electro-optical Imaging Scanner (MEIS) instrument. Additionally, aerial color-infrared photography (CIR) taken over Austria is used to separate a pine from two spruce species. Overall classication accuracy is very high given the early appearance of the paper. Thomasson et al. (1994) used four-band videography (red, green, blue, nearinfrared) to distinguish six broadleaf species in Louisiana. Given the nature of broadleaf crowns, they used manual digitization of tree crowns rather than an automatic method. Using two dierent acquisitions, in summer and fall, added about 10 percent to the overall classication accuracy using maximum likelihood (ML) and minimum distance classiers. Under the hypothesis that tree-level analysis is better for analysis of high spatial resolution images than stand or pixel-level approaches, Gougeon (1995b) tested seven multispectral attributes of segmented tree crowns for use in tree species classication of three pine and two spruce species. The best performance came from average intensity over all pixels representing the tree crown. This is in contrast to earlier work (Gougeon and Moore 1989), which showed that for lower spatial resolution images, the highest single-pixel intensity value performed best. Meyer et al. (1996) used manual digitization of crowns and CIR to distinguish

14

spruce, beech, r and two damage classes of pine in Switzerland. A rst attempt on the original unltered imagery was not very successful due to image noise. Their second method, incorporating a high-pass lter on the CIR band values, new mixture values from principal component analysis (PCA), and textural features were more successful.

(Key 1998, Key et al. 2001) compared the relative benets of having multispectral versus multi-temporal data. They used CIR acquired on many dates to distinguish four broadleaf species with manual digitization of crowns. ML classication was used, with prior probabilities determined by proportion of the given species in the training data. As is typical in work with broadleaves, results were poor overall. Multispectral data appeared to be of higher importance than multi-temporal.

Brandtberg (2002) gave a unique approach using aerial CIR to separate two conifers and two broadleaf species in Sweden. Segmentation was done with a multi-resolution state-space approach (Brandtberg and Walter 1998). Linear discriminant analysis (LDA) was used with several input variables incorporating crown shape, size, and texture. A fuzzy approach was also used, in which a crown object does not necessarily belong to one class, but rather has grades of membership to each of the classes.

Haara and Haarala (2002) used digitized CIR imagery to classify individual image segments into two conifer and two beech species, or ground/understory. A generic region growing algorithm was used to segment crowns from local intensity maxima. Mean intensities across three window sizes as well as channel intensity ratios were used in a LDA. The beech were highly separable, but more confusion occurred between the conifers.

15

Koch et al. (2002) classied three conifers and two broadleaf species in Southern Germany using manual crown digitization on aerial CIR imagery. A ML approach was used to classify at the pixel level with mean intensity and several textural measures of pixels as input variables. Crown segments were classied to match the majority of the pixels.

Leckie et al. (2003) tested several variables measured from automatically outlined tree crowns to distinguish ve conifer species and one broadleaf species in Canada using data from the Compact Airborne Spectrographic Imager (CASI). Several variables describing the intensity and texture of the trees in each band were tested, but the mean intensity of the pixels with above-average brightness performed the best. While classication was done at the tree level in order to classify stand composition, testing was only done at the stand level. Similar results were later found for old-growth trees (Leckie et al. 2005).

Katoh (2004) tested the ability of the pixel-level mean and standard deviation of IKONOS imagery bands and four standard vegetation indices to distinguish two conifer species and nineteen broadleaf species. A multiple comparison procedure was used to determine the best variables for a ML classication. Overall classication accuracy was not high, but good for 21 species. Coniferous and broadleaf species could be distinguished fairly accurately.

Clark et al. (2005) trained a classication model with eld spectrometer data and applied it to seven tropical species (of several hundred) that manage to protrude above the canopy in Costa Rica. Manual digitization on 1.6-meter resolution hyperspectral data was used for pixel-level classication. The spectral angle mapper was compared to LDA and ML classication, with LDA performing best.

16

Goodwin et al. (2005) used manual digitization of crowns and the ML classication to distinguish four eucalyptus species in Australia. While only one species could be accurately mapped, all eucalyptus could be distinguished from surrounding vegetation quite well with only four of the 10 original CASI imagery bands. Olofsson et al. (2006) took a slightly dierent approach and used model templates to detect trees in the high resolution CIR imagery. The modeled crowns were used to compute crown average intensity values by band. Results were very good for deciphering Swedish broadleaf species from two common coniferous species. The separation of the trees into all three groups was fairly accurate. To separate two species of pine in Korea, Kim and Hong (2008) used texture information and crown outline shape parameters including ratios of area, perimeter, and diameter on high-resolution 5-band satellite imagery. The crown shape parameters worked well to distinguish pines from broadleaf species, while texture features from the near-infrared band were used to separate the two pine species. More recent works take advantage of more advanced, and computationally heavy, classication algorithms that involve no assumed distributions or parameters. Heikkinen et al. (2010) use a support vector machine (SVM) with a Mahalanobis kernel. Both Krahwinkler and Rossmann (2010) and Mora et al. (2010) use a decision tree approach. Both of the above classication algorithms tend to work well with highdimensional data, but may require extensive tuning to achieve optimal results. Some authors looked at pixel-based or object-based classication produced with image analysis software as species segmentation was not necessarily the primary goal of the publication. Koukoulas and Blackburn (2001) introduce a new classication accuracy index and test it with a pixel-based species map created from Advanced The-

17

matic Mapper (ATM) imagery with a built-in supervised ML classication algorithm. In his dissertation, Wang (2003) used eight-band CASI imagery to nd an optimal scale parameter for an object-recognition algorithm to distinguish three species of mangrove from lagoon, road, and surrounding forest in Panama. Kanda et al. (2004) used four-band videography to distinguish three common Japanese species. Ke and Quackenbush (2007) use four-band Quickbird satellite to distinguish four coniferous from broadleaf species in New York. Pu (2010) used IKONOS satellite imagery to distinguish many species in an urban area of Florida.

2.3.2 Sensor Mixtures Given the benets of using Lidar data to discover tree locations, several authors have investigated the combined ability of Lidar data mixed with other imagery data. Typically, tree position is determined with Lidar, while classication is done with variables created from the raster data. The results are usually at least acceptable, however this is not always the case (Korpela et al. 2007). One hurdle that must be overcome is the lens and topographical warp that occurs when imagery is recorded. Using Lidar data with enough overlap, it is possible to always observe trees from directly overhead, whereas in imagery vertical lines become stretched and rotated on the image. Some authors try to resolve this with mathematical models, others work around it. Koukoulas and Blackburn (2005) linked the pixel-based species map previously created (Koukoulas and Blackburn 2001) from ATM data to tree position derived from Lidar. Segmentation was done using a contour line algorithm on the raster CHM. Contours representing a height greater than a threshold were considered as part of a tree top. The same algorithm was applied to the green band of the imagery and results were compared. Species classication was not evaluated at the tree level in this paper.

18

Heinzel et al. (2008) segmented the trees with the algorithm outlined by Koch et al. (2006). Lidar-produced segments were corrected using the color information from the raster data. They were able to distinguish two broadleaf species from coniferous species by transforming the CIR data into the hue, saturation, and intensity (HSI) color model and setting threshold values in the hue dimension.

Holmgren et al. (2008) produced one of the highest published classication accuracies. Several variables computed from the Lidar data for each crown, including parameters of a parabolic surface t to the crown top, assisted by mean intensity values for each of the bands in the ML classication. They achieved a 96 percent accuracy distinguishing two individual conifers from broadleaf species as a group.

Synjoki et al. (2008) attempted to separate aspen trees from other species in a a Finland by rst distinguishing coniferous and broadleaf species manually using aerial imagery, and only then distinguishing the aspens from other broadleaf species with automatic methods. These methods included several variables calculated from the Lidar data. Again broadleaf species proved dicult to classify, with only 57 percent of the aspens correctly classied.

As part of a species-specic forest inventory, Packaln (2009) incorporated Lidar e and aerial photography to estimate individual tree species as one of two coniferous species and a broadleaf species in two areas of Finland. He used textural features from the imagery and Lidar point height percentiles as well as proportion of ground and vegetation hits. LDA classication provided individual tree species, which was then used to model stand level diameter distribution and volume by species.

19

Puttonen et al. (2009) used a CHM created with Lidar data to model which pixels on aerial CIR imagery belonged to the sunlit side and shaded side of each tree. The average intensity value for each band on each side of the tree, as well as the ratio of the two sides for each band were used as input variables in a LDA to distinguish two coniferous species from a broadleaf species in Southern Finland. Hedberg (2010) attempted to separate four broadleaf and two coniferous species in Sweden. Lidar was used for crown segmentation and a 13-band CASI imagery set is used for classication. The original image intensity as well as textural features are put through two data reduction schemes, a t-test based method and a PCA, before the reduced variables are used in a SVM with sigmoid kernel. Li et al. (2010) separated ve species in Ontario, Canada with high accuracy. Lidar-derived features included texture parameters from a three-dimensional gray level co-occurrence matrix of a voxel-set built from the Lidar data. Additionally, texture from hyperspectral imagery was included as input into a decision tree analysis. Best results were achieved, as expected, when both types of data were combined. As with pure raster imagery, some authors have incorporated the existing supervised object-based algorithms built into raster analysis software packages to classify individual tree species. Voss and Sugumaran (2008) used object-based algorithms to segment and classify seven dominant tree species in Iowa. Classication results using either fall or summer hyperspectral data alone were rather poor. Adding elevation data from a Lidar-produced CHM added about 20 percent to the accuracy. Zhang et al. (2009) compare segmentation algorithms to aid an object-based classication of unstated species in Canada. Little information is available in this brief proceedings submission.

20

2.3.3 Active sensors alone Lidar has become a very ubiquitous data source in the eld of forestry. Very rapidly, the precision and data density are increasing along with the number of providers. Newer instruments enable providers to spend less time in the air, resulting in lower prices for consumers. Today, it can be relatively quick and easy to obtain a quality dataset for individual tree crown identication. There are several advantages to Lidar data, and these have helped give rise to its popularity. Attributes computed from discrete point Lidar for tree species dierentiation can be placed into two categories: spatial distribution and intensity. Originally, intensity data was either not recorded or this information was discarded before a dataset was provided to the user. Thus only structural information was available for use. Only one paper, Liang et al. (2007), concentrated on just these structural patterns when distinguishing coniferous and broadleaf species. They used a raster image created from the dierence between a surface model created from rst returns and a model created from last returns, which was essentially a CHM. The spatial distribution of Lidar points provides a representation of both the shape and density of a trees crown. There is little reason to doubt that species have characteristic crown shapes, given that this is one feature a human observer uses to make a distinction. Many species, however, have considerable internal variation in shape. Also, tree size can have a large eect on crown shape, and some authors have accounted for this with relative height measures (rka et al. 2009, Holmgren and Persson 2004). When there was interest, providers started recording intensity information for individual Lidar points. The intensity values of these points indicate the combined eects of size and reectivity of vegetative tissue, incidence to the direction of the light beam, and atmospheric eects. Lidar equipment usually incorporates a near-infrared light source, and this part of the spectrum is sometimes useful in separating coniferous

21

and broadleaf species (Holmgren and Persson 2004). However, for larger projects, changes in range and gain sensitivity on the sensor can result in signicant variation in intensity values with time. A great example of this is shown in Moet et al. (2005). These variations can have a large eect if intensity is used for classication purposes. Some authors are working on corrections for such problems (Gatziolis 2011, Korpela et al. 2010a). For work with smaller areas of interest with low values of scan angle, one would expect small range dierences and fewer problems from changes in mean intensity. Several authors have relied at least in part on reectance attributes for classication purposes. The two presented below, however, concentrated only on such attributes. To distinguish between a native spruce and two native broadleaf species in Norway, rka et al. (2007) tested the mean and standard deviation of intensity for three categories of returns: rst of many, only, and last of many. Overall accuracy was most aected by the metrics derived from the points in the rst of many category. Kim et al. (2009) investigated dierences between eight broadleaf and seven coniferous species using metrics derived from intensity using two datasets, representing both leaf-on and leaf-o conditions. Metrics used were mean and coefcient of variation of all points, upper canopy points, and surface points. Large dierences were found between species, greatly due to the seasonal dierences between the two datasets. Quite a few authors have looked at the combined values of structural and intensity information for tree species retrieval. There will be some correlation between the two attributes, as reected intensity will be aected by structural attributes such as branch density and leaf size. However, the combination of the two attributes does seem to work quite well when compared to either attribute alone. Important variables from the papers below often fall into both categories of attributes.

22

After looking at a very large number of variables, Holmgren and Persson (2004) found that using six less-correlated variables produced the highest classication accuracy for two coniferous and a combined broadleaf species category. These variables included ve structural metrics, including surface shape and relative height statistics, and only one intensity metric, the standard deviation of intensity. To distinguish seven species of woody vegetation in Australia, Moet et al. (2005) compare height and intensity distribution statistics. However, proportion of single returns, crown permeability, and cover were better predictors. They found that intensity information varied too greatly to be useful as a predictor of species. Brandtberg (2007), after a preliminary analysis in Brandtberg et al. (2003), outlined a series of four events that could occur as a beam of light hits a tree target. Statistics computed on height and intensity values, within points that followed a given path of these events, are used to classify tree species. However, only moderate classication accuracy is achieved, which the author attributes to similarity of the broadleaf species. rka et al. (2009) expanded upon the work in rka et al. (2007) by adding several structural attributes to the available input data. Additionally, the classication problem was reduced to a single coniferous and a single broadleaf species. Field-derived tree position was used rather than an automatic segmentation approach. This resulted in a larger number of small trees that were more dicult to classify. Suratno et al. (2009) used return-type percentages, as well as mean and standard deviation of both height and intensity by return type to distinguish four

23

coniferous species in a Montana mixed-conifer forest. Individual tree classication accuracy was not high, but dominant species, led by proportion of returns by return type, was more accurately detected at the stand-level. To distinguish two Norwegian coniferous from a broadleaf species, Vauhkonen et al. (2009) incorporated crown shape information along with height and intensity distribution metrics. Additionally, textural information derived from the CHM was included. Overall accuracy was very high and comparable to that of Holmgren and Persson (2004). In order to investigate the eects of intensity corrections on classication results, Korpela et al. (2010b) tested a large number of variables with raw and corrected data from two Lidar sensors, one of which records the gain control setting. In all cases, such correction positively aected the classication results. LDA, kNearest Neighbor, and Random Forests classication were tested, with Random Forests slightly outperforming the others. A modern format of Lidar, usually referred to as waveform or fullwave Lidar is quite a bit more complex than discrete point Lidar. Rather than record individual peaks in the return signal, a digitizer samples the return signal at a regular rate (Mallet and Bretar 2009). Several authors have explored techniques for processing and analyzing these data (Chauve et al. 2007, Nordin 2006, Wagner et al. 2006, Persson et al. 2005). There is ample enthusiasm about the potential uses for this information and its applicability to target discrimination (Parrish and Nowak 2009, Reitberger et al. 2009, Wagner et al. 2008; 2004). Because of this enthusiasm, many authors have begun investigating these data for species recognition. After modeling the waveform data as a series of Gaussian-shaped peaks representing points, Reitberger et al. (2008; 2006) use metrics of crown shape of the

24

trees, the distribution of points within the canopy, intensity and width information of the peaks, and the number of peaks per waveform to decipher between coniferous and broadleaf trees in Germany. Litkey et al. (2007) distinguish two coniferous species from two broadleaf species in Finland using an inated discrete point dataset created by extracting points from the waveform data. Interestingly, the extra density subtracts from overall accuracy when a Nearest Neighbor approach is used. They also consider identication of distinctive waveforms for a given species, and compare waveform data against georeferenced handheld digital camera images. Hollaus et al. (2009) distinguished two coniferous species from a beech species in Austria using means and standard deviations of both peak widths and modeled cross sections (as described by (Wagner et al. 2006)). Distinctions between beech and the coniferous species were quite good, though heavy crown overlap of species on the ground hampered the results noticeably. With similar methods, He et al. (2008) explored these features for segmentation and classication of o larch, oak and beech species in a natural forest outside Vienna. Vaughn et al. (2010) looked at Fourier transformations of the individual waveforms, averaging the inuence of each frequency across individual trees. While the one-dimensional Fourier transform includes no crown surface shape information, three broadleaf species were distinguished with fair accuracy. Subsequent reductions in the number of waveforms (Vaughn and Moskal 2010) showed that this approach is promising for more sparse data as well. Heinzel and Koch (2011) tested a large number of combinations of peak-point attributes to distinguish four to six species occurring in a forest in Southwestern Germany. A stepwise approach was used to determine the best combination

25

of variables. Intensity, peak width, and the number of peaks per waveform performed well as predictors. 2.4 Discussion

The problem of individual tree species recognition is indeed a very dicult one. In general, the main problem is that many species that can be distinguished on the ground by bark and leaf morphology dierences must now be distinguished from a thousand meters above. Larger-scale dierences between species, such as crown shape, branch patterns and color, are often blurred by the dierences within a species. Species is only one factor that aects the nal shape and color presented by a tree. Additionally, there are many locations where two similar species of the same genus coexist together but a desire remains to be able to distinguish them (Suratno et al. 2009, Goodwin et al. 2005, Van Aardt 2000, Gougeon 1995b). In order to overcome this inherent problem, a large number of approaches have been introduced over the last few decades. Dierences from site to site are large, and there really is no universal solution. A technique that works well in a location with heavy conifer cover may break down when several broadleaf species are introduced. The number of species of interest, the typical dierences between these species, as well as budget constraints, will determine the best data and variables to use for each location. The problem of distinguishing coniferous from hardwood or broadleaf (typically deciduous) species seems to be much more tractable. It is often the case that transforming a confusion matrix into one containing only two classes: coniferous and broadleaf, will improve the overall accuracy observed (Kim et al. 2009, Van Aardt 2000). This is usually due to the strong apical dominance typically exhibited by coniferous species or the potentially very large color dierence between the two groups (Vauhkonen et al. 2009, Kim and Hong 2008, rka et al. 2007, Olofsson et al. 2006, Katoh 2004). Due to the dierence in growth behavior, being able to accurately distinguish between these

26

two groups can be very benecial to inventory tasks. When signicantly north or south of the equator, most forests are dominated by relatively few species. This means that being able to accurately distinguish four or ve species would be benecial on a large share of the worlds forest. In most applications, there will likely be a few coniferous and a few broadleaf species to distinguish. A large share of the work in such conditions has occurred in the Nordic countries. Here one often needs only to distinguish one or two coniferous species, usually Scots pine (Pinus sylvestris L.) and Norway spruce (Picea abies (L.) Karst.), from one or two broadleaf species (Betula spp. or Poplus tremula L.). Results from this region have been very impressive (Korpela et al. 2010b, rka et al. 2009, Holmgren et al. 2008, Holmgren and Persson 2004). In North America, authors have commonly worked with more species of coniferous trees (Leckie et al. 2003, Gougeon 1995b, Pinz et al. 1993). Species separation in the tropical regions is far more dicult due to the large number of species (Clark et al. 2005, Roy et al. 1991). In any classication the error rate should rise as the number of classes increases. Additionally, many species are strictly understory species and identifying them with existing remote sensing tools is not very reliable. In such cases, identifying important emergent species will likely be the best that can be done. Currently, there are two basic data sources one can use for crown segmentation and classication: two-dimensional raster data or three-dimensional Lidar data. Both have advantages and disadvantages that can help decide which to use for a specic application. However, the best results typically come from the use of both types if color and structural information is compiled (Hedberg 2010, Li et al. 2010, Heinzel et al. 2008, Holmgren et al. 2008). Unfortunately in any practical situation, the acquisition of multiple data sets is not an option. Of the two data sources alone, Lidar has provided the best results on an individual tree basis. This might be due to important advantages of the Lidar data. Not only can a more exact position of a tree be obtained, but many useful variables can be

27

computed from the three-dimensional information of the points at this position. For example, height distribution information has proven to be very useful in tree species separation (Vauhkonen et al. 2009, Holmgren and Persson 2004). Point intensity data have been considered important in species discrimination (Kim et al. 2009, rka et al. 2007). A disadvantage of Lidar data is that only one wavelength of light is used for these intensity values. There is at least one other disadvantage to working with Lidar data. There are very few software applications and standard algorithms for working with Lidar data, especially for doing object-based analysis such as species identication. This is even more true for waveform Lidar data. While early results suggest that this is a good data source for species classication, all analysis must typically be done with custom-built tools or specialized packages not readily available to analysts who might incorporate some of the methods presented. This situation is changing, as raster analysis software packages are starting to incorporate new geometry algorithms that can make use of three-dimensional point Lidar data. Additionally, the latest version of the LAS standard format for storing Lidar data now includes an option to store waveform data (ASPRS 2010). It will not be long before the object-oriented classication algorithms readily available for raster data become able to incorporate Lidar information. Individual tree species identication capabilities have improved in time along with the increase in data resolution and computing ability. While we will likely never be able to identify every tree on the ground, there are models that exist to estimate without bias the plot-level statistic of interest based on the crown segments that we are able identify. If a species can be associated with each of these crown segments, that will greatly improve our ability to estimate inventory information stratied by species.

28

Chapter 3 FOURIER TRANSFORM OF WAVEFORM LIDAR FOR SPECIES RECOGNITION


3.1 Abstract

In precision forestry, tree species identication is one of the critical variables of forest inventory. Lidar, specically full waveform Lidar, holds high promise in the ability of identifying dominant hardwood tree species in forests. Raw waveform Lidar data contains more information than can be represented by a limited series of tted peaks. Here we attempt to use this information with a simple transformation of the raw waveform data into the frequency domain using a Fast Fourier Transform. Some relationships are found among the inuence of specic component frequencies across a given species. These relationships are exploited using a classication tree approach in order to separate three hardwood tree species native to the Pacic Northwest of the USA. We are able to correctly classify 75 % of the trees (khat of 0.615) in our training dataset. Each trees species was predicted using a classication tree built from all the other training trees. Two of the species grow in close proximity and grow to a similar form, making dierentiation dicult. Across all the classication trees built during the analysis, a small group of frequencies is predominantly used as predictors to separate the species. 3.2 Introduction

Species identication is an important component of many forest surveys. Environmental quantications of interest such as timber value and habitat quality depend highly

29

on the species distribution within the stand. Because of this importance, techniques to quickly and accurately determine individual tree species or simply the proportion of a given species on a larger scale are intensively sought after. As it is more and more common for Lidar to be used for operational forestry, techniques to classify species from Lidar data are of great interest. As the spatial structure of a tree is modeled quite well, it is tempting to believe that a Lidar dataset of sucient density might contain enough information needed to correctly distinguish several tree species from one another. Under this hypothesis, several authors have proposed methods to use discrete point Lidar information (Kim et al. 2009, Liang et al. 2007, rka et al. 2007, Brandtberg 2007, Moet et al. 2005, Holmgren and Persson 2004). In order to improve upon these results, some have combined Lidar data with raster datasets in one form or another (Synjoki et al. 2008, a a Holmgren et al. 2008, Korpela et al. 2007, Koukoulas and Blackburn 2005). However, in such cases, the Lidar data is incorporated more to aide tree crown segmentation, than for classication purposes. Recently, Lidar vendors have begun to make available waveform Lidar data sets. Waveform data sets contain an entire digitization of the intensity over a brief time for each light pulse. Mallet and Bretar (2009) provide a detailed introduction to such data and the instruments that collect this data. The potential to hold additional information about the target is likely increased along with the density of recorded waveform data. Wagner et al. (2004) have argued that waveform data already contain sucient information for target classication. Each waveform contains information about the reectivity, density, and spatial arrangement of the leaves and branches of the target tree. Given the amount of information contained in a waveform, techniques that smooth this information such as Gaussian decomposition, may risk losing important information. In its raw form, a waveform is a simple time series. Therefore, tools that have been used in the past to analyze time series may again prove their usefulness in this case. These

30

tools allow for the transformation of the original data into forms that emphasize the temporal relationships between all the sample points. Such a representation of the data facilitates the search for patterns within waveforms which may help distinguish a given tree species. In this paper, we employ a technique commonly used in the analysis of time series, the Fourier transform in order to distinguish three deciduous species native to large areas of the western United States with waveform Lidar data. 3.3 Methods

3.3.1 The study site The Washington Park Arboretum in Seattle, Washington is operated by the University of Washington Center for Urban Horticulture. The Arboretum, which is approximately 230 acres (93 hectares) in size, is planted with more than 10,000 cataloged woody plant specimens representing several genera. In addition much of the Arboretum contains natural stands of species native to Western Washington State, such as Douglas-r (Pseudotsuga menziesii (Mirbel) Franco), western redcedar (Thuja plicata Donn ex D. Don), bigleaf maple (Acer macrophyllum Pursh), black cottonwood (Populus balsamifera L. ssp. trichocarpa (Torr. & A. Gray ex Hook.) Brayshaw), and red alder (Alnus rubra Bong.). The non-native trees in the arboretum are planted in groups by genus. Native species are also dispersed throughout arboretum and can be found clustered into their own groups or sparsely mixed within the non-native trees.

3.3.2 Data processing We applied waveform data provided by Terrapoint USA, who ew a RIEGL LMSQ560 laser scanner, with waveform signal digitization, over the Washington Park Arboretum on August 8th, 2007. This instrument was set to digitize waveforms at a sample interval of about 1 ns, or 15 cm in linear distance. Scan angle ranged from -30 to 30 degrees, and the pulse frequency was set at 133,000 Hz, resulting in a pulse

31

density of about 10 pulses per square metre (ppm) near nadir at ground level. For comparison, this would yield about 20 points per square metre in a comparable rst and last return discrete point dataset. A single 4.5 km looped pass in the NorthSouth direction for the length of the Arboretum, lasting about 6 min provided nearly 49 million waveforms. Within the same Arboretum, Kim et al. (2009) geolocated and measured characteristics of the trees in 18 eld plots within the Arboretum. The locations of these plots are shown in gure 3.1. The eld plots were installed systematically so that at least one plot is measured in each genus group of interest. Within each plot about ten to twenty example trees were identied and measured during the summer of 2005. Typically, the measured trees were somewhat isolated, simplifying the process of crown delineation from the Lidar data. However, several of the groups of native species are arranged with densities similar to the densities of natural stands. Each of the trees measured in the eld plots has been mapped into UTM coordinates using an angle and distance from known points within the plots. These points were located with survey-grade GPS units and these data were later dierentially corrected for optimal accuracy. In order to associate waveform data to individual trees on the ground, the tree crowns had to be delineated in mapping coordinates. While possible to do this directly using a waveform Lidar dataset, many tools already exist to perform such analysis on a discrete point dataset. We therefore used a discrete point dataset, built from the waveform dataset, to create a raster image containing a digital canopy height model. In this elevation model the highest return elevation, above the DEM, within each grid cell was stored. We used the method described by Hyypp et al. (2001a) to a obtain an initial set of polygons representing the crown outlines of individual trees in the Arboretum. This method works in an iterative manner, at each step neighboring pixels are added to clusters surrounding local maxima of a ltered canopy height model. Under such an algorithm, many groups of trees are mistaken for single trees

32

Figure 3.1: Map of the Washington Park Arboretum with ight path and ground plot locations.

33

(Hyypp et al. 2001b). Though this should have little eect in the Arboretum, the a polygon for each tree in the training data set was visually inspected and, if necessary, improved upon by hand. All waveforms with data inside the outline of each tree (at any height) were identied. Due to the large size of the full dataset, this procedure was performed using code written in C. 3.3.3 Fourier transform In the analysis of time series, several tools are available to look for non-random patterns within the data. One technique is to look at the data in the frequency domain to discover frequencies of strong inuence. This is usually done with a discrete Fourier transform. This transform converts the original data into a set of coecients representing the inuence of sine and cosine wave of a known set of frequencies. Large coecients are associated with heavy inuence and imply that a higher amount of periodicity at the given interval is detected in the data. The transform loses no information, as the number of frequencies is equal to the number of samples in the original signal. Fast versions of the transformation exist under the name Fast Fourier Transform (FFT), and have a relatively low upper limit on computing time (Singleton 1969). The fft function in the R programming language (R Development Core Team 2009) was used to compute the FFT on each waveform. In this study, waveforms had 60 samples each, representing about 9 m of linear distance. Because of how the FFT works, only the coecients of half of the frequencies are meaningful. With 60 samples, we can consider the amplitudes of the rst 30 frequencies to be useful. For each tree then, the averages (across all waveforms hitting a tree) for each of these 30 useful amplitudes were stored as variables named with a leading M followed by the frequency identication number (M1 through M30). Additionally, the standard deviations of each frequency were recorded as variables V1 through V30. Additionally, the average intensity value was kept for each waveform. This easily

34

computed value represents the total amount of light reected from each pulse. It is easy to see how this value might vary by species. The average and standard deviation of these values for each tree were recorded as MI and VMI. In total, for each tree in the training data set, there are 62 variables that will be considered for use in classication as described in the next section. The FFT algorithm assumes an equal time period between samples, however in some cases the range values within each pulse data are not equally spaced. To greatly simplify analysis, these facts were ignored, as a violation of this assumption is not too concerning in this case. The displacement of an occasional sample point should have little impact on the results. In most cases the dierence in intensity between two neighboring samples is very small. We are also ignoring that our series is not of a periodic origin, as are our sinusoidal basis functions. It does little harm to pretend that our series repeats itself in both directions ad innitum. 3.3.4 Classication We attempted to correctly classify all trees in three hardwood species: red alder, black cottonwood, and bigleaf maple. These species represent common hardwood species that grow naturally in the arboretum, and therefore are represented well in the eld data. To partition the data we used a classication tree approach (Breiman et al. 1984; page 18). The R library tree contains a function of the same name for modeling with these classication trees (Venables and Ripley 2002; page 266). Figure 3.2 shows the classication tree obtained by tting the entire training dataset. The variable and split value used is shown atop the fork. Each end node is labeled with the species most represented in the group of trees that have not been eliminated when traversing the tree from the root. Below each leaf the deviance within that leaf and actual class membership are presented. The total tree deviance is the sum of the individual leaf deviances, and the reductions in tree deviance as each split is added are shown in a table in the bottom left of the gure.

35

Figure 3.2: Example result of a classication tree t to the training data. This is the tree returned when tting to the entire training dataset and pruning o one branch to simplify the structure. Above each split is the variable and level used to split the remaining trees into two subgroups. The reduction in tree deviance resulting from each split is shown in the bottom left. Leaf deviances are shown in parenthesis, actual class memberships in square brackets.

36

Table 3.1: Results of the classication when each tree species is predicted from a classication model incorporating all other trees. Species bigleaf maple cottonwood red alder User accuracy (%) bigleaf maple 7 2 1 70 Predicted cottonwood red alder Producer accuracy (%) 2 1 70 14 1 82 4 12 71 70 86 75

With limited training data available, a leave-one-out cross-validation technique was used to estimate the actual predictive power of this technique when the trained model cannot be applied to a separate validation data set. The species of each tree was predicted by a classication tree that was trained with all other trees in the data. The numbers involved in such a process makes renement of each tree unpractical, and thus each tree was built from the built-in defaults of the tree function. In a non-academic application, the tree building could be better optimized and this may result in slight improvements in the classication accuracy. 3.4 Results and Discussion

Table 3.1 shows the classication results from the cross-validation. The overall classication accuracy, or the portion of correctly classied trees, was 75 %. The associated value was 0.615. For individual species, 70 % of maples, 82 % of cottonwoods and 71 % of alders were correctly classied. Previous studies have accuracies ranging from about 64 % (Brandtberg 2007) to around 95 % (Holmgren and Persson 2004). However, the classication approaches and model applications vary quite drastically among these works. An indirect comparison of methods applied in dierent situations provides little information about the qualities of each. While these results are not generally better than previous results, they were obtained from a simple analysis with much room for improvement.

37

In the selection of species to classify, we left out all conifers. One reason for this omission is that it seems methods using discrete point data are already capable of discriminating hardwoods from conifers. For instance, Reitberger et al. (2006) achieved 88 % accuracy distinguishing conifers from hardwoods in a German mixed forest. Another reason for leaving out conifers is that the dominant shape of most conifers would mean that light pulses crossing the trees at steep angles would likely be drastically dierent than those passing at shallow angles. The more dome-like shape of most hardwoods might nullify this eect. It is possible that limiting analysis to more vertical scan angles could provide information to dierentiate conifers from hardwoods or multiple species of conifers from one another. For this study we paid no attention to scan angle, and this is an area for improvement. Table 3.2 lists all variables that were used in more than 2 classication trees out of the 44 built. The second column shows the frequency, in cycles per meter, associated with the listed variables. However, the variables MI and VMI are not associated with any frequencies. The fourth column lists how many trees used the variables as a predictor variable. The classication trees during the cross-validation procedure consistently relied upon very few of the available variables. This is largely due to the fact that in each cross-validation run, only one tree was replaced in the training data. However, it is still surprising that so few variables were so consistently included. The variables M6, M12, M26 and MI were included in a strong majority of the trees. Any biological meaning of these particular frequencies is not obvious, but there are some possible explanations for the importance of these frequencies. The frequency of M12 divided by M6 is 2.20 while M26 divided by M12 is 2.27. The fact that these two quotients are nearly the same may not be coincidence. A sine wave of a given frequency is orthogonal to a sine wave of twice the frequency, assuming no phase shifts. Such a selection of variables may tend to be optimal due to this phenomenon. Of the three commonly used frequencies M6 represents a lower frequency, M12 a medium frequency, and M26

38

Table 3.2: The most commonly used variables from the cross-validation procedure. Count is the number of cross-validation trees incorporating the variable. Those beginning with M are means of the coecients of a given frequency across all waveforms hitting a tree. Variables beginning with V are variances. MI and VMI are the mean and variance of all intensity values for all waveforms hitting a tree. Variable M1 M6 M12 M17 M19 M21 M25 M26 V1 V8 V9 MI VMI Frequency Wavelength Count (cycles/m) (m) 0.11 9.00 8 0.67 1.50 37 1.33 0.75 35 1.88 0.53 4 2.11 0.47 4 2.33 0.43 7 2.78 0.36 6 2.89 0.35 36 0.11 9.00 5 0.89 1.13 3 1.00 1.00 3 37 4

39

a higher frequency. When compared to the dimensions of a tree, the wavelength of the lower frequency is on a scale that could represent between-branch variation while that of the higher frequency may represent within-branch variation. The boxplots shown in gure 3.3 represent the range of each of the variables M6, M12, M26 and MI (panels (a), (b), (c) and (d ), respectively) over all the waveforms hitting each tree. The species of each tree is represented by a shade of gray. There is a clear, observable dierence between bigleaf maple and the other two species. Less clear is that the variables M12 and MI are more responsible for the dierentiation of red alder and black cottonwood. Figure 3.2 shows that lower values of MI, or high values of both MI and M12 lead to a decision of black cottonwood. This can be observed in the boxplots after prolonged examination. This technique does show promise as an additional tool for the classication of tree species. There is sucient information available in the raw waveform data to aide in the distinction of tree species. As in decomposition of waveforms into peaks, we have still managed to reduce the data. Instead of reducing waveforms to peaks, we have reduced a large amount of data into simple averages for each tree. One important note is that no spatial information, beyond that used to assign a waveform to a given tree, was used in this analysis. Related techniques incorporating the additional spatial information to look for patterns between waveforms might provide a large performance boost. As waveform data is dense and very expensive when compared to discrete point data, a next step is to test whether similar results can be produced from discrete point data. Per-tree histograms of return abundance by height, such as those in Falkowski et al. (2009), appear similar to a single waveform. There may be some spatial patterns detectable in such waves using the same Fourier transform. It is important to note one potential drawback to using Lidar for individual tree results. As in discrete point systems, the intensity values from waveform Lidar systems are dependent on time. This is due to an adaptive gain setting on the instrument

40

Figure 3.3: Boxplots of the values of four classication variables for all trees in the training dataset. Each box represents one tree of the indicated species and represents all waveforms intercepting the trees crown outline polygon (40 to 16000 waveforms). The values of these variables have no units.

41

is changed dynamically during ight to adapt to large scale changes in surface reectivity. The intensity values over the length of the ight over the arboretum seem stable in this case. Eects of intensity scale changes on the results of this technique would likely depend on the degree of such change. 3.5 Conclusion

The technique described in this paper provides an elegant method for the classication of tree species from waveform Lidar data. Further renement, such as accounting for scan angle and more precise crown delineation techniques, could bring substantial increases in accuracy. This way of looking at the data in the frequency domain provides much information about branch and leaf arrangement patterns observed between waveforms. However this viewframe provides little or no information about general tree shape and large-scale spatial arrangement, as do other methods using point data previously published (e.g. Kim et al. 2009, Holmgren et al. 2008). Therefore, these two ways of looking at the data may compliment one another. This hypothesis needs to be tested through future research. Though only three species were tested here, two are very similar, suggesting that the technique may perform well in regions with higher complexity. The use of Lidar would also eliminate many complications imposed on optical imagery analysis by cloud cover in many regions. Because a waveform dataset contains species information as well as the information contained in a discrete point Lidar dataset, it may soon be unnecessary to acquire an additional optically-based raster dataset for the sole purpose of species classication.

42

Chapter 4 FOURIER TRANSFORM OF WAVEFORM LIDAR FOR SPECIES RECOGNITION - DATA REQUIREMENTS
4.1 Abstract

Waveform Lidar information is typically analyzed only after decomposing waveforms into a sum of Gaussian peaks. Under the assumption that some important information may be lost in the decomposition, an attempt was made to transform the waveform into the spectral domain using a fast Fourier transform. This approach was successful at distinguishing three deciduous species with 75 % accuracy (kappa=0.62), using a classication tree approach. The data set density used in this work was about 10 light pulses per square metre (lppm) near nadir at ground level. This allows for an analysis of data density eects on the ability of the classication method to correctly identify a given species. The data were reduced, by removing waveforms at uniform intervals, into subsets containing approximately 80, 60, 40, and 20 % of the original density. This resulted in densities of approximately 8, 6, 4 and 2 lppm. Surprisingly, not all reductions of data were found to decrease the ability of this method to correctly identify tree species. In fact the 80 % density showed marginal improvement over the full density. The 60, 40 and 20 % densities decreased classication accuracy by 10 to 20 %. The results indicate that pulse density has only slight, yet sometimes unpredictable eect on the classication accuracy outcome.

43

4.2

Introduction

Airborne Lidar data has been shown to provide estimates of stand characteristics, such as height and canopy cover, that have very high precision (Andersen et al. 2006, Nsset et al. 2004). Being an active sensor, not dependent upon light conditions, Lidar data are often preferred over data from various aerial and space-borne sensors. However, species recognition is one area where Lidar has not yet excelled. For this reason it is still common for species information to be obtained from two-dimensional hyperspectral imagery. However, as Lidar instruments improve we should see corresponding improvements in the ability to classify species using Lidar data alone. The most obvious dierences between many tree species are those involving color and physical structure. Though Lidar typically works with only one color, a frequency in the near-infrared range of the spectrum, a few examples exist of some success using Lidar intensity data alone to discriminate tree species (Kim et al. 2009, rka et al. 2007). Others have worked with variables objectifying tree shape and structure in various ways (Liang et al. 2007, Brandtberg 2007, Brandtberg et al. 2003). Encouraging results have also been achieved with the combination of intensity and structure variables (rka et al. 2009, Vauhkonen et al. 2009, Kim 2007, Holmgren and Persson 2004). More recently, a slightly dierent form of Lidar, called waveform or fullwave Lidar, has become more readily available (Mallet and Bretar 2009). This instrument digitises segments of the return signal at a very high sample rate, resulting in data that resemble a wave with peaks and troughs. Several authors have investigated the abilities of waveform Lidar to distinguish species characteristics. At rst, these data were used to detect peaks that may be missed by an on-board peak detector system, which resulted in denser discrete point datasets. Reitberger et al. (2006) showed that such data were useful for species detection. To obtain these peak locations, waveforms are typically decomposed into a series of Gaussian or similar forms (Chauve

44

et al. 2007). Some works suggest that storing shape parameters from individual peaks may lead to further improvements in classication (Hollaus et al. 2009, Wagner et al. 2008, Litkey et al. 2007).

As useful as individual peak modeling has been, information is always lost when simplifying data using any model with fewer parameters than data points. The pulse width of output signal on most Lidar systems is on the order of 0.5 to 2 m, and this signal has a strong smoothing eect on the shape of the returned signal. While deconvolving the data may reduce much of this smoothing, tting the data to waveforms will lter out higher frequency patterns. Some of these patterns may help distinguish one species from another. We put this theory to test by transforming individual waveforms using a discrete Fourier transform (Vaughn et al. 2010). This linear transform rebuilds the signal as a composition of sine waves, allowing one to analyze the importance of diering frequencies in the observed data. Results showed that wavelengths as low as 0.36 m were important for classication.

The spatial scale of raster data often has a large inuence on classication results, and optimal scales dier by data type and approach (Treitz and Howarth 2000, Marceau et al. 1994, Woodcock and Strahler 1987). Also depending on the application, discrete Lidar data density may also highly inuence results. Liu et al. (2007) found that point density aects DEM accuracy. One advantage of this particular approach is that it should be less dependent upon data density, because the simple means used as discriminating variables for each tree should be stable even with only relatively few waveforms hitting the tree. In this paper we apply the same transformation to datasets with reduced numbers of waveforms compared to the original dataset to test if this is indeed the case.

45

Figure 4.1: Dierence between waveform and discrete Lidar data. The 60 waveform samples are shown as circles and a spline t to these data appears as a solid gray line. A peak detector might detect two peaks at about 345 and 348 m and return the intensity value when the peak is detected as shown with exes. Due to inherent limitations, real time peak detection algorithms usually produce a slight lag in peak location.

46

4.3

Methods

4.3.1 The study site The Washington Park Arboretum in Seattle, Washington is operated by the University of Washington Center for Urban Horticulture. The Arboretum, which is approximately 93 ha in size, is planted with more than 10,000 cataloged woody plant specimens representing numerous genera. In addition much of the Arboretum contains several species native to Western Washington State, such as Douglas-r (Pseudotsuga menziesii (Mirbel) Franco), western redcedar (Thuja plicata Donn ex D. Don), bigleaf maple (Acer macrophyllum Pursh), black cottonwood (Populus balsamifera L. ssp. trichocarpa (Torr. & A. Gray ex Hook.) Brayshaw), and red alder (Alnus rubra Bong.). The non-native trees in the arboretum are planted in groups by genus. Native species are also dispersed throughout arboretum and can be found clustered into their own groups or sparsely mixed within the non-native trees. While many of the planted trees are open-grown, overlapping crowns are typical within the native tree groups. However, tree densities are rarely as high as one would expect in natural stands in the vicinity. 4.3.2 Data processing We applied waveform data provided by Terrapoint USA, who ew a RIEGL LMSQ560 airborne laser scanner with waveform signal digitization, over the Washington Park Arboretum on August 8th, 2007. This instrument was set to digitise waveforms at a sample interval of about 1 ns, or 15 cm in linear distance. Scan angle ranged from -30 to 30 degrees, and the pulse frequency was set at 133,000 Hz, resulting in a pulse density of about 10 pulses per square metre (lppm) near nadir at ground level. For comparison, this would yield about 20 points per square metre in a comparable rst and last return discrete point dataset. One example waveform is displayed in gure 4.1. The range from the instrument is shown on the horizontal axis, while the unitless

47

intensity value is shown on the vertical axis. Two points are marked with exes indicate data points that might be returned by a traditional on board peak detector. A single 4.5 km looped pass in the North-South direction for the length of the Arboretum, lasting about 6 min provided nearly 49 million waveforms. Each waveform contained a minimum of 60 consecutive samples, which covers a linear distance of about 9 m. In many cases, depending on target height, the number of samples was 120 or even 180 for a given waveform, but this is not necessarily consecutive data. Because of the discrepancy in the number of waveforms, only the rst 60 samples were kept from each waveform. This should cover 9 m of the path of the waveform starting from the surface of the target. As a result, in trees taller than about 9 m, ground strikes will not be recorded within the retained waveform data. Within the same Arboretum, Kim et al. (2009) geolocated and measured characteristics of the trees in 18 eld plots within the Arboretum. The locations of these plots are shown in gure 4.2. The eld plots were installed systematically so that at least one plot is measured in each genus group of interest. Within each plot about ten to twenty example trees were identied and measured during the summer of 2005. Each of the trees measured in the eld plots has been mapped into UTM coordinates using an angle and distance from one of three known points within the plots. These points were located with survey-grade GPS units and these data were later dierentially corrected for optimal accuracy. In order to associate waveform data to individual trees on the ground, the tree crowns had to be delineated in mapping coordinates. We therefore used a discrete point dataset, built from the waveform dataset, to create a raster image containing a digital canopy height model. In this elevation model the highest return elevation, above the DEM, within each grid cell was stored. We used the method described by Hyypp et al. (2001a) to obtain an initial set of polygons representing the crown a outlines of individual trees in the Arboretum. This method works in an iterative manner, such that at each step neighboring pixels are added to clusters surrounding

48

Figure 4.2: Map of the Washington Park Arboretum with ight path and ground plot locations.

49

local maxima of a low-pass ltered canopy height model. Under such an algorithm, groups of trees are often mistaken for single trees (Hyypp et al. 2001b), though in a the Arboretum this should be less of a problem. The resulting polygon for each tree in the training data set was visually inspected and, if necessary, improved upon by hand. All waveforms were identied that contained data at any height above ground within the outline of each tree. 4.3.3 Fourier Transform In the analysis of time series, several tools are available to look for non-random patterns within the data. One such tool is the discrete Fourier transform, which allows one to look at the data in the frequency domain. In doing so, we may discover frequencies of strong inuence within the time series. This transform converts the original data into a set of coecients representing the individual inuence of sine waves from a known set of frequencies. Large coecients are associated with heavy inuence and imply that a higher amount of periodicity at the given interval is detected in the data. Fast versions of the transformation exist under the name Fast Fourier Transform (FFT), and have a relatively low upper limit on computing time (Singleton 1969). Figure 4.3 shows the transform of an example waveform taken from the training data. Typically, the mean is subtracted from each sample value. In gure 4.3(a), the mean centered waveform appears along with the complex waveform t by the FFT algorithm. A result of modeling with the same number of variables as data is that all of the sample points all fall exactly on the composite wave. Two example component waves are depicted in gure 4.3(b). The amplitude of each wave represents the contribution of that particular frequency to the composite wave shown in gure 4.3(a). How the inuences of these two example frequencies compare to the rest is depicted in gure 4.3(c). The rst frequency is 0, and represents an intercept term. The rest of the amplitudes are symmetrical as per a restriction of the FFT algorithm.

50

Figure 4.3: Example of spectral decomposition of one waveform. In panel a the composite wave returned by the transformation is plotted along with the original mean-centered intensity values. As the transformation disregards range information, the wave composition has been re-translated back into the range scale. In panel b, two examples of the 60 component waves are drawn. In panel c, the amplitudes of all 60 component waves are plotted against their frequency.

51

The fft function in the R programming language (R Development Core Team 2009) was used to compute the FFT. In gure 4.3(c), the amplitudes of the component waves from gure 4.3(b) are shown with solid dots. The frequencies of the component waves used by the FFT algorithm are determined entirely by the number of sample points. In order to ensure that the same frequencies are used by the transformations of two time series, one series must contain the same number, or a power of 2 multiple of the number, of samples in the other series. As mentioned above, 60 samples were kept from each waveform so that this condition could be met. However, this 60 sample waveform, stretching about 9 m will cross the boundary of some tree crown outlines. This means that some waveforms will contain data for parts of neighboring trees. We decided that no action would be done to correct for this due to the added diculties this would create. As waveforms in this study were restricted to have 60 samples each, the number of amplitude values returned by the FFT algorithm is then also 60. The inuence of frequencies above a given level, known as the Nyquist frequency, cannot accurately be measured. As a result, with 60 samples per waveform, we can consider the amplitudes of only the rst 30 frequencies to be useful. Not coincidently, this is the point at which the amplitudes start to mirror those of lower frequencies in panel c of gure 4.3. This mirroring is a restriction used by the algorithm to keep the number of variables, from being greater than the number of sample points. For each tree, the averages (across all waveforms hitting a tree) for each of these 30 useful amplitudes were stored as variables named with a leading M followed by the frequency identication number (M1 through M30). Additionally, the standard deviations of each frequency were recorded as variables V1 through V30. Additionally, the average intensity value was kept for each waveform. This easily computed value represents the total amount of light reected from each pulse. The average and standard deviation of these values for each tree were recorded as MI and VMI. In total, for each tree in the training data set, there are 62 variables that will be considered

52

for use in classication as described in the next section. The FFT algorithm assumes an equal time period between samples, however in some cases the range values within each pulse data are not equally spaced. To greatly simplify analysis, these facts were ignored, as a violation of this assumption is not much cause for concern in this case. The displacement of an occasional sample point should have little impact on the results. In most cases the dierence in intensity between two neighboring samples is very small. We are also ignoring that our series is not of a periodic origin, as are our sinusoidal basis functions. It does little harm to pretend that our series repeats itself in both directions ad innitum. 4.3.4 Classication To apply the FFT information to classify tree species, we used a classication tree approach (Breiman et al. 1984; page 18). Classication tree algorithms recursively split the data into two parts based on a value of the most locally powerful predictor variable. The R library tree contains a function of the same name for modeling with these regression and classication trees (Venables and Ripley 2002; page 266). Given a class variable as a response and a list of potential predictor variables, the function will compute a tree of appropriate size. Here appropriate is determined by an internal algorithm. Splits are added to the trees branches sequentially, until a very large tree is produced. At each split, the variable that most reduces the tree deviance under a multinomial model is chosen. Cross-validation is used to determine the optimal tree size, as too large of a tree will overt the data, and too small a tree will perform poorly. We attempted to correctly classify all trees belonging to three native hardwood species: red alder, black cottonwood, and bigleaf maple. These species represent common hardwood species that grow naturally in the arboretum, and therefore are represented well in the eld data. Figure 4.4 shows the classication tree obtained by tting the entire training dataset. Each fork represents the optimal separation of the

53

Figure 4.4: The result of a classication tree t to the full-density training data. Listed above each split is the variable and level used to split the remaining trees into two subgroups. The reduction in tree deviance resulting from each split is shown in the bottom left. Leaf deviances are shown in parenthesis, actual class memberships in square brackets. The variables M6, M12, and M26 correspond to the mean inuence of the wavelengths 1.80, 0.82 and 0.36 m, respectively.

54

remaining trees into two sub-groups. The variable and split value used is shown atop the fork. Each end node is labeled with the species most represented in the group of trees that have not been eliminated when traversing the tree from the root. Below each leaf the deviance within that leaf and actual class membership are presented. The total tree deviance is the sum of the individual leaf deviances, and the reductions in tree deviance as each split is added are shown in a table in the bottom left of the gure. One branch of this tree was pruned because both leaves predicted the same species. With limited training data available, the trained model could not be applied to a separate dataset for validation. Therefore, a cross-validation technique was used to estimate the actual predictive power of this technique on new data. The species of each tree was determined from a tree trained from all the other trees in the training data. The numbers involved in such a process makes renement of each tree unpractical, and thus each tree was built from the built-in defaults of the tree function. In a non-academic application, the tree building could be better optimised and this may result in slight improvements in the classication accuracy. 4.3.5 Data reductions To test the technique at dierent levels of data density, the original dataset was systematically reduced. Within the waveform data for each tree in the training data, we divided the waveforms into ve groups of waveforms representing every fth waveform. Each group started from one of the rst ve waveforms. For example the rst group was comprised of the rst waveform, sixth waveform, eleventh waveform, and so on. Thus the reduced datasets were created by sequentially removing these groups starting from the fth group and down to the second group. The resulting new datasets then contained 80, 60, 40, and 20 % of the original waveforms. Data densities represented by these datasets were approximately 8, 6, 4, and 2 lppm, respectively. For each of these reduced datasets and the original dataset the classication process

55

described above was performed, and results were recorded in order to be put into table form for subsequent comparison. 4.4 Results and Discussion

Table 4.1 shows the classication results for the full-density dataset. The overall classication accuracy, or the portion of correctly classied trees, was 75 %. The associated value was 0.615. For individual species, 70 % of maples, 82 % of cotton woods and 71 % of alders were correctly classied. While dierences in leaf reectance likely play a part in the results, we believe that dierences in tree structure lead to stronger classication. As presented in a previous paper (Vaughn et al. 2010), the wavelengths most often chosen by the classication tree algorithm as partitioning variables are 1.80, 0.82 and 0.36 m. These wavelengths likely correspond dierences between species across dierent components of a tree. For example the leaves of bigleaf maple are typically about 15-30 cm in width, while the leaves of red alder and black cottonwood are much smaller. This dierence might be expected to show up in shorter wavelengths, and this is the case in the example tree shown in gure 4.4. The variable M26 helps distinguish red alder from bigleaf maple. The two longer wavelengths may represent dierences in branch to branch distance and leaf retention rates between the species. Red alder has fairly thin leaves allowing more visible light through, and may be able to retain more leaves further into the canopy than the other species. The full-density results were surprising as we had expected the red alders and cottonwood trees to be more easily separated from the bigleaf maples. This is because the maples represented in the dataset are nearly all open-grown and the leaves of bigleaf maple are a much larger target than those of other trees. The larger leaves should provide at least a more consistent rst peak height. The cottonwoods and red alders are growing in closer proximity and appear to have similar growth forms to the naked eye under this condition. However, judging from an near-infrared raster image

56

Table 4.1: Results of the classication when each tree species is predicted from a classication model incorporating all other trees using the full-density dataset. Predicted Species bigleaf maple cottonwood red alder Producer accuracy (%) bigleaf maple 7 2 1 70.0 cottonwood 2 14 1 82.4 red alder 1 4 12 70.6 User accuracy (%) 70.0 70.0 85.7 75.0 This number represents overall accuracy.

created from the discrete point data, red alder and black cottonwood also have very similar reectance of the near-infrared wavelength used by the RIEGL LMS-Q560. This implies that structural dierences between the two species contributed highly to the classication. As branch to branch distances may play a role, we wonder if tree growth rate would aect the results. More needs to be done to gure out what features of the tree are contributing most to the classication abilities of this technique. Table 4.2 shows how the technique responded to dierent densities of waveforms. Amazingly, the 80% density resulted in improved performance. Additionally, the 20% density provided greater classication ability than both the 60% and the 40% densities. The kappa values behaved in a similar manner, as expected when the same trees are used for all densities. These results suggest that the height, and perhaps the speed, at which a waveform Lidar mission is own should not greatly aect the results of this classication technique as much as the would aect techniques that may rely on high point cloud density. We believe that the demonstrated robustness of the technique to data density is due mainly to the fact that the stronger classication variables are actually sample means. The sample mean is a very ecient estimator of a population mean, and large numbers of samples are not needed to get a fairly good estimate. Therefore, whether the mean is calculated from thousands of waveforms or simply hundreds, the sample

57

Table 4.2: The classication results under systematically reduced datasets representing 100, 80, 60, 40 and 20 % of the original density of waveforms. Density (%) 100 Producer accuracy User accuracy Kappa (%) (%) all 75.0 0.62 bigleaf maple 70.0 70.0 cottonwood 82.4 70.0 red alder 70.6 85.7 80 all 81.8 0.72 bigleaf maple 90.0 75.0 cottonwood 82.4 73.7 red alder 76.5 100.0 60 all 63.6 0.43 bigleaf maple 50.0 62.5 cottonwood 64.7 52.4 red alder 70.6 80.0 40 all 54.6 0.29 bigleaf maple 30.0 37.5 cottonwood 76.5 56.5 red alder 47.0 61.5 20 all 65.9 0.48 bigleaf maple 60.0 54.6 cottonwood 70.6 66.7 red alder 64.7 73.3 For all species this number represents overall accuracy. Species

58

mean should be very close. However, such a reduction of data should not be expected to have no eect as the sample mean can be aected by extreme outliers in the data. If, when collecting a waveform Lidar dataset, one ends up with a higher proportion of unusual waveforms, the results would suer accordingly.

There are several technical diculties that were overlooked in order to more directly test the ecacy of the FFT for species detection. Finding methods to address any of these diculties will likely improve upon the results presented here. First, we did nothing to account for the dierences in scan angle between trees and species. Because tree structure diers horizontally from vertically, scan angle likely plays a part in the dominant wavelengths that are seen in the FFT of the waveform data. The dataset does not provide enough coverage to test this technique for a standard range of scan angles for all trees. Figure 4.5 shows the full range of scan angle for each tree in the training data. In this gure correctly classied trees are indicated by lled-in symbols. There is a clear discrepancy in the number of correct classications in the trees with generally higher scan angles on the right side of the gure.

A second simplication was the reduction of all waveforms to exactly 60 samples due to requirements of the FFT. There were two cases where this might severely aect results. The rst case is the loss of data because more than 60 samples were available in a given waveform. About 62, 32, and 5 % of waveforms contained 60, 120, and 180 samples respectively. Another case is when waveforms cross crown outlines, such that only a portion of the samples contained in the waveform pertain tot he given tree. In this case some of the waveform data for a tree is actually describing other trees of unknown species. These simplications may have a drastic eect. However, a standardization of the number of samples in a waveform is by far the easiest way to ensure that the component frequencies modeled by the FFT are the same across all waveforms.

59

Figure 4.5: The range of scan angles found for each tree in the dataset. Dotted lines represent the full range of scan angle, while solid lines represent the 25th to the 75th percentiles. Trees correctly classied in the full dataset are represented with lled-in symbols at the trees median scan angle.

60

4.5

Conclusion

The technique described above, despite some simplications, shows much promise. One important feature is that, despite signicant reduction in data density, the technique did not respond with large decreases in eectiveness. This is due largely to the sample mean being a highly ecient estimator of population mean. As such, any modication of this technique that incorporate other statistics may not scale as well as we have seen here. However, the number of samples in a waveform should be the same despite the details of the Lidar acquisition, and methods that rely only on the density within a waveform should see similar results. Standardization of scan angles along with future increases in crown segmentation accuracy should not aect this feature of the method, and will likely lead only to improvements in accuracy.

61

Chapter 5 INCREASING INDIVIDUAL TREE SPECIES CLASSIFICATION ACCURACY BY INCORPORATING RAW WAVEFORM LIDAR DATA
5.1 Introduction

Information about individual tree species can be extremely benecial when estimating many forest values from remote sensing data. Unfortunately, detection of individual tree species using remote sensing data has proven to be a dicult task to accomplish. Species is only one factor that aects the realized shape and color of a tree crown, while other factors such as location, competition, and simple genetic variation have large inuence as well. As a result, there is signicant overlap between species for most variables that one can measure from remote sensing data. Due to the diculty of obtaining sucient classication accuracy, species information is commonly disregarded or alternative methods are found (Korpela et al. 2007). One such alternative is to impute species information from the ground data observations matched to each crown segment (Breidenbach and Nsset 2010). This technique is a step forward, but further improvement should be possible. Knowledge of the probable species of individual crown regions identied in the data would enable us to stratify model estimates by species. This will most likely increase precision in any stand-level estimates of interest. With this goal in mind, researchers have continuously tested new forms of remote sensing data seeking improvements in detecting stand- and individual tree-level species information. As remote sensing technology and computer algorithms have improved, so have the classication results achieved.

62

With the advent of Lidar, many aspects of a forest inventory can now be accomplished using this data (Hyypp et al. 2004, Nsset et al. 2004). While multi-spectral a (Leckie et al. 2003) and hyperspatial data (Brandtberg 2002) have worked well in the past for identifying species information, the purchase of additional datasets is likely to be outside budget constraints. Ideally, the use of a Lidar dataset alone would be sucient to achieve the necessary species identication accuracy. Many authors have investigated the potential of Lidar data, sometimes mixed with additional data sources, for species classication. Because each individual situation presents a unique arrangement of challenges, the overall results have been mixed. While the number of variables one can compute from discrete point Lidar data is innite, there are only a few concepts that can be represented by these variables. These concepts are: crown density, crown shape, crown surface texture, and received energy from individual peaks. Most authors have incorporated variables from more than one of these concepts. Crown density describes the leaf and branch size and arrangement and is typically measured using proportions of the returns hitting dierent classes of objects (Brandtberg 2007, Moet et al. 2005). Crown shape information is often compared using parameters of surface models t over the top of the Lidar point cloud (Vauhkonen et al. 2009, Reitberger et al. 2008, Holmgren and Persson 2004). The distribution of return heights, often described using select percentiles of the return heights (Korpela et al. 2010b, rka et al. 2009), includes information about both crown density and crown shape. Crown surface texture refers to the roughness of a tree crown, and has been measured using a canopy height model (Vauhkonen et al. 2009). The instantaneous light energy received by the sensor when each peak is detected is typically referred to as intensity. The measured intensity is aected by several physical traits such as leaf size, chemistry, and incident angle, which are all aected by species. While most authors incorporate this intensity information, both rka et al. (2007) and Kim et al. (2009) found that intensity alone could be a reasonable predictor of

63

species. In the last half-decade, a newer format of Lidar information, commonly referred to as waveform or fullwave Lidar, has slowly increased in availability. In contrast to the more common discrete point Lidar systems, this newer Lidar system takes advantage of increased processor speeds and data storage capacity by digitally sampling at a high rate the return signal received at the sensor. The result mimics the appearance of a wave, and an example of such a waveform can be seen in gure 5.1. If the waveform shown in gure 5.1 were to be passed through an onboard peak detector, the result might resemble the two exes immediately following the peak crests. While a few authors have looked to waveform data for improving classication accuracy the rst step has always been to decompose the waveforms into discrete peaks, nearly matching the information one can get from discrete point data. One advantage of this technique is that information about peak shape can be preserved. The shapes of these peaks have successfully been used in distinguishing vegetation from other surfaces (Wagner et al. 2008). Additionally, pulse width or cross section information has been helpful in classifying deciduous from coniferous species (Hollaus et al. 2009, Reitberger et al. 2008). Little work has been done to see if patterns within the original waveform data, prior to peak decomposition, provide information for species classication. In a previous paper (Vaughn et al. 2010), we showed that Fourier transformation of the waveforms crossing each crown led to moderate accuracy while classifying three hardwood species. In this work, no two- or three-dimensional information about crown structure computed from a discrete point array was included. However, the amplitude of a rather high frequency component of the Fourier transforms played an important role in distinguishing two of the species. This frequency was high enough that even high-density discrete point Lidar data could not contain such information. The purpose of this paper is to validate the results of the original paper as well as further test the importance of waveform Lidar in determining tree species. The latter

64

Figure 5.1: An example waveform and associated discrete return points. The 60 waveform samples are shown as circles and a spline t to these data appears as a solid gray line. A peak detector might detect two peaks at about 345 and 348 meters and return the intensity value when the peak is detected as shown with exes. Without knowledge of future sample values, real time peak detection algorithms usually produce a slight lag in peak location.

65

is done by testing classication performance both before and after the addition of raw waveform information to a full suite of crown density, crown shape, crown surface texture and intensity metrics. 5.2 Methods

5.2.1 Waveform Acquisition Waveform data were obtained by Terrapoint, USA during the evening of August 7th, 2008 over the University of Washington Arboretum in the city of Seattle, Washington. Sensor altitude above canopy surface ranged from 145 to 412 meters with mean distance of 310 meters. Scan angle varied from -30 to positive 30 degrees from zenith. Pulse frequency was 100 thousand pulses per second. The majority of the arboretum was covered in one loop in the North-South direction. As this was a sample ight with little planning, signicant gaps exist between segments of the ight line. As a result many of the trees with eld data are in the margins of the swath area. Overall data density averaged about 10 pulses per square meter near nadir at ground level.

5.2.2 Field Data Our eld data were collected in a slightly dierent manner as one would collect information if an inventory was required. We segmented tree crowns from the Lidar data prior to visiting the eld so that we could verify that each tree matches its associated data segment. Several trees of ve species were collected in this manner to ensure that our data were as clean as possible. This segmentation and eld data collection took part in three steps: 1. All waveforms were decomposed into individual peaks using a simple peakdetection algorithm. This point information was indexed into a voxel array structure.

66

2. A segmentation algorithm was used on the voxel array data to map the volume of space occupied by clusters of voxels representing individual tree crowns. 3. Outlines of these clusters were used to locate the trees on the ground and identify the species. Creation of the Voxel Array A simple peak nding algorithm was performed on the waveform data after deconvolution with the Richardson-Lucy algorithm (Lucy 1974). The range at maximum for each peak found within the waveforms was used to compute an x, y, z position. Two additional pieces of information were kept for each peak. First was the total energy of the peak, or the sum of the intensity values for all waveform samples occurring during the dened peak. Second, we recorded the total range duration of the peak. This resulted in a fairly heavy discrete point dataset. We used a three-dimensional (voxel) grid overlaid on the volume of interest with horizontal dimensions set at one meter and vertical dimension set at 0.75 meters. A single le was created to contain the grid location of all peaks occurring within this grid. The le header also stored information about which voxels, referenced by layer, row and column, contain points. The voxels with one or more points were used to segment out the individual tree crowns as well as to compute statistics for species classication. Crown Segmentation In order to obtain three-dimensional crown information about each tree crown, we created a voxel-based segmentation algorithm. Under this three-dimensional region growing algorithm, individual layers of the voxel array are read one at a time starting with the topmost layer. Individual voxels from each layer are added to new or existing voxel-clusters depending on their distance from these existing clusters. The ability of a cluster to incorporate a new voxel depends on current number of member voxels,

67

vertical center of mass of these member voxels, as well as distance from the new voxel. Several parameters allow for control over how large clusters can become. This algorithm is outlined in greater detail in chapter 6.

Collection of Tree Species Using the voxel clusters produced in the last step, we created a GIS layer containing the two-dimensional outlines of each crown. The crown outline data were placed on a eld computer with a built-in GPS receiver. Current position in the eld was used to match voxel cluster outlines to the specimens of individual trees of ve native species: Douglas-r (Pseudotsuga menziesii (Mirb.) Franco) (DF), western redcedar (Thuja plicata Donn ex D. Don) (RC), black cottonwood (Populus balsamifera L. ssp. trichocarpa (Torr. & A. Gray ex Hook.) Brayshaw) (BC), bigleaf maple (Acer macrophyllum Pursh) (BM), and red alder (Alnus rubra Bong.) (RA). The rst two of these are coniferous (CO) species, and the last three are deciduous hardwood (HW) species. Clusters which contained parts of multiple trees, as well as those that contained only part of a single tree, could be identied in the eld. These clusters were split along vertical planes or combined as necessary back at the oce. This work was done in March of 2011, during which hardwoods were still in a leaf-o condition. To avoid scan angles too far from nadir, we stayed within 60 meters of the ight line. In doing so, we were able to identify 22 to 29 individuals of each species, totaling 130 trees. Most conifers were large enough that crown segmentation was clear. However, we had some diculty separating crowns of hardwood species growing in close proximity. Because we desired certainty that only a single tree crown is represented by a cluster, we skipped a small number of trees which could not be accurately deciphered. Table 5.1 lists statistics describing the height distribution by species of the trees in the nal training data set.

68

Table 5.1: Tree height statistics by species of the trees contained in the training data. Species BC BM DF RA RC Count 24 22 29 28 27 Min. 25th Pct. (m) (m) 30.52 36.16 25.78 26.90 25.03 31.21 16.23 22.31 24.67 29.30 Median (m) 37.67 28.54 35.35 25.23 30.66 75th Pct. (m) 38.88 31.34 37.70 29.30 32.92 Max. (m) 42.76 35.84 40.89 35.53 38.87

Waveform and Point Extraction Using the voxel cluster representing each of the trees identied in the eld data, we were able to extract the waveforms that cross each tree from indexed waveform data. First, we found the set of voxels, Vtop , that represent the highest layer in each row and column combination. To help ensure that the collected waveforms represent only the tree of interest, we rst discarded all waveforms that do not start within 3.0 meters euclidean distance from a voxel center in Vtop . Additionally, we also removed waveforms from this set that do not actually cross through a voxel in Vtop . Doing so should omit waveforms that cross through other objects prior to hitting the cluster of interest, which could introduce errors into our classication. Additionally, using the voxel-array indexing, all peaks from the decomposed waveforms falling within the voxels of a cluster could be very quickly identied. We retained all information about all peaks contained within the voxel cluster of interest.

5.2.3 Classication Variables Fourier Transform Characteristics The fft function in the R programming language (R Development Core Team 2009) was used to compute the discrete Fourier transform of the rst 60 samples of each waveform collected for all trees. The amplitude of each of the frequencies essentially

69

represents the inuence of the given frequency within the original waveform. The exact frequency, fi, , represented by these components can be computed using equation 5.1, which is a value representing cycles per sample. If the inter-sample distance is known, this can easily be converted to cycles per meter. Note that the rst frequency is 0, and this acts as an intercept term such that the amplitude of this frequency will represent the mean of the original waveform samples.

fi = i/N i 0, ..., N 1

(5.1)

The fft function restricts the coecients for frequencies higher than 1/2 cycle per sample to be the complex conjugates of the coeceints of lower frequencies. Therefore, we extracted only the rst 31 frequencies from each transformed waveform. The median and interquartile range (IQR) of each of these 31 frequencies were computed across all waveforms hitting each tree. This diers from the mean and variance used in Vaughn et al. (2010) because it was believed that large outliers within the amplitudes for a given frequency could highly aect results. The median and IQR were chosen instead because of their lack of sensitivity to such outliers. In total, we built a dataset of 62 Fourier transformation variables, m0 to m30 and q0 to q30 for each tree.

Point and Voxel Cluster Characteristics The peaks extracted from the waveforms are equivalent to three-dimensional points, such as those in a discrete point Lidar dataset. Several variables were computed from the collective properties of these points. In the past, many such variables have been proposed, and these can be classied into one of two categories: point arrangement statistics and intensity statistics. The former will yield information about crown shape, while the latter gives information about the ability of a trees foliage to reect near-infrared light. In order to obtain information about both crown shape and reective properties,

70

we used both the point representation and the voxel cluster representation of each tree. Most of the variables were chosen to mimic those presented in previous studies. A few were created in the hope of obtaining information similar to that provided by the Fourier transformation of waveform data. All of these point-derived variables can be theoretically be computed from a modern discrete point Lidar dataset with at least three returns per pulse as well as recorded intensity data. For each tree in the dataset we computed the following variables for use as predictors in the test classications: h25 , h50 , h75 , h90 : These are estimates of the 25th, 50th, 75th and 90th percentiles of the relative height (point height relative to maximum point height) distribution i1 , i2 , i3 : These are the mean intensities of the rst, second, and third peaks recorded for each pulse. d12 , d13 , d23 : These are the mean Euclidean distances from rst to second, rst to third, and second to third returns across all pulses. : This is the estimated rate parameter of an exponential distribution, with form f (x) = ex , t to all euclidean distances between two consecutive returns across all pulses. ptop : The proportion of returns less than 1.5 meters vertical distance from a voxel cell in T, where T is the set of all voxel cells that represent the maximum height for each row and column if this maximum height is greater than 6 meters. rarea : The two-dimensional grid G of all row-column combinations in the voxel representation of each tree contains a one in each cell with points in the top eight layers of the voxel structure, otherwise a zero. The number of cells with value one divided by the area of the convex hull around these cells gives a ratio representing the smoothness of the crown projection of a tree, with smoother crowns near the value of one.

71

pn1 , pnt, pnb : These are the proportions of voxel members of the voxel cluster containing only one neighbor voxel, only a bottom neighbor, and only a top neighbor (reindexing the points to a 0.5 x 0.5 x 0.5 meter voxel array improved the power of these variables). sa , sb : These are two parameters from a function, given in equation 5.2, t in polar coordinates to only the centers of the voxel cells in set T, described above dZ = e(a+b sin(Rc)) 1 (5.2)

where: dZ is the vertical dierence between the given cell and the maximum layer within the voxel cluster; R and are the horizontal polar coordinates of the given cell center from the cluster centroid in the horizontal plane; and a, b and c are parameters estimated by the R function nls. Many of the above variables describe crown shape and should be almost entirely unrelated to the information available from the Fourier transforms of the original waveforms. These include the height percentiles (h25 , h50 , h75 , h90 ), the voxel neighbor statistics (pn1 , pnt, pnb ), the surface model parameters (sa , sb ), as well as rarea . Conversely, the remaining variables not mentioned above may be correlated with the Fourier transform variables. The Fourier transform statistics indirectly provide quantications of both the propensity of samples at dierent distances apart to be part of peaks and the scale dierences of these peaks. If variables exist that can alternatively describe these traits, they might act as surrogates for the information available in the Fourier transform variables. The remainder of the listed point-based variables were intended to provide this surrogate information. A high value of ptop may be correlated to waveform shape as a highly reective crown surface would produce a large rst peak and fewer trailing peaks. The ordered intensity statistics (i1 , i2 , i3 ), and the distance statistics (d12 , d13 , d23 and ) describe in several dimensions the average distances between

72

peaks and the average intensities of those peaks. Any further detail about the relationships among the individual peaks in the waveforms would most likely require waveform data to compute, as the only description of each peak in discrete point Lidar datasets is maximum intensity.

5.2.4 Correlations and Data Reduction Principal Components of Fourier Variables The Fourier variables computed from the waveforms have very high dimension. Because of the high correlation among the amplitudes for all frequencies, it is very likely that the majority of this information could be described in fewer dimensions. Therefore, we ran separate principal component analyses on both the median and the IQR statistics for frequencies 1 though 31. This was done with the prcomp function in the R programming language. Due to the large dierence in scale among the 30 frequencies, the options to both center and scale the variables to have mean of 0 and a standard deviation of 1.0 were set prior to computing the singular value decomposition. The rst ve components of the rotation of the frequency medians (cm1 to cm5 ) as well as the rst ve components of the IQRs (cq1 to cq5 ) were then used as predictor variables in the classications. The median and the IQR of the of the amplitude of frequency 0 were believed to be especially benecial, and were therefore kept as predictors and not included in the principal component analyses. This procedure reduced the dimensionality of the Fourier transform variables from 62 to 12.

Canonical Correlations We used the R function cancor to investigate the inherent correlation between two sets of variables. The rst set, X, contains those variables computed from the waveforms directly (cm1 , . . . , cm5 , cq1 , . . . , cq5 , m0 , and q0 ) and the second set, Y, consists of those variables, computed from the extracted discrete point data, that may contain

73

some of the same information provided by the Fourier transforms of the waveforms (i1 , i2 , i3 , d12 , d13 , d23 ,, and ptop ). The procedure yields eight pairs of canonical variates (Ui , Vi ), such that each Ui is a linear combination of the columns in X and each Vi is a linear combination of the columns of Y. All variates are orthogonal to each other except the Ui and Vi within each pair, which are as highly correlated as possible. Examining these correlations, as well as the inuence of the original variables in the canonical variates, gives insight into the nature of the relationships between the two sets of variables. 5.2.5 Classication We were not only interested in the overall performance of the variable groups, but also for which species comparisons the individual variable groups performed best. After comparing the predictions from several routines, including linear discriminant analysis, classication trees, and the neural-network approach, support vector machine (SVM) classication performed the best overall. SVM is typically used as a kernelbased algorithm, in which a linear algorithm is applied to a non-linear mapping (x) of the original data onto a higher-dimensional space. This allows for curvature in the surface dividing two groups in the original space. The SVM algorithm uses only the dot products of vectors in the higher-dimensional space, and a kernel function allows computation of these higher-dimensional dot products directly from the original data vectors. We chose the radial basis kernel function, given in equation 5.3, because it performed the best during initial testing. < (xi ), (xj ) >= e
xi xj
2

(5.3)

We used the svm function, part of the R library e1071 (Dimitriadou et al. 2011), to perform support vector machine classication. The default setting for the parameter, 1 divided by the number of columns in the predictor matrix, was used because any adjustments resulted in reduced accuracy. Unable to nd any improvements, we

74

left all other parameters of the svm function at their default settings. We tested several predictor groups, individually and in combination, for the classications. These groupings were: (a) h25 , h50 , h75 , and h90 ; (b) i1 , i2 , and i3 ; (c) d12 , d13 , d23 , and ; (d ) ptop and rarea ; (e) pn1 , pnt , and pnb ; (f ) sa and sb ; (g ) Point: all variables in groups a to f ; (h) cm1 , . . . , cm5 ; (i ) cq1 , . . . , cq5 ; (j ) m0 and q0 ; (k ) Fourier: all variables in groups h to j ; and (l ) All: all variables combined. This breakdown was performed to understand the utility of each group for species classication as compared to the other groups. In particular we were concerned with the improvement in prediction accuracy that might come with incorporating information from waveform Lidar over using discrete point Lidar alone. Of course, the actual degree of improvement is dependent on our choices of variables from each dataset. However, the large number of variables were particularly chosen in order to span the full range of information available from the discrete point data We also applied the SVM on seven dierent classications for each predictor group. This was to examine the species dierences that were most sensitive to each predictor group. This information can help to better understand how the Fourier information either does or does not improve classication. The seven classications were: (1) all species; (2) only hardwood species; (3) all species remapped to either CO or HW; (4) BC and BM only; (5) BC and RA only; (6) BM and RA only; and (7) DF and RC only. For each classication, ve-fold cross validation was used to test the performance of each predictor group. The trees in each species (or each growth form) were randomly split into ve groups of similar size, and these species groups were combined into ve data groupings. The species predictions for each grouping were performed by a decision rule based on the other four groupings combined. In this way no trees are in a training set and validation set at the same time. Overall accuracy for each predictor group and classication was computed as the number of correctly predicted trees divided by the total number of trees.

75

1.0

Component 1 Component 2 Component 3

Loading

0.2

0.0

0.2

0.4

0.6

0.8

m1m2

m4

m6

m8 m10 m12 m14 m16 m18 m20 m22 m24 m26 m28 m30

Variable Name

Figure 5.2: Loadings of the rst three principal components of the Fourier median variables (m1 to m30 ).

For the classication of all ve species, we performed the exact test by Liddell (1983) to ascertain whether the addition of the Fourier transformation variables signicantly improved prediction accuracy in classication of all ve species. Liddells test is designed to compare two proportions, measured on the same subjects. In this case, we used the proportion of correctly predicted trees using the variables in group g (point-derived variables) and the proportion of correctly predicted trees using the variables in group l (all variables).

76

5.3

Results

5.3.1 Correlations and Data Reduction Principal Components of Fourier Variables The rst ve principal components of the Fourier median variables (m1 to m30 ) had standard deviations of 5.11, 1.65, 0.68, 0.51, and 0.31 respectively. The loadings of the rst three of these components are displayed in graphical form in gure 5.2. Based on the factor loadings in this gure, these rst three components can be interpreted as: 1. the mean of the amplitudes over all frequencies

2. a comparison of the lower half of the frequencies against the higher half

3. the middle frequencies against the combined low and high frequencies Component 1 is likely a measure of the total pulse energy reected by the target at the sensor. In general, the lower frequencies in the transformed waveforms have amplitudes several orders of magnitude larger than the amplitudes of the higher frequencies. After centering and scaling the data for each frequency, which removes this imbalance, the inuence of each frequency becomes more equal. Components 2 and 3 measure the inuence of the dierent groups of frequencies relative to the other groups. For the IQRs, the standard deviations were 4.54, 2.72, 0.82, 0.67, and 0.40 respectively. Figure 5.3 shows the loadings for the rst three components for the IQR variables (q1 to q30 ). A similar pattern to what appears in gure 5.2 is displayed here as well. The rst factor measures the mean amplitude, and the second and third factor compare the frequencies in similar groups.

77

Loading

0.6

0.2

0.2 0.4

1.0

Component 1 Component 2 Component 3 q1 q2 q4 q6 q8 q10 q12 q14 q16 q18 q20 q22 q24 q26 q28 q30

Variable Name

Figure 5.3: Loadings of the rst three principal components of the Fourier interquartile range variables (q1 to q30 ).

Table 5.2: Coecients from the canonical correlation procedure for the rst two canonical variates of both datasets. Mean and standard deviation of all variables are included for reference. Var. cm1 cm2 cm3 cm4 cm5 cq1 cq2 cq3 cq4 cq5 m0 q0 Mean S.D. 0.0 5.11 0.0 1.65 0.0 0.68 0.0 0.51 0.0 0.31 0.0 4.54 0.0 2.72 0.0 0.82 0.0 0.62 0.0 0.40 11.6 1.60 3.0 0.64 Coecient U1 U2 0.013 -0.035 -0.008 0.013 0.000 -0.017 0.001 -0.090 -0.014 0.046 -0.007 0.009 -0.001 0.009 0.001 -0.000 0.000 -0.005 0.014 -0.040 0.036 0.100 0.042 -0.036 Var. i1 i2 i3 d12 d13 d23 ptop Mean S.D. 95.8 17.15 34.5 6.38 14.5 4.00 1.4 0.08 2.6 0.15 1.3 0.09 0.3 0.03 0.2 0.07 Coecient V1 V2 0.005 -0.002 0.005 0.002 0.004 0.017 -0.146 0.169 0.151 -0.309 -0.167 -0.021 -0.119 0.039 -0.049 -0.044

78

Canonical Correlations The rst two pairs of canonical variates were fairly highly correlated, with correlations of 0.98 and 0.90, respectively. The following six pairs had correlations of 0.50 or lower. The high amount of correlation between the rst two pairs demonstrated that there is some overlap of information among the two datasets. In other words, a portion of information from the Fourier transforms of the waveforms can be obtained from patterns from the discrete points extracted from the waveforms. Coecients from the rst two rotations are shown in table 5.2. These rst rotations result in the variates U1 , U2 , V1 , and V2 . Given the coecients and means given in the table, values of U1 are most inuenced by the variables cm1 , m0 and q0 . These variables are all related to the amount of energy received by the sensor in the Lidar instrument. Similarily, the intensity means, i1 to i3 show strong inuence in both V1 and V2 . This result is nearly as visible by just looking at the correlation between some of these variables alone. In fact, i1 shares a correlation of 0.85 with cm1 when the two variables are compared directly. Surface point density, ptop , played little part in either V1 and V2 , suggesting that this information may not be obtainable from the waveform Fourier transformations directly. On the other hand, d12 , d13 , and d23 do play a signicant part in V1 and V2 , suggesting that some of this information overlaps between the two variable sets.

5.3.2 Classication Results The combined variables from the discrete point and waveform datasets worked fairly well for the classication of the ve species. An overall accuracy of over 85 percent was achieved, which compares quite highly with related projects. Table 5.3 is the confusion matrix for the classication of all species using all variables. Cottonwood (BC), maple (BM) and Douglas-r (DF) seem to be most easily separated from the rest of the species as well as each other. The largest pairwise confusion occurred

79

Table 5.3: Confusion matrix for the classication of all ve species using all available predictor variables from both the discrete point and waveform data. Species BC BM DF RA RC User Accuracy

Predicted Producer BC BM DF RA RC Accuracy 22 0 0 1 1 91.7 1 19 0 1 1 86.4 1 1 26 1 0 89.7 1 0 2 22 3 78.6 1 0 2 2 22 81.5 84.6 95.0 86.7 81.5 81.5 85.4

Overall accuracy, = 0.817

between alder (RA) and cedar (RC), a hardwood and a conifer. Similarly, confusion between RA and both conifers was greater than that between the three hardwood species. While there was some confusion between the conifers, it was all in one direction; no DF were predicted to be RC. Table 5.4 gives the results, as overall percent accuracy, for all classications using each predictor group. In all but two cases, the addition of the twelve Fourier transformation variables improved the accuracy over the eighteen point variables. In the ve species classication, the addition increased the overall accuracy achieved by over six percent (8 of the 130 trees in the dataset). The Liddell test procedure returned a test statistic value of 2.40 and a one-sided p-value of 0.0384. This indicates that there is a very low probability that including the Fourier transformation variables did not actually improve classication accuracy. Of the point-derived variables, no single group seemed to perform best in all situations. In fact, each individual group seemed to have species for which it was highly important. The relative height percentiles in group a were best for separating BC and RA. The point intensities in group b did well in BC versus BM, but performed the best on the conifers. Inter-peak distance measures in group c worked the best in dierentiating BM from BC and RA. The crown roughness and permeability variables

80

Table 5.4: Overall percent classication accuracy results of the support vector machine applied with a ve-fold cross validation to dierent predictor variable groups and species groups. Species classication group CO BC BC BM HW HW BM RA RA (%) (%) (%) (%) (%) 54.1 59.4 63.0 80.8 72.0 66.2 65.4 80.4 65.4 70.0 60.8 75.9 84.8 65.4 84.0 63.5 65.4 80.4 63.5 76.0 52.7 78.9 58.7 75.0 68.0 55.4 77.4 87.0 50.0 70.0 87.8 85.0 97.8 94.2 88.0 59.5 67.7 69.6 78.8 82.0 50.0 67.7 73.9 63.5 72.0 52.7 75.2 78.3 69.2 64.0 71.6 75.9 82.6 88.5 84.0 90.5 86.5 97.8 94.2 92.0 DF RC (%) 73.2 96.4 51.8 83.9 71.4 57.1 91.1 89.3 91.1 80.4 92.9 94.6

Pred. group a - h25 , h50 , h75 , h90 b - i1 , i2 , i3 c - d12 , d13 , d23 , d - ptop , rarea e - pn1 , pnt, pnb f - sa , sb g - Point h - cm1 , . . . , cm5 i - cq1 , . . . , cq5 j - m0 , q0 k - Fourier l - All

All (%) 33.1 53.1 40.0 51.5 46.9 38.5 79.2 57.7 49.2 46.9 66.2 85.4

in group d performed relatively well for distinguishing BM as well as for splitting the two conifers. Voxel neighbor statistics in group e, a measure of crown surface texture, worked best when distinguishing conifers from hardwoods. Finally, the crown surface shape variables in group f excelled at distinguishing BC and BM. Conversely, the Fourier transformation variable groups had a lot less variation in performance across the species groups. The median variables in group h were the best overall, but the other variables did not follow by far in any of the individual classications. Each of the groups of Fourier transformation variables did better on an individual basis than most or all of the point variables in the ve species classication. 5.4 Discussion

For ve species the overall accuracy of just over 85 percent achieved by the combination of point-derived and Fourier transformation variables was relatively high

81

compared to similar research. Most Lidar research focuses on two to three species, and increasing this number is generally associated with a loss in overall accuracy (Suratno et al. 2009, Moet et al. 2005, Katoh 2004). As shown in gure 5.4, we consistently achieved over 90 percent accuracy when the number of species is reduced to two or three. While it does little good to compare dierent study areas directly by this measure, we were comforted that the observed accuracies were in the same neighborhood as some of the higher accuracies in previous publications. Because of the large number of predictor variables, dimensionality was a possible reason for concern. The SVM function is a good choice for this study because it is able to handle a large number of dimensions in the predictor set. However, one negative aspect of the SVM function is that it can require some ne-tuning for maximal performance for a given data set. Performing such a customization for several predictor groups and several species comparisons would have both allowed too much bias and taken far too much time. This lack of tuning likely results in strange predictive behavior. One example of such behavior is the reduction in accuracy from 96.4 to 91.1 percent comparing the classications of the two conifers using variables in group g versus those of group b alone. While such a dierence was disturbing to see, we were not as concerned with individual classication results as we were with general patterns across predictor groups and species combinations. We reduced the dimensionality of the two sets of Fourier transformation variables, medians and IQR, to six variables each using principal component analysis. Despite the heavy reduction, the 72 percent accuracy achieved by all twelve of the Fourier transformation variables in the classication of the three hardwoods nearly matched the 75 percent accuracy reported previously in Vaughn et al. (2010). This is a significant result because many of the amplitudes for individual frequencies are correlated, and we can extract the important information contained in these amplitudes using a much smaller number of orthogonal predictors. The strongest individual predictor group for the ve species classication was

82

group h, which is the combination of principal components for the Fourier transform medians. This group was not strongest for any of the other classications, but it does perform nearly the best for dierentiating cottonwood (BC) and alder (RA) and for dierentiating the two conifers, Douglas-r (DF) and cedar (RC). This indicates that these variables are actually quite strong as predictors. If other structural information was not available due to diculty segmenting out individual crowns, these variables might still be useful for at least classifying pixel-sized areas of the canopy. The group containing all waveform information, k , was better than the group containing all point-derived variables, g , for only one pairing of species, DF and RC. This was a surprise because conifers were left out of the previous work in Vaughn et al. (2010) due to the poor performance of the Fourier transform variables on the same two species. For this study, we limited the scan angle to less than 12 degrees o nadir. This might explain the observed reversal, as one could imagine scan angle having a large eect on the amount of conifer crown intercepting the light pulse. The point-derived variable group, g , or components of this group performed very well on all species comparisons. Several of these variables are based on other publications, and similar results have been found before. The intensity information worked the very best for the classication of all ve species as well as for dierentiating the two conifers. Previous results have been mixed on the utility of intensity information. rka et al. (2007) used only intensity, while Holmgren and Persson (2004) found only the standard deviation of intensity to be important. Moet et al. (2005) found that intensity varied too highly to be used as a predictor. The point height distribution statistics in group a, which appear commonly in species classication studies, were generally unimpressive as an individual predictor group. The main exception is for the classication of BC and RA, where a classication accuracy of over 80 percent is achieved with just these four height distribution percentiles. As with intensity, results have been mixed in the past with this group of variables. Vauhkonen et al. (2009) achieved fairly good classication with just the

83

relative height distribution percentiles before improving on these results with other variables. Holmgren and Persson (2004) found that the weakest individual variable was the 90th percentile of relative height. rka et al. (2009) also nd little value to relative height statistics in species classication. In table 5.4, we can see that the inter-peak distance variables in group c performed very well distinguishing maple (BM) from the two other hardwood species. The means of three of the four variables in this group: d12 , d13 , and d13 are smaller for BM than for all other species. As the name suggests, bigleaf maple has very large leaves that may be larger than even the pulse footprint. Each leaf hit is then very likely to record a noticeable peak in the return signal. This might result in more detectable peaks close to the crown surface. The crown surface model parameters in group f , are also quite strong at dierentiating BM from cottonwood (BC). More open-grown maples tend to present a more dome-like form, which is represented in our crown surface model by smaller values of the sa parameter. The voxel-based neighbor statistics in group e were strong predictors for distinguishing conifers from hardwoods, but this group of texture variables underperformed as an individual group in all other classications. The realizations of these variables varied greatly for the BC and BM trees, but were much more stable for the other species. The reason for this dierence is unclear, though there seems to be some association between larger heights and larger values of pn1 for these two species. Perhaps larger cottonwoods and maples are more prone to lone branches that would lead to a larger number of one-neighbor cells. Including height as a predictor might account for this dierence. rka et al. (2009) also found that many of their predictors were dependent on height. Few authors have investigated Lidar-derived crown texture directly as a predictor variable. Vauhkonen et al. (2009) looked at textural features of the Lidar-derived canopy height model. While analysis of changes in intensity characteristics of the returns can be seen as texture analysis (Brandtberg 2007), this neglects the three-

84

dimensional texture that is evident in many tree crowns. In high spatial resolution raster imagery analysis, texture has been considered important for species identication (Franklin et al. 2000, Dikshit 1996). It is interesting that this idea did not transfer over to point cloud analysis. One explanation might be that three-dimensional texture is dicult to quantify. We determined that canopy texture, or roughness, could be measured more easily in the voxel representation of the data. As with twodimensional raster data, it was very simple to identify the neighbors of a voxel using the row, column, and layer indices. Our intentional attempt to create variables from the discrete point data that aliased the information available in the Fourier transformations was not successful. These variables, such as those in groups b and c, should contain information about intensity relationships among the peaks and inter-peak distances. According to the canonical correlation analysis, only two of the eight canonical pairs had high correlations. This indicates that we did indeed capture some of the same information available from the Fourier transformations. However, the remaining information was inuential enough to improve the classication accuracy in most of the species comparisons. We expect that a noticeable part of these results may stem from our choice of variables, and a dierent choice of variables could lead to a dierent conclusion. However, much detail is lost in the conversion of wave signal to discrete point data, and we suspect that information important to species detection will always be part of this loss. One question that might arise is whether one can rebuild waveforms from discrete point data. While we have not tried this, it may in fact be possible. Modern systems record several returns per pulse, while retaining the order of each return. This information could be used, along with intensity values and distance between points to reconstruct the waveform. The shape of each peak would have to be estimated, and any high frequency information in the actual waveforms would be missing from the reconstructed waveforms. If this high-frequency information is important to species

85

identication, variables created from the Fourier transformations of the reconstructed waveforms would not be as powerful as transformations of the original waveforms. The trees measured in this study, most notably the conifers, are mostly open grown. The results as they stand would not directly translate to a high density commercial forest. With the increased density a smaller portion of each trees crown would be uniquely identiable. Because the waveform information used in this study only contains one-dimensional information about position from wave start, the density should not greatly aect the results reported here. However, many of the spatial variables we used, such as those in groups d , e and f would likely be aected by this reduced crown visibility. The eects would probably be largest in hardwood stands because it may be impossible to dierentiate two hardwood trees with intermingling branches and no distinct tops. In such a case, the result would most likely be an increase in the power of waveform information over crown shape information for species classication. 5.5 Conclusion

We were able to nd evidence that waveform information can improve species classication when compared to information from discrete point data alone. This is not conclusive evidence because the choice of variables likely has the potential to aect classication results noticeably. The large number of possible variables makes this a dicult hypothesis to test. However, we feel that the large number of point-derived variables included, which spanned several concepts of crown measurements, ensured a fair comparison. The overall results were very good for all species combinations, comparing favorably to other results that have been previously published. This includes work that incorporated multi-spectral raster information, which is often considered the data of choice for species classication work. However, some of the point-derived variables describing crown shape would likely lose predictive power when applied to dense forests.

86

Regardless, there is good reason to believe that in the near future, the purchase of one dataset for all forest inventory information needs may be all that is necessary for forest inventory with tree crown-level species information.

87

Chapter 6 FURTHER DETAIL OF METHODS USED


6.1 Introduction

The technical chapters that follow were written with the intention that they would be submitted to peer-reviewed journals for publication outside this thesis. As a result of page limitations set by the publisher, the methods and materials section of chapter 3 was limited in detail. Not much detail was added to the same section in chapter 4. Finally, while chapter 5 is signicantly longer than the other two, much detail was left out of the methods and materials section because this detail would likely distract the reader from the true focus of the paper. This chapter is not intended to serve as a standalone description of the methods used, but rather as a supplemental volume to ll in the gaps in chapters 3, 4 and 5.

6.2

Data

6.2.1 Washington Park Arboretum The Washington Park Arboretum in Seattle, WA is operated by the University of Washington Center for Urban Horticulture. The Arboretum, which is approximately 230 acres (93 hectares) in size, is planted with more than 10,000 cataloged woody plant specimens representing numerous genera. In addition much of the Arboretum contains natural stands of species native to Western Washington State. More than 10,000 native trees are estimated to grow within the park perimeter. This includes species economically important for the region such as Douglas-r (Pseudotsuga menziesii (Mirbel) Franco) and western redcedar (Thuja plicata Donn ex D. Don).

88

Table 6.1: Parameters of the aerial waveform Lidar acquisition over the UW Arboretum Parameter Provider Instrument Mean pulse frequency Mean scan frequency Scan angle range Wavelength Beam divergence Mean height Height range Waveform digitizing rate Sensor height above canopy surface. Value Terrapoint, USA Riegl LMS-Q560 133,000 Hertz 91 Hertz -30 to 30 degrees 1550 nm 0.5 mrad 310 meters 145 to 412 meters 1 nanosecond

6.2.2 Lidar Acquisition and Orientation Terrapoint Aerial Services ew the Riegl LMS-Q500 over the Washington Park Arboretum on August 8th, 2007. This instrument was set to digitize waveforms at a sample interval of about 1 nanosecond (about 0.5 foot or 15 centimeters in directional round trip distance), and a pulse frequency of about 133,000 Hertz. The product came as both a processed LAS1.0-format (http://www.asprs.org/Standards/) discrete point dataset and a raw waveform Lidar dataset. The discrete point dataset had been produced from the waveform dataset in-house by the provider using proprietary software. Table 6.1 gives additional details about the mission. The waveform Lidar data came as two separate datasets. One was the waveform digitizer output in a proprietary binary format, and the other was a position and attitude dataset. The raw waveform data contains the range and intensity readings from the digitizer as well as GPS time and scan angle readings for each waveform. The position and attitude dataset contains the post-processed GPS and INS readings taken at 100 Hertz (every 0.01 seconds) and was provided in the UTM NAD 1983, zone 10N coordinate system. In order to use the waveform data,

89

the orientation of each waveform had to be transformed into the mapping coordinate system by combining both datasets. Cubic-spline interpolation provided by the GNU Scientic Library (http://www.gnu.org/software/gsl/) was used to interpolate aircraft position between the GPS and INS readings. This was done in a script written in the C programming language. This script uses the freely available BLAS library (http://www.netlib.org/blas/) optimized with the ATLAS system (http://math-atlas.sourceforge.net/) to quickly run the necessary matrix rotations. Commercial software options were available for purchase for this task, but the cost was too prohibitive to consider for this project. 6.3 Methods

6.3.1 Chapters 3 and 4 Surface models A digital elevation model (DEM) of the ground height above GEOID03 was created from the precleaned discrete point dataset. A raster data set was created containing the height of the lowest point in each cell, with dimensions 1.38 meters in easting direction by 2.36 meters in northing direction. This raster was 1024 rows by 1024 columns easily covering the entire Arboretum with an additional buer. All cells that were more than an arbitrary 4 meters higher than the 50th percentile of all surrounding cells in a 5 x 5 pixel window were set to a null value. Null values were then interpolated using cubic splines, averaging the row-wise and column-wise estimates for each cell. This nal DEM was used to create a raster model of canopy surface height. The canopy height model (CHM) was another surface model created in a similar manner as the DEM above. This time the highest point in each cell region, with dimensions 0.69 meters in easting direction by 1.18 meters in northing direction, was recorded. To create the CHM, the nal DEM was subtracted from this preliminary

90

surface model. Null values were common and were not interpolated until the crown segmentation step that follows. Crown segmentation Given the low density of the trees in the Arboretum, it was thought that little eort would be needed to achieve a successful crown segmentation. One of the earliest published algorithms, that outlined by Hyypp et al. (2001a), was chosen because it a was simple to implement quickly. This involved applying a low-pass lter to the CHM created from the discrete point Lidar data. An easily implemented method was used on the CHM after application of a low-pass lter with a window size of 3 x 3 pixels. The coecients for this lter were

1 2 1 2 4 2 1 2 1

/16

unless a null value appeared, in which case the coecients of null values were ignored and all other coecients were scaled to sum to 1. After ltering, the segmentation algorithm was performed as outlined. The thStep and thMin parameters from Hyypp et al. (2001a) were set to 0.1 meters and 3.0 a meters, respectively. The results were reasonable, but several tree crowns bled into neighboring crowns. However, due to the low number of training samples, it was feasible to inspect the results of this algorithm manually and correct some of the more obvious errors by hand digitization in GIS software. Waveform collection We checked the vector direction of each waveform to see if it crossed any crown perimeter polygons. If an intersection occurred at a distance along this vector that was within the range recorded for the waveform, then this waveform was collected as

91

a sample for the given tree. At this stage, no check was done to see if the intersection occurred at the beginning of the waveform data, such that the tree of interest was the rst object hit. This was not discovered to be a good idea until after further analysis. The number of waveforms representing each tree varied quite dramatically. The smallest group contained 40 waveforms and the largest contained 16040, reaching three orders of magnitude higher.

Waveform reduction In chapter 4 the number of waveforms was reduced to multiple levels for each tree in order to test classication performance under these dierent data densities. These reductions were done systematically to simulate what might occur if the instrument was own at a higher elevation or the pulse frequency was reduced. The waveforms were sequentially numbered from one to ve based on the order it occurred in the original data. When ve was reached, the next waveform was numbered as a one. Removing all waveforms with a given number would reduce the original density by 20 percent. To achieve 80 percent density, all waveforms from group ve were removed. To achieve 60 percent density, all waveforms in groups four and ve were removed. This was continued until only those waveforms in group one remained and waveform density was 20 percent of the original data.

Classication Being the main focus of study, the computation of predictor variables from the Fourier transformations of the waveforms is described in sucient detail in chapters 3 and 4 to reproduce the results on another dataset. Therefore, no further details will be given here. Additionally, the classication procedure is fairly simple and dened in sucient detail in both chapters.

92

6.3.2 Chapter 5 Voxel model For chapter 6, a voxel (three-dimensional pixel) representation of the arboretum was performed for both tree segmentation and crown shape parametrization purposes. To create this voxel model, waveforms were initially deconvolved using a Richardson-Lucy algorithm Lucy (1974). A source code version of this routine is given in appendix section B.1. The purpose of this deconvolution is to remove the eect of a noninstantaneous light source on the return signal. In practice, the mass of each peak is pushed toward the peak center and the peak height increases. This allows multiple neighboring peaks to become much more separable. After deconvolution, a peak detection algorithm was used to get the easting, northing, and elevation location of all individual peaks within each waveform. The relevant code for this algorithm is displayed in appendix section B.2. The result was a eld of points in space represented by the waveform peaks, which will be referred to as peak-points. Additionally, peak width, mass and maximum intensity were recorded for each peak-point. However, only maximum intensity was used in subsequent analysis. Using a three-dimensional grid with both easting and northing resolution set to 1.0 meters and elevation resolution set to 0.75 meters, individual peak-points could now be indexed by the grid cell (voxel) to which they belong. A le containing the number of peak-points within each voxel was created for quick reference. The information for each voxel contains a reference to the location within the le of information about each individual peak-point contained within the voxel. Voxel segmentation A new approach introduced in chapter 5 was created in order to obtain three-dimensional crown information about each tree. A region growing algorithm based on the layer

93

Table 6.2: Default values for user-dened parameters of the crown segmentation algorithm. Parameter radmin F Lmax F Lmin A BL BO W massmin Default value 2.00 1.50 1.00 4.6 3.00 7.00 3.00 1.00

by layer reading of the voxel data was created for this purpose. Many adjustable parameters exist for this algorithm and they are given in table 6.2. Details for this algorithm are given below, and appendix section A contains an implementation written in the Python programming language. 1. Create an empty list of clusters, and two integer grids representing the current (C) layer ownership, and the past (P) layer ownership of each row and column. Set the ownership in all cells of both grids to NULL. 2. Read in a layer from the voxel le. For each cell (row, column) in this layer that contains peaks do, check for cell ownership from grid C. If the cell is already owned, add the voxel (layer lv , row rv , and column cv ) to the indicated cluster. If the cell is not owned do: (a) Check for neighboring clusters on grid (P) within a window of 16 meters. For each neighboring cluster found do the following: i. Compute the clusters radius as rx ry ni radi = max , radmin F Li li

94

which is the minimum of: (1) the radius of a circle of equivalent area as the average number of cells per layer in the given cluster; and (2) a constant radmin , multiplied by a correction factor, F Li . rx and ry are the voxel dimensions in the x and y direction, ni is the number of member voxels in cluster i, and li is the current number of layers in cluster i. The value of FL is determined by a function of the vertical length of the cluster: F Li = [(F Lmax F Lmin ) modlog (z, A, BL ) + F Lmin ] Here, F Lmax , F Lmin , A, and BL are user-dened constants specied ahead of time, and z is the vertical length in map units of the cluster i. This combination makes the search radius for taller trees greater, while radmin makes sure newer clusters with few voxel members can still incorporate more voxels. The function modlog (x, A, B) is the two parameter logistic function logistic(x, p0 , p1 ) = [1 + exp(p1 (x p0 ))]1 re-parametrized so that A denes the change in x necessary for the output to change from 0.01 to 0.99 (assuming a positive p1 ), and B denes the value of x for which the output of 0.5 occurs: modlog (x, A, B) = [1 + exp (AW/A(x B))]1 AW is a constant value that is computed as AW = ln(0.99/0.01) ln(0.01/0.99) = 2ln(99) ii. Using the radius for each neighboring cluster, compute the mass, Mi , of crown over the given cell using the formula: Mi = Oi F Vi F Hi

95

where Oi is the area of overlap between: (1) a circle of radius radi centered around the cluster centroid; and (2) a circle around the cell center with radius W , which is a user-dened constant. F Hi is a correction factor for horizontal distance distH between the cell center and cluster centroid. F Hi = modlog (distH , A, BO ) and F Vi is computed as a sum of individual corrections for each layer in the cluster, allowing for new clusters to be created underneath existing clusters.
lmax

F Vi =
j=lmin

modlog (j lv , A, BO )

where lv is the layer for the new voxel. (b) If any of the Mi for the neighboring clusters exceed the minimum set by massmin , then select the neighboring cluster with the largest mass and add the voxel to this cluster. If no neighboring clusters meet the minimum mass requirement, begin a new cluster with the voxel.

3. Go through the preliminary clusters and merge a cluster into one of its neighboring clusters if it and the neighbor meet the following conditions:

(a) The cluster is not too big (radi for the given cluster is less than 7 meters). (b) The distance from cluster top to cluster centroid is less than 5 meters, cluster is not nearly vertical (unit direction vector from top to centroid has z-component less than 0.94), or cluster bottom is below 2 meters. (c) The cluster is smaller than the neighbor (has more total voxels than the neighboring cluster).

96

(d) The cluster and the neighbor have a large enough interface (at least 60 percent of the horizontal rectangle envelope containing the cluster is shared with the envelope of the neighbor). (e) If the cluster has more than 3 layers and is larger than 50 voxels, the direction vector passing from cluster top through cluster centroid crosses through at least 4 voxels of neighbor (voxels must be within 2 meters of vector). 4. Go through the remaining clusters and delete any cluster that meets any of the following conditions: (a) The cluster is too small (contains less than 50 voxels). (b) The cluster is too at (ratio of cluster height to the average of cluster width in rows and cluster width in columns is less than 0.8). (c) The cluster is too short (cluster top is less than 5 meters high). Waveform collection In chapter 5, it was known that Fourier transforms would be used on the waveforms collected for each tree. For consistency, only waveforms which hit the tree in question before hitting any other targets were included. This was done with the following steps: 1. Get the top voxel with points in each row and column covered by the tree as set T. 2. Get the euclidean distance from the X, Y and Z location of the rst sample occurring in each waveform to the centroid of each voxel in set T. Remove all waveforms from consideration that do not have a start within 3 meters from any voxel in T.

97

3. Of all remaining waveforms, make sure that the waveform actually crosses a voxel in T. This is a much simpler task if one assumes that the scan angle is steep enough that a direction vector cannot pass through a voxel without crossing either the roof or oor (or both) of the voxel. An R programming language implementation of this process is presented in appendix section B.3. Neighboring voxels The variables in group e described in chapter 5, are computed by knowing which neighbors of a given voxel contain peak-points. By converting the layer, row and column of each voxel into a single value index, such a computation is very simple. Appendix section B.4 contains a function that does this eciently using the vector operators of the R programming language. Variable computation In chapter 5, a brief description of each variable derived from discrete point data is given. It was more important that the general concept of each variable was understood rather than the exact algorithm used to compute that variable. However, there is ample space available in this dissertation for the latter. The computation of each variable derived from the discrete point data will be described in detail below. The rst variables described are derived from the set of discrete data peak-points contained within the volume of space taken up by the tree in question. Many past publications describe the use of height percentiles of these peak-points for classication purposes. It is very common, unless total height varies greatly by species, to rst transform the height of each peak-point to relative height. Relative height is peak-point height compared to a single value representing the height of the tree. Sometimes this height is determined from the associated local maxima from

98

the canopy height model. In this case total height is determined as the highest peak-point detected within the crown volume. For this study, four percentiles of this relative height were computed for each tree. These are the 25th, 50th, 75th and 90th percentiles. These variables will be referred to as h25 , h50 , h75 , and h90 respectively. This group of four related variables is a in chapter 5. When the waveforms were decomposed into peak-points, the order in which the peak-points occurred was recorded. Using this order, the mean peak intensity of all the rst peak-points across the tree was computed and is labeled i1 . Similarly, i2 and i3 represent the mean intensity of the second peaks and third peaks, respectively, across the entire tree. These three variables make up group b. Also incorporating the order information, the mean Euclidean distance between the rst and second peaks of a waveform, across all waveforms is labeled as d12 . The mean distance between the rst and third peak is labeled d13 , and the mean distance between the second and third peak is labeled d23 . Because branch surface area is likely to be much smaller than leaf surface area near the crown surface, these three variables likely describe the propensity of a tree to have layers of leaves near the surface. Additionally, an exponential distribution of the form f (x) = ex was t to the collection of distances between all consecutive points within the wave forms hitting a given tree. The rate parameter estimate, , was recorded for each tree. These four variables are combined in group c. The remaining variables were all computed using either the voxel representation of each tree alone or in combination with the peak-point representation. Some of them could have been computed using the peak-points data alone, but the voxel-based computation was simpler. The set T of all top voxels, described in 6.3.2, was used to represent the crown surface. To dierentiate conifers from hardwoods, it was thought that a combination of

99

vertical distribution of peak-points as well as crown perimeter smoothness might do well as a predictor. To create such a representation, voxels lower than the sixth layer (4.5 meters) were removed from T, creating a subset T6 . The number of peak-points within 1.5 meters vertical distance of a voxel in T6 , divided by the number of peakpoints within the row and column combinations represented in T6 is labeled as ptop . This number represents the proportion of peak-points near the crown surface. To measure the crown perimeter smoothness, the rst eight layers of the voxel representation were projected onto a at two-dimensional raster F. If any voxel above a given row and column cell combination contains peak-points, then the associated cell in F is given the value of one. Otherwise the value is set to zero. The number of cells with a value of one represents the area of the vertical projection of a crown. This area divided by the area of a convex hull around the centers of the same cells in F is recorded as rarea . This variable should give an indication of the degree to which the crown perimeter contains arm-like extensions. The voxel dimensions should have a large eect on this value, but the default size was ne enough for good separation between trees. The variables ptop and rarea make up group d . Using the algorithm described in 6.3.2, the neighbors of each voxel that contain peak-points is easy to compute. On the surface of a rough crown, one should expect the number of voxels with only one neighbor, or those that extend outward alone from the surface, should be high. Some species, such as Douglas-r have branches that sometimes point skyward or hang downward at their end. This should increase the number of voxels with only a bottom or only a top neighbor. The proportion of voxels with one neighbor, in any direction, is recorded as pn1 . Likewise, the proportions of voxels with only a neighbor above and only a neighbor below, are recorded as pnt and pnb , respectively. These three variables make up group e. Finally, a description of the three-dimensional shape of a crown surface has shown to be useful in species dierentiation. To create such a model, the crown centroid computed from the top eight layers in row and column units (ccol , crow ), and the

100

maximum layer of the top voxels (Layermax ) were computed using all voxels in set T6 . Floating point values of row and column distance from center were converted to polar coordinates as: Ri = atan2(Rowi crow , Columni ccol ) i = (Rowi crow )2 + (Columni ccol )2

The integer dierence in layers is recorded as dZi = Layermax Layeri and the following model was t with the nls function in the R programming language: dZ = e(a+bsin(Rowc)) 1 This model allows for a crown to be elliptical in shape, but requires that the surface be symmetrical when sliced along the major axes of this ellipse. Overcoming this symmetry requirement would require an additional parameter, which could result in problems tting the model in an automatic manner for many trees. It was decided that most trees are roughly symmetrical in the rather open conditions of the Arboretum. The parameter a represents the base slope of the exponential for the entire tree, while the parameter b represents the change in this slope as the tree is rotated. These two parameters were saved as sa and sb for each tree, and they make up group f . The third parameter, c, simply allows for the long axis of the ellipse to rotate freely during optimization, and should not be related to species. Table 6.3 presents summary statistics by species of the four discrete point variables in group a. Tables 6.4, 6.5, 6.6, 6.7, 6.8 provide the same for variable groups b, c, d ,e, f , respectively. Tables 6.9 and 6.10 provide summary statistics for the two groups of ve principal component variables of groups h and i , as described in section 5.2.4. Finally, table 6.11 provides the summary statistics for m0 and q0 . The two variables are themselves summaries of the original waveform samples. The amplitude for

101

Table 6.3: Summary statistics of the predictor variables in group a by species. Name h25 Species BC BM DF RA RC BC BM DF RA RC BC BM DF RA RC BC BM DF RA RC Minimum 0.2886 0.4450 0.0976 0.1562 0.3194 0.7085 0.5906 0.3667 0.4684 0.4794 0.8043 0.6993 0.6606 0.6269 0.6183 0.8501 0.7877 0.7640 0.7544 0.7350 Q25 Median 0.6373 0.6815 0.6011 0.6875 0.5344 0.6199 0.4963 0.5517 0.4754 0.5467 0.7429 0.7813 0.6974 0.7597 0.6846 0.7198 0.6343 0.6936 0.6143 0.6461 0.8183 0.8521 0.7766 0.8243 0.7832 0.8126 0.7608 0.7859 0.7324 0.7518 0.8644 0.8962 0.8357 0.8699 0.8621 0.8763 0.8294 0.8624 0.8169 0.8392 Q75 Maximum 0.7202 0.7551 0.7220 0.7880 0.6563 0.7484 0.6016 0.7366 0.6032 0.7032 0.7950 0.8168 0.7891 0.8390 0.7495 0.8209 0.7101 0.7962 0.7013 0.7700 0.8610 0.8863 0.8462 0.8871 0.8297 0.8831 0.8056 0.8546 0.7855 0.8374 0.9071 0.9286 0.8888 0.9260 0.8969 0.9266 0.8807 0.9190 0.8523 0.8925

h50

h75

h90

frequency 0 of the Fourier transform of a single waveform is equivalent to the mean of the sample values of that waveform. m0 is the mean of these means, and q0 is the interquartile range of these means across a single tree. For further reference, the R language code included in appendix section B.5 is available. This section contains the code used to compute both the Fourier transformation variables derived from the waveform data as well as the discrete point variables used in the classication model of chapter 5.

102

Table 6.4: Summary statistics of the predictor variables in group b by species. Name i1 Species BC BM DF RA RC BC BM DF RA RC BC BM DF RA RC Minimum 69.0 71.3 71.7 61.2 72.4 28.5 22.6 18.8 24.0 23.1 11.1 6.8 7.5 10.9 9.4 Q25 Median 86.6 98.9 97.5 112.9 93.2 98.8 83.9 92.4 81.3 84.5 32.5 35.7 28.7 33.5 25.0 28.6 34.6 37.9 35.8 38.2 13.1 15.1 8.6 10.7 9.4 11.6 14.8 17.6 17.3 17.9 Q75 Maximum 106.7 118.5 127.8 151.2 105.6 120.4 101.1 125.0 88.6 102.2 40.7 49.8 36.6 42.1 31.5 36.0 41.8 50.1 40.2 44.4 16.3 21.4 13.1 15.9 12.8 14.8 19.4 23.7 19.2 24.8

i2

i3

103

Table 6.5: Summary statistics of the predictor variables in group c by species. Name d12 Species BC BM DF RA RC BC BM DF RA RC BC BM DF RA RC BC BM DF RA RC Minimum 1.345 1.221 1.346 1.263 1.307 2.482 2.227 2.413 2.383 2.423 1.158 1.034 1.109 1.135 1.122 0.306 0.308 0.308 0.304 0.302 Q25 Median 1.385 1.423 1.274 1.298 1.402 1.441 1.335 1.364 1.379 1.398 2.580 2.639 2.321 2.424 2.584 2.639 2.494 2.573 2.568 2.630 1.24 1.286 1.099 1.158 1.206 1.253 1.203 1.239 1.207 1.252 0.318 0.327 0.321 0.356 0.315 0.322 0.312 0.319 0.316 0.322 Q75 Maximum 1.444 1.530 1.374 1.534 1.495 1.631 1.441 1.563 1.451 1.548 2.713 2.858 2.546 2.805 2.714 3.025 2.685 2.965 2.688 2.891 1.345 1.438 1.212 1.376 1.296 1.509 1.326 1.462 1.280 1.432 0.380 0.405 0.385 0.411 0.338 0.389 0.327 0.407 0.332 0.359

d13

d23

Table 6.6: Summary statistics of the predictor variables in group d by species. Name ptop Species BC BM DF RA RC BC BM DF RA RC Minimum 0.0698 0.0514 0.0829 0.0887 0.0923 0.5313 0.7262 0.5238 0.6042 0.4889 Q25 Median 0.0956 0.1718 0.1323 0.2088 0.2348 0.2483 0.2012 0.2195 0.1665 0.1791 0.6792 0.7462 0.8081 0.8644 0.6429 0.7143 0.6993 0.7865 0.6188 0.6719 Q75 Maximum 0.2236 0.2417 0.2852 0.3440 0.2707 0.3495 0.2556 0.3200 0.1964 0.2990 0.7848 0.9062 0.9185 1.1630 0.7761 0.9924 0.8155 0.9445 0.7723 1.0160

rarea

104

Table 6.7: Summary statistics of the predictor variables in group e by species. Name pn1 Species BC BM DF RA RC BC BM DF RA RC BC BM DF RA RC Minimum 0.0515 0.0336 0.0569 0.0486 0.1559 0.0040 0.0025 0.0041 0.0030 0.0119 0.0038 0.0016 0.0036 0.0037 0.0124 Q25 Median 0.0896 0.2096 0.0582 0.2231 0.3671 0.3861 0.2723 0.2942 0.3497 0.3632 0.0080 0.0225 0.0055 0.0191 0.0478 0.0551 0.0247 0.0291 0.0366 0.0459 0.0084 0.0210 0.0043 0.0179 0.0424 0.0531 0.0218 0.0246 0.0367 0.0432 Q75 Maximum 0.3520 0.4092 0.3200 0.3641 0.3918 0.4214 0.3196 0.3712 0.3761 0.4240 0.0470 0.0702 0.0323 0.0448 0.0646 0.0845 0.0361 0.0642 0.0497 0.0620 0.0461 0.0619 0.0322 0.0416 0.0603 0.0766 0.0319 0.0727 0.0502 0.0618

pnt

pnb

Table 6.8: Summary statistics of the predictor variables in group f by species. Name sa Species BC BM DF RA RC BC BM DF RA RC Minimum 0.4573 0.2163 0.3631 0.3450 0.4160 0.1223 0.1229 0.2487 0.4068 0.1431 Q25 Median Q75 Maximum 0.5028 0.5313 0.5857 0.7026 0.3421 0.3825 0.4835 0.6448 0.5471 0.5996 0.6422 0.9292 0.4223 0.4756 0.5423 0.6860 0.5974 0.6232 0.7004 0.9143 0.0496 0.0017 0.1568 0.3209 0.0401 0.0192 0.0515 0.1793 0.0058 0.0459 0.0778 0.5832 0.0478 0.0157 0.0665 0.3078 0.0323 0.0365 0.0656 0.1359

sb

105

Table 6.9: Summary statistics of the predictor variables in group h by species. Name cm1 Species BC BM DF RA RC BC BM DF RA RC BC BM DF RA RC BC BM DF RA RC BC BM DF RA RC Minimum 5.869 6.546 6.502 7.377 5.098 1.460 2.703 3.196 2.456 0.785 0.981 1.223 0.719 0.648 0.823 0.440 1.515 1.221 0.585 0.859 0.446 0.900 1.036 0.691 0.445 Q25 Median 4.226 1.109 0.982 1.638 2.285 1.050 3.983 0.280 2.461 1.062 0.904 0.442 1.246 0.933 2.063 1.547 0.526 0.244 0.180 0.502 0.391 0.088 0.626 0.351 0.317 0.185 0.275 0.122 0.370 0.232 0.248 0.008 0.325 0.041 0.713 0.346 0.052 0.324 0.102 0.160 0.038 0.085 0.204 0.060 0.214 0.013 0.290 0.076 0.115 0.109 Q75 Maximum 3.805 7.227 10.330 22.650 0.140 5.801 2.237 6.399 0.106 3.464 0.717 2.703 1.581 6.061 0.937 1.801 1.411 3.844 1.047 2.095 0.661 1.320 0.134 1.203 0.055 1.546 0.264 1.533 1.212 1.699 0.123 0.792 0.221 0.965 0.030 0.537 0.790 1.315 0.333 1.120 0.277 0.682 0.095 0.396 0.163 0.351 0.099 0.631 0.380 0.785

cm2

cm3

cm4

cm5

106

Table 6.10: Summary statistics of the predictor variables in group i by species. Name cq1 Species BC BM DF RA RC BC BM DF RA RC BC BM DF RA RC BC BM DF RA RC BC BM DF RA RC Minimum 4.326 5.248 6.917 6.122 6.120 3.463 10.200 3.620 4.157 2.773 1.243 0.991 1.640 1.838 1.744 1.050 1.445 0.752 2.141 1.302 0.601 0.462 0.784 0.992 1.579 Q25 Median Q75 Maximum 1.362 1.549 4.177 8.634 2.790 1.085 6.568 15.760 4.975 3.538 2.271 0.850 2.003 0.582 2.359 6.047 1.247 0.341 1.594 10.830 0.008 0.447 2.409 3.731 3.609 0.668 0.422 2.519 2.366 1.688 0.596 2.329 0.446 0.539 2.047 8.504 0.627 1.662 2.174 5.550 0.354 0.070 0.347 1.551 0.453 0.102 0.932 2.593 0.351 0.142 0.481 1.867 0.646 0.185 0.297 1.423 0.516 0.143 0.124 1.155 0.166 0.145 0.660 1.130 0.256 0.034 0.331 1.147 0.031 0.166 0.542 1.289 0.805 0.152 0.257 0.939 0.518 0.166 0.330 1.871 0.172 0.111 0.331 0.775 0.063 0.083 0.256 1.129 0.095 0.039 0.286 0.981 0.379 0.199 0.115 0.935 0.333 0.106 0.099 0.486

cq2

cq3

cq4

cq5

107

Table 6.11: Summary statistics of the predictor variables in group j by species. Name m0 Species BC BM DF RA RC BC BM DF RA RC Minimum 9.35 9.11 8.25 8.91 8.65 2.70 1.95 1.96 2.12 2.27 Q25 Median 10.11 11.63 11.14 12.29 10.08 10.68 10.93 12.53 11.58 11.88 3.18 3.21 2.51 2.76 2.19 2.45 2.79 3.16 2.58 2.84 Q75 Maximum 12.83 13.87 13.92 15.87 11.31 12.38 13.53 14.23 12.59 13.33 3.50 4.14 2.91 3.52 2.98 3.38 3.64 5.66 3.18 4.00

q0

108

Chapter 7 GENERAL DISCUSSION AND CONCLUSIONS


7.1 Discussion

7.1.1 Utility of waveform information The classication results achieved in this dissertation place highly in the range of accuracies reported among the publications listed in chapter 2. However, it is not very meaningful to compare results directly between studies, because of dierences in data type and selected species. In fact, only a few studies have compared multiple hardwood (broadleaf deciduous) species with Lidar data. Such comparison is usually done with quality hyperspatial or hyperspectral data, even though crown segmentation using this data type is more dicult. In fact hardwood classication can be very dicult to achieve (Synjoki et al. 2008). Distinguishing three hardwood a a species with fair results, 75 to 82 percent, was achieved in chapters 3 and 4. In these chapters, classication is done using just the waveform Fourier transform information. Even more impressive, 90 percent overall accuracy was achieved for the same three species using all the Lidar variables in chapter 5. In the past, most species classication work using Lidar data has focused on conifer (evergreen) species. In many cases, authors have tried distinguishing several conifers from a single hardwood or simply classied conifers and hardwoods as entire groups. A very large number of studies centered on one type of forest in Southern Finland. This type typically contains two dominant conifer species and one hardwood species. Working in this forest type, very high classication accuracies above 95 percent have been reported (Vauhkonen et al. 2009, Holmgren et al. 2008). Classication of Douglas-r and western redcedar in this work is performed to nearly the

109

same level. If classication could be performed to this level in practice, models of tree volume or many other attributes would very likely benet from stratifying individual tree crowns by species. Many of the native trees in the University of Washington Arboretum are not planted as exhibits, as are the non-native species. However, the spacing between these native trees is often still wider than one would expect in a commercial or natural forest. The trees in the training data for chapters 3 and 4 were selected with a bias toward more open crowns when possible. This was to ensure that the crown in question could be identied. Contrarily, the emphasis for the data in chapter 5 was to collect more samples. This resulted in slightly more variation in the amount of crown overlap among the trees in this later chapter. As the results were still quite good, this promotes enthusiasm that such techniques would still apply as the density of the stand increased. Despite eorts to sample trees with crown overlap, an increase in stand density would still likely have a negative aect on the overall classication results of this study. Under increased density, all variables would be aected by the reduced amount of visible crown. However, the variables derived from the Fourier transformation of the waveforms, as described in this dissertation, may be less aected. These variables rely only on the average characteristics over the visible portion of the crown volume, independent of where in the crown they are measured. The slow decline in accuracy as the number of waveforms was reduced in chapter 4 is evidence that this is indeed true. Reducing the data density to 80 percent increased the observed accuracy, though this dierence was not signicant due to the limited number of trees in the dataset. Little new information was discovered when comparing the collective groups of variables derived from the discrete point data with those derived from the waveform data in chapter 5. The group containing all discrete point-derived variables (group g ) performed better than all of the waveform-derived variables (group k ) in six of the seven dierent species group classications shown in table 5.4. This indicates that the

110

point arrangement and intensity information that one can obtain from discrete point data are very important for species classication. This should not come as a surprise, given past results. The power of spatial information means that when a waveform Lidar dataset is purchased, it would still be very important to break the waveforms down into a separate discrete point dataset in order to collect this data. When looking at the performance of individual variables, performance varied notably. No individual group of discrete point variables (groups a through f in chapter 5) performed well for all seven species comparisons. Each group represents a dierent property of the tree crown in question that may or may not dier suciently between the species in question. For example, several species pairs had very similar surface shapes such that the surface model parameters were not signicantly dierent. Using the large collection of point-derived variables given here, most species should be separable with at least one strong group. If some of the point-derived variables were not available, such as in very dense canopies, it is very likely that a large drop in performance would occur for some species. In contrast, the variables derived from the Fourier transformations performed more consistently across all species groupings. Even though the information from waveform transformation is not the strongest predictor of species, it should contain enough power to dierentiate many combinations of species to a moderate accuracy. This is important because, as mentioned above, high canopy density might aect the ability to dierentiate individual tree crowns accurately. In such a situation, the waveform information may be a stronger discriminator of those species which rely on a clear denition of crown shape for dierentiation. The large number of variables provided by the Fourier transformation of the waveforms appear to be redundant. In chapters 3 and 4, only means or variances of about 4 of the 31 frequencies were used by the classication tree to obtain 75 percent accuracy. In chapter 5, the twelve variables created using the rst ve principal components of both the medians and inter-quartile ranges were able to achieve the same accuracy

111

or better. This redundancy is likely due to the strong autocorrelation among the frequencies. When plotted over frequency, the median inuences (M1 to M30) usually appear to follow a smooth line closely. The principal components, as described in section 5.2.4, broke down the shape of this curve into a few key properties. These components likely contain most of the information available in the original variables.

It is important to note that the results in chapter 5 would likely be dierent using a dierent set of discrete point-derived predictor variables. The choice of variables presented here was made to cover the range of information available from discrete point data. There is an innite number of variables to choose from, and in some cases just small changes to the denition of a variable can have a noticeable eect on classication results. This is also true for the waveform-derived variables. Because there is no real way to test for a denite improvement with the addition of the waveform variables, the evidence provided here is only suggestive and in no way conclusive for all species and applications.

While this dissertation focused on one method of summarizing waveforms, other methods may perform as well or better. No comparison was made in this work between the waveform-derived variables described here and alternative metrics derived from the shape information available from peak modelling, such as in Hollaus et al. (2009) and Wagner et al. (2008). This study focused on the question of whether waveform Lidar can oer improvements in species detection, and not in the best way to read waveform Lidar to achieve this goal. It is possible that similar results might be found if shape parameters from the peak models, as well as patterns among these shape parameters, were incorporated into the classication predictor dataset instead of those described here. A comparison of techniques would be interesting because some ne-level information is lost when peaks are modeled with smooth xed models.

112

7.1.2 Other inuences While the waveform data does seem to provide important information for species classication, it is limited by one important design limitation of Lidar equipment. Because intensity values for the waveform samples must be recorded into a two byte integer, the instrument may adjust the gain modication of the actual photodiode sensor within the instrument dynamically to keep readings within a certain range. This is important in some applications to ensure that the sensor is not over- or underloaded. Unfortunately for target classication purposes, this adjustment may interfere with the pattern recognition process. Further, the amount of light energy received by the sensor is heavily aected by distance since light energy is attenuated as it passes through the atmosphere. Various attempts have been made to correct for these intensity changes (Gatziolis 2011, Korpela et al. 2010b), but these focus on discrete point Lidar. In this study, trees were a fairly uniform distance from the sensor, but for larger areas one would need to correct for intensity dierences. This would have no eect on variables describing discrete point spatial arrangement, other than the possible change in number of peaks detected. Additionally, the results may be limited by the choice of the support vector machine as a classication rule. The support vector machine will often benet from individual tuning for each application. In chapter 5, no such tuning was done because of time restriction and a desire to introduce no bias. Specic accuracy dierences between two dierent sets of predictors shown in table 5.4 may be aected by this omission. However, all conclusions about improvement in classication accuracy with waveform Lidar variables are derived from general trends in the results and not any specic case. Improvement was not likely just due to the simple addition of more variables to the predictor set, because (a) improvement was not universal, and (b) predictor groups with more variables were not consistently better than those with fewer variables.

113

A third potential inuence on the results is the method used to convert waveform data into peaks. The algorithm used in this work, described in chapter 6 and provided in appendix section B.2, is fairly simple. It was chosen to resemble the process that an onboard peak detector might use, but to keep more of the information available for individual peaks. The number of peaks available was greater than what is likely available from any provided discrete point dataset. The number of peaks likely aects the classication ability of the discrete point-derived variables. However, this eect could shift results in either a positive or negative direction, depending on whether or not the extra points provided a useful addition. The choice of crown segmentation routine could also aect on the results. The crown segmentation algorithm detailed in chapter 6 was useful when computing the predictor variables. The three-dimensional indexing of the discrete points made many calculations simpler to perform and enabled the computation of the voxel-based variables appearing in groups d and e. Voxel-based segmentation algorithms are new to the eld. It is far more common for the derived canopy height model (CHM) to be used for the segmentation process. While more complicated, the voxel-based approach allows for much more exibility. As demonstrated in Reitberger et al. (2009), this approach may oer an extended ability to dierentiate sub-dominant trees in close proximity to dominant trees. The algorithm presented here is an extension of the region-growing algorithms used on a CSM into three dimensions. Under an optimal parametrization, this approach should allow for trees to be detected underneath the crown of a larger neighboring tree. No performance tests were done on the algorithm for this dissertation work, though testing and improvements may be possible in future work. 7.2 Conclusion

The work presented here provides important information for those interested in waveform Lidar and its application to species detection or target classication in general.

114

Much work has been done using discrete point Lidar or waveform Lidar for tree species classication, but little to no work has been done comparing the relative merits of each data type. The extraction of three-dimensional information from raw waveform Lidar would require extremely heavy computation. For now the conversion of waveform Lidar to a point or voxel form simplies the extraction of such three-dimensional spatial information from the data. However, just limiting analysis to this coarse representation may in turn limit the potential of any classication performed with the data. It seems that the ne-level patterns contained within the waveform data might indeed be important for dierentiating some species. At this stage, species detection algorithms from Lidar data are not yet in a production-ready state. The work required for identifying individual species is still very specialized and no standard algorithm or choice of variables exists. However, the data and algorithms are improved to the point where it is feasible that a model-based inventory using species information for individual crown clusters could be performed. It should be expected that software capable of automatically performing such species classication may become available to end-users in the near future.

115

BIBLIOGRAPHY
Aldred, A. H. and Hall, J. K. (1975). Application of large-scale photography to a forest inventory. The Forestry Chronicle, 51(1):915. Andersen, H.-E., Reutebuch, S. E., and McGaughey, R. J. (2006). A rigorous assessment of tree height measurements obtained using airborne Lidar and conventional eld methods. Canadian Journal of Remote Sensing, 32(5):355366. Asner, G. P. (1998). Biophysical and biochemical sources of variability in canopy reectance. Remote Sensing of Environment, 64(3):234253. ASPRS (2010). LAS Specication Version 1.3 R11. Technical report, The American Society for Photogrammetry & Remote Sensing, Bethesda, MD. Beaubien, J. (1979). Forest type mapping from Landsat digital data. Photogrammetric Engineering and Remote Sensing, 45(8):11351144. Boyd, D. S. and Danson, F. (2005). Satellite remote sensing of forest resources: three decades of research development. Progress in Physical Geography, 29(1):126. Brandtberg, T. (2002). Individual tree-based species classication in high spatial resolution aerial images of forests using fuzzy sets. Fuzzy Sets and Systems, 132(3):371 387. Brandtberg, T. (2007). Classifying individual tree species under leaf-o and leaf-on conditions using airborne Lidar. ISPRS Journal of Photogrammetry and Remote Sensing, 61(5):325340.

116

Brandtberg, T. and Walter, F. (1998). Automated delineation of individual tree crowns in high spatial resolution aerial images by multiple-scale analysis. Machine Vision and Applications, 11(2):6473. Brandtberg, T., Warner, T. A., Landenberger, R. E., and McGraw, J. B. (2003). Detection and analysis of individual leaf-o tree crowns in small footprint, high sampling density Lidar data from the eastern deciduous forest in North America. Remote Sensing of Environment, 85(3):290303. Breidenbach, J. and Nsset, E. (2010). Prediction of species specic forest inventory attributes using a nonparametric semi-individual tree crown approach based on fused airborne laser scanning and multispectral data. Remote Sensing of Environment, 114:911924. Breiman, L., Friedman, J. H., Olshen, R. A., and Stone, C. J. (1984). Classication and Regression Trees. The Wadsworth statistics/probability series. Wadsworth, Inc, Belmont, California. Chauve, A., Mallet, C., Bretar, F., Durrieu, S., Pierrot-Deseilligny, M., and Puech, W. (2007). Processing full-waveform Lidar data: modelling raw signals. International Archives of the Photogrammetry, Remote Sensing and Spatial Information Sciences, 36(part 3):102107. Chen, Q., Baldocchi, D., Gong, P., and Kelly, M. (2006). Isolating individual trees in a savanna woodland using small footprint Lidar data. Photogrammetric Engineering and Remote Sensing, 72(8):923932. Clark, M. L., Roberts, D. A., and Clark, D. B. (2005). Hyperspectral discrimination of tropical rain forest tree species at leaf to crown scales. Remote Sensing of Environment, 96(3-4):375398.

117

Cochrane, M. A. (2000). Using vegetation reectance variability for species level classication of hyperspectral data. 21(10):20752087. Culvenor, D. S. (2003). Extracting individual tree information-a survey of techniques for high spatial resolution imagery. In Wulder, M. A. and Franklin, S. E., editors, Remote Sensing of Forest Environments: Concepts and Case Studies, chapter 9, page 519. Kluwer Academic Publishers, Norwell, Massachusetts. Datt, B. (1998). Remote sensing of chlorophyll a, chlorophyll b, chlorophyll a+b, and total carotenoid content in Eucalyptus leaves. Remote Sensing of Environment, 66(2):111121. Dikshit, O. (1996). Textural classication for ecological research using ATM images. International Journal of Remote Sensing, 17(5):887915. Dimitriadou, E., Hornik, K., Leisch, F., Meyer, D., and Weingessel, A. (2011). e1071: Misc Functions of the Department of Statistics (e1071), TU Wien. R package version 1.5-25. Donoghue, D. N. M., Watt, P. J., Cox, N. J., and Wilson, J. (2007). Remote sensing of species mixtures in conifer plantations using Lidar height and intensity data. Remote Sensing of Environment, 110(4):509522. Everitt, J. and Judd, F. (1989). Using remote sensing techniques to distinguish and monitor black mangrove (Avicennia germinans). Journal of Coastal Research, 5(4):737745. Falkowski, M. J., Evans, J. S., Martinuzzi, S., Gessler, P. E., and Hudak, A. T. (2009). Characterizing forest succession with Lidar data: an evaluation for the Inland Northwest, USA. Remote Sensing of Environment, 113(5):946956. International Journal of Remote Sensing,

118

Foody, G. M., Cutler, M., and Boyd, D. S. (2003). Predictive relations of tropical forest biomass from Landsat TM data and their transferability between regions. Remote Sensing of Environment, 85(4):463474. Franklin, S. E., Hall, R. J., Moskal, L. M., Maudie, A. J., and Lavigne, M. B. (2000). Incorporating texture into classication of forest species composition from airborne multispectral images. International Journal of Remote Sensing, 21(1):6179. Fung, T., Ma, F. Y., and Siu, W. L. (1998). Hyperspectral data analysis for subtropical tree species recognition. In Geoscience and Remote Sensing Symposium 1998 (IGARSS 98) Proceedings, pages 12981300 (vol. 3), Seattle, WA, USA. IEEE International. Gatziolis, D. (2011). Dynamic range-based intensity normalization for airborne, discrete return Lidar data of forest canopies. Photogrammetric Engineering and Remote Sensing Remote Sensing, 77(3):251259. Gong, P., Pu, R., and Yu, B. (1997). Conifer species recognition: an exploratory analysis of in situ hyperspectral data. Remote Sensing of Environment, 62(2):189 200. Goodwin, N. R., Turner, R., and Merton, R. (2005). Classifying Eucalyptus forests with high spatial and spectral resolution imagery: an investigation of individual species and vegetation communities. Australian Journal of Botany, 53(4):337345. Gougeon, F. A. (1995a). A crown-following approach to the automatic delineation of individual tree crowns in high spatial resolution aerial images. Canadian Journal of Remote Sensing, 21(3):274284. Gougeon, F. A. (1995b). Comparison of possible multispectral classication schemes for tree crowns individually delineated on high spatial resolution MEIS images. Canadian Journal of Remote Sensing, 21(1):19.

119

Gougeon, F. A. and Leckie, D. G. (2003). Forest information extraction from high spatial resolution images using an individual tree crown approach. Technical report, Natural Resources Canada, Canadian Forest Service, Victoria, British Columbia. Gougeon, F. A. and Moore, T. (1989). Classication individuelle des arbres a par` tir dimages a haute rsolution spatiale [Individual classication of trees from ` e high spatial resolution images]. In 6`me Congr`s de lAssociation Qubcoise de e e e e tldtection [6th Congress of the Quebec Association of Remote Sensing], pages ee e 185196, Sherbrooke, QC, Canada. Haara, A. and Haarala, M. (2002). Tree species classication using semi-automatic delineation of trees on aerial images. Scandinavian Journal of Forest Research, 17(6):556565. Hall, R. J., Case, B. S., Arsenault, E., Price, D. T., Luther, J. E., Piercey, D. E., Guindon, L., and Fournier, R. A. (2002). Modeling and mapping forest biomass using forest inventory and Landsat TM data: results from the Foothills Model Forest, Alberta. In Geoscience and Remote Sensing Symposium 2002 (IGARSS 02) proceedings, pages 13201323. IEEE International. Hedberg, R. (2010). Tree species classication using support vector machine on hyperspectral images. Professional, Linkping University, Linkping, Sweden. o o Heikkinen, V., Tokola, T., Parkkinen, J., Korpela, I., and Jaaskelainen, T. (2010). Simulated Multispectral Imagery for Tree Species Classication Using Support Vector Machines. IEEE Transactions on Geoscience and Remote Sensing, 48(3):1355 1364. Heinzel, J. and Koch, B. (2011). Exploring full-waveform Lidar parameters for

tree species classication. International Journal of Applied Earth Observation and Geoinformation, 13(1):152160.

120

Heinzel, J. N., Weinacker, H., and Koch, B. (2008). Full automatic detection of tree species based on delineated single tree crowns - a data fusion approach for airborne laser scanning data and aerial photographs. In Silvilaser 2008 Proceedings, pages 7685, Edinburgh, UK. He, B., Hollaus, M., Lehner, H., Pfeifer, N., and Wagner, W. (2008). Area-based o parameterization of forest structure using full-waveform airborne laser scanning data. In Silvilaser 2008 Proceedings, pages 227235, Edinburgh, UK. Hollaus, M., M cke, W., He, B., Dorigo, W., Pfeifer, N., Wagner, W., Bauerhansl, u o C., and Regner, B. (2009). Tree species classication based on full-waveform airborne laser scanning data. In Silvilaser 2009 Proceedings. Holmgren, J. and Persson, . (2004). Identifying species of individual trees using A airborne laser scanner. Remote Sensing of Environment, 90(4):415423. Holmgren, J., Persson, ., and Sderman, U. (2008). Species identication of indiA o vidual trees by combining high resolution Lidar data with multi-spectral images. International Journal of Remote Sensing, 29(5):15371552. Hyypp, J., Hyypp, H., Litkey, P., Yu, X., Haggrn, H., Rnnholm, P., Pyysalo, U., a a e o Pitknen, J., and Maltamo, M. (2004). Algorithms and methods of airborne lasera scanning for forest measurements. International Archives of the Photogrammetry, Remote Sensing and Spatial Information Sciences, 36(8):16821750. Hyypp, J. and Inkinen, M. (1999). Detecting and estimating attributes for single a trees using laser scanner. The Photogrammetric Journal of Finland, 16(2):2742. Hyypp, J., Kelle, O., Lehikoinen, M., and Inkinen, M. (2001a). A segmentation-based a method to retrieve stem volume estimates from 3-d tree height models produced by laser scanners. IEEE Transactions on Geoscience and Remote Sensing, 39:969975.

121

Hyypp, J., Schardt, M., Haggrn, H., Koch, B., Lohr, U., Paananen, R., Schera e rer, H. U., Luukkonen, H., Ziegler, M., Hyypp, H., Pyysalo, U., Friedlnder, H., a a Uuttera, J., Wagner, S., Inkinen, M., Wimmer, A., Kukko, A., Ahokas, E., and Karjalainen, M. (2001b). HIGH-SCAN: The rst European-wide attempt to derive single-tree information from laserscanner data. The Photogrammetric Journal of Finland, 17(2):5868. Kamagata, N., Akamatsu, Y., Mori, M., and Li, Y. (2005). Comparison of pixelbased and object-based classications of high resolution satellite data in urban fringe areas. In Proceedings of the 26th Asian Conference on Remote Sensing. Hanoi, Vietnam, pages 711, Hanoi, Vietnam. Kanda, F., Kubo, M., and Muramoto, K. (2004). Watershed segmentation and classication of tree species using high resolution forest imagery. In Geoscience and Remote Sensing Symposium 2004 (IGARSS 04) Proceedings, volume 6, pages 25, Anchorage, Alaska. IEEE International. Katoh, M. (2004). Classifying tree species in a northern mixed forest using highresolution IKONOS data. Journal of Forest Research, 9(1):714. Ke, Y. and Quackenbush, L. J. (2007). Forest species classication and tree crown delineation using Quickbird imagery. In ASPRS 2007 Annual Conference Proceedings, Tampa, FL, USA. Ke, Y. and Quackenbush, L. J. (2008). Comparison of individual tree crown detection and delineation methods. In ASPRS 2008 Annual Conference Proceedings, page 11, Portland, OR. Ke, Y., Quackenbush, L. J., and Im, J. (2010). Synergistic use of QuickBird multispectral imagery and Lidar data for object-based forest species classication. Remote Sensing of Environment, 114(6):11411154.

122

Key, T. L. (1998). An evaluation of the relative value of spectral and phenological information for tree crown classication of digital images in the eastern deciduous forest. Masters thesis, West Virginia University, Morgantown, WV, USA. Key, T. L., Warner, T. A., McGraw, J. B., and Fajvan, M. A. (2001). A comparison of multispectral and multitemporal information in high spatial resolution imagery for classication of individual tree species in a temperate hardwood forest. Remote Sensing of Environment, 75(1):100112. Kim, C. and Hong, S.-H. (2008). Identication of tree species from high-resolution satellite imagery by using crown parameters. In Proceedings of SPIE - Remote Sensing for Agriculture, Ecosystems, and Hydrology X, volume 7104, pages 71040N1 71040N8, Cardi, Wales, United Kingdom. International Society for Optical Engineering. Kim, S. (2007). Individual tree species identication using Lidar- derived crown structures and intensity data. Phd thesis, University of Washington, Seattle, WA, USA. Kim, S., McGaughey, R. J., Andersen, H.-E., and Schreuder, G. (2009). Tree species dierentiation using intensity data derived from leaf-on and leaf-o airborne laser scanner data. Remote Sensing of Environment, 113(8):15751586. Kleinn, C. (2002). New technologies and methodologies for national forest inventories. Unasylva, 53(210):1015. Koch, B., Heyder, U., and Weinacker, H. (2006). Detection of individual tree crowns in airborne Lidar data. Photogrammetric Engineering and Remote Sensing, 72(4):357. Koch, B., Svoboda, J., Adler, P., and Dees, M. (2002). Automatische Baumartenerkennung auf der Grundlage digitalisierter CIR-Luftbilder [Automatic species identication based on digitized CIR aerial images]. Allgemeine Forst und Jagdzeitung, 173(7/8):131140.

123

Korpela, I., Dahlin, B., Schfer, H., Bruun, E., Haapaniemi, F., Honkasalo, J., Ila vesniemi, S., Kuutti, V., Linkosalmi, M., Mustonen, J., Salo, M., Suomi, O., and Virtanen, H. (2007). Single-tree forest inventory using Lidar and aerial images for 3D treetop positioning, species recognition, height and crown width estimation. International Archives of the Photogrammetry, Remote Sensing and Spatial Information Sciences, 36:227233. Korpela, I., rka, H. O., Hyypp, J., Heikkinen, V., and Tokola, T. (2010a). Range a and AGC normalization in airborne discrete-return Lidar intensity data for forest canopies. ISPRS Journal of Photogrammetry and Remote Sensing, 65(4):369379. Korpela, I., rka, H. O., Maltamo, M., Tokola, T., and Hyypp, J. (2010b). Tree a species classication using airborne Lidar - eects of stand and tree parameters, downsizing of training set, intensity normalization, and sensor type. Silva Fennica, 44(2):319339. Koukoulas, S. and Blackburn, G. A. (2001). Introducing new indices for accuracy evaluation of classied images representing semi-natural woodland environments. Photogrammetric Engineering and Remote Sensing, 67(4):499510. Koukoulas, S. and Blackburn, G. A. (2005). Mapping individual tree location, height and species in broadleaved deciduous forest using airborne Lidar and multi-spectral remotely sensed data. International Journal of Remote Sensing, 26(3):431455. Krahwinkler, P. and Rossmann, J. (2010). Tree Species Classication Based on the Analysis of Hyperspectral Remote Sensing Data. In Reuter, R., editor, 30th EARSeL Symposium: Remote Sensing for Science, Education, and Natural and Cultural Heritage, pages 321328, Paris, France. EARSel. Kwak, D.-A., Lee, W.-K., Lee, J.-H., Biging, G. S., and Gong, P. (2007). Detection

124

of individual trees and estimation of tree height using Lidar data. Journal of Forest Research, 12(6):425434. Leckie, D. G., Gougeon, F. A., Tinis, S., Nelson, T., Burnett, C. N., and Paradine, D. (2005). Automated tree recognition in old growth conifer stands with high resolution digital imagery. Remote Sensing of Environment, 94(3):311326. Leckie, D. G., Gougeon, F. A., Walsworth, N., and Paradine, D. (2003). Stand delineation and composition estimation using semi-automated individual tree crown analysis. Remote Sensing of Environment, 85(3):355369. Li, J., Hu, B., Sohn, G., and Jing, L. (2010). Combination of airborne Lidar and multispectral data for individual tree species classication in natural boreal forests. In Silvilaser 2010 Proceedings, page 8, Freiburg, Germany. Liang, X., Hyypp, J., and Matikainen, L. (2007). Deciduous-coniferous tree classia cation using dierence between rst and last pulse laser signatures. International Archives of the Photogrammetry, Remote Sensing and Spatial Information Sciences, 36:253257. Liddell, F. D. K. (1983). Simplied exact analysis of case-referent studies: matched pairs; dichotomous exposure. 37(1):8284. Lim, K., Treitz, P., Wulder, M. A., St-Onge, B., and Flood, M. (2003). Lidar remote sensing of forest structure. Progress in Physical Geography, 27(1):88106. Litkey, P., Rnnholm, P., Lumme, J., and Liang, X. (2007). Waveform features for o tree identication. In Proceedings of the ISPRS Workshop: Laser Scanning 2007 and SilviLaser 2007, pages 258263. Liu, X., Zhang, Z., Peterson, J., and Chandra, S. (2007). The eect of Lidar data density on DEM Accuracy. In Proceedings of the MODSIM07 International Congress Journal of epidemiology and community health,

125

on Modelling and Simulation, pages 13631369. Modelling and Simulation Society of Australia and New Zealand Inc. Lucy, L. B. (1974). An iterative technique for the rectication of observed distributions. The Astronomical Journal, 79(6):745754. Magnusson, M. (2006). Evaluation of remote sensing techniques for estimation of forest variables at stand level. Phd thesis, Swedish University of Agricultural Sciences, Ume Sweden. a, Mallet, C. and Bretar, F. (2009). Full-waveform topographic Lidar: state-of-the-art. ISPRS Journal of Photogrammetry and Remote Sensing, 64(1):116. Marceau, D. J., Howarth, P. J., and Gratton, D. J. (1994). Remote sensing and the measurement of geographical entities in a forested environment. 1. The scale and spatial aggregation problem. Remote Sensing of Environment, 49(2):93104. Martin, M. E., Newman, S. D., Aber, J. D., and Congalton, R. G. (1998). Determining forest species composition using high spectral resolution remote sensing data. Remote Sensing of Environment, 65(3):249254. Meyer, P., Staenz, K., and Itten, K. I. (1996). Semi-automated procedures for tree species identication in high spatial resolution data from digitized colour infrared-aerial photography. ISPRS Journal of Photogrammetry and Remote Sensing, 51(1):516. Mickelson, J., Civco, D., and Silander, J. (1998). Delineating forest canopy species in the northeastern United States using multi-temporal TM imagery. Photogrammetric Engineering and Remote Sensing, 64(9):891904. Moet, T., Mengersen, K., Witte, C., King, R., and Denham, R. (2005). Airborne laser scanning: exploratory data analysis indicates potential variables for classi-

126

cation of individual trees or forest stands according to species. ISPRS Journal of Photogrammetry and Remote Sensing, 59(5):289309. Mora, B., Wulder, M. A., and White, J. C. (2010). Identifying leading species using tree crown metrics derived from very high spatial resolution imagery in a boreal forest environment. Canadian Journal of Remote Sensing, 36(4):332344. Morsdorf, F., Meier, E., Allgwer, B., and N esch, D. (2003). Clustering in airborne o u laser scanning raw data for segmentation of single trees. International Archives of the Photogrammetry, Remote Sensing and Spatial Information Sciences, 34(3):27 33. Mumby, P. J., Green, E. P., Edwards, A. J., and Clark, C. D. (1999). The costeectiveness of remote sensing for tropical coastal resources assessment and management. Journal of Environmental Management, 55(3):157166. Nsset, E., Gobakken, T., Holmgren, J., Hyypp, H., Hyypp, J., Maltamo, M., a a Nilsson, M., Olsson, H., Persson, ., and Sderman, U. (2004). Laser scanning of A o forest resources: the Nordic experience. Scandinavian Journal of Forest Research, 19(6):482499. Nordin, L. (2006). Analysis of waveform data from airborne laser scanner systems. Masters thesis, Lule University of Technology, Lule Sweden. a a, Olofsson, K., Wallerman, J., Holmgren, J., and Olsson, H. (2006). Tree species discrimination using Z/I DMC imagery and template matching of single trees. Scandinavian Journal of Forest Research, 21(Suppl 7):106110. rka, H. O., Nsset, E., and Bollands O. M. (2007). Utilizing airborne laser intenas, sity for tree species classication. International Archives of the Photogrammetry, Remote Sensing and Spatial Information Sciences, 36:300304.

127

rka, H. O., Nsset, E., and Bollands O. M. (2009). Classifying species of indias, vidual trees by intensity and structure features derived from airborne laser scanner data. Remote Sensing of Environment, 113(6):11631174. Packaln, P. (2009). Using airborne laser scanning data and digital aerial photographs e to estimate growing stock by tree species. Phd thesis, University of Joensuu, Finland, Joensuu, Finland. Parrish, C. E. and Nowak, R. D. (2009). Improved approach to Lidar airport obstruction surveying using full-waveform data. Journal of Surveying Engineering, 135(2):7282. Persson, . and Holmgren, J. (2002). Detecting and measuring individual trees usA ing an airborne laser scanner. Photogrammetric Engineering and Remote Sensing, 68(9):925932. Persson, ., Sderman, U., Tpel, J., and Ahlberg, S. (2005). Visualization and A o o analysis of full-waveform airborne laser scanner data. International Archives of the Photogrammetry, Remote Sensing and Spatial Information Sciences, 36(3):103108. Pinz, A., Zaremba, M. B., Bischof, H., Gougeon, F. A., and Locas, M. (1993). Neuromorphic methods for recognition of compact image objects. Machine Graphics and Vision, 2(3):209229. Pitknen, J., Maltamo, M., Hyypp, J., and Yu, X. (2004). Adaptive methods for a a individual tree detection on airborne laser based canopy height model. International Archives of the Photogrammetry, Remote Sensing and Spatial Information Sciences, XXXVI(8/W2):187191. Pollock, R. J. (1996). The automatic recognition of individual trees in aerial images of forests based on a synthetic tree crown image model. Phd thesis, University of British Columbia, Vancouver, BC, Canada.

128

Popescu, S. C., Wynne, R. H., and Nelson, R. F. (2002). Estimating plot-level tree heights with Lidar: local ltering with a canopy-height based variable window size. Computers and Electronics in Agriculture, 37(1-3):7195. Pu, R. (2010). Mapping urban forest tree species using IKONOS imagery: preliminary results. Environmental Monitoring and Assessment, 172:199214. Puttonen, E., Litkey, P., and Hyypp, J. (2009). Individual tree species classication a by illuminated-shaded area separation. Remote Sensing, 2(1):1935. R Development Core Team (2009). R: A Language and Environment for Statistical Computing. R Foundation for Statistical Computing, Vienna, Austria. Reitberger, J., Heurichb, M., Krzystek, P., and Stilla, U. (2007). Single tree detection in forest areas with high-density Lidar data. International Archives of the Photogrammetry, Remote Sensing and Spatial Information Sciences, 36(3/W49B):139 144. Reitberger, J., Krzystek, P., and Stilla, U. (2006). Analysis of full waveform Lidar data for tree species classication. International Archives of the Photogrammetry, Remote Sensing and Spatial Information Sciences, 36(Part 3):228233. Reitberger, J., Krzystek, P., and Stilla, U. (2008). Analysis of full waveform Lidar data for the classication of deciduous and coniferous trees. International Journal of Remote Sensing, 29(5):14071431. Reitberger, J., Schnrr, C., Krzystek, P., and Stilla, U. (2009). 3D segmentation of o single trees exploiting full waveform Lidar data. ISPRS Journal of Photogrammetry and Remote Sensing, 64(6):561574. Roller, N. (2000). Intermediate multispectral satellite sensors. Journal of Forestry, 98(6):3235.

129

Roy, P. S., Ranganath, B. K., Diwakar, P. G., Vohra, T. P. S., Bhan, S. K., Singh, I. J., and Pandian, V. C. (1991). Tropical forest type mapping and monitoring using remote sensing. International Journal of Remote Sensing, 12(11):22052225. Sader, S. A., Waide, R. B., Lawrence, W. T., and Joyce, A. T. (1989). Tropical forest biomass and successional age class relationships to a vegetation index derived from Landsat TM data. Remote Sensing of Environment, 28(1):143156. Synjoki, R., Packaln, P., Maltamo, M., Vehmas, M., and Eerikinen, K. (2008). a a e a Detection of aspens using high resolution aerial laser scanning data and digital aerial images. Sensors, 8(8):50375054. Schreier, H., Lougheed, J., Tucker, C., and Leckie, D. G. (1985). Automated measurements of terrain reection and height variations using an airborne infrared laser system. International Journal of Remote Sensing, 6(1):101113. Singleton, R. C. (1969). An algorithm for computing the mixed radix fast Fourier transform. IEEE Transactions on Audio and Electroacoustics, 17(2):93103. Solberg, S., Nsset, E., and Bollands O. M. (2006). Single tree segmentation as, using airborne laser scanner data in a structurally heterogeneous spruce forest. Photogrammetric Engineering and Remote Sensing, 72(12):13691378. Suratno, A., Seielstad, C., and Queen, L. (2009). Tree species identication in mixed coniferous forest using airborne laser scanning. ISPRS Journal of Photogrammetry and Remote Sensing, 64(6):683693. Thomasson, J. A., Bennett, C. W., Jackson, B. D., and Mailander, M. P. (1994). Differentiating bottomland tree species with multispectral videography. Photogrammetric Engineering and Remote Sensing, 60(1):5559. Tomppo, E. and Czaplewski, R. L. (2002). Potential for a remote-sensing-aided forest resource survey for the whole globe. Unasylva, 53(210):1618.

130

Treitz, P. and Howarth, P. J. (2000). High spatial resolution remote sensing data for forest ecosystem classication:: an examination of spatial scale. Remote Sensing of Environment, 72(3):268289. Van Aardt, J. A. N. (2000). Spectral separability among six southern tree species. Masters thesis, Virginia Polytechnic Institute and State University, Blacksburg, VA, USA. Vaughn, N. R. and Moskal, L. M. (2010). Fourier transform of waveform Lidar for species recognition - data requirements. In Silvilaser 2010 Proceedings, page 22, Freiburg, Germany. Vaughn, N. R., Moskal, L. M., and Turnblom, E. C. (2010). Fourier transformation of waveform Lidar for species recognition. Remote Sensing Letters, 2(4):347356. Vauhkonen, J., Tokola, T., Packaln, P., and Maltamo, M. (2009). Identication of e Scandinavian commercial species of individual trees from airborne laser scanning data using alpha shape metrics. Forest Science, 55:3747. Venables, W. N. and Ripley, B. D. (2002). Modern applied statistics with S. Springer Verlag. Voss, M. and Sugumaran, R. (2008). Seasonal eect on tree species classication in an urban environment using hyperspectral data, Lidar, and an object-oriented approach. Sensors, 8(5):30203036. Wagner, W., Hollaus, M., Briese, C., and Ducic, V. (2008). 3D vegetation mapping using small-footprint full-waveform airborne laser scanners. International Journal of Remote Sensing, 29(5):14331452. Wagner, W., Ullrich, A., Ducic, V., Melzer, T., and Studnicka, N. (2006). Gaussian decomposition and calibration of a novel small-footprint full-waveform digitising

131

airborne laser scanner. ISPRS Journal of Photogrammetry and Remote Sensing, 60(2):100112. Wagner, W., Ullrich, A., Melzer, T., Briese, C., and Kraus, K. (2004). From singlepulse to full-waveform airborne laser scanners: potential and practical challenge. International Archives of Photogrammetry and Remote Sensing, 35:201206. Walsh, S. J. (1980). Coniferous tree species mapping using LANDSAT data. Remote Sensing of Environment, 9(1):1126. Wang, L. (2003). Object-based methods for individual tree identication and tree species classication from high-spatial resolution imagery. Phd thesis, University of California, Berkeley, Berkeley, CA, USA. Wolter, P. T., Mladeno, D. J., Host, G. E., and Crow, T. R. (1995). Improved forest classication in the Northern Lake States using multi-temporal Landsat imagery. Photogrammetric Engineering and Remote Sensing, 61(9):11291144. Woodcock, C. E. and Strahler, A. H. (1987). The factor of scale in remote sensing. Remote Sensing of Environment, 21(3):311332. Wulder, M. A., Hall, R. J., Coops, N. C., and Franklin, S. E. (2004). High spatial resolution remotely sensed data for ecosystem characterization. BioScience, 54(6):511. Xiao, X., Boles, S., Liu, J., Zhuang, D., and Liu, M. (2002). Characterization of forest types in Northeastern China, using multi-temporal SPOT-4 VEGETATION sensor data. Remote Sensing of Environment, 82(2-3):335348. Zhang, W., Hu, B., Jing, L., Woods, M. E., and Courville, P. (2009). Automatic forest species classication using combined Lidar data and optical imagery. In Geoscience and Remote Sensing Symposium 2008 (IGARSS 08) Proceedings, volume 3, pages 134137. IEEE International.

132

Appendix A VOXEL-BASED CLUSTERING SEGMENTATION


A.1 File constants.py

Miscellaneous constants used in the clustering algorithm:


#Maximum nuber of rows/columns and layers MAXRC = 4096 MAXLAY = 256 NA_VAL = -999 #Smallest mass that a neighbor must have to incorporate new voxel MIN_MASS = 1.0 #Radius of neighbor search window NEIGHBORHOOD = 8 #Radius of area around current voxel for mass calculation MASS_WINDOW = 3 #Minimum number of cells a clusters direction must cross to combine CROSS_CELLS = 4 #Minimum percent of r,c that a cluster cube must overlap to combine OVERLAP = 60 #Minimum height above ground for ipointat member function CROSS_HEIGHT = 2.0 #Minimum radius of mass search window around each cluster centroid MIN_RADIUS = 2.0 #Minimum number of cluster member cells to avoid deletion MIN_CLUST_SIZE = 50 #Minimum height in map units of cluster to avoid deletion MIN_HEIGHT = 5 #Minimum ratio of cluster height to width to avoid deletion MIN_RATIO = 0.8 # At least as tall as 80% of width #A (width) and BO (x0) for logistic modifier function FH MASS_WT_WIDTH = 4.6 #Makes logistic slope ~ 2.0 MASS_WT_X0 = 7.0 #A and BL, FLmax and FLmin for mass radius modifier FL RAD_MULT_WIDTH = MASS_WT_WIDTH RAD_MULT_X0 = 3.0 RAD_MULT_MAX = 1.5 RAD_MULT_MIN = 1.0 #Constants SQRT_PI = 1.7724538509055159 AW = 9.1902397002691796 # ln(99) - ln(1/99) = 2ln(99)

133

A.2

File cellfunctions.py

Miscellaneous functions:
import numpy as P from constants import * #Functions to convert L, R, C values to a single index, and back again def cellindex(L,R,C): #return (L * MAXRC + R)*MAXRC + C return (R * MAXRC + C) * MAXLAY + L def lrcfromindex(index): #(L,RC) = divmod(index,MAXRC*MAXRC) #(R,C) = divmod(RC,MAXRC) (R,CL) = divmod(index,MAXRC*MAXLAY) (C,L) = divmod(CL,MAXLAY) return (L,R,C) def get_neighbors(r,c,radius,grid): Find clusters that have cells within radius of r, c (rows, cols) = grid.shape rrange = [max(r-radius,0),min(r+radius+1,rows-1)] crange = [max(c-radius,0),min(c+radius+1,cols-1)] nc = list(P.unique(grid[rrange[0]:rrange[1],crange[0]:crange[1]])) try: nc.remove(NA_VAL) except: pass return nc def ptdist(pt1, pt2, res): distance between two numpy arrays return P.linalg.norm((pt1-pt2)*res) def cubeoverlap(cube1,cube2,inclayer=True): counts the number of cells in common with two cubes #rows rows = set(range(cube1[0][1],cube1[1][1]+1)).intersection( set(range(cube2[0][1],cube2[1][1]+1))) #cols cols = set(range(cube1[0][2],cube1[1][2]+1)).intersection( set(range(cube2[0][2],cube2[1][2]+1))) if inclayer: lays = set(range(cube1[0][0],cube1[1][0]+1)).intersection( set(range(cube2[0][0],cube2[1][0]+1))) return len(rows)*len(cols)*(len(lays) if inclayer else 1) def Area(rad,dis): Area of one side of lens shape of overlap (both sides not equal unless radii are equal) rad**2 * P.arccos(dis/rad) - dis*P.sqrt(rad**2-dis**2) def circleoverlap(r1,r2,dist):

134

Gives the area of overlap between two circles. argument as an array R = float(max(r1,r2)) r = float(min(r1,r2)) dist = abs(float(dist)) if dist >= R+r: return 0 if dist <= R-r: return P.pi * r**2 d1 = (dist**2 - r**2 + R**2) / (2.0*dist) d2 = (dist**2 + r**2 - R**2) / (2.0*dist) return Area(R,d1) + Area(r,d2)

Processes each

def logistic(x,width=1.0,x0=0.0): A logistic attenuation function used in several places in the clustering algorithm return 1.0/(1.0 + P.exp(AW/width*(x-x0)))

135

A.3

File cellcluster.py

A python class to hold voxel-members and compute various attributes of those voxelmembers. This class inherits from the set class:
import numpy as P from constants import * from cellfunctions import * ###################################################################### class cluster(set): Contains the voxels associated with the cluster ID in a binary tree structure, and contains methods to work with these voxels def __init__(self, L, R, C, id): ind = cellindex(L, R, C) if ind >= 0 and ind <= MAXLAY*MAXRC*MAXRC: set.__init__(self) #self.cells = B.btree(ind) self.top = P.array([L, R, C]) #self.count = 1 self.id = id self.big = P.array([L,R,C]) self.small = P.array([L,R,C]) self.mycentroid = None self.addcell(L, R, C) self.neighbors = set() self.vertborder = 0 #1 if west border, 2 if east border self.horizborder = 0 #1 if south border, 2 if north border self.deleted = 0 self.combined = False self.combinedintome = 0 self.imergedinto = -1 return else: return None def _setbig(self, L, R, C): Set the big corner if L > self.big[0]: self.big[0] = L if R > self.big[1]: self.big[1] = R if C > self.big[2]: self.big[2] = C return def _setsmall(self, L, R, C): Set the small corner if L < self.small[0]: self.small[0] = L if R < self.small[1]: self.small[1] = R if C < self.small[2]: self.small[2] = C return def _updatecent(self, L, R, C): tmparray = P.array([float(L),float(R),float(C)]) if self.mycentroid is None: self.mycentroid = tmparray else: self.mycentroid = \

136

(self.mycentroid*(len(self)-1) + tmparray) / len(self) def setvborder(self, west = True): self.vertborder = 1 if west else 2 def sethborder(self, south = True): self.horizborder = 1 if south else 2 def addcell(self, L, R, C): Add a new cell to the cluster ind = cellindex(L, R, C) self.add(ind) self._setbig(L, R, C) self._setsmall(L, R, C) self._updatecent(L, R, C) return def addneighbors(self, ids): if self.id in ids: return None try: self.neighbors = self.neighbors.union(ids) return ids except: return None def removeneighbors(self, ids): try: self.neighbors = self.neighbors - ids return ids except: return None def contains(self, L, R, C): True/False: does cluster contain cell return cellindex(L, R, C) in self def cube(self): Return two (L,R,C) points defining the cube enclosing the cluster return (self.small, self.big) def flatten(self): Return an array of 0s and 1s indicating if row and column are occupied in any layer by a cell in cluster dims = self.dims() rows = dims[1] cols = dims[2] tmparray = P.zeros((rows,cols),int) for item in self: (l, r, c) = lrcfromindex(item) tmparray[self.big[1]-r,c-self.small[2]] = 1 return tmparray def ratio(self,res): Computes the ratio of height to average of radius dims = self.dims() * res return dims[0] / P.dot(dims,P.array((0,0.5,0.5))) def combine(self, othercluster): Will take all cells from another cluster and place it into this one oldcount = len(self) for item in othercluster: (l, r, c) = lrcfromindex(item)

137

def

def

def def def def

self.addcell(l, r, c) self.addneighbors(othercluster.neighbors) self.combinedintome += 1 + othercluster.combinedintome return len(self) - oldcount myradius(self, res, minmult, maxmult, slope, x0): Return the radius at which cells can be added as the radius of a circle with the same area as my average number of cells per layer, times a multiplier. The multiplier decreases from maxmult depending on the number of layers {x} in me so far with form: mult = 1/(1+exp(slope*(heightrange-x0))) The minimum multiplier is minmult dims = self.dims() area = float(res[1]*res[2]*len(self))/float(dims[0]) mult = (maxmult-minmult)*logistic(dims[0]*res[0],slope,x0) + minmult return max(P.sqrt(area)/SQRT_PI,MIN_RADIUS) * mult mass(self, L, R, C, masswindow, res, rmwidth, rmx0, rmmin, rmmax,#For radius width, x0):#For mass Computes the overlap area between my radius and a masswindow around cell L, R, C. A weight is created that goes from 1 to 0 as distance from my centroid increases, with form: wt = 1/(1+exp(AW/width*(x-x0))) These weights times the overlap are summed for each layer in my cube #Get my representative radius rad = self.myradius(res, rmmin, rmmax, rmwidth, rmx0) #Get cell horizontal distance from my centroid distxy = ptdist(P.array((R, C)), self.mycentroid[1:], res[1:]) #How much do the two circles overlap at this distance lap = circleoverlap(rad, masswindow, distxy) #Get an array of layer distances from my centroid lrange = range(self.small[0],self.big[0]+1) vecdl = P.abs(P.array(lrange) - L) #Array of weights vechwt = logistic(vecdl,width,x0) dwt = logistic(distxy,width,x0) return P.sum(lap*vechwt)*dwt centroid(self): return self.mycentroid direction(self): Computes the vector of top - centroid return P.array(self.mycentroid - self.top) dims(self): Gets and array of cube dimensions, (L, R, C) return self.big - self.small + 1 pointatcells(self,buff = 0): Count the number of grid cells that are intersected by my direction vector (+/- optional buffer) dirvec = self.direction() #Check for values that would mess us up if dirvec[0] == 0: return set()

138

indexset = set() #Get multiplier for direction vector to move one layer ratio = abs(1/dirvec[0]) r = int(self.mycentroid[1]) c = int(self.mycentroid[2]) l = int(self.mycentroid[0])-1 checklayers = range(1,int(self.mycentroid[0])+1) for lay in checklayers: pt = self.mycentroid + dirvec*lay*ratio if pt[1] < 0 or pt[1] > MAXRC or pt[2] < 0 or \ pt[2] > MAXRC: break tmpr = int(pt[1]) tmpc = int(pt[2]) rr = range(max(min(r-buff,tmpr-buff),0), min(max(r+buff,tmpr+buff),MAXRC-1)+1) cc = range(max(min(c-buff,tmpc-buff),0), min(max(c+buff,tmpc+buff),MAXRC-1)+1) for R in rr: for C in cc: indexset.add(cellindex(l,R,C)) r = tmpr c = tmpc l -= 1 return indexset def countmatches(self,indices): Count how many records in indices match records in myself #count = 0 #for index in indices: # if index in self: count += 1 #return count return len(self.intersection(indices))

139

A.4

File crownseg.py

Python script to do 3-d voxel-based clustering using the cluster class described above, functions in uppercase are pseudofunctions that need to be written for the voxel data structure in use:
import os import sys import argparse as A import numpy as P from constants import * from cellfunctions import * from cellcluster import cluster parser = A.ArgumentParser(prog=crownseg2, description=(Reads a voxel file computing object clusters.)) parser.add_argument(-i, --input, action="store", dest="voxelfilename", help="file to use as voxel input") parser.add_argument(-f, --memberfile, action="store", dest="membname", default=None, help=Optional csv file to store cluster \ memberships) parser.add_argument(-D, --nodelete, action=store_false, dest=dodelete, help=Delete invalid clusters before writing) parser.add_argument(-C, --nocombine, action=store_false, dest=docombine, help=Combine clusters before writing) parser.add_argument(-b, --bottom, action=store, dest=bottomlayer, type=int, help=Layer at which to stop algorithm) parser.add_argument(-t, --top, action=store, dest=toplayer, type=int, default=None, help=Layer to start algorithm) parser.add_argument(--minrow, action=store, dest=minrow, type=int, default=None, help=Row to begin area of interest)

140

parser.add_argument(--maxrow, action=store, dest=maxrow, type=int, default=None, help=Row to end area of interest) parser.add_argument(--mincol, action=store, dest=mincol, type=int, default=None, help=Col to begin area of interest) parser.add_argument(--maxcol, action=store, dest=maxcol, type=int, default=None, help=Col to end area of interest) args = parser.parse_args() #Read some information from the voxel file voxelfile = OPENVOXELFILE(args.voxelfilename) #Header of voxel file should contain #MinX - lower left easting #MinY - lower left northing #MinZ - elevation of bottom of voxel structure #CellWidthX - width of columns #CellWidthY - height of rows #LayerHeight - height of layers #NumRows - number of rows #NumCols - number of columns #numLayers - number of layers voxelheader = GETVOXELHEADER() #Ensure that rows/columns/layers are valid if voxelheader.NumRows > MAXRC: print Too many rows:,voxelheader.NumRows sys.exit(3) if voxelheader.NumCols > MAXRC: print Too many columns:,voxelheader.NumCols sys.exit(3) if voxelheader.NumLayers > MAXLAY: print Too many layers:,voxelheader.NumLayers sys.exit(3) #If we only want to work with a region of voxel structure (specified #in arguments mincol, minrow, etc.), calculate these boundaries #Column if args.mincol is None: startcol = 0 MinX = voxelheader.MinX else: startcol = args.mincol MinX = voxelheader.MinX + startcol*voxelheader.CellWidthX

141

if args.maxcol is None: stopcol = voxelheader.NumCols - 1 else: stopcol = args.maxcol numcols = stopcol - startcol + 1 #Row if args.minrow is None: startrow = 0 MinY = voxelheader.MinY else: startrow = args.minrow MinY = voxelheader.MinY + startrow*voxelheader.CellWidthY if args.maxrow is None: stoprow = voxelheader.NumRows - 1 else: stoprow = args.maxrow numrows = stoprow - startrow + 1 #Layer if args.bottomlayer is None: stoplayer = 0 MinZ = voxelheader.MinZ else: stoplayer = args.bottomlayer MinZ = voxelheader.MinZ + stoplayer*voxelheader.LayerHeight if args.toplayer is None: startlayer = voxelheader.NumLayers - 1 else: startlayer = args.toplayer numlayers = startlayer - stoplayer - 1 #Set up grid to hold cluster membership try: clustergrid = P.ones([numrows,numcols],P.int32) * NA_VAL except Exception as exc: print Could not create clustergrid. Exception:\n,exc sys.exit(4) try: abovegrid = P.ones([numrows,numcols],P.int32) * NA_VAL except Exception as exc: print Could not create abovegrid. Exception:\n,exc sys.exit(4) #Number of voxel cells per layer CELLS_PER_LAYER = voxelheader.NumRows*voxelheader.NumCols ###################################################################### #BUILDING ###################################################################### #Create the list of clusters the_clusters = [] num_cluster_ids = 0 num_clusters = 0

142

resarray = P.array((voxelheader.LayerHeight,voxelheader.CellWidthY, voxelheader.CellWidthX)) #OKAY, now we go through layer by layer (from top) reading #the locsection for l in range(startlayer,stoplayer-1,-1): #Each layer holds CELLS_PER_LAYER cells with a list of points per #row/column combination (cell) curlayer = READVOXELLAYER(voxelfile,l) ##Go through rows and cols updating clusters for r in range(startrow,stoprow+1): for c in range(startcol,stopcol+1): gridr = r - startrow gridc = c - startcol #Check if cell has points if curlayer[r*voxelheader.NumCols + c].NumPoints > 0: #If a cluster has already claimed (R,C), #add this cell to that cluster if clustergrid[gridr,gridc] != NA_VAL: the_clusters[ \ clustergrid[gridr,gridc] \ ].addcell(l,r,c) else: #Check if any neighboring cluster might claim this #cell, by local dominance neighbor_clusters = \ get_neighbors(gridr,gridc,NEIGHBORHOOD, abovegrid) maxmass = 0.0 max_neighbor = None #Get the mass of each neighbor over point for neighbor in neighbor_clusters: tmpmass = the_clusters[neighbor].mass( l, r, c, MASS_WINDOW, resarray, RAD_MULT_WIDTH, RAD_MULT_X0, RAD_MULT_MIN, RAD_MULT_MAX, MASS_WT_WIDTH, MASS_WT_X0) if tmpmass > maxmass: maxmass = tmpmass max_neighbor = neighbor #Check if maxmass > MIN_MASS if maxmass > MIN_MASS: the_clusters[max_neighbor].addcell(l,r,c) clustergrid[gridr,gridc] = max_neighbor abovegrid[gridr,gridc] = max_neighbor else: #Create a new cluster clustergrid[gridr,gridc] = num_cluster_ids abovegrid[gridr,gridc] = num_cluster_ids the_clusters.append( \ cluster(l,r,c,num_cluster_ids)) #Add neighbors and add as neighbor the_clusters[num_cluster_ids].addneighbors( \ neighbor_clusters)

143

tmpset = [num_cluster_ids] for neighbor in neighbor_clusters: the_clusters[neighbor].addneighbors( \ tmpset) num_cluster_ids += 1 else: clustergrid[gridr,gridc] = NA_VAL print Done with layer,l,clusters:,num_cluster_ids #massfile.close() num_clusters = num_cluster_ids num_deleted = 0 num_combined = 0 if num_clusters > 0: if args.docombine or args.dodelete: print There are,num_clusters,clusters, \ doing some combining/trimming else: print There are no clusters, stopping sys.exit(0) ###################################################################### #TRIMMING ###################################################################### #Go through clusters to see if they can be combined/removed #combine if it points to (direction vector aims at) a neighbor, #and neighbor has mass below old_num_combined = -1 if args.docombine: while num_combined != old_num_combined: print Starting combination pass, combined so far:, \ num_combined old_num_combined = num_combined for cluster in the_clusters: if cluster.deleted > 0 or cluster.combined: continue #Look at direction vector cube = cluster.cube() cent = cluster.centroid() direc = cluster.direction() #Dlayers, Drows, Dcolumns #If my radius is greater than 7m, dont bother if cluster.myradius(resarray, \ RAD_MULT_WIDTH, RAD_MULT_X0, RAD_MULT_MIN, RAD_MULT_MAX) > 7.0: continue #if cluster direction is near vertical (<~20deg), and #top-cent is > than 5m, and bottom is below height #cutoff, then leave it alone if cluster.small[0] < CROSS_HEIGHT and \ cluster.top[0] - cent[0] > 5.0 and \ direc[0] > 0.94 * P.sqrt(P.linalg.norm(direc)): continue #Look at each neighbor and if it has more total cells, #join it for neighbor in cluster.neighbors:

144

n = the_clusters[neighbor] #Make sure neighbor exists #if n is None: if n.deleted > 0 or n.combined: continue #Make sure neighbor is bigger if len(n) < len(cluster): continue #Make sure neighbor engulfs us overlap = float(cubeoverlap(n.cube(),cube,False)) reqoverlap = OVERLAP/100.0 * float((cube[1][1]-cube[0][1]+1)* (cube[1][2]-cube[0][2]+1)) if overlap < reqoverlap: continue #Make sure we point at neighbor (if we have enough #layers to get accurate pointer if cluster.big[0] - cluster.small[0] > 3 and \ len(cluster) >=MIN_CLUST_SIZE: matches = n.countmatches(cluster.pointatcells(buff = 2)) if matches < CROSS_CELLS: continue #Okay, we can join with neighbor num_added = n.combine(cluster) cluster.imergedinto = n.id cluster.combined = True cluster.deleted = 100 num_combined += 1 num_clusters -= 1 #Update clusters that had me as a neighbor to have #new neighbor n. My own neighbors are added to n with #call to n.combine() for neighbor in cluster.neighbors: nn = the_clusters[neighbor] if nn.deleted > 0 or nn.combined: continue #Take my name off list, if it is there nn.removeneighbors([cluster.id]) nn.addneighbors([n.id]) #Stop looking for more neighbors to combine with break #if it does not combine, remove clusters that are too small or too #flat if args.dodelete: for cluster in the_clusters: if not cluster.combined: #See if we meet min cell count if len(cluster) < MIN_CLUST_SIZE: cluster.deleted = 1 num_deleted += 1 num_clusters -= 1 #See if cluster is too wide for how tall it is #Wide = average of colspan and rowspan, Tall = layerspan

145

elif cluster.ratio(resarray) < MIN_RATIO: cluster.deleted = 2 num_deleted += 1 num_clusters -= 1 elif (cluster.big[0]+1)*voxelheader.LayerHeight < \ MIN_HEIGHT: cluster.deleted = 3 num_deleted += 1 num_clusters -= 1 #Do the dirty work of removing a cluster if needed if cluster.deleted: for neighbor in cluster.neighbors: n = the_clusters[neighbor] if n.deleted > 0 or n.combined: continue if cluster.id in n.neighbors: n.removeneighbors([cluster.id]) if args.docombine or args.dodelete: print num_deleted,clusters were deleted and,num_combined, \ were combined, leaving,num_clusters if num_clusters < 1: print There are no remaining clusters, stopping sys.exit(0) #Write the cluster memberships to file WRITETOMEMBERFILE(args.memberfile) #Finally exit sys.exit(0)

146

Appendix B MISCELLANEOUS COMPUTER CODE


B.1 File richlucy.c

Algorithm 1: Richardson-lucy deconvolution written in C.


#include <stdlib.h> #include "richlucy.h" /*Quick #define #define #define functions*/ IMAX(a,b) (a) > (b) ? (a) : (b) IMIN(a,b) (a) < (b) ? (a) : (b) SQR(a) (a) == 0 || (a) == 1 ? (a) : (a)*(a)

/********************************************************************/ /*function to compute the mean squared error between two vectors */ /*data and reference are vectors of length n */ /********************************************************************/ double meansqdist(double data[], double reference[], int n) { int i = 0; double sumdist = 0.0; for (i=0; i<n; i++) { sumdist += SQR(data[i]-reference[i]); } return(sumdist / (double) n); } /********************************************************************/ /*Performs Rich-Lucy deconvolution until a specified maximum change */ /* is found */ /*d is original data, nd length of d */ /*psf is point spread function, np length of psf */ /*maxiter is maximum number of iterations */ /*tol is maximum mean distance between two iterations */ /*out is final deconvolved data, iter is number of iterations used */ /********************************************************************/ void richlucy(const double d[], const int *nd, const double psf[], const int *np, const int *maxiter, const double *tol, double out[], int *iter) { int i = 0, j = 0; int midp = (*np+1)/2; int pstart = 0, dstart = 0, count = 0; int div0fault = 0; double *C = calloc(*nd, sizeof (double)); double *U = calloc(*nd, sizeof (double)); double *U2 = calloc(*nd, sizeof (double));

147

*iter = 0; /*Make sure we have requested space*/ if( C == NULL || U == NULL || U2 == NULL ) return; /*Copy data to U2*/ for (i=0; i<*nd; i++) U2[i] = d[i]; /*Check for convergence (mean square dist < tol) before each iter*/ while (meansqdist(U, U2, *nd) > *tol && *iter <= *maxiter && div0fault == 0) { /*Copy U2 to U*/ for (i=0; i<*nd; i++) U[i] = U2[i]; /*Compute Cs*/ for (i=1; i<=*nd; i++) { pstart = IMAX(midp-i+1,1); count = IMIN(*nd-i+midp,*np) - pstart + 1; dstart = IMAX(1,i-midp+1); C[i-1] = 0.0; for (j=0; j<count; j++) C[i-1] += psf[pstart-1+j]*U[dstart-1+j]; } /*Compute U2s*/ for (i=1; i<=*nd; i++) { pstart = IMAX(midp-i+1,1); count = IMIN(*nd-i+midp,*np) - pstart + 1; dstart = IMAX(1,i-midp+1); U2[i-1] = 0.0; for (j=0; j<count; j++) { /*emergency stop if we will be dividing by 0*/ if (C[dstart-1+j] == 0) { div0fault = 1; break; } U2[i-1] += psf[pstart-1+j]*d[dstart-1+j]/C[dstart-1+j]; } U2[i-1] *= U[i-1]; } *iter += 1; } /*Copy U2 to out*/ if (div0fault == 0) { for (i=0; i<*nd; i++) { out[i] = U2[i]; } } else { for (i=0; i<*nd; i++) { out[i] = -1; *iter = -1; } } free(C); free(U); free(U2); }

148

B.2

File getpeaks.c

Algorithm 2: A very simple peak detection algorithm that retains information about peak size and location. Peaks are discovered when there is an increase in intensity and then a decrease (0 counts as a decrease). With deconvolved data, this actually works fairly well. Peak size is recorded as peak intens, the maximum value observed and peak mass, the sum of all sample intensities within the range of the waveform considered the peak.
int getpeaks(const double intens[], int count, int peak_indices[], double peak_mass[], double peak_intens[]) { int num_peaks = 0; double cur_mass = 0.0; int big_index = 0.0; int index = 0; /*Must have at least 3 samples to find a peak*/ if (count < 3) return 0; /*Change in intensity*/ double diff = intens[1] - intens[0]; double deriv = diff*diff > 0.01 ? diff : 0.0, prevderiv = 0.0; int found_peak = 0; for (index=2; index<count; index ++) { /*change in intensity*/ diff = intens[index] - intens[index-1]; /*Keep old derivative as prevderiv*/ prevderiv = deriv; /*New deriv is diff unless it is close to 0, then set it to 0.0*/ deriv = diff*diff > 0.01 ? diff : 0.0; /*If intensity is != 0 and this is not a trough (neg. deriv then pos. deriv)*/ if (intens[index] > 0.1 && !(deriv > 0.1 && prevderiv < 0.1)) { /*If we found a "peak", note its height and location Peak is pos. deriv then neg. deriv*/ if (deriv < 0.1 && prevderiv > 0.1) { found_peak = 1; big_index = index; } /*Add intensity to peak mass*/ cur_mass += intens[index]; } else { /*If a peak just ended, record its dimensions and location*/ if( found_peak && cur_mass >= MIN_MASS ) { peak_indices[num_peaks] = big_index; peak_mass[num_peaks] = cur_mass;

149

peak_intens[num_peaks] = intens[big_index] > 1.0 ? intens[big_index] : 1.0; num_peaks++; } /*Reset*/ found_peak = 0; cur_mass = 0.0; big_index = 0; } } return num_peaks; }

150

B.3

File voxeltest.r

R language implementation of the procedure used to select only waveforms that hit the tree of interest rst.
##Function to determine if waveform crosses starts near and goes thru a ##cell in the given cluster. Assumes that scan angle is steep enough ##that either top of cell or bottom of cell will be hit pointsintree <- function(clayers,crows,ccolumns,x,y,z,vx,vy,vz) { if(length(x) != length(y) || length(y) != length(z)) { stop("x,y,z lengths do not match") } if(length(vx) != length(vy) || length(vy) != length(vz)) { stop("vx,vy,vz lengths do not match") } if(length(clayers) != length(crows) || length(crows) != length(ccolumns)) { stop("clayers,crows,ccolumns lengths do not match") } lw if if if } ##Recompute Z as a height above DEM ##getz pulls the DEM height of location x, y newz <- z - getz(x,y) newz[which(!is.finite(newz))] <- -10000 ##Get the uppermost layer of cells (set T) tops <- aggregate(clayers,list(Row=crows,Col=ccolumns),max) lt <- length(tops$x) ##distance of each start to center of each cluster cell ##in top layer dim: lp X lt ##getColX, getRowY and getLayZ return the map coordinates ##of the voxel center dist <- sqrt( outer(x,getColX(tops$Col),function(a,b) {(a-b)^2}) + outer(y,getRowY(tops$Row),function(a,b) {(a-b)^2}) + outer(newz,getLayZ(tops$x),function(a,b) {(a-b)^2}) ) ##Which waveforms are close to voxel in set T close <- which(dist < 3) rows2do <- row(dist)[close] cols2do <- col(dist)[close] ##Distance of each "close" ray start to bottom/top of <- length(cayers);lp <- length(x);lv <- length(vx) (lw == 0) stop("No cells match cluster id") (lp < 1) stop("No starting points") (lv != lp && lv != 1) { stop("Direction vectors do not match starting points")

151

##each "close" cluster cell dim: length(close) X 2 dzlowhigh <- cbind(newz[rows2do] - getLayZ(tops$x[cols2do])-0.375, newz[rows2do] - getLayZ(tops$x[cols2do])+0.375) ##X, Y, Z of each close ray when it reaches top of each close ##cell (dim: length(close) X 3) crosshigh <- cbind(x[rows2do],y[rows2do],newz[rows2do]) + cbind(vx[rows2do],vy[rows2do], vz[rows2do])*(dzlowhigh[,2]/vz[rows2do]) ##X, Y, Z of each close ray when it reaches bottom of each close ##cell (dim: length(close) X 3) crosslow <- cbind(x[rows2do],y[rows2do],newz[rows2do]) + cbind(vx[rows2do],vy[rows2do], vz[rows2do])*(dzlowhigh[,1]/vz[rows2do]) ##See if waveforms actually cross through bottoms of set T testlow <crosslow[,1] >= nli.llx+tops$Col[cols2do]*nli.xres & crosslow[,1] <= nli.llx+(tops$Col[cols2do]+1)*nli.xres & crosslow[,2] >= nli.lly+tops$Row[cols2do]*nli.yres & crosslow[,2] <= nli.lly+(tops$Row[cols2do]+1)*nli.yres ##See if waveforms actually cross through tops of set T testhigh <crosshigh[,1] >= nli.llx+tops$Col[cols2do]*nli.xres & crosshigh[,1] <= nli.llx+(tops$Col[cols2do]+1)*nli.xres & crosshigh[,2] >= nli.lly+tops$Row[cols2do]*nli.yres & crosshigh[,2] <= nli.lly+(tops$Row[cols2do]+1)*nli.yres tmat <- matrix(FALSE,lp,lt) tmat[close] <- testlow | testhigh ##Gives whether each waveform crosses through a top or ##bottom of any voxel in set T res <- which(apply(tmat,1,any)) res }

152

B.4

File neighbors.r

A function to compute which neighbors of a set of voxels have contain peak-points. The input parameters are matched lists of voxel addresses as layers, rows, and columns. Output is a data frame with the same number of rows as input voxels. Six columns describe the six neighbors of each voxel, and a value of zero in each column means no peak-points are contained by the neighbor. A value of one indicates the presence of one or more peak-points contained within the given neighbor voxel.
##Function to compute neighbors of each cluster cell myneighbors <- function(Layers,Rows,Columns) { Nrows <- diff(range(therows <- unique(Rows))) + 1 Ncols <- diff(range(thecols <- unique(Columns))) + 1 Nlayers <- diff(range(thelayers <- unique(Layers))) + 1 ##Convert address to a single index indices <- (Layers - min(thelayers) + 1) * Nrows*Ncols + (Rows - min(therows) + 1) * Ncols + (Columns - min(thecols) + 1) out <- as.data.frame(matrix(0,length(indices),9)) names(out) <- c("Layer","Row","Column","bottom","east", "north","south","top","west") out$Layer <- Layers out$Row <- Rows out$Column <- Columns ##For top and bottom, we add/subtract one layer worth (Nrows*Ncols) ##of cell indices out$bottom[which((indices - Nrows*Ncols) %in% indices)] <- 1 out$top[which((indices + Nrows*Ncols) %in% indices)] <- 1 ##Neighbors to the north or south add or subtract one row out$south[which((indices - Ncols) %in% indices)] <- 1 out$north[which((indices + Ncols) %in% indices)] <- 1 ##Indices of neighbors to the east/west differ by just one out$west[which((indices - 1) %in% indices)] <- 1 out$east[which((indices + 1) %in% indices)] <- 1 out }

153

B.5

File predvars.r

This is the code used to compute the predictor variables in chapter 5. Three datasets are used, comb is a data frame containing the Layer, Row and Column address of each voxel listed by CLUSTERID, which is the integer name given to each cluster of voxels resulting from the segmentation algorithm. The data frame allpoints contains all information about each peak-point derived from the waveform data, indexed by the Layer, Row, and Column of which voxel they are contained within. Due to size, the waveform data are saved in individual les for each cluster. A simple function to compute the area of convex hulls, used for the rarea variable, is included.
##Function to compute area of a convex polygon ##Splits polygon into triangles using polygon vertices and centroid ##Sum area of these triangles polygonarea <- function(x,y) { ##Make sure equal length if (length(x) != length(y)) stop("Unequal vector lengths") lp <- length(x) ##Test if first point is same as last point, if so discard if (x[1] == x[lp] && y[1] == y[lp]) { x <- x[-1] y <- y[-1] lp <- lp-1 } centroid <- c(mean(x),mean(y)) x.c <- x - centroid[1] y.c <- y - centroid[2] area <- 1/2*abs(x.c[-lp]*y.c[-1] - x.c[-1]*y.c[-lp]) sum(area) } ##Create a new data frame to hold all variables newdata <- fielddata[,1:3] ##Height percentiles (group a) newdata$h90 <- newdata$h75 <- newdata$h50 <- newdata$h25 <- 0 ##Peak attributes (group b) newdata$m3 <- newdata$m2 <- newdata$m1 <- 0 ##(group c) newdata$d23 <- newdata$d13 <- newdata$d12 <- 0 newdata$lambdahat <- 0 ##Portion of near crown hits (group d) newdata$ptop <- 0 ##Hullarea to flatten numcells (group d) newdata$rarea <- 0 ##neighbor stats with 0.5m voxels (group e) newdata$pnt05 <- 0 newdata$pnb05 <- 0

154

##Only one side neighbor (group e) newdata$pn105 <- 0 ##surface modeling variables (group f) newdata$sa <- 0; newdata$sb <- 0 fmedians <- fiqrs <as.data.frame(matrix(0,length(fielddata$CLUSTERID),30)) names(fmedians) <- paste(sep="","D",2:31) names(fiqrs) <- paste(sep="","Q",2:31) ##Median and IQR of original mivi <- matrix(0,length(fielddata$CLUSTERID),2) colnames(mivi) <- c("MI","QI") ##For each cluster ID in the field data for (cnum in seq(fielddata$CLUSTERID)) { ##Save the cluster ID id <- fielddata$CLUSTERID[cnum] ##comb contains all voxels for each cluster (tree) WC <- which(comb$CLUSTERID == id) ##allpoints contains the peak-points for each cluster, indexed by ##layer, row, and column WP <- which(allpoints$Cluster==id) ##0)Compute fft median and iqr ##Load the waveform data file for this cluster ##These are to big to have all loaded at once fname <- paste(sep="","/drive2/FULLWAVE/wavedumps/waves_", fielddata$CLUSTERID[cnum],".dumped") load(file=fname) ##Remove samples that occur earlier than 50 meters ##I think these represent measurement of the outgoing pulse waves <- waves[which(waves$Range > 50),] ##Remove overflows of intensity (recorded as 15434), set to 0 waves$Intensity[which(waves$Intensity > 15000)] <- 0 ##Perform fft on first 60 samples (I think fft function pads ##with 0s to 64 to meet 2^n size requirement). ffts <- as.matrix(aggregate(Intensity~Wave,waves, FUN=function(x) { ffts <- fft(x[1:60]) amps <- Mod(ffts[2:31])##Get amplitudes of amps } )) ##Get median by frequency fmedians[cnum,] <- apply(ffts,2,median)[-1] ##Get IQR by frequency fiqrs[cnum,] <- apply(ffts,2, FUN=function(x) diff(quantile(x,c(0.25,0.75))))[-1] intmeans <- as.matrix(aggregate(Intensity~Wave,waves, FUN=function(x) mean(x[1:60]) )) mivi[cnum,] <- c(median(intmeans[,2]), diff(quantile(intmeans[,2],c(0.25,0.75)))) ##Free up memory

155

rm(waves) gc() ##DISCRETE POINT VARIABLES ##Group a ############################## ##Percentiles of point heights maxht <- max(allpoints$Z[WP]) sz <- allpoints$Z[WP]/maxht newdata[cnum,c(h25,h50,h75,h90)] <quantile(sz,c(0.25,0.5,0.75,0.9)) ##Group b ############################ ##intensity of ordered peaks newdata$m1[cnum] <mean(allpoints$Intensity[WP[which(allpoints$Peaknum[WP] == 1)]]) newdata$m2[cnum] <mean(allpoints$Intensity[WP[which(allpoints$Peaknum[WP] == 2)]]) newdata$m3[cnum] <mean(allpoints$Intensity[WP[which(allpoints$Peaknum[WP] == 3)]]) ##Group c ########################################### ##Order the points by pulse and peak number sortoder <- order(allpoints$GPSTime[WP],allpoints$Peaknum[WP]) sortpoints <- allpoints[WP[sortorder],c(2:5,8)] ##pulses that have a first peak (occuring within tree) hasfirst <- sortpoints$GPSTime[which(sortpoints$Peaknum == 1)] ##have second peak hassecond <- sortpoints$GPSTime[which(sortpoints$Peaknum == 2)] ##have third peak hasthird <- sortpoints$GPSTime[which(sortpoints$Peaknum == 3)] ##Have both necessary for computation has12 <- intersect(hasfirst,hassecond) has13 <- intersect(hasfirst,hasthird) has23 <- intersect(hassecond,hasthird) ##mean 1-2 distance ##which peaks are 1st in pulse with 1st and 2nd peaks in tree firstgood <which(sortpoints$GPSTime %in% has12 & sortpoints$Peaknum == 1) ##which peaks are 2nd in pulse with 1st and 2nd peaks in tree secondgood <which(sortpoints$GPSTime %in% has12 & sortpoints$Peaknum == 2) ##difference between ranges of these peaks dists <sqrt((sortpoints$X[firstgood] - sortpoints$X[secondgood])^2 + (sortpoints$Y[firstgood] - sortpoints$Y[secondgood])^2 + (sortpoints$Z[firstgood] - sortpoints$Z[secondgood])^2) newdata$d12[cnum] <- mean(dists) ##1-3 distance firstgood <-

156

which(sortpoints$GPSTime %in% has13 & sortpoints$Peaknum == 1) secondgood <which(sortpoints$GPSTime %in% has13 & sortpoints$Peaknum == 3) dists <sqrt((sortpoints$X[firstgood] - sortpoints$X[secondgood])^2 + (sortpoints$Y[firstgood] - sortpoints$Y[secondgood])^2 + (sortpoints$Z[firstgood] - sortpoints$Z[secondgood])^2) newdata$d13[cnum] <- mean(dists) ##2-3 distance firstgood <which(sortpoints$GPSTime %in% has23 & sortpoints$Peaknum == 2) secondgood <which(sortpoints$GPSTime %in% has23 & sortpoints$Peaknum == 3) dists <sqrt((sortpoints$X[firstgood] - sortpoints$X[secondgood])^2 + (sortpoints$Y[firstgood] - sortpoints$Y[secondgood])^2 + (sortpoints$Z[firstgood] - sortpoints$Z[secondgood])^2)) newdata$d23[cnum] <- mean(dists) ##Exponential model of waiting time between peaks: ##Start with no consecutive peaks (all false) alldists <- logical(length(sortpoints$GPSTime)) ##Add those which are ... add <which( ##consecutive peaks ... diff(sortpoints$Peaknum)==1 & ##and in same pulse. sortpoints$GPSTime[-1] == sortpoints$GPSTime[-length(WP)] ) alldists[add] <- TRUE ##Compute distance between these consecutive peaks cons <waits <- which(alldists) sqrt((allpoints$X[cons+1] - allpoints$X[cons])^2 + (allpoints$Y[cons+1] - allpoints$Y[cons])^2 + (allpoints$Z[cons+1] - allpoints$Z[cons])^2) ##Fit an exponential model to these distances (waiting times) newdata$lambdahat[cnum] <- fitdistr(waits,"exponential")$estimate ##Group d ######################################## ##Set T of all top voxels by row, column W6 <- which(comb$Layer[WC] >= 6) top6 <- aggregate(comb$Layer[WC][W6], list(Row=comb$Row[WC][W6],Col=comb$Col[WC][W6]), max) ##Merge reduced set T6 with all point data ptop <- merge(top6, allpoints[WP,], by.x=c("Row","Col"),by.y=c("R","C"), ##Leave out points in R:C combos w/out tops>6 all.y=FALSE) ##Proportion of points within these row:columns near top newdata$ptop[cnum] <-

157

length(which(abs(ptop$Z - ptop$x*0.75) < 1.5))/length(ptop$Z) ##Get outline of first 8 layers, calculate p/a ratio toplayer <- max(comb$Layer[WC]) top8 <- aggregate(comb$Layer[WC][which(comb$Layer[WC] > toplayer-8)], list(row=comb$Row[WC],col=comb$Col[WC]), length) hull <- chull(id,numlayers=8) ##Get ratio of polygon area to number of newdata$rarea[cnum] <length(top8$row) / polygonarea(hull[,1],hull[,2]) ##Group e #################################################### ##Re-index points to a 0.5x0.5x0.5 meter voxel array ##Z, Y, and X range of points (in map coordinates) lrange <- range(allpoints$Z[WP]) rrange <- range(allpoints$Y[WP]) crange <- range(allpoints$X[WP]) ##Break these ranges into 0.5m groups by ... ##layer ... lseq05 <- seq(0,ceiling(lrange[2]),by=0.5) lcut05 <- as.numeric(cut(allpoints$Z[WP], breaks=lseq05,include.lowest=TRUE)) ##row ... rseq05 <- seq(floor(rrange[1]),ceiling(rrange[2]),by=0.5) rcut05 <- as.numeric(cut(allpoints$Y[WP], breaks=rseq05,include.lowest=TRUE)) ##and column cseq05 <- seq(floor(crange[1]),ceiling(crange[2]),by=0.5) ccut05 <- as.numeric(cut(allpoints$X[WP], breaks=cseq05,include.lowest=TRUE)) ##Use myneighbors function to get neighbor voxels (of each voxel) ##with peak-points neigh05m <- myneighbors(lcut05,rcut05,ccut05) ##Get proportion with top neighbor only lenlayer <- length(neigh05m$Layer) newdata$pnt05[cnum] <length(which(neigh05m$top & apply(neigh05m[,4:9],1,sum) == 1)) / lenlayer newdata$pnb05[cnum] <length(which(neigh05m$bottom & apply(neigh05m[,4:9],1,sum) == 1)) / lenlayer newdata$pn105[cnum] <length(which(apply(neigh05m[,4:9],1,sum) == 1)) / lenlayer ##Group f ################################ ##Crown surface model parameters ##Get centroid of the highest eight layers center8 <- c(L=mean(comb$Layer[WC[top8]]), R=mean(comb$Row[WC[top8]]), C=mean(comb$Column[WC[top8]]))

158

##Compute difference in height for each voxel dz <- toplayer - top6$x ##Compute distance from center (xydist) and angle (rad) ydist <- top6$Row-center8[2] xdist <- top6$Col-center8[3] rad <- atan2(ydist,xdist) xydist <- sqrt(xdist^2 + ydist^2) ##Fit our model to this surface crownmod <- nls(dz~exp((base + slope*sin(rad-shift))*xydist)-1, start=c(slope=1,base=0,shift=0)) ##Keep the parameters newdata$sa[cnum] <- coef(crownmod)[base] newdata$sb[cnum] <- coef(crownmod)[slope] }

159

B.6

File liddelltest.r

R language code for a Liddells exact one-sided probability value for a test of change in a two-level factor when the individuals are measured twice (paired). This is similar to a McNemars test, however the McNemars test is approximate. This test was used in the Methods section of chapter 5. The two arguments, before and after must be factors (with the exact same two levels) of the same length. Note that there is no error checking code to verify correct arguments.
liddell.pval <- function(before,after) { ##Create 2x2 contingency table: ## after ## before FALSE TRUE ## ~~~~~~~~~~~~~~~~~~~~~~~~ ## FALSE a b ## TRUE c d ## ~~~~~~~~~~~~~~~~~~~~~~~~ cont <- table(before,after) ## r is max of c or b, s is min r <- max(cont[1,2],cont[2,1]) s <- min(cont[1,2],cont[2,1]) ##Compute F-statistic F <- r/(s+1) ##Right-tailed probability under F dist ##with 2*(s+1) and 2*r degrees of freedom pf(F,2*(s+1),2*r,lower=FALSE) }

160

VITA
Nicholas Vaughn was born in San Diego, California. Interest in forestry in general led to a move North, where he received his Bachelor of Science in Forest Management from Humboldt State University in Arcata, California. After working for a brief few years in the research branch of the United States Forest Service in Redding, California he moved North yet again to obtain a Master of Science and, eventually, a Doctor of Philosophy from University of Washington in Forest Resources.

You might also like