A python package that processes lidar and imagery data in forestry
Project description
About The Project
Phytospatial is a Python toolkit designed to streamline the processing of remote sensing data for forestry and vegetation analysis. It provides tools for handling large hyperspectral rasters, validating vector geometries, and extracting spectral statistics from tree crowns. It also allows for passive-active raster-level fusion via its image processing module.
Key Features
- Memory-Safe Processing: Process massive rasters using windowed reading (via
rasterio) without overloading RAM. - Forestry Focused: Specialized tools for tree crown validation and species labeling.
Getting Started
Installation
To get up and running quickly with pip:
pip install phytospatial
New to Python? Check out our detailed Installation Guide for Conda and Virtual Environment setup.
Usage
Here is a simple example of extracting spectral data from tree crowns using the extract_to_dataframe API, which automatically handles memory management and tiling strategies.
from phytospatial import extract, loaders
# Load tree crowns (returns a standardized Vector object)
crowns = loaders.load_crowns("data/crowns.shp")
# Extract features directly into a pandas DataFrame
# The 'auto' mode automatically selects the best processing strategy
df = extract.extract_to_dataframe(
raster_input="data/image.tif",
vector_input=crowns,
tile_mode="auto"
)
print(df.head())
For a complete workflow, see the Spectral Extraction Tutorial.
Contribute
As an open-source project, we encourage and welcome contributions of students, researchers, or professional developers.
Want to help? Please read our CONTRIBUTING section for a detailed explanation of how to submit pull requests. Please also make sure to read the project's CODE OF CONDUCT.
Not sure how to implement your idea, but want to contribute?
Feel free to leave a feature request here.
Citation
If you use this project in your research, please cite it as:
Grand'Maison, L.-V. (2026). Phytospatial: a python package that processes lidar and imagery data in forestry (0.5.0) [software]. Zenodo. https://doi.org/10.5281/zenodo.18112045
Contact
The project is currently being maintained by Louis-Vincent Grand'Maison.
Feel free to contact me by email or linkedin:
Email - lvgra@ulaval.ca
Linkedin - grandmaison-lv
Acknowledgments & Funding
This software is developed by Louis-Vincent Grand'Maison as part of a PhD project. The maintenance and development of this project is supported by several research scholarships:
- Fonds de recherche du Québec – Nature et technologies (FRQNT) (Scholarship 2024-2025)
- Natural Sciences and Engineering Research Council of Canada (NSERC) (Scholarship 2025-present)
- Université Laval (Scholarship 2024-present)
License
Phytospatial is distributed under the Apache License, Version 2.0.
See the LICENSE file for the full text. This license includes a permanent, world-wide, non-exclusive, no-charge, royalty-free, irrevocable patent license for all users.
See LICENSE for more information on licensing and copyright.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file phytospatial-0.5.0.tar.gz.
File metadata
- Download URL: phytospatial-0.5.0.tar.gz
- Upload date:
- Size: 56.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b923c91365aed945b020d636ae158b69d5675bfab7119a25c263b3e5dfb10e36
|
|
| MD5 |
0cd6ab7beb3a1246e2e5587d7cdba616
|
|
| BLAKE2b-256 |
87f5ab616ae9348f0659300af805794a40abae2cea2ec0bea28274668b6ad632
|
Provenance
The following attestation bundles were made for phytospatial-0.5.0.tar.gz:
Publisher:
publish.yml on Louis-Gm/phytospatial
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
phytospatial-0.5.0.tar.gz -
Subject digest:
b923c91365aed945b020d636ae158b69d5675bfab7119a25c263b3e5dfb10e36 - Sigstore transparency entry: 997984869
- Sigstore integration time:
-
Permalink:
Louis-Gm/phytospatial@1572a560c4b03b6fd3810ca24e6a8220bc3431ae -
Branch / Tag:
refs/tags/v0.5.0 - Owner: https://github.com/Louis-Gm
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@1572a560c4b03b6fd3810ca24e6a8220bc3431ae -
Trigger Event:
release
-
Statement type:
File details
Details for the file phytospatial-0.5.0-py3-none-any.whl.
File metadata
- Download URL: phytospatial-0.5.0-py3-none-any.whl
- Upload date:
- Size: 66.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
95136b630e1a3c8bd756e478181d35def38b59713ca7da2f108d645183d0ee47
|
|
| MD5 |
25592668f46a09ebe98d9af1792b1240
|
|
| BLAKE2b-256 |
b559bf0f64824ccb1d0afc086e6a98466cf5ba6651927c037eece181b3873c7e
|
Provenance
The following attestation bundles were made for phytospatial-0.5.0-py3-none-any.whl:
Publisher:
publish.yml on Louis-Gm/phytospatial
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
phytospatial-0.5.0-py3-none-any.whl -
Subject digest:
95136b630e1a3c8bd756e478181d35def38b59713ca7da2f108d645183d0ee47 - Sigstore transparency entry: 997984963
- Sigstore integration time:
-
Permalink:
Louis-Gm/phytospatial@1572a560c4b03b6fd3810ca24e6a8220bc3431ae -
Branch / Tag:
refs/tags/v0.5.0 - Owner: https://github.com/Louis-Gm
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@1572a560c4b03b6fd3810ca24e6a8220bc3431ae -
Trigger Event:
release
-
Statement type: