decomposing waveform lidar for individual tree species recognition
DESCRIPTION
A PhD dissertation by Nicholas Vaughn at the University of WashingtonTRANSCRIPT
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
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:
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
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
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.
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
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
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
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
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
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
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
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
DEDICATION
To my amazing wife, Jilleen and our two boys for
providing me with unending support and inspiration
ix
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
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.
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
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.
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
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.
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
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.
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-
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
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.
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
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
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.
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.
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-
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.
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.
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.
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
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.
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
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
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
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
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
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.
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
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
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
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
32
Figure 3.1: Map of the Washington Park Arboretum with flight path and ground plotlocations.
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
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.
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.
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.
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
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
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
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.
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.
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.
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
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.
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.
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
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
48
Figure 4.2: Map of the Washington Park Arboretum with flight path and ground plotlocations.
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.
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.
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
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
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.
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
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
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
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.
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.
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.
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.
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.
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
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
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.
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.
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,
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.
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
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,
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.
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
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
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
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.
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).
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.
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
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
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
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
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
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
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-
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
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.
86
Regardless, there is good reason to believe that in the near future, the purchase of
one dataset for all forest inventory information needs may be all that is necessary for
forest inventory with tree crown-level species information.
87
Chapter 6
FURTHER DETAIL OF METHODS USED
6.1 Introduction
The technical chapters that follow were written with the intention that they would
be submitted to peer-reviewed journals for publication outside this thesis. As a result
of page limitations set by the publisher, the methods and materials section of chapter
3 was limited in detail. Not much detail was added to the same section in chapter
4. Finally, while chapter 5 is 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).
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,
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
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
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.
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
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
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
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).
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.
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
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
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
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
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.
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
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
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
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
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
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
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
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
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
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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
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
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-
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.
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.
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.
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.
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
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.
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)
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):
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)))
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 = \
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)
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()
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))
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’)
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
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
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)
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:
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
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)
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));
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);
}
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;
149
peak_intens[num_peaks] =intens[big_index] > 1.0 ? intens[big_index] : 1.0;
num_peaks++;}/*Reset*/found_peak = 0;cur_mass = 0.0;big_index = 0;
}}return num_peaks;
}
150
B.3 File voxeltest.r
R language implementation of the procedure used to select only waveforms that hit
the tree of interest 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
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
}
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
}
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
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
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 <-
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] <-
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]]))
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’]
}
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)
}
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.