Decomposing Waveform Lidar for Individual Tree Species Recognition

180
Decomposing Waveform Lidar for Individual Tree Species Recognition Nicholas Vaughn A dissertation submitted in partial fulfillment of the requirements for the degree of Doctor of Philosophy University of Washington 2011 Program Authorized to Offer Degree: School of Forest Resources

description

A PhD dissertation by Nicholas Vaughn at the University of Washington

Transcript of Decomposing Waveform Lidar for Individual Tree Species Recognition

Page 1: Decomposing Waveform Lidar for Individual Tree Species Recognition

Decomposing Waveform Lidar for Individual Tree Species

Recognition

Nicholas Vaughn

A dissertation submitted in partial fulfillment ofthe requirements for the degree of

Doctor of Philosophy

University of Washington

2011

Program Authorized to Offer Degree: School of Forest Resources

Page 2: Decomposing Waveform Lidar for Individual Tree Species Recognition
Page 3: Decomposing Waveform Lidar for Individual Tree Species Recognition

University of WashingtonGraduate 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 final

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:

Page 4: Decomposing Waveform Lidar for Individual Tree Species Recognition
Page 5: Decomposing Waveform Lidar for Individual Tree Species Recognition

In presenting this dissertation in partial fulfillment of the requirements for the doctoraldegree at the University of Washington, I agree that the Library shall make itscopies freely available for inspection. I further agree that extensive copying of thisdissertation is allowable only for scholarly purposes, consistent with “fair use” asprescribed in the U.S. Copyright Law. Requests for copying or reproduction of thisdissertation may be referred to Proquest Information and Learning, 300 North ZeebRoad, 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

Page 6: Decomposing Waveform Lidar for Individual Tree Species Recognition
Page 7: Decomposing Waveform Lidar for Individual Tree Species Recognition

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 first,

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 classification tree approach for 44

sample trees of 3 hardwood species native to the Pacific 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 first

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

classification 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

Page 8: Decomposing Waveform Lidar for Individual Tree Species Recognition
Page 9: Decomposing Waveform Lidar for Individual Tree Species Recognition

point Lidar dataset before and after the addition of variables obtained from waveform

Lidar data. The addition of waveform information aided in the classification of five

species, as well as in the classification of several two-species subsets. Performance

of small groups of similar discrete point Lidar-derived variables varied much more

between different species combinations, but when grouped they performed very well

in all combinations. These results provide some suggestive evidence that fine-scale

waveform Lidar information is important to classification of at least some tree species.

Page 10: Decomposing Waveform Lidar for Individual Tree Species Recognition
Page 11: Decomposing Waveform Lidar for Individual Tree Species Recognition

TABLE OF CONTENTS

Page

List of Figures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . iii

List of Tables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . iv

Glossary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . v

Chapter 1: Introduction and Layout . . . . . . . . . . . . . . . . . . . . . . 1

1.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

1.2 Layout of Thesis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

Chapter 2: Progress Towards the Accurate Identification of Individual TreeSpecies with Remote Sensing Data . . . . . . . . . . . . . . . . 7

2.1 Background . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

2.2 Individual Tree Segmentation . . . . . . . . . . . . . . . . . . . . . . 9

2.3 Individual Tree Species Detection . . . . . . . . . . . . . . . . . . . . 12

2.4 Discussion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

Chapter 3: Fourier Transform of Waveform Lidar for Species Recognition . 28

3.1 Abstract . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

3.2 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

3.3 Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

3.4 Results and Discussion . . . . . . . . . . . . . . . . . . . . . . . . . . 36

3.5 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

Chapter 4: Fourier Transform of Waveform Lidar for Species Recognition -data requirements . . . . . . . . . . . . . . . . . . . . . . . . . 42

4.1 Abstract . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

4.2 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

i

Page 12: Decomposing Waveform Lidar for Individual Tree Species Recognition

4.3 Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

4.4 Results and Discussion . . . . . . . . . . . . . . . . . . . . . . . . . . 55

4.5 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60

Chapter 5: Increasing Individual Tree Species Classification Accuracy by In-corporating Raw Waveform Lidar Data . . . . . . . . . . . . . . 61

5.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61

5.2 Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65

5.3 Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76

5.4 Discussion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80

5.5 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85

Chapter 6: Further Detail of Methods Used . . . . . . . . . . . . . . . . . . 87

6.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87

6.2 Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87

6.3 Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89

Chapter 7: General Discussion and Conclusions . . . . . . . . . . . . . . . 108

7.1 Discussion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108

7.2 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113

Appendix A: Voxel-based Clustering Segmentation . . . . . . . . . . . . . . . 132

A.1 File constants.py . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132

A.2 File cellfunctions.py . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133

A.3 File cellcluster.py . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135

A.4 File crownseg.py . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139

Appendix B: Miscellaneous Computer Code . . . . . . . . . . . . . . . . . . . 146

B.1 File richlucy.c . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146

B.2 File getpeaks.c . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148

B.3 File voxeltest.r . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150

B.4 File neighbors.r . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152

B.5 File predvars.r . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153

B.6 File liddelltest.r . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159

ii

Page 13: Decomposing Waveform Lidar for Individual Tree Species Recognition

LIST OF FIGURES

Figure Number Page

3.1 Map of the Washington Park Arboretum . . . . . . . . . . . . . . . . 32

3.2 Example classification tree . . . . . . . . . . . . . . . . . . . . . . . . 35

3.3 Ranges of the common classification variables . . . . . . . . . . . . . 40

4.1 Difference between waveform and discrete Lidar data . . . . . . . . . 45

4.2 Map of the Washington Park Arboretum . . . . . . . . . . . . . . . . 48

4.3 Example spectral decomposition . . . . . . . . . . . . . . . . . . . . . 50

4.4 Example classification tree . . . . . . . . . . . . . . . . . . . . . . . . 53

4.5 Range of scan angles for individual trees . . . . . . . . . . . . . . . . 59

5.1 Example waveform . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64

5.2 Loading of the principal components of median data . . . . . . . . . . 75

5.3 Loading of the principal components of IQR data . . . . . . . . . . . 77

iii

Page 14: Decomposing Waveform Lidar for Individual Tree Species Recognition

LIST OF TABLES

Table Number Page

3.1 Classification results . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

3.2 Commonly used classification variables . . . . . . . . . . . . . . . . . 38

4.1 Classification results . . . . . . . . . . . . . . . . . . . . . . . . . . . 56

4.2 Dataset reduction results . . . . . . . . . . . . . . . . . . . . . . . . . 57

5.1 Tree height statistics . . . . . . . . . . . . . . . . . . . . . . . . . . . 68

5.2 Canonical correlation coefficients . . . . . . . . . . . . . . . . . . . . 77

5.3 Five species classification confusion matrix . . . . . . . . . . . . . . . 79

5.4 Classification accuracy results . . . . . . . . . . . . . . . . . . . . . . 80

6.1 Waveform Lidar acquisition parameters . . . . . . . . . . . . . . . . . 88

6.2 Default parameter values of the segmentation algorithm . . . . . . . . 93

6.3 Summary statistics of the predictor variables in group a . . . . . . . . 101

6.4 Summary statistics of the predictor variables in group b . . . . . . . . 102

6.5 Summary statistics of the predictor variables in group c . . . . . . . . 103

6.6 Summary statistics of the predictor variables in group d . . . . . . . . 103

6.7 Summary statistics of the predictor variables in group e . . . . . . . . 104

6.8 Summary statistics of the predictor variables in group f . . . . . . . . 104

6.9 Summary statistics of the predictor variables in group h . . . . . . . . 105

6.10 Summary statistics of the predictor variables in group i . . . . . . . . 106

6.11 Summary statistics of the predictor variables in group j . . . . . . . . 107

iv

Page 15: Decomposing Waveform Lidar for Individual Tree Species Recognition

GLOSSARY

ATM: Airborne Thematic Mapper, an aerial multispectral sensor

CASI(-2): Compact Airborne Spectrographic Imager, an aerial multispectral sensor

CIR: Color-InfraRed, photographic film with layers which reproduce infrared asred, red as green, and green as blue

CHM/CSM: Canopy Height (or Surface) Model,which is a DSM of canopy surfaceheight above ground

DSM/DEM: Digital Surface (or Elevation) Model, a two-dimensional raster modelof surface elevation

DTM: Digital Terrain Model, which describes a DSM of the bare-earth elevationabove a specified geoid

GPS: Global Positioning System, a system of satellites with known position usedto 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 al-ternatives to the red, green, blue (RGB) color model that attempt to moreaccurately match how the human eye perceives color

HYPERSPATIAL: geospatial data with a high spatial resolution, i.e. minimal pixelwidth and height in the case of raster data

HYPERSPECTRAL: geospatial data with a large number of bands covering a largerange of the electromagnetic spectrum

HYPERTEMPORAL: geospatial data with two to several repeated measurementsacross a range of time

IKONOS: A commercial satellite system offering multispectral imagery

v

Page 16: Decomposing Waveform Lidar for Individual Tree Species Recognition

IMU: Inertial Measurement Unit, an instrument using accelerometers and gyro-scopes to measure angular rotation and speed of change in angular rotation.

LDA: Linear Discriminant Analysis, a parametric classification rule assuming amultivariate normal distribution for the predictor variables

LIDAR/LIDAR/LIDAR: Light Detection And Ranging

MEIS: Multispectral Electro-optical Imaging Sensor, an aerial multispectral sensor

ML: Maximum Likelihood, a parametric classification rule

MULTISPECTRAL: geospatial data with a limited number of bands covering a rangeof the electromagnetic spectrum, typically referring to data with more than justred, green and blue components

PCA: Principal Component Analysis, a data dimension reduction technique

RASTER: a data set consisting of an indexed array (usually two-dimensional) ofcells, each cell containing a single value representing the variable of interest forthe indexed area in space

SAM: Spectral Angle Mapper, a non-parametric classification rule

SVM: Support Vector Machine, a non-parametric classification rule

vi

Page 17: Decomposing Waveform Lidar for Individual Tree Species Recognition

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 Pacific 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 gra-

cious enough to provide it for my work. Andrew Hill was very helpful in the remea-

surement 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 different

ways. Jeff Richardson answered my many questions about specific 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

Page 18: Decomposing Waveform Lidar for Individual Tree Species Recognition

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 finish 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 off of work for a while.

viii

Page 19: Decomposing Waveform Lidar for Individual Tree Species Recognition

DEDICATION

To my amazing wife, Jilleen and our two boys for

providing me with unending support and inspiration

ix

Page 20: Decomposing Waveform Lidar for Individual Tree Species Recognition
Page 21: Decomposing Waveform Lidar for Individual Tree Species Recognition

1

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 field of precision forestry developed very rapidly around

this idea. Such outcomes are highly needed in modern forestry, where providing a

steady flow 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 efficiency 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 stratification has been

used for many years to reduce overall variance in the estimates.

Modern remote sensing products are now of sufficient resolution and accuracy to

push such stratification 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 offer even greater efficiency. Most stand-level statistics

Page 22: Decomposing Waveform Lidar for Individual Tree Species Recognition

2

estimated from field-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 benefits in

many situations. Timber value is determined by species, and the models predicting

tree size from remotely sensed data differ greatly by species. Knowledge of species

could improve accuracy and precision by incorporating these differences. 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 field 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 fire or beetle outbreaks would benefit from species detection as

mapping high-risk areas could quickly be done. Additionally, changes in site condi-

tions 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 significantly.

Page 23: Decomposing Waveform Lidar for Individual Tree Species Recognition

3

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 beam’s 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 reflectivity 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 fields, 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 flown 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 differential 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 reflected back from the

target (ground or vegetation) and marks the time at which peaks are found in

Page 24: Decomposing Waveform Lidar for Individual Tree Species Recognition

4

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 deflected 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 final 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 specified

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 affected 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 classification accuracy of individual trees.

Page 25: Decomposing Waveform Lidar for Individual Tree Species Recognition

5

1.1.3 Waveform Lidar

Waveform Lidar is recorded using most of the same steps and mostly the same instru-

mentation as discrete point Lidar. The difference is in how the return signal of light

reflecting off 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 difference 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 first 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

Page 26: Decomposing Waveform Lidar for Individual Tree Species Recognition

6

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 Re-

mote 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-Wurttemberg,

Germany. Chapter 5 is an article describing a more thorough examination of the

potential of waveform Lidar over discrete data alone for species classification.

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

specific. 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 field. This layout was designed

to provide a sufficient 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.

Page 27: Decomposing Waveform Lidar for Individual Tree Species Recognition

7

Chapter 2

PROGRESS TOWARDS THE ACCURATE

IDENTIFICATION OF INDIVIDUAL TREE SPECIES

WITH REMOTE SENSING DATA

2.1 Background

The field 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 field 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 significantly, but we constantly seek out tools that can offer

even greater reduction in field time requirements or improvements in precision.

Modern remote sensing tools offer the additional information needed to greatly

reduce survey costs by reducing the number of plots necessary (Aldred and Hall 1975).

While field 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

significant cost savings can be realized.

The improvement in efficiency provided by remote sensing tools will be most no-

ticeable 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, de-

signs incorporating remote sensing technology could reduce total inventory cost. The

Page 28: Decomposing Waveform Lidar for Individual Tree Species Recognition

8

number of field 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 affordable 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 de-

lineation and classification, 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 classified 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 classification 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.

Page 29: Decomposing Waveform Lidar for Individual Tree Species Recognition

9

Despite the progress in individual tree analysis, one variable remains very diffi-

cult 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 re-

garding forest health or estimations of resource values must be made. Whether forest

resource value is defined monetarily or otherwise, it usually depends highly on the

species present. Many variables one can measure from a forest are even more de-

scriptive when species information is available. As a result there is much potential

to increase precision in the desired estimates. Without species-specific information,

species information must either be extrapolated from the field 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 first step in identifying the species of individual trees is to find which subsets of

the data represent each tree. Completing this step more accurately leads to an increase

in potential for accurate species identification. With aerial photos, a trained human

interpreter could easily differentiate 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-

Page 30: Decomposing Waveform Lidar for Individual Tree Species Recognition

10

tion is inherently difficult 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 repre-

sentative 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 tree’s crown is considered the center of the tree. Areas of shadow around the

brighter pixels help define the crown perimeter. Ke and Quackenbush (2008) test sev-

eral 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 field, fueled by interest in both remote sensing and artificial 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 confirm this, one must only look at the great number of

recent publications reporting positive results using Lidar for this procedure. Hyyppa

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 filter 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 refined.

One opportunity for refinement comes with the choice of the single filter to apply

to the entire CHM. This step is important because individual tree sizes can vary

Page 31: Decomposing Waveform Lidar for Individual Tree Species Recognition

11

greatly, and adapting the filter to the local tree height distribution can help account

for this variation. Persson and Holmgren (2002) fit 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 filter 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. Pitkanen et al. (2004) test three adaptations of Popescu

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 filter

approach.

Besides optimizing the classification 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 finalize 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 modified to work in three dimensions, to decide if an individual cluster

represented multiple trees.

Page 32: Decomposing Waveform Lidar for Individual Tree Species Recognition

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

identification 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 classification 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 identified 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

different times.

Many authors have noted that tree species can have signature spectral reflection

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

Page 33: Decomposing Waveform Lidar for Individual Tree Species Recognition

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 fine 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 train-

ing techniques. They use multiple segmentation approaches and separate four

conifers from beech in a Canadian forest using four-band aerial imagery ac-

quired with the Multispectral Electro-optical Imaging Scanner (MEIS) instru-

ment. Additionally, aerial color-infrared photography (CIR) taken over Austria

is used to separate a pine from two spruce species. Overall classification accu-

racy is very high given the early appearance of the paper.

• Thomasson et al. (1994) used four-band videography (red, green, blue, near-

infrared) 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 different acquisitions, in summer and fall,

added about 10 percent to the overall classification accuracy using maximum

likelihood (ML) and minimum distance classifiers.

• 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

classification 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

Page 34: Decomposing Waveform Lidar for Individual Tree Species Recognition

14

spruce, beech, fir and two damage classes of pine in Switzerland. A first attempt

on the original unfiltered imagery was not very successful due to image noise.

Their second method, incorporating a high-pass filter 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 benefits of having multi-

spectral versus multi-temporal data. They used CIR acquired on many dates

to distinguish four broadleaf species with manual digitization of crowns. ML

classification 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.

Page 35: Decomposing Waveform Lidar for Individual Tree Species Recognition

15

• Koch et al. (2002) classified three conifers and two broadleaf species in South-

ern 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 classified

to match the majority of the pixels.

• Leckie et al. (2003) tested several variables measured from automatically out-

lined tree crowns to distinguish five 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 classification 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 pro-

cedure was used to determine the best variables for a ML classification. Overall

classification accuracy was not high, but good for 21 species. Coniferous and

broadleaf species could be distinguished fairly accurately.

• Clark et al. (2005) trained a classification model with field 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 res-

olution hyperspectral data was used for pixel-level classification. The spectral

angle mapper was compared to LDA and ML classification, with LDA perform-

ing best.

Page 36: Decomposing Waveform Lidar for Individual Tree Species Recognition

16

• Goodwin et al. (2005) used manual digitization of crowns and the ML classifica-

tion to distinguish four eucalyptus species in Australia. While only one species

could be accurately mapped, all eucalyptus could be distinguished from sur-

rounding vegetation quite well with only four of the 10 original CASI imagery

bands.

• Olofsson et al. (2006) took a slightly different approach and used model tem-

plates 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 conifer-

ous 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 in-

formation and crown outline shape parameters including ratios of area, perime-

ter, and diameter on high-resolution 5-band satellite imagery. The crown shape

parameters worked well to distinguish pines from broadleaf species, while tex-

ture 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,

classification algorithms that involve no assumed distributions or parameters. Heikki-

nen 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 classification algorithms tend to work well with high-

dimensional data, but may require extensive tuning to achieve optimal results.

Some authors looked at pixel-based or object-based classification produced with

image analysis software as species segmentation was not necessarily the primary goal

of the publication. Koukoulas and Blackburn (2001) introduce a new classification

accuracy index and test it with a pixel-based species map created from Advanced The-

Page 37: Decomposing Waveform Lidar for Individual Tree Species Recognition

17

matic Mapper (ATM) imagery with a built-in supervised ML classification algorithm.

In his dissertation, Wang (2003) used eight-band CASI imagery to find 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 benefits 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 classification 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 de-

rived 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 classification was not

evaluated at the tree level in this paper.

Page 38: Decomposing Waveform Lidar for Individual Tree Species Recognition

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 informa-

tion 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 dimen-

sion.

• Holmgren et al. (2008) produced one of the highest published classification accu-

racies. Several variables computed from the Lidar data for each crown, including

parameters of a parabolic surface fit to the crown top, assisted by mean inten-

sity values for each of the bands in the ML classification. They achieved a 96

percent accuracy distinguishing two individual conifers from broadleaf species

as a group.

• Saynajoki et al. (2008) attempted to separate aspen trees from other species in

Finland by first 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 cal-

culated from the Lidar data. Again broadleaf species proved difficult to classify,

with only 57 percent of the aspens correctly classified.

• As part of a species-specific forest inventory, Packalen (2009) incorporated Lidar

and aerial photography to estimate individual tree species as one of two conif-

erous 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 propor-

tion of ground and vegetation hits. LDA classification provided individual tree

species, which was then used to model stand level diameter distribution and

volume by species.

Page 39: Decomposing Waveform Lidar for Individual Tree Species Recognition

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 classification. 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 five 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. Ad-

ditionally, 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 in-

dividual tree species. Voss and Sugumaran (2008) used object-based algorithms to

segment and classify seven dominant tree species in Iowa. Classification 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 classification of

unstated species in Canada. Little information is available in this brief proceedings

submission.

Page 40: Decomposing Waveform Lidar for Individual Tree Species Recognition

20

2.3.3 Active sensors alone

Lidar has become a very ubiquitous data source in the field 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 identification. 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 differentiation 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 difference between a surface model created from first 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 tree’s 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 effect 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

effects of size and reflectivity of vegetative tissue, incidence to the direction of the light

beam, and atmospheric effects. Lidar equipment usually incorporates a near-infrared

light source, and this part of the spectrum is sometimes useful in separating coniferous

Page 41: Decomposing Waveform Lidar for Individual Tree Species Recognition

21

and broadleaf species (Holmgren and Persson 2004). However, for larger projects,

changes in range and gain sensitivity on the sensor can result in significant variation

in intensity values with time. A great example of this is shown in Moffiet et al. (2005).

These variations can have a large effect if intensity is used for classification 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 differences and fewer problems from changes in mean

intensity. Several authors have relied at least in part on reflectance attributes for

classification 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: first of many, only, and last of many. Overall

accuracy was most affected by the metrics derived from the points in the first

of many category.

• Kim et al. (2009) investigated differences between eight broadleaf and seven

coniferous species using metrics derived from intensity using two datasets, rep-

resenting both leaf-on and leaf-off conditions. Metrics used were mean and coef-

ficient of variation of all points, upper canopy points, and surface points. Large

differences were found between species, greatly due to the seasonal differences

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 reflected intensity will be affected 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.

Page 42: Decomposing Waveform Lidar for Individual Tree Species Recognition

22

• After looking at a very large number of variables, Holmgren and Persson (2004)

found that using six less-correlated variables produced the highest classification

accuracy for two coniferous and a combined broadleaf species category. These

variables included five structural metrics, including surface shape and relative

height statistics, and only one intensity metric, the standard deviation of inten-

sity.

• To distinguish seven species of woody vegetation in Australia, Moffiet 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 classification 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 clas-

sification problem was reduced to a single coniferous and a single broadleaf

species. Field-derived tree position was used rather than an automatic segmen-

tation approach. This resulted in a larger number of small trees that were more

difficult to classify.

• Suratno et al. (2009) used return-type percentages, as well as mean and stan-

dard deviation of both height and intensity by return type to distinguish four

Page 43: Decomposing Waveform Lidar for Individual Tree Species Recognition

23

coniferous species in a Montana mixed-conifer forest. Individual tree classifica-

tion 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 inten-

sity 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 effects of intensity corrections on classification 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 affected the classification results. LDA, k-

Nearest Neighbor, and Random Forests classification 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 repre-

senting points, Reitberger et al. (2008; 2006) use metrics of crown shape of the

Page 44: Decomposing Waveform Lidar for Individual Tree Species Recognition

24

trees, the distribution of points within the canopy, intensity and width informa-

tion 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 inflated 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 iden-

tification 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,

Hofle et al. (2008) explored these features for segmentation and classification of

larch, oak and beech species in a natural forest outside Vienna.

• Vaughn et al. (2010) looked at Fourier transformations of the individual wave-

forms, averaging the influence of each frequency across individual trees. While

the one-dimensional Fourier transform includes no crown surface shape informa-

tion, 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

Page 45: Decomposing Waveform Lidar for Individual Tree Species Recognition

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 difficult one. In

general, the main problem is that many species that can be distinguished on the

ground by bark and leaf morphology differences must now be distinguished from

a thousand meters above. Larger-scale differences between species, such as crown

shape, branch patterns and color, are often blurred by the differences within a species.

Species is only one factor that affects the final 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. Differences 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 differences 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 de-

ciduous) species seems to be much more tractable. It is often the case that transform-

ing 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 difference 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 difference in growth behavior, being able to accurately distinguish between these

Page 46: Decomposing Waveform Lidar for Individual Tree Species Recognition

26

two groups can be very beneficial to inventory tasks.

When significantly north or south of the equator, most forests are dominated by

relatively few species. This means that being able to accurately distinguish four or five

species would be beneficial on a large share of the world’s 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 difficult due to the large

number of species (Clark et al. 2005, Roy et al. 1991). In any classification 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 classification: two-dimensional raster data or three-dimensional Lidar data. Both

have advantages and disadvantages that can help decide which to use for a specific

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

Page 47: Decomposing Waveform Lidar for Individual Tree Species Recognition

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 identification. This is even

more true for waveform Lidar data. While early results suggest that this is a good data

source for species classification, 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 classification algorithms

readily available for raster data become able to incorporate Lidar information.

Individual tree species identification 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 stratified by

species.

Page 48: Decomposing Waveform Lidar for Individual Tree Species Recognition

28

Chapter 3

FOURIER TRANSFORM OF WAVEFORM LIDAR FOR

SPECIES RECOGNITION

3.1 Abstract

In precision forestry, tree species identification is one of the critical variables of forest

inventory. Lidar, specifically 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 fitted 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 influence of specific component frequencies across

a given species. These relationships are exploited using a classification tree approach

in order to separate three hardwood tree species native to the Pacific Northwest of

the USA.

We are able to correctly classify 75 % of the trees (khat of 0.615) in our training

dataset. Each tree’s species was predicted using a classification tree built from all

the other training trees. Two of the species grow in close proximity and grow to a

similar form, making differentiation difficult. Across all the classification trees built

during the analysis, a small group of frequencies is predominantly used as predictors

to separate the species.

3.2 Introduction

Species identification is an important component of many forest surveys. Environmen-

tal quantifications of interest such as timber value and habitat quality depend highly

Page 49: Decomposing Waveform Lidar for Individual Tree Species Recognition

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 sufficient 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, Moffiet 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 (Saynajoki et al. 2008,

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 classification 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

sufficient information for target classification.

Each waveform contains information about the reflectivity, 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

Page 50: Decomposing Waveform Lidar for Individual Tree Species Recognition

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 Univer-

sity of Washington Center for Urban Horticulture. The Arboretum, which is approx-

imately 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 Arbore-

tum contains natural stands of species native to Western Washington State, such as

Douglas-fir (Pseudotsuga menziesii (Mirbel) Franco), western redcedar (Thuja plicata

Donn ex D. Don), bigleaf maple (Acer macrophyllum Pursh), black cottonwood (Pop-

ulus 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 flew a RIEGL LMS-

Q560 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

Page 51: Decomposing Waveform Lidar for Individual Tree Species Recognition

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 first

and last return discrete point dataset. 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.

Within the same Arboretum, Kim et al. (2009) geolocated and measured charac-

teristics of the trees in 18 field plots within the Arboretum. The locations of these

plots are shown in figure 3.1. The field 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 identified 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 field 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 differentially 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 Hyyppa et al. (2001a) to

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 filtered canopy height

model. Under such an algorithm, many groups of trees are mistaken for single trees

Page 52: Decomposing Waveform Lidar for Individual Tree Species Recognition

32

Figure 3.1: Map of the Washington Park Arboretum with flight path and ground plotlocations.

Page 53: Decomposing Waveform Lidar for Individual Tree Species Recognition

33

(Hyyppa et al. 2001b). Though this should have little effect in the Arboretum, the

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 identified. 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 pat-

terns within the data. One technique is to look at the data in the “frequency domain”

to discover frequencies of strong influence. This is usually done with a discrete Fourier

transform. This transform converts the original data into a set of coefficients repre-

senting the influence of sine and cosine wave of a known set of frequencies. Large

coefficients are associated with heavy influence and imply that a higher amount of

periodicity at the given interval is detected in the data. The transform loses no in-

formation, 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 coefficients of half of the frequencies

are meaningful. With 60 samples, we can consider the amplitudes of the first 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 identification 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

Page 54: Decomposing Waveform Lidar for Individual Tree Species Recognition

34

computed value represents the total amount of light reflected 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 classification

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 difference 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 infinitum.

3.3.4 Classification

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 field data. To partition the data we used a classification tree approach (Breiman

et al. 1984; page 18). The R library tree contains a function of the same name for

modeling with these classification trees (Venables and Ripley 2002; page 266). Figure

3.2 shows the classification tree obtained by fitting 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 figure.

Page 55: Decomposing Waveform Lidar for Individual Tree Species Recognition

35

Figure 3.2: Example result of a classification tree fit to the training data. This is thetree returned when fitting to the entire training dataset and pruning off one branchto simplify the structure. Above each split is the variable and level used to split theremaining trees into two subgroups. The reduction in tree deviance resulting fromeach split is shown in the bottom left. Leaf deviances are shown in parenthesis, actualclass memberships in square brackets.

Page 56: Decomposing Waveform Lidar for Individual Tree Species Recognition

36

Table 3.1: Results of the classification when each tree species is predicted from aclassification model incorporating all other trees.

PredictedSpecies bigleaf maple cottonwood red alder Producer accuracy (%)bigleaf maple 7 2 1 70cottonwood 2 14 1 82red alder 1 4 12 71User accuracy (%) 70 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 classification tree that was trained with all other trees in the data.

The numbers involved in such a process makes refinement 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 classification accuracy.

3.4 Results and Discussion

Table 3.1 shows the classification results from the cross-validation. The overall classi-

fication accuracy, or the portion of correctly classified trees, was 75 %. The associated

κ value was 0.615. For individual species, 70 % of maples, 82 % of cottonwoods and

71 % of alders were correctly classified. Previous studies have accuracies ranging

from about 64 % (Brandtberg 2007) to around 95 % (Holmgren and Persson 2004).

However, the classification approaches and model applications vary quite drastically

among these works. An indirect comparison of methods applied in different 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.

Page 57: Decomposing Waveform Lidar for Individual Tree Species Recognition

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 different than those passing at shallow angles. The more dome-like

shape of most hardwoods might nullify this effect. It is possible that limiting analysis

to more vertical scan angles could provide information to differentiate 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 classification 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 classification 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

Page 58: Decomposing Waveform Lidar for Individual Tree Species Recognition

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 begin-ning with “M” are means of the coefficients of a given frequency across all waveformshitting a tree. Variables beginning with “V” are variances. “MI” and “VMI” are themean and variance of all intensity values for all waveforms hitting a tree.

Variable Frequency Wavelength Count(cycles/m) (m)

M1 0.11 9.00 8M6 0.67 1.50 37M12 1.33 0.75 35M17 1.88 0.53 4M19 2.11 0.47 4M21 2.33 0.43 7M25 2.78 0.36 6M26 2.89 0.35 36V1 0.11 9.00 5V8 0.89 1.13 3V9 1.00 1.00 3MI - - 37VMI - - 4

Page 59: Decomposing Waveform Lidar for Individual Tree Species Recognition

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 figure 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 difference between bigleaf maple and the other two species. Less

clear is that the variables M12 and MI are more responsible for the differentiation 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 classification of tree

species. There is sufficient 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 sys-

tems are dependent on time. This is due to an adaptive gain setting on the instrument

Page 60: Decomposing Waveform Lidar for Individual Tree Species Recognition

40

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

Page 61: Decomposing Waveform Lidar for Individual Tree Species Recognition

41

is changed dynamically during flight to adapt to large scale changes in surface reflec-

tivity. The intensity values over the length of the flight over the arboretum seem

stable in this case. Effects 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 classifica-

tion of tree species from waveform Lidar data. Further refinement, 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 pro-

vides 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 classification.

Page 62: Decomposing Waveform Lidar for Individual Tree Species Recognition

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

classification 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 effects on

the ability of the classification 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 classifica-

tion accuracy by 10 to 20 %. The results indicate that pulse density has only slight,

yet sometimes unpredictable effect on the classification accuracy outcome.

Page 63: Decomposing Waveform Lidar for Individual Tree Species Recognition

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,

Næsset 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 corre-

sponding improvements in the ability to classify species using Lidar data alone.

The most obvious differences between many tree species are those involving color

and physical structure. Though Lidar typically works with only one “color”, a fre-

quency 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 different form of Lidar, called waveform or fullwave Li-

dar, 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 first, 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, wave-

forms are typically decomposed into a series of Gaussian or similar forms (Chauve

Page 64: Decomposing Waveform Lidar for Individual Tree Species Recognition

44

et al. 2007). Some works suggest that storing shape parameters from individual peaks

may lead to further improvements in classification (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 effect on the shape of the returned signal. While decon-

volving the data may reduce much of this smoothing, fitting the data to waveforms

will filter out higher frequency patterns. Some of these patterns may help distinguish

one species from another. We put this theory to test by transforming individual wave-

forms 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 impor-

tance of differing frequencies in the observed data. Results showed that wavelengths

as low as 0.36 m were important for classification.

The spatial scale of raster data often has a large influence on classification re-

sults, and optimal scales differ by data type and approach (Treitz and Howarth 2000,

Marceau et al. 1994, Woodcock and Strahler 1987). Also depending on the applica-

tion, discrete Lidar data density may also highly influence results. Liu et al. (2007)

found that point density affects 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 trans-

formation to datasets with reduced numbers of waveforms compared to the original

dataset to test if this is indeed the case.

Page 65: Decomposing Waveform Lidar for Individual Tree Species Recognition

45

Figure 4.1: Difference between waveform and discrete Lidar data. The 60 waveformsamples are shown as circles and a spline fit to these data appears as a solid grayline. A peak detector might detect two peaks at about 345 and 348 m and returnthe intensity value when the peak is detected as shown with exes. Due to inherentlimitations, real time peak detection algorithms usually produce a slight lag in peaklocation.

Page 66: Decomposing Waveform Lidar for Individual Tree Species Recognition

46

4.3 Methods

4.3.1 The study site

The Washington Park Arboretum in Seattle, Washington is operated by the Univer-

sity of Washington Center for Urban Horticulture. The Arboretum, which is approx-

imately 93 ha in size, is planted with more than 10,000 cataloged woody plant spec-

imens representing numerous genera. In addition much of the Arboretum contains

several species native to Western Washington State, such as Douglas-fir (Pseudot-

suga 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 flew a RIEGL LMS-

Q560 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 first

and last return discrete point dataset. One example waveform is displayed in figure

4.1. The range from the instrument is shown on the horizontal axis, while the unitless

Page 67: Decomposing Waveform Lidar for Individual Tree Species Recognition

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 first 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 charac-

teristics of the trees in 18 field plots within the Arboretum. The locations of these

plots are shown in figure 4.2. The field 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 identified and measured during the summer of 2005.

Each of the trees measured in the field plots has been mapped into UTM coordi-

nates 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

differentially 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 Hyyppa et al. (2001a) to obtain an initial set of polygons representing the crown

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

Page 68: Decomposing Waveform Lidar for Individual Tree Species Recognition

48

Figure 4.2: Map of the Washington Park Arboretum with flight path and ground plotlocations.

Page 69: Decomposing Waveform Lidar for Individual Tree Species Recognition

49

local maxima of a low-pass filtered canopy height model. Under such an algorithm,

groups of trees are often mistaken for single trees (Hyyppa et al. 2001b), though in

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 identified 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 influence within the time series. This transform converts

the original data into a set of coefficients representing the individual influence of

sine waves from a known set of frequencies. Large coefficients are associated with

heavy influence 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 figure 4.3(a),

the mean centered waveform appears along with the complex waveform fit 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 figure 4.3(b). The amplitude of each wave represents

the contribution of that particular frequency to the composite wave shown in figure

4.3(a). How the influences of these two example frequencies compare to the rest is

depicted in figure 4.3(c). The first frequency is 0, and represents an intercept term.

The rest of the amplitudes are symmetrical as per a restriction of the FFT algorithm.

Page 70: Decomposing Waveform Lidar for Individual Tree Species Recognition

50

Figure 4.3: Example of spectral decomposition of one waveform. In panel a thecomposite wave returned by the transformation is plotted along with the originalmean-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 all60 component waves are plotted against their frequency.

Page 71: Decomposing Waveform Lidar for Individual Tree Species Recognition

51

The fft function in the R programming language (R Development Core Team 2009)

was used to compute the FFT. In figure 4.3(c), the amplitudes of the component

waves from figure 4.3(b) are shown with solid dots.

The frequencies of the component waves used by the FFT algorithm are deter-

mined 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 con-

tain 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 difficulties 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 influence 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 first 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 figure 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 identification 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 reflected 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

Page 72: Decomposing Waveform Lidar for Individual Tree Species Recognition

52

for use in classification 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 difference 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 infinitum.

4.3.4 Classification

To apply the FFT information to classify tree species, we used a classification tree

approach (Breiman et al. 1984; page 18). Classification 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 classification 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 tree’s 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 overfit 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 field data. Figure 4.4 shows the classification tree obtained by

fitting the entire training dataset. Each fork represents the optimal separation of the

Page 73: Decomposing Waveform Lidar for Individual Tree Species Recognition

53

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

Page 74: Decomposing Waveform Lidar for Individual Tree Species Recognition

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

figure. 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 refinement 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 classification accuracy.

4.3.5 Data reductions

To test the technique at different levels of data density, the original dataset was sys-

tematically reduced. Within the waveform data for each tree in the training data, we

divided the waveforms into five groups of waveforms representing every fifth wave-

form. Each group started from one of the first five waveforms. For example the

first group was comprised of the first waveform, sixth waveform, eleventh waveform,

and so on. Thus the reduced datasets were created by sequentially removing these

groups starting from the fifth 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 classification process

Page 75: Decomposing Waveform Lidar for Individual Tree Species Recognition

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 classification results for the full-density dataset. The overall

classification accuracy, or the portion of correctly classified 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 classified. While differences in leaf reflectance

likely play a part in the results, we believe that differences in tree structure lead to

stronger classification.

As presented in a previous paper (Vaughn et al. 2010), the wavelengths most often

chosen by the classification tree algorithm as partitioning variables are 1.80, 0.82

and 0.36 m. These wavelengths likely correspond differences between species across

different 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 difference might be expected to show up in shorter wavelengths,

and this is the case in the example tree shown in figure 4.4. The variable M26 helps

distinguish red alder from bigleaf maple. The two longer wavelengths may represent

differences 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 first 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

Page 76: Decomposing Waveform Lidar for Individual Tree Species Recognition

56

Table 4.1: Results of the classification when each tree species is predicted from aclassification model incorporating all other trees using the full-density dataset.

PredictedSpecies bigleaf maple cottonwood red alder Producer accuracy (%)bigleaf maple 7 2 1 70.0cottonwood 2 14 1 82.4red alder 1 4 12 70.6User 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 reflectance of the near-infrared wavelength used by the RIEGL LMS-Q560.

This implies that structural differences between the two species contributed highly to

the classification. As branch to branch distances may play a role, we wonder if tree

growth rate would affect the results. More needs to be done to figure out what features

of the tree are contributing most to the classification abilities of this technique.

Table 4.2 shows how the technique responded to different densities of waveforms.

Amazingly, the 80% density resulted in improved performance. Additionally, the

20% density provided greater classification 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 flown should not greatly affect the

results of this classification technique as much as the would affect 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 classification variables are actually sample

means. The sample mean is a very efficient 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

Page 77: Decomposing Waveform Lidar for Individual Tree Species Recognition

57

Table 4.2: The classification results under systematically reduced datasets represent-ing 100, 80, 60, 40 and 20 % of the original density of waveforms.

Density Species Producer accuracy† User accuracy Kappa(%) (%) (%)100 all 75.0 0.62

bigleaf maple 70.0 70.0cottonwood 82.4 70.0red alder 70.6 85.7

80 all 81.8 0.72bigleaf maple 90.0 75.0cottonwood 82.4 73.7red alder 76.5 100.0

60 all 63.6 0.43bigleaf maple 50.0 62.5cottonwood 64.7 52.4red alder 70.6 80.0

40 all 54.6 0.29bigleaf maple 30.0 37.5cottonwood 76.5 56.5red alder 47.0 61.5

20 all 65.9 0.48bigleaf maple 60.0 54.6cottonwood 70.6 66.7red alder 64.7 73.3

† For all species this number represents overall accuracy.

Page 78: Decomposing Waveform Lidar for Individual Tree Species Recognition

58

mean should be very close. However, such a reduction of data should not be expected

to have no effect as the sample mean can be affected 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 suffer accordingly.

There are several technical difficulties that were overlooked in order to more di-

rectly test the efficacy of the FFT for species detection. Finding methods to address

any of these difficulties will likely improve upon the results presented here. First, we

did nothing to account for the differences in scan angle between trees and species.

Because tree structure differs 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 figure correctly classified trees are indicated by

filled-in symbols. There is a clear discrepancy in the number of correct classifications

in the trees with generally higher scan angles on the right side of the figure.

A second simplification was the reduction of all waveforms to exactly 60 samples

due to requirements of the FFT. There were two cases where this might severely affect

results. The first 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 simplifications may have a drastic effect. 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.

Page 79: Decomposing Waveform Lidar for Individual Tree Species Recognition

59

Figure 4.5: The range of scan angles found for each tree in the dataset. Dotted linesrepresent the full range of scan angle, while solid lines represent the 25th to the 75thpercentiles. Trees correctly classified in the full dataset are represented with filled-insymbols at the tree’s median scan angle.

Page 80: Decomposing Waveform Lidar for Individual Tree Species Recognition

60

4.5 Conclusion

The technique described above, despite some simplifications, shows much promise.

One important feature is that, despite significant reduction in data density, the tech-

nique did not respond with large decreases in effectiveness. This is due largely to

the sample mean being a highly efficient estimator of population mean. As such, any

modification 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 affect this

feature of the method, and will likely lead only to improvements in accuracy.

Page 81: Decomposing Waveform Lidar for Individual Tree Species Recognition

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 beneficial when estimating

many forest values from remote sensing data. Unfortunately, detection of individual

tree species using remote sensing data has proven to be a difficult task to accomplish.

Species is only one factor that affects the realized shape and color of a tree crown,

while other factors such as location, competition, and simple genetic variation have

large influence as well. As a result, there is significant overlap between species for

most variables that one can measure from remote sensing data. Due to the difficulty

of obtaining sufficient classification accuracy, species information is commonly disre-

garded 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 Næsset 2010). This technique is a step forward, but

further improvement should be possible.

Knowledge of the probable species of individual crown regions identified 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 classification results

achieved.

Page 82: Decomposing Waveform Lidar for Individual Tree Species Recognition

62

With the advent of Lidar, many aspects of a forest inventory can now be accom-

plished using this data (Hyyppa et al. 2004, Næsset et al. 2004). While multi-spectral

(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

sufficient to achieve the necessary species identification accuracy.

Many authors have investigated the potential of Lidar data, sometimes mixed with

additional data sources, for species classification. 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

infinite, 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 different classes of objects (Brandt-

berg 2007, Moffiet et al. 2005). Crown shape information is often compared using

parameters of surface models fit 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 instan-

taneous light energy received by the sensor when each peak is detected is typically

referred to as intensity. The measured intensity is affected by several physical traits

such as leaf size, chemistry, and incident angle, which are all affected 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

Page 83: Decomposing Waveform Lidar for Individual Tree Species Recognition

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 ad-

vantage 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 appear-

ance of a wave, and an example of such a waveform can be seen in figure 5.1. If the

waveform shown in figure 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 classification

accuracy the first 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 classification.

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

Page 84: Decomposing Waveform Lidar for Individual Tree Species Recognition

64

Figure 5.1: An example waveform and associated discrete return points. The 60 wave-form samples are shown as circles and a spline fit to these data appears as a solid grayline. A peak detector might detect two peaks at about 345 and 348 meters and returnthe intensity value when the peak is detected as shown with exes. Without knowledgeof future sample values, real time peak detection algorithms usually produce a slightlag in peak location.

Page 85: Decomposing Waveform Lidar for Individual Tree Species Recognition

65

is done by testing classification 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, Washing-

ton. 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 flight

with little planning, significant gaps exist between segments of the flight line. As a

result many of the trees with field 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 field data were collected in a slightly different manner as one would collect infor-

mation if an inventory was required. We segmented tree crowns from the Lidar data

prior to visiting the field so that we could verify that each tree matches its associated

data segment. Several trees of five species were collected in this manner to ensure

that our data were as clean as possible. This segmentation and field data collection

took part in three steps:

1. All waveforms were decomposed into individual peaks using a simple peak-

detection algorithm. This point information was indexed into a voxel array

structure.

Page 86: Decomposing Waveform Lidar for Individual Tree Species Recognition

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 finding algorithm was performed on the waveform data after deconvo-

lution 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 defined 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 file was created to contain

the grid location of all peaks occurring within this grid. The file 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 classification.

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,

Page 87: Decomposing Waveform Lidar for Individual Tree Species Recognition

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 field computer with a built-in GPS receiver. Current position in the field was used

to match voxel cluster outlines to the specimens of individual trees of five native

species: Douglas-fir (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 first 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 identified in the field. These clusters were split

along vertical planes or combined as necessary back at the office. This work was done

in March of 2011, during which hardwoods were still in a leaf-off condition. To avoid

scan angles too far from nadir, we stayed within 60 meters of the flight 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 difficulty 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 final

training data set.

Page 88: Decomposing Waveform Lidar for Individual Tree Species Recognition

68

Table 5.1: Tree height statistics by species of the trees contained in the training data.

Species Count Min. 25th Pct. Median 75th Pct. Max.(m) (m) (m) (m) (m)

BC 24 30.52 36.16 37.67 38.88 42.76BM 22 25.78 26.90 28.54 31.34 35.84DF 29 25.03 31.21 35.35 37.70 40.89RA 28 16.23 22.31 25.23 29.30 35.53RC 27 24.67 29.30 30.66 32.92 38.87

Waveform and Point Extraction

Using the voxel cluster representing each of the trees identified in the field 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 first 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 classification.

Additionally, using the voxel-array indexing, all peaks from the decomposed wave-

forms falling within the voxels of a cluster could be very quickly identified. We re-

tained all information about all peaks contained within the voxel cluster of interest.

5.2.3 Classification 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 first 60 samples of each

waveform collected for all trees. The amplitude of each of the frequencies essentially

Page 89: Decomposing Waveform Lidar for Individual Tree Species Recognition

69

represents the influence 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 first 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 coefficients for frequencies higher than 1/2 cycle per

sample to be the complex conjugates of the coefficeints of lower frequencies. Therefore,

we extracted only the first 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 differs 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 affect 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 classified 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 tree’s foliage to reflect

near-infrared light.

In order to obtain information about both crown shape and reflective properties,

Page 90: Decomposing Waveform Lidar for Individual Tree Species Recognition

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 classifications:

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 first, second, and third peaks recorded

for each pulse.

d12, d13, d23: These are the mean Euclidean distances from first to second, first to

third, and second to third returns across all pulses.

λ: This is the estimated rate parameter of an exponential distribution, with form

f(x) = λe−λx, fit 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 rep-

resentation 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 repre-

senting the smoothness of the crown projection of a tree, with smoother crowns

near the value of one.

Page 91: Decomposing Waveform Lidar for Individual Tree Species Recognition

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 (re-

indexing 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, fit in polar

coordinates to only the centers of the voxel cells in set T, described above

dZ = e(a+b sin(R−c))Θ − 1 (5.2)

where: dZ is the vertical difference 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

quantifications of both the propensity of samples at different distances apart to be

part of peaks and the scale differences 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 reflective crown surface would produce a large first peak and fewer trail-

ing peaks. The ordered intensity statistics (i1, i2, i3), and the distance statistics

(d12, d13, d23 and λ) describe in several dimensions the average distances between

Page 92: Decomposing Waveform Lidar for Individual Tree Species Recognition

72

peaks and the average intensities of those peaks. Any further detail about the re-

lationships 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. Be-

cause 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. There-

fore, 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 difference in scale among the 30 fre-

quencies, 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 decom-

position. The first five components of the rotation of the frequency medians (cm1 to

cm5) as well as the first five components of the IQRs (cq1 to cq5) were then used as

predictor variables in the classifications. The median and the IQR of the of the ampli-

tude of frequency 0 were believed to be especially beneficial, 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 first set, X, contains those variables computed from the wave-

forms 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

Page 93: Decomposing Waveform Lidar for Individual Tree Species Recognition

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 vari-

ates (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 influence 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 Classification

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 anal-

ysis, classification trees, and the neural-network approach, support vector machine

(SVM) classification performed the best overall. SVM is typically used as a kernel-

based 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 classification. The default setting for the γ param-

eter, 1 divided by the number of columns in the predictor matrix, was used because

any adjustments resulted in reduced accuracy. Unable to find any improvements, we

Page 94: Decomposing Waveform Lidar for Individual Tree Species Recognition

74

left all other parameters of the svm function at their default settings.

We tested several predictor groups, individually and in combination, for the clas-

sifications. 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 classi-

fication 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 different classifications for each predictor group.

This was to examine the species differences 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 classification. The seven classifications 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 classification, five-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 five groups of similar size, and these species groups were combined into

five 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 classification was computed as the number of correctly predicted

trees divided by the total number of trees.

Page 95: Decomposing Waveform Lidar for Individual Tree Species Recognition

75

Variable Name

Load

ing

−0.

20.

00.

20.

40.

60.

81.

0

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

Component 1Component 2Component 3

Figure 5.2: Loadings of the first three principal components of the Fourier medianvariables (m1 to m30).

For the classification of all five species, we performed the exact test by Liddell

(1983) to ascertain whether the addition of the Fourier transformation variables sig-

nificantly improved prediction accuracy in classification of all five species. Liddell’s

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).

Page 96: Decomposing Waveform Lidar for Individual Tree Species Recognition

76

5.3 Results

5.3.1 Correlations and Data Reduction

Principal Components of Fourier Variables

The first five 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 first three of these components are displayed in graphical form in figure 5.2. Based

on the factor loadings in this figure, these first 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 reflected 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 fre-

quencies. After centering and scaling the data for each frequency, which removes this

imbalance, the influence of each frequency becomes more equal. Components 2 and

3 measure the influence of the different 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 re-

spectively. Figure 5.3 shows the loadings for the first three components for the IQR

variables (q1 to q30). A similar pattern to what appears in figure 5.2 is displayed here

as well. The first factor measures the mean amplitude, and the second and third

factor compare the frequencies in similar groups.

Page 97: Decomposing Waveform Lidar for Individual Tree Species Recognition

77

Variable Name

Load

ing

−1.

0−

0.6

−0.

20.

20.

4

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

Component 1Component 2Component 3

Figure 5.3: Loadings of the first three principal components of the Fourier interquar-tile range variables (q1 to q30).

Table 5.2: Coefficients from the canonical correlation procedure for the first twocanonical variates of both datasets. Mean and standard deviation of all variables areincluded for reference.

Coefficient CoefficientVar. Mean S.D. U1 U2 Var. Mean S.D. V1 V2

cm1 0.0 5.11 0.013 -0.035 i1 95.8 17.15 0.005 -0.002cm2 0.0 1.65 -0.008 0.013 i2 34.5 6.38 0.005 0.002cm3 0.0 0.68 0.000 -0.017 i3 14.5 4.00 0.004 0.017cm4 0.0 0.51 0.001 -0.090 d12 1.4 0.08 -0.146 0.169cm5 0.0 0.31 -0.014 0.046 d13 2.6 0.15 0.151 -0.309cq1 0.0 4.54 -0.007 0.009 d23 1.3 0.09 -0.167 -0.021

cq2 0.0 2.72 -0.001 0.009 λ 0.3 0.03 -0.119 0.039cq3 0.0 0.82 0.001 -0.000 ptop 0.2 0.07 -0.049 -0.044cq4 0.0 0.62 0.000 -0.005cq5 0.0 0.40 0.014 -0.040m0 11.6 1.60 0.036 0.100q0 3.0 0.64 0.042 -0.036

Page 98: Decomposing Waveform Lidar for Individual Tree Species Recognition

78

Canonical Correlations

The first 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 first 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.

Coefficients from the first two rotations are shown in table 5.2. These first rotations

result in the variates U1, U2, V1, and V2. Given the coefficients and means given in

the table, values of U1 are most influenced 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 influence 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 significant part in V1 and V2, suggesting that some of this information overlaps

between the two variable sets.

5.3.2 Classification Results

The combined variables from the discrete point and waveform datasets worked fairly

well for the classification of the five 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 classification of all species using all variables. Cottonwood

(BC), maple (BM) and Douglas-fir (DF) seem to be most easily separated from the

rest of the species as well as each other. The largest pairwise confusion occurred

Page 99: Decomposing Waveform Lidar for Individual Tree Species Recognition

79

Table 5.3: Confusion matrix for the classification of all five species using all availablepredictor variables from both the discrete point and waveform data.

Predicted ProducerSpecies BC BM DF RA RC AccuracyBC 22 0 0 1 1 91.7BM 1 19 0 1 1 86.4DF 1 1 26 1 0 89.7RA 1 0 2 22 3 78.6RC 1 0 2 2 22 81.5User Accuracy 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 classifications using

each predictor group. In all but two cases, the addition of the twelve Fourier trans-

formation variables improved the accuracy over the eighteen point variables. In the

five species classification, 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 classification 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

differentiating BM from BC and RA. The crown roughness and permeability variables

Page 100: Decomposing Waveform Lidar for Individual Tree Species Recognition

80

Table 5.4: Overall percent classification accuracy results of the support vector machineapplied with a five-fold cross validation to different predictor variable groups andspecies groups.

Species classification groupCO BC BC BM DF

Pred. group All HW HW BM RA RA RC(%) (%) (%) (%) (%) (%) (%)

a - h25, h50, h75, h90 33.1 54.1 59.4 63.0 80.8 72.0 73.2b - i1, i2, i3 53.1 66.2 65.4 80.4 65.4 70.0 96.4

c - d12, d13, d23, λ 40.0 60.8 75.9 84.8 65.4 84.0 51.8d - ptop, rarea 51.5 63.5 65.4 80.4 63.5 76.0 83.9e - pn1, pnt,pnb 46.9 52.7 78.9 58.7 75.0 68.0 71.4f - sa, sb 38.5 55.4 77.4 87.0 50.0 70.0 57.1g - Point 79.2 87.8 85.0 97.8 94.2 88.0 91.1h - cm1, . . . , cm5 57.7 59.5 67.7 69.6 78.8 82.0 89.3i - cq1, . . . , cq5 49.2 50.0 67.7 73.9 63.5 72.0 91.1j - m0, q0 46.9 52.7 75.2 78.3 69.2 64.0 80.4k - Fourier 66.2 71.6 75.9 82.6 88.5 84.0 92.9l - All 85.4 90.5 86.5 97.8 94.2 92.0 94.6

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

classifications. Each of the groups of Fourier transformation variables did better on an

individual basis than most or all of the point variables in the five species classification.

5.4 Discussion

For five species the overall accuracy of just over 85 percent achieved by the com-

bination of point-derived and Fourier transformation variables was relatively high

Page 101: Decomposing Waveform Lidar for Individual Tree Species Recognition

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, Moffiet et al. 2005, Katoh 2004). As shown in figure 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 different 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 neg-

ative aspect of the SVM function is that it can require some fine-tuning for maximal

performance for a given data set. Performing such a customization for several predic-

tor 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 classifications of the two conifers using variables in group

g versus those of group b alone. While such a difference was disturbing to see, we

were not as concerned with individual classification 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 classification of the three hardwoods nearly matched

the 75 percent accuracy reported previously in Vaughn et al. (2010). This is a signif-

icant 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 five species classification was

Page 102: Decomposing Waveform Lidar for Individual Tree Species Recognition

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 classifications, but it does

perform nearly the best for differentiating cottonwood (BC) and alder (RA) and for

differentiating the two conifers, Douglas-fir (DF) and cedar (RC). This indicates that

these variables are actually quite strong as predictors. If other structural information

was not available due to difficulty 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

off nadir. This might explain the observed reversal, as one could imagine scan angle

having a large effect 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 publica-

tions, and similar results have been found before. The intensity information worked

the very best for the classification of all five species as well as for differentiating 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. Moffiet 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 classification studies, were generally unimpressive as an individual predictor

group. The main exception is for the classification of BC and RA, where a classifica-

tion 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 classification with just the

Page 103: Decomposing Waveform Lidar for Individual Tree Species Recognition

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 find little value to

relative height statistics in species classification.

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 differentiating 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 distin-

guishing conifers from hardwoods, but this group of texture variables underperformed

as an individual group in all other classifications. 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 difference is unclear, though there seems to be some asso-

ciation 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 difference. Ø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-

Page 104: Decomposing Waveform Lidar for Individual Tree Species Recognition

84

dimensional texture that is evident in many tree crowns. In high spatial resolution

raster imagery analysis, texture has been considered important for species identifica-

tion (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 tex-

ture is difficult to quantify. We determined that canopy texture, or “roughness”,

could be measured more easily in the voxel representation of the data. As with two-

dimensional 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 cor-

relations. This indicates that we did indeed capture some of the same information

available from the Fourier transformations. However, the remaining information was

influential enough to improve the classification accuracy in most of the species com-

parisons. We expect that a noticeable part of these results may stem from our choice

of variables, and a different choice of variables could lead to a different 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 in-

formation 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

Page 105: Decomposing Waveform Lidar for Individual Tree Species Recognition

85

identification, 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 com-

mercial forest. With the increased density a smaller portion of each tree’s crown

would be uniquely identifiable. Because the waveform information used in this study

only contains one-dimensional information about position from wave start, the den-

sity should not greatly affect the results reported here. However, many of the spatial

variables we used, such as those in groups d , e and f would likely be affected by this

reduced crown visibility. The effects would probably be largest in hardwood stands

because it may be impossible to differentiate two hardwood trees with intermingling

branches and no distinct tops. In such a case, the result would most likely be an in-

crease in the power of waveform information over crown shape information for species

classification.

5.5 Conclusion

We were able to find evidence that waveform information can improve species clas-

sification when compared to information from discrete point data alone. This is not

conclusive evidence because the choice of variables likely has the potential to affect

classification results noticeably. The large number of possible variables makes this a

difficult 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 favor-

ably 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 classification work. However, some of the point-derived variables de-

scribing crown shape would likely lose predictive power when applied to dense forests.

Page 106: Decomposing Waveform Lidar for Individual Tree Species Recognition

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.

Page 107: Decomposing Waveform Lidar for Individual Tree Species Recognition

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 significantly 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 fill 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-fir (Pseudotsuga menziesii

(Mirbel) Franco) and western redcedar (Thuja plicata Donn ex D. Don).

Page 108: Decomposing Waveform Lidar for Individual Tree Species Recognition

88

Table 6.1: Parameters of the aerial waveform Lidar acquisition over the UW Arbore-tum

Parameter ValueProvider Terrapoint, USAInstrument Riegl LMS-Q560Mean pulse frequency 133,000 HertzMean scan frequency 91 HertzScan angle range -30 to 30 degreesWavelength 1550 nmBeam divergence 0.5 mradMean height∗ 310 metersHeight∗ range 145 to 412 metersWaveform digitizing rate 1 nanosecond∗Sensor height above canopy surface.

6.2.2 Lidar Acquisition and Orientation

Terrapoint Aerial Services flew the Riegl LMS-Q500 over the Washington Park Ar-

boretum 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/) dis-

crete 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 wave-

form digitizer output in a proprietary binary format, and the other was a posi-

tion and attitude dataset. The raw waveform data contains the range and inten-

sity 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,

Page 109: Decomposing Waveform Lidar for Individual Tree Species Recognition

89

the orientation of each waveform had to be transformed into the mapping coordi-

nate system by combining both datasets. Cubic-spline interpolation provided by the

GNU Scientific Library (http://www.gnu.org/software/gsl/) was used to inter-

polate 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 rota-

tions. 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 buffer. 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 final 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 final DEM was subtracted from this preliminary

Page 110: Decomposing Waveform Lidar for Individual Tree Species Recognition

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 effort

would be needed to achieve a successful crown segmentation. One of the earliest

published algorithms, that outlined by Hyyppa et al. (2001a), was chosen because it

was simple to implement quickly. This involved applying a low-pass filter 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 filter with a window size of 3 x 3 pixels.

The coefficients for this filter were

1 2 1

2 4 2

1 2 1

/16

unless a null value appeared, in which case the coefficients of null values were ignored

and all other coefficients were scaled to sum to 1.

After filtering, the segmentation algorithm was performed as outlined. The thStep

and thMin parameters from Hyyppa et al. (2001a) were set to 0.1 meters and 3.0

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

Page 111: Decomposing Waveform Lidar for Individual Tree Species Recognition

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 first 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 classification performance under these different data densities. These

reductions were done systematically to simulate what might occur if the instrument

was flown at a higher elevation or the pulse frequency was reduced. The waveforms

were sequentially numbered from one to five based on the order it occurred in the

original data. When five 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 five were removed.

To achieve 60 percent density, all waveforms in groups four and five were removed.

This was continued until only those waveforms in group one remained and waveform

density was 20 percent of the original data.

Classification

Being the main focus of study, the computation of predictor variables from the Fourier

transformations of the waveforms is described in sufficient detail in chapters 3 and

4 to reproduce the results on another dataset. Therefore, no further details will be

given here. Additionally, the classification procedure is fairly simple and defined in

sufficient detail in both chapters.

Page 112: Decomposing Waveform Lidar for Individual Tree Species Recognition

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 effect of a non-

instantaneous 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, nor-

thing, 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 field of points in space represented by the waveform peaks, which will be re-

ferred 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 file 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 file 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

Page 113: Decomposing Waveform Lidar for Individual Tree Species Recognition

93

Table 6.2: Default values for user-defined parameters of the crown segmentation al-gorithm.

Parameter Default valueradmin 2.00FLmax 1.50FLmin 1.00A 4.6BL 3.00BO 7.00W 3.00massmin 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 al-

gorithm 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 file. 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 cluster’s radius as

radi = max

(√rxryni√πli

, radmin

)

FLi

Page 114: Decomposing Waveform Lidar for Individual Tree Species Recognition

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, FLi. 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:

FLi = [(FLmax − FLmin)×modlog (δz, A,BL) + FLmin]

Here, FLmax, FLmin, A, and BL are user-defined constants specified

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 defines the change in x necessary for the

output to change from 0.01 to 0.99 (assuming a positive p1), and B

defines 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 ∗ FVi ∗ FHi

Page 115: Decomposing Waveform Lidar for Individual Tree Species Recognition

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-defined constant. FHi is a

correction factor for horizontal distance distH between the cell center

and cluster centroid.

FHi = modlog (distH , A, BO)

and FVi is computed as a sum of individual corrections for each layer in

the cluster, allowing for new clusters to be created underneath existing

clusters.

FVi =lmax∑

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 it’s neigh-

boring 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).

Page 116: Decomposing Waveform Lidar for Individual Tree Species Recognition

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 flat (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 first 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.

Page 117: Decomposing Waveform Lidar for Individual Tree Species Recognition

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 floor (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 efficiently 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

first 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 classification purposes. It is very common, unless total height varies greatly by

species, to first 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

Page 118: Decomposing Waveform Lidar for Individual Tree Species Recognition

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 first 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 first and second peaks of a waveform, across all waveforms is labeled as d12. The

mean distance between the first 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) = λe−λx

was fit 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 differentiate conifers from hardwoods, it was thought that a combination of

Page 119: Decomposing Waveform Lidar for Individual Tree Species Recognition

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 peak-

points 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 first eight layers of the voxel represen-

tation were projected onto a flat 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 effect on this value, but the default size was fine 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-fir 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 differentiation. To create such a model, the crown centroid

computed from the top eight layers in row and column units (ccol, crow), and the

Page 120: Decomposing Waveform Lidar for Individual Tree Species Recognition

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 difference in layers is recorded as

dZi = Layermax − Layeri

and the following model was fit with the nls function in the R programming language:

dZ = e(a+b×sin(Row−c))Θ − 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 fitting 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

five 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

Page 121: Decomposing Waveform Lidar for Individual Tree Species Recognition

101

Table 6.3: Summary statistics of the predictor variables in group a by species.

Name Species Minimum Q25 Median Q75 Maximumh25 BC 0.2886 0.6373 0.6815 0.7202 0.7551

BM 0.4450 0.6011 0.6875 0.7220 0.7880DF 0.0976 0.5344 0.6199 0.6563 0.7484RA 0.1562 0.4963 0.5517 0.6016 0.7366RC 0.3194 0.4754 0.5467 0.6032 0.7032

h50 BC 0.7085 0.7429 0.7813 0.7950 0.8168BM 0.5906 0.6974 0.7597 0.7891 0.8390DF 0.3667 0.6846 0.7198 0.7495 0.8209RA 0.4684 0.6343 0.6936 0.7101 0.7962RC 0.4794 0.6143 0.6461 0.7013 0.7700

h75 BC 0.8043 0.8183 0.8521 0.8610 0.8863BM 0.6993 0.7766 0.8243 0.8462 0.8871DF 0.6606 0.7832 0.8126 0.8297 0.8831RA 0.6269 0.7608 0.7859 0.8056 0.8546RC 0.6183 0.7324 0.7518 0.7855 0.8374

h90 BC 0.8501 0.8644 0.8962 0.9071 0.9286BM 0.7877 0.8357 0.8699 0.8888 0.9260DF 0.7640 0.8621 0.8763 0.8969 0.9266RA 0.7544 0.8294 0.8624 0.8807 0.9190RC 0.7350 0.8169 0.8392 0.8523 0.8925

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 transfor-

mation variables derived from the waveform data as well as the discrete point variables

used in the classification model of chapter 5.

Page 122: Decomposing Waveform Lidar for Individual Tree Species Recognition

102

Table 6.4: Summary statistics of the predictor variables in group b by species.

Name Species Minimum Q25 Median Q75 Maximumi1 BC 69.0 86.6 98.9 106.7 118.5

BM 71.3 97.5 112.9 127.8 151.2DF 71.7 93.2 98.8 105.6 120.4RA 61.2 83.9 92.4 101.1 125.0RC 72.4 81.3 84.5 88.6 102.2

i2 BC 28.5 32.5 35.7 40.7 49.8BM 22.6 28.7 33.5 36.6 42.1DF 18.8 25.0 28.6 31.5 36.0RA 24.0 34.6 37.9 41.8 50.1RC 23.1 35.8 38.2 40.2 44.4

i3 BC 11.1 13.1 15.1 16.3 21.4BM 6.8 8.6 10.7 13.1 15.9DF 7.5 9.4 11.6 12.8 14.8RA 10.9 14.8 17.6 19.4 23.7RC 9.4 17.3 17.9 19.2 24.8

Page 123: Decomposing Waveform Lidar for Individual Tree Species Recognition

103

Table 6.5: Summary statistics of the predictor variables in group c by species.

Name Species Minimum Q25 Median Q75 Maximumd12 BC 1.345 1.385 1.423 1.444 1.530

BM 1.221 1.274 1.298 1.374 1.534DF 1.346 1.402 1.441 1.495 1.631RA 1.263 1.335 1.364 1.441 1.563RC 1.307 1.379 1.398 1.451 1.548

d13 BC 2.482 2.580 2.639 2.713 2.858BM 2.227 2.321 2.424 2.546 2.805DF 2.413 2.584 2.639 2.714 3.025RA 2.383 2.494 2.573 2.685 2.965RC 2.423 2.568 2.630 2.688 2.891

d23 BC 1.158 1.24 1.286 1.345 1.438BM 1.034 1.099 1.158 1.212 1.376DF 1.109 1.206 1.253 1.296 1.509RA 1.135 1.203 1.239 1.326 1.462RC 1.122 1.207 1.252 1.280 1.432

λ BC 0.306 0.318 0.327 0.380 0.405BM 0.308 0.321 0.356 0.385 0.411DF 0.308 0.315 0.322 0.338 0.389RA 0.304 0.312 0.319 0.327 0.407RC 0.302 0.316 0.322 0.332 0.359

Table 6.6: Summary statistics of the predictor variables in group d by species.

Name Species Minimum Q25 Median Q75 Maximumptop BC 0.0698 0.0956 0.1718 0.2236 0.2417

BM 0.0514 0.1323 0.2088 0.2852 0.3440DF 0.0829 0.2348 0.2483 0.2707 0.3495RA 0.0887 0.2012 0.2195 0.2556 0.3200RC 0.0923 0.1665 0.1791 0.1964 0.2990

rarea BC 0.5313 0.6792 0.7462 0.7848 0.9062BM 0.7262 0.8081 0.8644 0.9185 1.1630DF 0.5238 0.6429 0.7143 0.7761 0.9924RA 0.6042 0.6993 0.7865 0.8155 0.9445RC 0.4889 0.6188 0.6719 0.7723 1.0160

Page 124: Decomposing Waveform Lidar for Individual Tree Species Recognition

104

Table 6.7: Summary statistics of the predictor variables in group e by species.

Name Species Minimum Q25 Median Q75 Maximumpn1 BC 0.0515 0.0896 0.2096 0.3520 0.4092

BM 0.0336 0.0582 0.2231 0.3200 0.3641DF 0.0569 0.3671 0.3861 0.3918 0.4214RA 0.0486 0.2723 0.2942 0.3196 0.3712RC 0.1559 0.3497 0.3632 0.3761 0.4240

pnt BC 0.0040 0.0080 0.0225 0.0470 0.0702BM 0.0025 0.0055 0.0191 0.0323 0.0448DF 0.0041 0.0478 0.0551 0.0646 0.0845RA 0.0030 0.0247 0.0291 0.0361 0.0642RC 0.0119 0.0366 0.0459 0.0497 0.0620

pnb BC 0.0038 0.0084 0.0210 0.0461 0.0619BM 0.0016 0.0043 0.0179 0.0322 0.0416DF 0.0036 0.0424 0.0531 0.0603 0.0766RA 0.0037 0.0218 0.0246 0.0319 0.0727RC 0.0124 0.0367 0.0432 0.0502 0.0618

Table 6.8: Summary statistics of the predictor variables in group f by species.

Name Species Minimum Q25 Median Q75 Maximumsa BC 0.4573 0.5028 0.5313 0.5857 0.7026

BM 0.2163 0.3421 0.3825 0.4835 0.6448DF 0.3631 0.5471 0.5996 0.6422 0.9292RA 0.3450 0.4223 0.4756 0.5423 0.6860RC 0.4160 0.5974 0.6232 0.7004 0.9143

sb BC −0.1223 −0.0496 −0.0017 0.1568 0.3209BM −0.1229 −0.0401 0.0192 0.0515 0.1793DF −0.2487 −0.0058 0.0459 0.0778 0.5832RA −0.4068 −0.0478 0.0157 0.0665 0.3078RC −0.1431 −0.0323 0.0365 0.0656 0.1359

Page 125: Decomposing Waveform Lidar for Individual Tree Species Recognition

105

Table 6.9: Summary statistics of the predictor variables in group h by species.

Name Species Minimum Q25 Median Q75 Maximumcm1 BC −5.869 −4.226 1.109 3.805 7.227

BM −6.546 −0.982 1.638 10.330 22.650DF −6.502 −2.285 −1.050 0.140 5.801RA −7.377 −3.983 −0.280 2.237 6.399RC −5.098 −2.461 −1.062 −0.106 3.464

cm2 BC −1.460 −0.904 −0.442 0.717 2.703BM −2.703 −1.246 −0.933 1.581 6.061DF −3.196 −2.063 −1.547 −0.937 1.801RA −2.456 −0.526 0.244 1.411 3.844RC −0.785 0.180 0.502 1.047 2.095

cm3 BC −0.981 −0.391 −0.088 0.661 1.320BM −1.223 −0.626 −0.351 −0.134 1.203DF −0.719 −0.317 −0.185 −0.055 1.546RA −0.648 −0.275 −0.122 0.264 1.533RC −0.823 −0.370 −0.232 1.212 1.699

cm4 BC −0.440 −0.248 −0.008 0.123 0.792BM −1.515 −0.325 0.041 0.221 0.965DF −1.221 −0.713 −0.346 −0.030 0.537RA −0.585 0.052 0.324 0.790 1.315RC −0.859 −0.102 0.160 0.333 1.120

cm5 BC −0.446 −0.038 0.085 0.277 0.682BM −0.900 −0.204 −0.060 0.095 0.396DF −1.036 −0.214 0.013 0.163 0.351RA −0.691 −0.290 −0.076 0.099 0.631RC −0.445 −0.115 0.109 0.380 0.785

Page 126: Decomposing Waveform Lidar for Individual Tree Species Recognition

106

Table 6.10: Summary statistics of the predictor variables in group i by species.

Name Species Minimum Q25 Median Q75 Maximumcq1 BC −4.326 −1.362 1.549 4.177 8.634

BM −5.248 −2.790 1.085 6.568 15.760DF −6.917 −4.975 −3.538 −2.271 0.850RA −6.122 −2.003 0.582 2.359 6.047RC −6.120 −1.247 −0.341 1.594 10.830

cq2 BC −3.463 0.008 0.447 2.409 3.731BM −10.200 −3.609 −0.668 0.422 2.519DF −3.620 −2.366 −1.688 −0.596 2.329RA −4.157 −0.446 0.539 2.047 8.504RC −2.773 0.627 1.662 2.174 5.550

cq3 BC −1.243 −0.354 −0.070 0.347 1.551BM −0.991 −0.453 0.102 0.932 2.593DF −1.640 −0.351 0.142 0.481 1.867RA −1.838 −0.646 −0.185 0.297 1.423RC −1.744 −0.516 −0.143 0.124 1.155

cq4 BC −1.050 −0.166 0.145 0.660 1.130BM −1.445 −0.256 0.034 0.331 1.147DF −0.752 −0.031 0.166 0.542 1.289RA −2.141 −0.805 −0.152 0.257 0.939RC −1.302 −0.518 −0.166 0.330 1.871

cq5 BC −0.601 −0.172 0.111 0.331 0.775BM −0.462 −0.063 0.083 0.256 1.129DF −0.784 −0.095 0.039 0.286 0.981RA −0.992 −0.379 −0.199 0.115 0.935RC −1.579 −0.333 −0.106 0.099 0.486

Page 127: Decomposing Waveform Lidar for Individual Tree Species Recognition

107

Table 6.11: Summary statistics of the predictor variables in group j by species.

Name Species Minimum Q25 Median Q75 Maximumm0 BC 9.35 10.11 11.63 12.83 13.87

BM 9.11 11.14 12.29 13.92 15.87DF 8.25 10.08 10.68 11.31 12.38RA 8.91 10.93 12.53 13.53 14.23RC 8.65 11.58 11.88 12.59 13.33

q0 BC 2.70 3.18 3.21 3.50 4.14BM 1.95 2.51 2.76 2.91 3.52DF 1.96 2.19 2.45 2.98 3.38RA 2.12 2.79 3.16 3.64 5.66RC 2.27 2.58 2.84 3.18 4.00

Page 128: Decomposing Waveform Lidar for Individual Tree Species Recognition

108

Chapter 7

GENERAL DISCUSSION AND CONCLUSIONS

7.1 Discussion

7.1.1 Utility of waveform information

The classification 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 differences

in data type and selected species. In fact, only a few studies have compared mul-

tiple hardwood (broadleaf deciduous) species with Lidar data. Such comparison is

usually done with quality hyperspatial or hyperspectral data, even though crown seg-

mentation using this data type is more difficult. In fact hardwood classification can

be very difficult to achieve (Saynajoki et al. 2008). Distinguishing three hardwood

species with fair results, 75 to 82 percent, was achieved in chapters 3 and 4. In these

chapters, classification 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 classification 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 classified 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 hard-

wood species. Working in this forest type, very high classification accuracies above

95 percent have been reported (Vauhkonen et al. 2009, Holmgren et al. 2008). Clas-

sification of Douglas-fir and western redcedar in this work is performed to nearly the

Page 129: Decomposing Waveform Lidar for Individual Tree Species Recognition

109

same level. If classification could be performed to this level in practice, models of tree

volume or many other attributes would very likely benefit 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 identified. 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 efforts to sample trees with crown overlap, an increase in stand density

would still likely have a negative affect on the overall classification results of this

study. Under increased density, all variables would be affected 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 affected. 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

difference was not significant 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 different species group classifications shown in table 5.4. This indicates that the

Page 130: Decomposing Waveform Lidar for Individual Tree Species Recognition

110

point arrangement and intensity information that one can obtain from discrete point

data are very important for species classification. 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 no-

tably. 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 different

property of the tree crown in question that may or may not differ sufficiently between

the species in question. For example, several species pairs had very similar surface

shapes such that the surface model parameters were not significantly different. Us-

ing 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 differentiate many combinations of species to a moderate accuracy.

This is important because, as mentioned above, high canopy density might affect

the ability to differentiate individual tree crowns accurately. In such a situation, the

waveform information may be a stronger discriminator of those species which rely on

a clear definition of crown shape for differentiation.

The large number of variables provided by the Fourier transformation of the wave-

forms appear to be redundant. In chapters 3 and 4, only means or variances of about 4

of the 31 frequencies were used by the classification tree to obtain 75 percent accuracy.

In chapter 5, the twelve variables created using the first five principal components of

both the medians and inter-quartile ranges were able to achieve the same accuracy

Page 131: Decomposing Waveform Lidar for Individual Tree Species Recognition

111

or better. This redundancy is likely due to the strong autocorrelation among the fre-

quencies. When plotted over frequency, the median influences (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 different using

a different 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 infinite number of variables to choose from, and in some

cases just small changes to the definition of a variable can have a noticeable effect on

classification results. This is also true for the waveform-derived variables. Because

there is no real way to test for a definite 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 offer 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 classification predictor dataset instead

of those described here. A comparison of techniques would be interesting because

some fine-level information is lost when peaks are modeled with smooth fixed models.

Page 132: Decomposing Waveform Lidar for Individual Tree Species Recognition

112

7.1.2 Other influences

While the waveform data does seem to provide important information for species

classification, 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 modification 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 under-

loaded. Unfortunately for target classification purposes, this adjustment may interfere

with the pattern recognition process. Further, the amount of light energy received

by the sensor is heavily affected 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 differences. This

would have no effect 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 ma-

chine as a classification rule. The support vector machine will often benefit 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. Specific accuracy differences

between two different sets of predictors shown in table 5.4 may be affected by this

omission. However, all conclusions about improvement in classification accuracy with

waveform Lidar variables are derived from general trends in the results and not any

specific 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.

Page 133: Decomposing Waveform Lidar for Individual Tree Species Recognition

113

A third potential influence 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 affects

the classification ability of the discrete point-derived variables. However, this effect

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 affect 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 vari-

ables appearing in groups d and e. Voxel-based segmentation algorithms are new to

the field. 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 flexibility. As demonstrated in Reitberger et al. (2009), this

approach may offer an extended ability to differentiate 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 wave-

form Lidar and its application to species detection or target classification in general.

Page 134: Decomposing Waveform Lidar for Individual Tree Species Recognition

114

Much work has been done using discrete point Lidar or waveform Lidar for tree species

classification, 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 simplifies the extraction of such three-dimensional spatial

information from the data. However, just limiting analysis to this coarse representa-

tion may in turn limit the potential of any classification performed with the data. It

seems that the fine-level patterns contained within the waveform data might indeed

be important for differentiating 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

classification may become available to end-users in the near future.

Page 135: Decomposing Waveform Lidar for Individual Tree Species Recognition

115

BIBLIOGRAPHY

Aldred, A. H. and Hall, J. K. (1975). Application of large-scale photography to a

forest inventory. The Forestry Chronicle, 51(1):9–15.

Andersen, H.-E., Reutebuch, S. E., and McGaughey, R. J. (2006). A rigorous assess-

ment of tree height measurements obtained using airborne Lidar and conventional

field methods. Canadian Journal of Remote Sensing, 32(5):355–366.

Asner, G. P. (1998). Biophysical and biochemical sources of variability in canopy

reflectance. Remote Sensing of Environment, 64(3):234–253.

ASPRS (2010). LAS Specification 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):1135–1144.

Boyd, D. S. and Danson, F. (2005). Satellite remote sensing of forest resources: three

decades of research development. Progress in Physical Geography, 29(1):1–26.

Brandtberg, T. (2002). Individual tree-based species classification in high spatial reso-

lution aerial images of forests using fuzzy sets. Fuzzy Sets and Systems, 132(3):371–

387.

Brandtberg, T. (2007). Classifying individual tree species under leaf-off and leaf-on

conditions using airborne Lidar. ISPRS Journal of Photogrammetry and Remote

Sensing, 61(5):325–340.

Page 136: Decomposing Waveform Lidar for Individual Tree Species Recognition

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):64–73.

Brandtberg, T., Warner, T. A., Landenberger, R. E., and McGraw, J. B. (2003).

Detection and analysis of individual leaf-off tree crowns in small footprint, high

sampling density Lidar data from the eastern deciduous forest in North America.

Remote Sensing of Environment, 85(3):290–303.

Breidenbach, J. and Næsset, E. (2010). Prediction of species specific forest inven-

tory attributes using a nonparametric semi-individual tree crown approach based

on fused airborne laser scanning and multispectral data. Remote Sensing of Envi-

ronment, 114:911–924.

Breiman, L., Friedman, J. H., Olshen, R. A., and Stone, C. J. (1984). Classification

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):102–107.

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):923–932.

Clark, M. L., Roberts, D. A., and Clark, D. B. (2005). Hyperspectral discrimina-

tion of tropical rain forest tree species at leaf to crown scales. Remote Sensing of

Environment, 96(3-4):375–398.

Page 137: Decomposing Waveform Lidar for Individual Tree Species Recognition

117

Cochrane, M. A. (2000). Using vegetation reflectance variability for species level

classification of hyperspectral data. International Journal of Remote Sensing,

21(10):2075–2087.

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):111–121.

Dikshit, O. (1996). Textural classification for ecological research using ATM images.

International Journal of Remote Sensing, 17(5):887–915.

Dimitriadou, E., Hornik, K., Leisch, F., Meyer, D., and Weingessel, A. (2011). e1071:

Misc Functions of the Department of Statistics (e1071), TUWien. 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):509–522.

Everitt, J. and Judd, F. (1989). Using remote sensing techniques to distinguish

and monitor black mangrove (Avicennia germinans). Journal of Coastal Research,

5(4):737–745.

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):946–956.

Page 138: Decomposing Waveform Lidar for Individual Tree Species Recognition

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):463–474.

Franklin, S. E., Hall, R. J., Moskal, L. M., Maudie, A. J., and Lavigne, M. B. (2000).

Incorporating texture into classification of forest species composition from airborne

multispectral images. International Journal of Remote Sensing, 21(1):61–79.

Fung, T., Ma, F. Y., and Siu, W. L. (1998). Hyperspectral data analysis for subtrop-

ical tree species recognition. In Geoscience and Remote Sensing Symposium 1998

(IGARSS ’98) Proceedings, pages 1298–1300 (vol. 3), Seattle, WA, USA. IEEE

International.

Gatziolis, D. (2011). Dynamic range-based intensity normalization for airborne, dis-

crete return Lidar data of forest canopies. Photogrammetric Engineering and Re-

mote Sensing Remote Sensing, 77(3):251–259.

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):337–345.

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):274–284.

Gougeon, F. A. (1995b). Comparison of possible multispectral classification schemes

for tree crowns individually delineated on high spatial resolution MEIS images.

Canadian Journal of Remote Sensing, 21(1):1–9.

Page 139: Decomposing Waveform Lidar for Individual Tree Species Recognition

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). Classification individuelle des arbres a par-

tir d’images a haute resolution spatiale [Individual classification of trees from

high spatial resolution images]. In 6eme Congres de l’Association Quebecoise de

teledetection [6th Congress of the Quebec Association of Remote Sensing], pages

185–196, Sherbrooke, QC, Canada.

Haara, A. and Haarala, M. (2002). Tree species classification using semi-automatic

delineation of trees on aerial images. Scandinavian Journal of Forest Research,

17(6):556–565.

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 1320–1323. IEEE International.

Hedberg, R. (2010). Tree species classification using support vector machine on hy-

perspectral images. Professional, Linkoping University, Linkoping, Sweden.

Heikkinen, V., Tokola, T., Parkkinen, J., Korpela, I., and Jaaskelainen, T. (2010).

Simulated Multispectral Imagery for Tree Species Classification Using Support Vec-

tor 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 classification. International Journal of Applied Earth Observation and

Geoinformation, 13(1):152–160.

Page 140: Decomposing Waveform Lidar for Individual Tree Species Recognition

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

76–85, Edinburgh, UK.

Hofle, B., Hollaus, M., Lehner, H., Pfeifer, N., and Wagner, W. (2008). Area-based

parameterization of forest structure using full-waveform airborne laser scanning

data. In Silvilaser 2008 Proceedings, pages 227–235, Edinburgh, UK.

Hollaus, M., Mucke, W., Hofle, B., Dorigo, W., Pfeifer, N., Wagner, W., Bauerhansl,

