Skip to content

PhenoFit Pro is a Python-based GUI application designed for fitting double logistic models to vegetation index time-series data. It supports interactive curve adjustments, optimization, and visualization of key phenological events like SOS, EOS, and Peak. Ideal for phenology analysis using PhenoCam, Sentinel-2, or PlanetScope data etc.

License

Notifications You must be signed in to change notification settings

ItsAkashPandey/PhenoFit

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

37 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

PhenoFit

**PhenoFit ** is a Python-based interactive GUI tool for fitting double logistic curves to vegetation index time-series data (such as GCC, NDVI, EVI, ExG, RGBVI).
It is designed specifically for crop phenology research using PhenoCam, UAV, or satellite data.

PhenoFit_Pro Screenshot

πŸ“‹ Table of Contents


🌟 Features

  • Double logistic curve fitting with GUI
  • Slider and spin box control of parameters
  • Smart initial parameter estimation
  • SOS, EOS, and Peak annotations
  • Grouping visualization for crop stages
  • Constrained optimization with fallback logic
  • Export of fitted values and plots

🧰 Requirements

  • Python 3.7 or higher
  • Packages:
    • pyqt5
    • matplotlib
    • numpy
    • pandas
    • scipy
    • scikit-learn
    • openpyxl

Install all at once:

pip install -r requirements.txt

πŸ›  Installation

1. Install Python

Go to https://www.python.org/downloads/ and install Python 3.7+

Make sure to check β€œAdd Python to PATH” during installation.


2. Clone the Repository

git clone https://github.com/ItsAkashPandey/PhenoFit.git
cd PhenoFit

3. Install Dependencies

pip install -r requirements.txt

If you face any issues, try using a virtual environment:

python -m venv venv
venv\Scripts\activate    # On Windows
# or
source venv/bin/activate   # On Linux/Mac

pip install -r requirements.txt

πŸš€ Getting Started

Run the Application

python PhenoFit_Pro.py

The GUI will open.


πŸ“š Step-by-Step Usage Guide

1. Load Main Data

  • Click Load Data File
  • Select your .csv or .xlsx file with columns like DAS, GCC, NDVI, etc.
  • Choose X (time axis) and Y (index) columns

2. (Optional) Load Grouping Data

  • Click Load Grouping Data
  • Load an Excel file with:
    • Start column (required)
    • End column (optional)
    • Label (stage names like "Tillering", "Heading")
    • Color (optional)

3. Adjust Parameters

You can:

  • Use sliders for rough tuning
  • Use spin boxes for exact values
  • Lock any parameter using checkboxes

4. Optimize Curve

  • Click Optimize Fit
  • The app will try fitting the best double logistic curve
  • Ensures biologically meaningful constraints like SOS < EOS

5. Visualize SOS, EOS, Peak

Check or uncheck the box: "Show SOS/EOS/Peak" to toggle markers.

6. Export Result

  • Click Download Graph + Excel
  • This will save:
    • .xlsx file with observed + fitted data
    • .png high-res image of the curve

πŸ–Ό Screenshots

1. Opening Window

Opening_Window

2. Load Main Data (Provided in Example Data)

Load Data Screenshot

3. Fit the Curve using parameters/Optimization

Curve Fit Screenshot

4. Load Grouping

Grouping Screenshot

5. Select Grouping Parameters

Grouping Parameters Screenshot

6. Toggle On/Off Parameters (SOS/EOS/Peak in Graph)

Parameters_Toggle Screenshot

7. Save Graph and Fitted Parameters

Saving Screenshot


πŸ“‚ Output Files

  • Excel Output (.xlsx):
    • Sheet 1: Observed + Fitted values
    • Sheet 2: Parameters used
    • Sheet 3: Grouping stages (if provided)
  • PNG Output (.png):
    • High-quality plot image

πŸ“œ License

This project is licensed under the CC BY-NC-ND 4.0 License.
You may use and share this work with proper credit, but modification and commercial use are prohibited without permission.

For commercial inquiries or special permissions, contact:
Akash Kumar – akash_k@ce.iitr.ac.in


πŸ‘€ Author & Contact

Akash Kumar
PhD Scholar, Geomatics Engineering, IIT Roorkee
Research Focus: Remote Sensing, Crop Phenology, PhenoCam, AI
Email: akash_k@ce.iitr.ac.in


πŸ“£ Feedback & Issues

If you find any bug or want a new feature, open an issue at:

πŸ‘‰ https://github.com/ItsAkashPandey/PhenoFit/issues

About

PhenoFit Pro is a Python-based GUI application designed for fitting double logistic models to vegetation index time-series data. It supports interactive curve adjustments, optimization, and visualization of key phenological events like SOS, EOS, and Peak. Ideal for phenology analysis using PhenoCam, Sentinel-2, or PlanetScope data etc.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages