PyCrown - Fast raster-based individual tree segmentation for LiDAR data

Author: Dr Jan Zörner (

Published under GNU GPLv3

The most recent development version lives in the github-repository at:


PyCrown is a Python package for identifying tree top positions in a canopy height model (CHM) and delineating individual tree crowns.

The tree top mapping and crown delineation method (optimized with Cython and Numba), uses local maxima in the canopy height model (CHM) as initial tree locations and identifies the correct tree top positions even in steep terrain by combining a raster-based tree crown delineation approach with information from the digital surface model (DSM) and terrain model (DTM).

Purpose and methods

A number of open-source tools to identify tree top locations and delineate tree crowns already exist. The purpose of this package is to provide a fast and flexible Python-based implementation which builds on top of already well-established algorithms.

Tree tops are identified in the first iteration through local maxima in the smoothed CHM.

We re-implement the crown delineation algorithms from Dalponte and Coomes (2016) in Python. The original code was published as R-package itcSegment ( and was further optimized for speed in the lidR R-package (

Our Cython and Numba implementations of the original algorithm provide a significant speed-up (about 300x) compared to itcSegment and a moderate improvement (about 2-3x) over the version available in the lidR package.

We also adapted the crown algorithm slightly to grow in circular fashion around the tree top which leads to a further improvement of one order of magnitude (about 6000x faster compared to itcSegment and 30x faster as lidR).

We add an additional step to correct for erroneous tree top locations on steep slopes by taking either the high point from the surface model or the centre of mass of the tree crown as new tree top.


Dalponte, M. and Coomes, D.A. (2016) Tree-centric mapping of forest carbon density from airborne laser scanning and hyperspectral data. Methods in Ecology and Evolution, 7, 1236-1245.

Main outputs

  • Tree top locations (stored as 3D ESRI .shp-file)
  • Tree crowns (stored as 2D ESRI .shp-file)
  • Individual tree classification of the 3D point cloud (stored as .las-file)


  • Dr Jan Zörner (Manaaki Whenua - Landcare Research, Lincoln, New Zealand)
  • Dr John Dymond (Manaaki Whenua - Landcare Research, Palmerston North, New Zealand)
  • Dr James Shepherd (Manaaki Whenua - Landcare Research, Palmerston North, New Zealand)
  • Dr Ben Jolly (Manaaki Whenua - Landcare Research, Palmerston North, New Zealand)

Data and Resources

Additional Info

Field Value
Authors Zörner, Jan
Dymond, John
Shepherd, James
Jolly, Ben
Maintainer Jan Zörner
Version 0.1
Last Updated May 30, 2019, 11:05 (NZST)
Created October 3, 2018, 09:12 (NZDT)
Publisher Landcare Research NZ Ltd
Publication Year 2018