C., and Regner, B. (2009). Tree species classification based on full-waveform air-

borne laser scanning data. In Silvilaser 2009 Proceedings.

Holmgren, J. and Persson, A. (2004). Identifying species of individual trees using

airborne laser scanner. Remote Sensing of Environment, 90(4):415–423.

Holmgren, J., Persson, A., and Soderman, U. (2008). Species identification of indi-

vidual trees by combining high resolution Lidar data with multi-spectral images.

International Journal of Remote Sensing, 29(5):1537–1552.

Hyyppa, J., Hyyppa, H., Litkey, P., Yu, X., Haggren, H., Ronnholm, P., Pyysalo, U.,

Pitkanen, J., and Maltamo, M. (2004). Algorithms and methods of airborne laser-

scanning for forest measurements. International Archives of the Photogrammetry,

Remote Sensing and Spatial Information Sciences, 36(8):1682–1750.

Hyyppa, J. and Inkinen, M. (1999). Detecting and estimating attributes for single

trees using laser scanner. The Photogrammetric Journal of Finland, 16(2):27–42.

Hyyppa, J., Kelle, O., Lehikoinen, M., and Inkinen, M. (2001a). A segmentation-based

method to retrieve stem volume estimates from 3-d tree height models produced by

laser scanners. IEEE Transactions on Geoscience and Remote Sensing, 39:969–975.

Page 141: Decomposing Waveform Lidar for Individual Tree Species Recognition

121

Hyyppa, J., Schardt, M., Haggren, H., Koch, B., Lohr, U., Paananen, R., Scher-

rer, H. U., Luukkonen, H., Ziegler, M., Hyyppa, H., Pyysalo, U., Friedlander, H.,

Uuttera, J., Wagner, S., Inkinen, M., Wimmer, A., Kukko, A., Ahokas, E., and

Karjalainen, M. (2001b). HIGH-SCAN: The first European-wide attempt to derive

single-tree information from laserscanner data. The Photogrammetric Journal of

Finland, 17(2):58–68.

Kamagata, N., Akamatsu, Y., Mori, M., and Li, Y. (2005). Comparison of pixel-

based and object-based classifications of high resolution satellite data in urban

fringe areas. In Proceedings of the 26th Asian Conference on Remote Sensing.

Hanoi, Vietnam, pages 7–11, Hanoi, Vietnam.

Kanda, F., Kubo, M., and Muramoto, K. (2004). Watershed segmentation and clas-

sification of tree species using high resolution forest imagery. In Geoscience and

Remote Sensing Symposium 2004 (IGARSS ’04) Proceedings, volume 6, pages 2–5,

Anchorage, Alaska. IEEE International.

Katoh, M. (2004). Classifying tree species in a northern mixed forest using high-

resolution IKONOS data. Journal of Forest Research, 9(1):7–14.

Ke, Y. and Quackenbush, L. J. (2007). Forest species classification and tree crown de-

lineation 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 multispec-

tral imagery and Lidar data for object-based forest species classification. Remote

Sensing of Environment, 114(6):1141–1154.

Page 142: Decomposing Waveform Lidar for Individual Tree Species Recognition

122

Key, T. L. (1998). An evaluation of the relative value of spectral and phenological

information for tree crown classification 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 classification of individual tree species in a temperate hardwood forest. Remote

Sensing of Environment, 75(1):100–112.

Kim, C. and Hong, S.-H. (2008). Identification of tree species from high-resolution

satellite imagery by using crown parameters. In Proceedings of SPIE - Remote Sens-

ing for Agriculture, Ecosystems, and Hydrology X, volume 7104, pages 71040N1–

71040N8, Cardiff, Wales, United Kingdom. International Society for Optical Engi-

neering.

Kim, S. (2007). Individual tree species identification using Lidar- derived crown struc-

tures 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

differentiation using intensity data derived from leaf-on and leaf-off airborne laser

scanner data. Remote Sensing of Environment, 113(8):1575–1586.

Kleinn, C. (2002). New technologies and methodologies for national forest inventories.

Unasylva, 53(210):10–15.

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 Baumarten-

erkennung auf der Grundlage digitalisierter CIR-Luftbilder [Automatic species iden-

tification based on digitized CIR aerial images]. Allgemeine Forst und Jagdzeitung,

173(7/8):131–140.

Page 143: Decomposing Waveform Lidar for Individual Tree Species Recognition

123

Korpela, I., Dahlin, B., Schafer, H., Bruun, E., Haapaniemi, F., Honkasalo, J., Il-

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 estima-

tion. International Archives of the Photogrammetry, Remote Sensing and Spatial

Information Sciences, 36:227–233.

Korpela, I., Ørka, H. O., Hyyppa, J., Heikkinen, V., and Tokola, T. (2010a). Range

and AGC normalization in airborne discrete-return Lidar intensity data for forest

canopies. ISPRS Journal of Photogrammetry and Remote Sensing, 65(4):369–379.

Korpela, I., Ørka, H. O., Maltamo, M., Tokola, T., and Hyyppa, J. (2010b). Tree

species classification using airborne Lidar - effects of stand and tree parameters,

downsizing of training set, intensity normalization, and sensor type. Silva Fennica,

44(2):319–339.

Koukoulas, S. and Blackburn, G. A. (2001). Introducing new indices for accuracy

evaluation of classified images representing semi-natural woodland environments.

Photogrammetric Engineering and Remote Sensing, 67(4):499–510.

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):431–455.

Krahwinkler, P. and Rossmann, J. (2010). Tree Species Classification 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 321–328, Paris, France. EARSel.

Kwak, D.-A., Lee, W.-K., Lee, J.-H., Biging, G. S., and Gong, P. (2007). Detection

Page 144: Decomposing Waveform Lidar for Individual Tree Species Recognition

124

of individual trees and estimation of tree height using Lidar data. Journal of Forest

Research, 12(6):425–434.

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):311–326.

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):355–369.

Li, J., Hu, B., Sohn, G., and Jing, L. (2010). Combination of airborne Lidar and

multispectral data for individual tree species classification in natural boreal forests.

In Silvilaser 2010 Proceedings, page 8, Freiburg, Germany.

Liang, X., Hyyppa, J., and Matikainen, L. (2007). Deciduous-coniferous tree classifi-

cation using difference between first and last pulse laser signatures. International

Archives of the Photogrammetry, Remote Sensing and Spatial Information Sciences,

36:253–257.

Liddell, F. D. K. (1983). Simplified exact analysis of case-referent studies: matched

pairs; dichotomous exposure. Journal of epidemiology and community health,

37(1):82–84.

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):88–106.

Litkey, P., Ronnholm, P., Lumme, J., and Liang, X. (2007). Waveform features for

tree identification. In Proceedings of the ISPRS Workshop: Laser Scanning 2007

and SilviLaser 2007, pages 258–263.

Liu, X., Zhang, Z., Peterson, J., and Chandra, S. (2007). The effect of Lidar data den-

sity on DEM Accuracy. In Proceedings of the MODSIM07 International Congress

Page 145: Decomposing Waveform Lidar for Individual Tree Species Recognition

125

on Modelling and Simulation, pages 1363–1369. Modelling and Simulation Society

of Australia and New Zealand Inc.

Lucy, L. B. (1974). An iterative technique for the rectification of observed distribu-

tions. The Astronomical Journal, 79(6):745–754.

Magnusson, M. (2006). Evaluation of remote sensing techniques for estimation of for-

est variables at stand level. Phd thesis, Swedish University of Agricultural Sciences,

Umea, Sweden.

Mallet, C. and Bretar, F. (2009). Full-waveform topographic Lidar: state-of-the-art.

ISPRS Journal of Photogrammetry and Remote Sensing, 64(1):1–16.

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):93–104.

Martin, M. E., Newman, S. D., Aber, J. D., and Congalton, R. G. (1998). Determin-

ing forest species composition using high spectral resolution remote sensing data.

Remote Sensing of Environment, 65(3):249–254.

Meyer, P., Staenz, K., and Itten, K. I. (1996). Semi-automated procedures for

tree species identification in high spatial resolution data from digitized colour

infrared-aerial photography. ISPRS Journal of Photogrammetry and Remote Sens-

ing, 51(1):5–16.

Mickelson, J., Civco, D., and Silander, J. (1998). Delineating forest canopy species in

the northeastern United States using multi-temporal TM imagery. Photogrammet-

ric Engineering and Remote Sensing, 64(9):891–904.

Moffiet, T., Mengersen, K., Witte, C., King, R., and Denham, R. (2005). Airborne

laser scanning: exploratory data analysis indicates potential variables for classifi-

Page 146: Decomposing Waveform Lidar for Individual Tree Species Recognition

126

cation of individual trees or forest stands according to species. ISPRS Journal of

Photogrammetry and Remote Sensing, 59(5):289–309.

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):332–344.

Morsdorf, F., Meier, E., Allgower, B., and Nuesch, D. (2003). Clustering in airborne

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 cost-

effectiveness of remote sensing for tropical coastal resources assessment and man-

agement. Journal of Environmental Management, 55(3):157–166.

Næsset, E., Gobakken, T., Holmgren, J., Hyyppa, H., Hyyppa, J., Maltamo, M.,

Nilsson, M., Olsson, H., Persson, A., and Soderman, U. (2004). Laser scanning of

forest resources: the Nordic experience. Scandinavian Journal of Forest Research,

19(6):482–499.

Nordin, L. (2006). Analysis of waveform data from airborne laser scanner systems.

Masters thesis, Lulea University of Technology, Lulea, Sweden.

Olofsson, K., Wallerman, J., Holmgren, J., and Olsson, H. (2006). Tree species dis-

crimination using Z/I DMC imagery and template matching of single trees. Scan-

dinavian Journal of Forest Research, 21(Suppl 7):106–110.

Ørka, H. O., Næsset, E., and Bollandsas, O. M. (2007). Utilizing airborne laser inten-

sity for tree species classification. International Archives of the Photogrammetry,

Remote Sensing and Spatial Information Sciences, 36:300–304.

Page 147: Decomposing Waveform Lidar for Individual Tree Species Recognition

127

Ørka, H. O., Næsset, E., and Bollandsas, O. M. (2009). Classifying species of indi-

vidual trees by intensity and structure features derived from airborne laser scanner

data. Remote Sensing of Environment, 113(6):1163–1174.

Packalen, P. (2009). Using airborne laser scanning data and digital aerial photographs

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 ob-

struction surveying using full-waveform data. Journal of Surveying Engineering,

135(2):72–82.

Persson, A. and Holmgren, J. (2002). Detecting and measuring individual trees us-

ing an airborne laser scanner. Photogrammetric Engineering and Remote Sensing,

68(9):925–932.

Persson, A., Soderman, U., Topel, J., and Ahlberg, S. (2005). Visualization and

analysis of full-waveform airborne laser scanner data. International Archives of the

Photogrammetry, Remote Sensing and Spatial Information Sciences, 36(3):103–108.

Pinz, A., Zaremba, M. B., Bischof, H., Gougeon, F. A., and Locas, M. (1993). Neu-

romorphic methods for recognition of compact image objects. Machine Graphics

and Vision, 2(3):209–229.

Pitkanen, J., Maltamo, M., Hyyppa, J., and Yu, X. (2004). Adaptive methods for

individual tree detection on airborne laser based canopy height model. International

Archives of the Photogrammetry, Remote Sensing and Spatial Information Sciences,

XXXVI(8/W2):187–191.

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.

Page 148: Decomposing Waveform Lidar for Individual Tree Species Recognition

128

Popescu, S. C., Wynne, R. H., and Nelson, R. F. (2002). Estimating plot-level tree

heights with Lidar: local filtering with a canopy-height based variable window size.

Computers and Electronics in Agriculture, 37(1-3):71–95.

Pu, R. (2010). Mapping urban forest tree species using IKONOS imagery: preliminary

results. Environmental Monitoring and Assessment, 172:199–214.

Puttonen, E., Litkey, P., and Hyyppa, J. (2009). Individual tree species classification

by illuminated-shaded area separation. Remote Sensing, 2(1):19–35.

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 Pho-

togrammetry, 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 classification. International Archives of the Photogrammetry,

Remote Sensing and Spatial Information Sciences, 36(Part 3):228–233.

Reitberger, J., Krzystek, P., and Stilla, U. (2008). Analysis of full waveform Lidar

data for the classification of deciduous and coniferous trees. International Journal

of Remote Sensing, 29(5):1407–1431.

Reitberger, J., Schnorr, C., Krzystek, P., and Stilla, U. (2009). 3D segmentation of

single trees exploiting full waveform Lidar data. ISPRS Journal of Photogrammetry

and Remote Sensing, 64(6):561–574.

Roller, N. (2000). Intermediate multispectral satellite sensors. Journal of Forestry,

98(6):32–35.

Page 149: Decomposing Waveform Lidar for Individual Tree Species Recognition

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):2205–2225.

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):143–156.

Saynajoki, R., Packalen, P., Maltamo, M., Vehmas, M., and Eerikainen, K. (2008).

Detection of aspens using high resolution aerial laser scanning data and digital

aerial images. Sensors, 8(8):5037–5054.

Schreier, H., Lougheed, J., Tucker, C., and Leckie, D. G. (1985). Automated mea-

surements of terrain reflection and height variations using an airborne infrared laser

system. International Journal of Remote Sensing, 6(1):101–113.

Singleton, R. C. (1969). An algorithm for computing the mixed radix fast Fourier

transform. IEEE Transactions on Audio and Electroacoustics, 17(2):93–103.

Solberg, S., Næsset, E., and Bollandsas, O. M. (2006). Single tree segmentation

using airborne laser scanner data in a structurally heterogeneous spruce forest.

Photogrammetric Engineering and Remote Sensing, 72(12):1369–1378.

Suratno, A., Seielstad, C., and Queen, L. (2009). Tree species identification in mixed

coniferous forest using airborne laser scanning. ISPRS Journal of Photogrammetry

and Remote Sensing, 64(6):683–693.

Thomasson, J. A., Bennett, C. W., Jackson, B. D., and Mailander, M. P. (1994). Dif-

ferentiating bottomland tree species with multispectral videography. Photogram-

metric Engineering and Remote Sensing, 60(1):55–59.

Tomppo, E. and Czaplewski, R. L. (2002). Potential for a remote-sensing-aided forest

resource survey for the whole globe. Unasylva, 53(210):16–18.

Page 150: Decomposing Waveform Lidar for Individual Tree Species Recognition

130

Treitz, P. and Howarth, P. J. (2000). High spatial resolution remote sensing data for

forest ecosystem classification:: an examination of spatial scale. Remote Sensing of

Environment, 72(3):268–289.

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):347–356.

Vauhkonen, J., Tokola, T., Packalen, P., and Maltamo, M. (2009). Identification of

Scandinavian commercial species of individual trees from airborne laser scanning

data using alpha shape metrics. Forest Science, 55:37–47.

Venables, W. N. and Ripley, B. D. (2002). Modern applied statistics with S. Springer

Verlag.

Voss, M. and Sugumaran, R. (2008). Seasonal effect on tree species classification

in an urban environment using hyperspectral data, Lidar, and an object-oriented

approach. Sensors, 8(5):3020–3036.

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):1433–1452.

Wagner, W., Ullrich, A., Ducic, V., Melzer, T., and Studnicka, N. (2006). Gaussian

decomposition and calibration of a novel small-footprint full-waveform digitising

Page 151: Decomposing Waveform Lidar for Individual Tree Species Recognition

131

airborne laser scanner. ISPRS Journal of Photogrammetry and Remote Sensing,

60(2):100–112.

Wagner, W., Ullrich, A., Melzer, T., Briese, C., and Kraus, K. (2004). From single-

pulse to full-waveform airborne laser scanners: potential and practical challenge.

International Archives of Photogrammetry and Remote Sensing, 35:201–206.

Walsh, S. J. (1980). Coniferous tree species mapping using LANDSAT data. Remote

Sensing of Environment, 9(1):11–26.

Wang, L. (2003). Object-based methods for individual tree identification and tree

species classification from high-spatial resolution imagery. Phd thesis, University

of California, Berkeley, Berkeley, CA, USA.

Wolter, P. T., Mladenoff, D. J., Host, G. E., and Crow, T. R. (1995). Improved forest

classification in the Northern Lake States using multi-temporal Landsat imagery.

Photogrammetric Engineering and Remote Sensing, 61(9):1129–1144.

Woodcock, C. E. and Strahler, A. H. (1987). The factor of scale in remote sensing.

Remote Sensing of Environment, 21(3):311–332.

Wulder, M. A., Hall, R. J., Coops, N. C., and Franklin, S. E. (2004). High spa-

tial 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):335–348.

Zhang, W., Hu, B., Jing, L., Woods, M. E., and Courville, P. (2009). Automatic forest

species classification using combined Lidar data and optical imagery. In Geoscience

and Remote Sensing Symposium 2008 (IGARSS ’08) Proceedings, volume 3, pages

134–137. IEEE International.

Page 152: Decomposing Waveform Lidar for Individual Tree Species Recognition

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 layersMAXRC = 4096MAXLAY = 256NA_VAL = -999#Smallest mass that a neighbor must have to incorporate new voxelMIN_MASS = 1.0#Radius of neighbor search windowNEIGHBORHOOD = 8#Radius of area around current voxel for mass calculationMASS_WINDOW = 3#Minimum number of cells a cluster’s direction must cross to combineCROSS_CELLS = 4#Minimum percent of r,c that a cluster cube must overlap to combineOVERLAP = 60#Minimum height above ground for ipointat member functionCROSS_HEIGHT = 2.0#Minimum radius of mass search window around each cluster centroidMIN_RADIUS = 2.0#Minimum number of cluster member cells to avoid deletionMIN_CLUST_SIZE = 50#Minimum height in map units of cluster to avoid deletionMIN_HEIGHT = 5#Minimum ratio of cluster height to width to avoid deletionMIN_RATIO = 0.8 # At least as tall as 80% of width#A (width) and BO (x0) for logistic modifier function FHMASS_WT_WIDTH = 4.6 #Makes logistic slope ~ 2.0MASS_WT_X0 = 7.0#A and BL, FLmax and FLmin for mass radius modifier FLRAD_MULT_WIDTH = MASS_WT_WIDTHRAD_MULT_X0 = 3.0RAD_MULT_MAX = 1.5RAD_MULT_MIN = 1.0#ConstantsSQRT_PI = 1.7724538509055159AW = 9.1902397002691796 # ln(99) - ln(1/99) = 2ln(99)

Page 153: Decomposing Waveform Lidar for Individual Tree Species Recognition

133

A.2 File cellfunctions.py

Miscellaneous functions:

import numpy as Pfrom constants import *

#Functions to convert L, R, C values to a single index, and back againdef cellindex(L,R,C):

#return (L * MAXRC + R)*MAXRC + Creturn (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.shaperrange = [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:

passreturn 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’’’#rowsrows = set(range(cube1[0][1],cube1[1][1]+1)).intersection(

set(range(cube2[0][1],cube2[1][1]+1)))#colscols = 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 notequal unless radii are equal)’’’rad**2 * P.arccos(dis/rad) - dis*P.sqrt(rad**2-dis**2)

def circleoverlap(r1,r2,dist):

Page 154: Decomposing Waveform Lidar for Individual Tree Species Recognition

134

’’’Gives the area of overlap between two circles. Processes eachargument as an array’’’R = float(max(r1,r2))r = float(min(r1,r2))dist = abs(float(dist))if dist >= R+r:

return 0if dist <= R-r:

return P.pi * r**2d1 = (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)

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

Page 155: Decomposing Waveform Lidar for Individual Tree Species Recognition

135

A.3 File cellcluster.py

A python class to hold voxel-members and compute various attributes of those voxel-

members. This class inherits from the set class:

import numpy as Pfrom constants import *from cellfunctions import *

######################################################################class cluster(set):

’’’Contains the voxels associated with the cluster ID in a binarytree 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 = 1self.id = idself.big = P.array([L,R,C])self.small = P.array([L,R,C])self.mycentroid = Noneself.addcell(L, R, C)self.neighbors = set()self.vertborder = 0 #1 if west border, 2 if east borderself.horizborder = 0 #1 if south border, 2 if north borderself.deleted = 0self.combined = Falseself.combinedintome = 0self.imergedinto = -1return

else:return None

def _setbig(self, L, R, C):’’’Set the big corner’’’if L > self.big[0]: self.big[0] = Lif R > self.big[1]: self.big[1] = Rif C > self.big[2]: self.big[2] = Creturn

def _setsmall(self, L, R, C):’’’Set the small corner’’’if L < self.small[0]: self.small[0] = Lif R < self.small[1]: self.small[1] = Rif C < self.small[2]: self.small[2] = Creturn

def _updatecent(self, L, R, C):tmparray = P.array([float(L),float(R),float(C)])if self.mycentroid is None:

self.mycentroid = tmparrayelse:

self.mycentroid = \

Page 156: Decomposing Waveform Lidar for Individual Tree Species Recognition

136

(self.mycentroid*(len(self)-1) + tmparray) / len(self)def setvborder(self, west = True):

self.vertborder = 1 if west else 2def sethborder(self, south = True):

self.horizborder = 1 if south else 2def 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 Nonetry:

self.neighbors = self.neighbors.union(ids)return ids

except:return None

def removeneighbors(self, ids):try:

self.neighbors = self.neighbors - idsreturn 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 thecluster’’’return (self.small, self.big)

def flatten(self):’’’Return an array of 0s and 1s indicating if row and columnare 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 tmparraydef ratio(self,res):

’’’Computes the ratio of height to average of radius’’’dims = self.dims() * resreturn 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 intothis one’’’oldcount = len(self)for item in othercluster:

(l, r, c) = lrcfromindex(item)

Page 157: Decomposing Waveform Lidar for Individual Tree Species Recognition

137

self.addcell(l, r, c)self.addneighbors(othercluster.neighbors)self.combinedintome += 1 + othercluster.combinedintomereturn len(self) - oldcount

def myradius(self, res,minmult, maxmult, slope, x0):

’’’Return the radius at which cells can be added as the radiusof a circle with the same area as my average number of cellsper layer, times a multiplier. The multiplier decreases frommaxmult depending on the number of layers {x} in me so farwith 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) +

minmultreturn max(P.sqrt(area)/SQRT_PI,MIN_RADIUS) * mult

def mass(self, L, R, C, masswindow, res,rmwidth, rmx0, rmmin, rmmax,#For radiuswidth, x0):#For mass

’’’Computes the overlap area between my radius and amasswindow around cell L, R, C. A weight is created that goesfrom 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 inmy cube’’’#Get my representative radiusrad = self.myradius(res, rmmin, rmmax, rmwidth, rmx0)#Get cell horizontal distance from my centroiddistxy = ptdist(P.array((R, C)), self.mycentroid[1:], res[1:])#How much do the two circles overlap at this distancelap = circleoverlap(rad, masswindow, distxy)#Get an array of layer distances from my centroidlrange = range(self.small[0],self.big[0]+1)vecdl = P.abs(P.array(lrange) - L)#Array of weightsvechwt = logistic(vecdl,width,x0)dwt = logistic(distxy,width,x0)return P.sum(lap*vechwt)*dwt

def centroid(self):return self.mycentroid

def direction(self):’’’Computes the vector of top - centroid’’’return P.array(self.mycentroid - self.top)

def dims(self):’’’Gets and array of cube dimensions, (L, R, C)’’’return self.big - self.small + 1

def pointatcells(self,buff = 0):’’’Count the number of grid cells that are intersected by mydirection vector (+/- optional buffer)’’’dirvec = self.direction()#Check for values that would mess us upif dirvec[0] == 0:

return set()

Page 158: Decomposing Waveform Lidar for Individual Tree Species Recognition

138

indexset = set()#Get multiplier for direction vector to move one layerratio = abs(1/dirvec[0])r = int(self.mycentroid[1])c = int(self.mycentroid[2])l = int(self.mycentroid[0])-1checklayers = range(1,int(self.mycentroid[0])+1)for lay in checklayers:

pt = self.mycentroid + dirvec*lay*ratioif 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 = tmprc = tmpcl -= 1

return indexsetdef countmatches(self,indices):

’’’Count how many records in indices match records inmyself’’’#count = 0#for index in indices:# if index in self: count += 1#return countreturn len(self.intersection(indices))

Page 159: Decomposing Waveform Lidar for Individual Tree Species Recognition

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 osimport sysimport argparse as Aimport numpy as Pfrom 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’)

Page 160: Decomposing Waveform Lidar for Individual Tree Species Recognition

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 filevoxelfile = 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 validif voxelheader.NumRows > MAXRC:

print ’Too many rows:’,voxelheader.NumRowssys.exit(3)

if voxelheader.NumCols > MAXRC:print ’Too many columns:’,voxelheader.NumColssys.exit(3)

if voxelheader.NumLayers > MAXLAY:print ’Too many layers:’,voxelheader.NumLayerssys.exit(3)

#If we only want to work with a region of voxel structure (specified#in arguments mincol, minrow, etc.), calculate these boundaries

#Columnif args.mincol is None:

startcol = 0MinX = voxelheader.MinX

else:startcol = args.mincolMinX = voxelheader.MinX + startcol*voxelheader.CellWidthX

Page 161: Decomposing Waveform Lidar for Individual Tree Species Recognition

141

if args.maxcol is None:stopcol = voxelheader.NumCols - 1

else:stopcol = args.maxcol

numcols = stopcol - startcol + 1#Rowif args.minrow is None:

startrow = 0MinY = voxelheader.MinY

else:startrow = args.minrowMinY = voxelheader.MinY + startrow*voxelheader.CellWidthY

if args.maxrow is None:stoprow = voxelheader.NumRows - 1

else:stoprow = args.maxrow

numrows = stoprow - startrow + 1#Layerif args.bottomlayer is None:

stoplayer = 0MinZ = voxelheader.MinZ

else:stoplayer = args.bottomlayerMinZ = 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 membershiptry:

clustergrid = P.ones([numrows,numcols],P.int32) * NA_VALexcept Exception as exc:

print ’Could not create clustergrid. Exception:\n’,excsys.exit(4)

try:abovegrid = P.ones([numrows,numcols],P.int32) * NA_VAL

except Exception as exc:print ’Could not create abovegrid. Exception:\n’,excsys.exit(4)

#Number of voxel cells per layerCELLS_PER_LAYER = voxelheader.NumRows*voxelheader.NumCols

#######################################################################BUILDING#######################################################################Create the list of clustersthe_clusters = []num_cluster_ids = 0num_clusters = 0

Page 162: Decomposing Waveform Lidar for Individual Tree Species Recognition

142

resarray = P.array((voxelheader.LayerHeight,voxelheader.CellWidthY,voxelheader.CellWidthX))

#OKAY, now we go through layer by layer (from top) reading#the locsectionfor 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 clustersfor r in range(startrow,stoprow+1):

for c in range(startcol,stopcol+1):gridr = r - startrowgridc = c - startcol#Check if cell has pointsif curlayer[r*voxelheader.NumCols + c].NumPoints > 0:

#If a cluster has already claimed (R,C),#add this cell to that clusterif 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 dominanceneighbor_clusters = \

get_neighbors(gridr,gridc,NEIGHBORHOOD,abovegrid)

maxmass = 0.0max_neighbor = None#Get the mass of each neighbor over pointfor 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 = tmpmassmax_neighbor = neighbor

#Check if maxmass > MIN_MASSif maxmass > MIN_MASS:

the_clusters[max_neighbor].addcell(l,r,c)clustergrid[gridr,gridc] = max_neighborabovegrid[gridr,gridc] = max_neighbor

else:#Create a new clusterclustergrid[gridr,gridc] = num_cluster_idsabovegrid[gridr,gridc] = num_cluster_idsthe_clusters.append( \

cluster(l,r,c,num_cluster_ids))#Add neighbors and add as neighborthe_clusters[num_cluster_ids].addneighbors( \

neighbor_clusters)

Page 163: Decomposing Waveform Lidar for Individual Tree Species Recognition

143

tmpset = [num_cluster_ids]for neighbor in neighbor_clusters:

the_clusters[neighbor].addneighbors( \tmpset)

num_cluster_ids += 1else:

clustergrid[gridr,gridc] = NA_VALprint ’Done with layer’,l,’clusters:’,num_cluster_ids

#massfile.close()

num_clusters = num_cluster_idsnum_deleted = 0num_combined = 0if 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 belowold_num_combined = -1if args.docombine:

while num_combined != old_num_combined:print ’Starting combination pass, combined so far:’, \

num_combinedold_num_combined = num_combinedfor cluster in the_clusters:

if cluster.deleted > 0 or cluster.combined:continue

#Look at direction vectorcube = cluster.cube()cent = cluster.centroid()direc = cluster.direction() #Dlayers, Drows, Dcolumns#If my radius is greater than 7m, don’t botherif 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 aloneif 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 itfor neighbor in cluster.neighbors:

Page 164: Decomposing Waveform Lidar for Individual Tree Species Recognition

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 biggerif len(n) < len(cluster):

continue#Make sure neighbor engulfs usoverlap = 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 pointerif 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 neighbornum_added = n.combine(cluster)cluster.imergedinto = n.idcluster.combined = Truecluster.deleted = 100num_combined += 1num_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 therenn.removeneighbors([cluster.id])nn.addneighbors([n.id])

#Stop looking for more neighbors to combine withbreak

#if it does not combine, remove clusters that are too small or too#flatif args.dodelete:

for cluster in the_clusters:if not cluster.combined:

#See if we meet min cell countif len(cluster) < MIN_CLUST_SIZE:

cluster.deleted = 1num_deleted += 1num_clusters -= 1

#See if cluster is too wide for how tall it is#Wide = average of colspan and rowspan, Tall = layerspan

Page 165: Decomposing Waveform Lidar for Individual Tree Species Recognition

145

elif cluster.ratio(resarray) < MIN_RATIO:cluster.deleted = 2num_deleted += 1num_clusters -= 1

elif (cluster.big[0]+1)*voxelheader.LayerHeight < \MIN_HEIGHT:

cluster.deleted = 3num_deleted += 1num_clusters -= 1

#Do the dirty work of removing a cluster if neededif cluster.deleted:

for neighbor in cluster.neighbors:n = the_clusters[neighbor]if n.deleted > 0 or n.combined:

continueif 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_clustersif num_clusters < 1:

print ’There are no remaining clusters, stopping’sys.exit(0)

#Write the cluster memberships to fileWRITETOMEMBERFILE(args.memberfile)

#Finally exitsys.exit(0)

Page 166: Decomposing Waveform Lidar for Individual Tree Species Recognition

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 functions*/#define IMAX(a,b) (a) > (b) ? (a) : (b)#define IMIN(a,b) (a) < (b) ? (a) : (b)#define 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));

Page 167: Decomposing Waveform Lidar for Individual Tree Species Recognition

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 C’s*/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 U2’s*/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);

}

Page 168: Decomposing Waveform Lidar for Individual Tree Species Recognition

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 thenpos. deriv)*/

if (intens[index] > 0.1 && !(deriv > 0.1 && prevderiv < 0.1)) {/*If we found a "peak", note it’s 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 it’s dimensions and location*/if( found_peak && cur_mass >= MIN_MASS ) {

peak_indices[num_peaks] = big_index;peak_mass[num_peaks] = cur_mass;

Page 169: Decomposing Waveform Lidar for Individual Tree Species Recognition

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;

}

Page 170: Decomposing Waveform Lidar for Individual Tree Species Recognition

150

B.3 File voxeltest.r

R language implementation of the procedure used to select only waveforms that hit

the tree of interest first.

##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 hitpointsintree <- 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 <- length(cayers);lp <- length(x);lv <- length(vx)if (lw == 0) stop("No cells match cluster id")if (lp < 1) stop("No starting points")if (lv != lp && lv != 1) {

stop("Direction vectors do not match starting points")}

##Recompute Z as a height above DEM##getz pulls the DEM height of location x, ynewz <- 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 centerdist <- 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 Tclose <- which(dist < 3)rows2do <- row(dist)[close]cols2do <- col(dist)[close]

##Distance of each "close" ray start to bottom/top of

Page 171: Decomposing Waveform Lidar for Individual Tree Species Recognition

151

##each "close" cluster cell dim: length(close) X 2dzlowhigh <- 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 Ttestlow <-

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 Ttesthigh <-

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 Tres <- which(apply(tmat,1,any))res

}

Page 172: Decomposing Waveform Lidar for Individual Tree Species Recognition

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 cellmyneighbors <- function(Layers,Rows,Columns) {Nrows <- diff(range(therows <- unique(Rows))) + 1Ncols <- diff(range(thecols <- unique(Columns))) + 1Nlayers <- diff(range(thelayers <- unique(Layers))) + 1

##Convert address to a single indexindices <- (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 <- Layersout$Row <- Rowsout$Column <- Columns##For top and bottom, we add/subtract one layer worth (Nrows*Ncols)##of cell indicesout$bottom[which((indices - Nrows*Ncols) %in% indices)] <- 1out$top[which((indices + Nrows*Ncols) %in% indices)] <- 1##Neighbors to the north or south add or subtract one rowout$south[which((indices - Ncols) %in% indices)] <- 1out$north[which((indices + Ncols) %in% indices)] <- 1##Indices of neighbors to the east/west differ by just oneout$west[which((indices - 1) %in% indices)] <- 1out$east[which((indices + 1) %in% indices)] <- 1out

}

Page 173: Decomposing Waveform Lidar for Individual Tree Species Recognition

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 files 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 trianglespolygonarea <- function(x,y) {##Make sure equal lengthif (length(x) != length(y)) stop("Unequal vector lengths")lp <- length(x)##Test if first point is same as last point, if so discardif (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 variablesnewdata <- 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 <- 0newdata$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 <- 0newdata$pnb05 <- 0

Page 174: Decomposing Waveform Lidar for Individual Tree Species Recognition

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 originalmivi <- matrix(0,length(fielddata$CLUSTERID),2)colnames(mivi) <- c("MI","QI")

##For each cluster ID in the field datafor (cnum in seq(fielddata$CLUSTERID)) {##Save the cluster IDid <- 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 columnWP <- 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 oncefname <- 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 pulsewaves <- waves[which(waves$Range > 50),]##Remove overflows of intensity (recorded as 15434), set to 0waves$Intensity[which(waves$Intensity > 15000)] <- 0##Perform fft on first 60 samples (I think fft function pads##with 0’s 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 ofamps

}))

##Get median by frequencyfmedians[cnum,] <- apply(ffts,2,median)[-1]##Get IQR by frequencyfiqrs[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

Page 175: Decomposing Waveform Lidar for Individual Tree Species Recognition

155

rm(waves)gc()

##DISCRETE POINT VARIABLES

##Group a################################Percentiles of point heightsmaxht <- max(allpoints$Z[WP])sz <- allpoints$Z[WP]/maxhtnewdata[cnum,c(’h25’,’h50’,’h75’,’h90’)] <-

quantile(sz,c(0.25,0.5,0.75,0.9))

##Group b##############################intensity of ordered peaksnewdata$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 numbersortoder <- 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 peakhassecond <- sortpoints$GPSTime[which(sortpoints$Peaknum == 2)]##have third peakhasthird <- sortpoints$GPSTime[which(sortpoints$Peaknum == 3)]##Have both necessary for computationhas12 <- 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 treefirstgood <-

which(sortpoints$GPSTime %in% has12 & sortpoints$Peaknum == 1)##which peaks are 2nd in pulse with 1st and 2nd peaks in treesecondgood <-

which(sortpoints$GPSTime %in% has12 & sortpoints$Peaknum == 2)##difference between ranges of these peaksdists <-

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 distancefirstgood <-

Page 176: Decomposing Waveform Lidar for Individual Tree Species Recognition

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 distancefirstgood <-

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 peakscons <-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, columnW6 <- 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 dataptop <- merge(top6,

allpoints[WP,],by.x=c("Row","Col"),by.y=c("R","C"),##Leave out points in R:C combos w/out tops>6all.y=FALSE)

##Proportion of points within these row:columns near topnewdata$ptop[cnum] <-

Page 177: Decomposing Waveform Lidar for Individual Tree Species Recognition

157

length(which(abs(ptop$Z - ptop$x*0.75) < 1.5))/length(ptop$Z)

##Get outline of first 8 layers, calculate p/a ratiotoplayer <- 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 ofnewdata$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 columncseq05 <- 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-pointsneigh05m <- myneighbors(lcut05,rcut05,ccut05)

##Get proportion with top neighbor onlylenlayer <- 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)) / lenlayernewdata$pn105[cnum] <-

length(which(apply(neigh05m[,4:9],1,sum) == 1)) / lenlayer

##Group f##################################Crown surface model parameters##Get centroid of the highest eight layerscenter8 <- c(L=mean(comb$Layer[WC[top8]]),

R=mean(comb$Row[WC[top8]]),C=mean(comb$Column[WC[top8]]))

Page 178: Decomposing Waveform Lidar for Individual Tree Species Recognition

158

##Compute difference in height for each voxeldz <- 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 surfacecrownmod <- nls(dz~exp((base + slope*sin(rad-shift))*xydist)-1,

start=c(slope=1,base=0,shift=0))##Keep the parametersnewdata$sa[cnum] <- coef(crownmod)[’base’]newdata$sb[cnum] <- coef(crownmod)[’slope’]

}

Page 179: Decomposing Waveform Lidar for Individual Tree Species Recognition

159

B.6 File liddelltest.r

R language code for a Liddell’s 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 McNemar’s test, however the McNemar’s 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 minr <- max(cont[1,2],cont[2,1])s <- min(cont[1,2],cont[2,1])##Compute F-statisticF <- r/(s+1)##Right-tailed probability under F dist##with 2*(s+1) and 2*r degrees of freedompf(F,2*(s+1),2*r,lower=FALSE)

}

Page 180: Decomposing Waveform Lidar for Individual Tree Species Recognition

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.