Skip to content
Tools for analyzing aerial point clouds of forest data.
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.
pyfor Removing debug print statement. May 3, 2019
.travis.yml Generalizing force extent to expansions and contractions. May 3, 2019
License.txt working on watershed segmentation plotting methods and sample Apr 27, 2018
MANIFEST Setting up the setup. Feb 28, 2017
environment.yml A few last edits before merging. Adding more docs to tracking. Apr 20, 2019
setup.cfg Adding some docs, fixing broken test Apr 20, 2019


Documentation | Changelog | Request a Feature | Road Map

pyfor is a Python package that assists in the processing of point cloud data in the context of forest inventory. This includes manipulation of point data, support for analysis, and a memory optimized API for managing large collections of tiles.

Release Status

Current Release: 0.3.4

Release Date: April 20, 2019

Release Status: 0.3 is an adolescent LiDAR data processing package adequate for single tile processing and large acqusitions.

What Does pyfor Do?

and many other tasks. See the documentation for examples and applications.

What about tree segmentation? Please see pyfor's sister package treeseg which is a standalone package for tree segmentation and detection.


miniconda or Anaconda is required for your system before beginning. pyfor depends on many packages that are otherwise tricky and difficult to install (especially gdal and its bindings), and conda provides a quick and easy way to manage many different Python environments on your system simultaneously.

The following bash commands will install this branch of pyfor. It requires installation of miniconda (see above). This will install all of the prerequisites in that environment, named pyfor_env. pyfor depends on a lot of heavy libraries, so expect construction of the environment to take a little time.

git clone
cd pyfor
conda env create -f environment.yml

# For Linux / macOS:
source activate pyfor_env

# For Windows:
activate pyfor_env

pip install .

Following these commands, pyfor should load in the activated Python shell.

import pyfor

If you see no errors, you are ready to process! See the user manual and documentation

A Note on IDEs: One of the draws of pyfor is its 3D and 2D plotting methods. These work best in Jupyter notebooks but also work well in PyCharm interactive consoles (version 2018.1 or greater).


I generally update the master branch every month or so, indicated in the changelog. If you need to update, the process is simple. Navigate to the folder you cloned pyfor in and do the following

# For Linux / macOS:
source activate pyfor_env

# For Windows:
activate pyfor_env

git pull
pip install . --upgrade

Collaboration & Requests

If you would like to contribute, especially those experienced with numba, numpy, gdal, ogr and pandas, please contact me at

I am also willing to implement features on request. Feel free to open an issue with your request or email me at the address above.

pyfor will always remain a free service. Its development takes time, energy and a bit of money to maintain source code and host documentation. If you are so inclined, donations are accepted at the donation button at the top of the readme.

You can’t perform that action at this time.