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.1) [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.
Metadata
Release files for phytospatial 0.5.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| phytospatial-0.5.1.tar.gz | 58.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| phytospatial-0.5.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 127.6 kB
Release files / phytospatial-0.5.1.tar.gz
| Download URL | phytospatial-0.5.1.tar.gz |
|---|---|
| Size | 58.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
df3219173e105642267d1db8fe435633502ec4eeff90944833efcc4e45d39e0b
|
|
BLAKE2b-256 checksum How to use checksums |
8c0bc7fcd0af384e47e1d2c9269f050b2ed6a82f7e05850bc266465cc8a4bb2a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Feb 26, 2026.
Transparency logRelease files / phytospatial-0.5.1-py3-none-any.whl
| Download URL | phytospatial-0.5.1-py3-none-any.whl |
|---|---|
| Size | 69.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
a5f336d60610fecec4c94baf2e3a459a3ef2ee0ddc2dfb0763e61a130d380856
|
|
BLAKE2b-256 checksum How to use checksums |
ee9ad9ed0b02c57ac95dfc854abeb9d599ba25f43b93df751dcfee6460a9ee54
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Feb 26, 2026.
Transparency log