Skip to main content

Package for vegetation trait retrievals with ARTMO-based GPR models from hyperspectral images.

Project description

Logo

PyL2BV

Overview

PyL2BV (Python Level 2B Vegetation) is a Python package for processing ARTMO-based Gaussian Process Regression (GPR) models on hyperspectral images. It enables biophysical parameter retrieval using machine learning models.

Key Features

  • Process hyperspectral images (ENVI Standard, CHIME netCDF)
  • Gaussian Process Regression (GPR) for vegetation parameters
  • Command-Line Interface (CLI) and Graphical User Interface (GUI)
  • Customizable chunk-based retrieval
  • Supports large-scale image processing with parallelization
  • Automated ENVI file and NetCDF exports

Installation Guide

Prerequisites

Ensure you have Python 3.10 or later installed on your system.

Install via PyPI (Coming Soon)

pip install PyL2BV

Install the package directly from GitHub using pip:

pip install git+https://github.com/mv-xion/PyL2BV.git

Creating a Virtual Environment

Using venv

# 1. Create a virtual environment
   python -m venv pyl2bv_env
# 2. Activate the virtual environment:
   source pyl2bv_env/bin/activate  # macOS/Linux
   pyl2bv_env\Scripts\activate    # Windows

Using conda

# 1. Create a new conda environment:
   conda create --name pyl2bv_env python=3.10
# 2. Activate the conda environment:
   conda activate pyl2bv_env

Installing Side-Packages

Once you have activated your virtual environment, install the necessary packages from requirements.txt:

pip install -r requirements.txt

Usage

Using the Python API

Use PyL2BV in Python scripts, below is an example:

from PyL2BV.pyl2bv_code.model_runner import run_retrieval

# Define the input folder path
input_folder_path = "/path/to/your/input_folder"
# Define the input type (assuming it's a required argument)
input_type = "ENVI Standard"
# Define the model folder path
model_folder_path = "/path/to/your/model_folder"
# Define the conversion factor (example value, replace with actual if needed)
conversion_factor = 0.0001
# Define the chunk size based on your memory (example value, replace with actual if needed)
chunk_size = 300

# Run the retrieval
run_retrieval(
    input_folder_path=input_folder_path,
    input_type=input_type,
    model_folder_path=model_folder_path,
    conversion_factor=conversion_factor,
    chunk_size=chunk_size,
    plot=False,
    debug_log=False,
)

Using the Command-Line Interface (CLI)

You can also run the model using the CLI. Below is an example of how to use it:

python -m PyL2BV.cli /path/to/your/input/folder "ENVI Standard" /path/to/your/model/folder 0.0001 300 --plot

The CLI accepts the following arguments:

  • input_folder_path: Path to the input folder
  • input_type: Type of input file
  • model_folder_path: Path to the model folder
  • conversion_factor: Image conversion factor
  • `chunk_size: Retrieval chunk size
  • --plot: Optional flag to enable plotting

GUI Usage

GUI Screenshot

The GUI allows the user to set the following parameters:

  • Input Folder: Select the folder containing the input files.
  • Model Folder: Choose the folder with the required model files.
  • Input Type: Specify the type of input (options include "CHIME netCDF" and "ENVI Standard").
  • Conversion Factor: Set the image conversion factor as needed.
  • Chunk Size: Set the optimal retrieval chunk size factor for your PC.
  • Advanced Settings: The "Plotting results" option can be toggled in this dropdown.

Program Running

When the "Run" button is pressed, the program begins retrieval and opens a progress window for tracking.

Program Running

Outcomes

Below are examples of outcome images generated by the program:

Outcome 1 Outcome 2

After the progress window closes, the user can initiate another retrieval directly from the GUI.

License

This project is licensed under the MIT License - see the LICENSE file for details.

Contributing to PyL2BV

Thank you for your interest in contributing to PyL2BV!
We welcome contributions that help improve the project, whether it's fixing bugs, adding new features, or improving documentation.

  1. Fork the repository on GitHub.
  2. Create a new branch (git checkout -b feature-name)
  3. Commit changes
  4. Push to the branch
  5. Open a Pull Request

Support

For issues, please open a GitHub Issue.

References

ARTMO Toolbox

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

pyl2bv-1.1.2.tar.gz (19.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pyl2bv-1.1.2-py3-none-any.whl (25.4 kB view details)

Uploaded Python 3

File details

Details for the file pyl2bv-1.1.2.tar.gz.

File metadata

  • Download URL: pyl2bv-1.1.2.tar.gz
  • Upload date:
  • Size: 19.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.1.2 CPython/3.10.11 Windows/10

File hashes

Hashes for pyl2bv-1.1.2.tar.gz
Algorithm Hash digest
SHA256 16d8887eb24e302c3a1239c076dd0a14b26dc8842696c09ddc3e92cd29874929
MD5 d73e650957d06e1c0cf271d8229ad06e
BLAKE2b-256 8191e9c5bd28dd6bc9d6ddbdad773f50487573383114175c1c80d13cc0f7f0ac

See more details on using hashes here.

File details

Details for the file pyl2bv-1.1.2-py3-none-any.whl.

File metadata

  • Download URL: pyl2bv-1.1.2-py3-none-any.whl
  • Upload date:
  • Size: 25.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.1.2 CPython/3.10.11 Windows/10

File hashes

Hashes for pyl2bv-1.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 cedb9bba74e6e9738f16c358662e2055c5c9a8fce9449826349293be4639309f
MD5 79130c1080849d7ad5d01adabf10e0df
BLAKE2b-256 963666f7d32d1ad221b984fc67c8555a630c2203c6aa0b6edb6e513d8b7d3a5d

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page