**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.
- Features
- Requirements
- Installation
- Getting Started
- Step-by-Step Usage Guide
- Screenshots
- Output Files
- License
- Author & Contact
- 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
- Python 3.7 or higher
- Packages:
- pyqt5
- matplotlib
- numpy
- pandas
- scipy
- scikit-learn
- openpyxl
Install all at once:
pip install -r requirements.txtGo to https://www.python.org/downloads/ and install Python 3.7+
Make sure to check βAdd Python to PATHβ during installation.
git clone https://github.com/ItsAkashPandey/PhenoFit.git
cd PhenoFitpip install -r requirements.txtIf 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.txtpython PhenoFit_Pro.pyThe GUI will open.
- Click Load Data File
- Select your
.csvor.xlsxfile with columns likeDAS,GCC,NDVI, etc. - Choose X (time axis) and Y (index) columns
- Click Load Grouping Data
- Load an Excel file with:
- Start column (required)
- End column (optional)
- Label (stage names like "Tillering", "Heading")
- Color (optional)
You can:
- Use sliders for rough tuning
- Use spin boxes for exact values
- Lock any parameter using checkboxes
- Click Optimize Fit
- The app will try fitting the best double logistic curve
- Ensures biologically meaningful constraints like SOS < EOS
Check or uncheck the box: "Show SOS/EOS/Peak" to toggle markers.
- Click Download Graph + Excel
- This will save:
.xlsxfile with observed + fitted data.pnghigh-res image of the curve
- 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
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
Akash Kumar
PhD Scholar, Geomatics Engineering, IIT Roorkee
Research Focus: Remote Sensing, Crop Phenology, PhenoCam, AI
Email: akash_k@ce.iitr.ac.in
If you find any bug or want a new feature, open an issue at:







