Efficient water management is a cornerstone of precision farming. This project utilizes machine learning techniques to predict soil moisture levels, enabling smarter irrigation strategies and reducing dependency on sensors.
- Soil Moisture Prediction: Predict moisture levels at unsensed points using data from a small number of sensors.
- Simulation: Model moisture behavior over time and distance.
- Irrigation Planning: Enable smarter and real-time irrigation strategies.
- Purpose: Predicts moisture levels at fixed distances (2.5 and 3.0 units).
- Algorithm: Voting Regressor combining Decision Tree, Random Forest, and XGBoost.
- Performance: Achieves high accuracy with R-squared scores > 0.99 in most scenarios.
- Purpose: Dynamically predicts moisture levels at any user-specified distance.
- Algorithm: Random Forest Regressor trained on features like time, initial center moisture, and distance.
- Capabilities: Simulates moisture absorption and evaporation over time.
- Visualization: Displays moisture trends at the center, two sensor points, or user-defined distances.
- Inputs: Time and initial center moisture levels.
- Programming: Python
- Libraries: Scikit-learn, XGBoost, Pandas, NumPy
- Visualization: Matplotlib
.
├── soil_moisture_summary.md # Detailed project documentation
├── README.md # Project overview and instructions
├── scripts/ # Python scripts for data preprocessing and modeling
├── plots/ # Visualizations of predictions and simulations
└── data/ # Dataset used for training and testing
- Python 3.7 or later
- Required Python libraries:
pip install -r requirements.txt
- Clone the repository:
git clone https://github.com/your-username/soil-moisture-prediction.git
- Navigate to the project directory:
cd soil-moisture-prediction - Install the required libraries:
pip install -r requirements.txt
- Run the preprocessing and modeling scripts:
python scripts/preprocess_data.py python scripts/train_model.py
- Generate predictions or simulate moisture behavior:
python scripts/predict_moisture.py
- Visualize results:
Check the
plots/directory for generated visualizations.
- Fork the repository.
- Create a new branch:
git checkout -b feature/your-feature-name
- Commit your changes:
git commit -m "Add your message here" - Push to the branch:
git push origin feature/your-feature-name
- Open a pull request.
This project is licensed under the MIT License. See the LICENSE file for details.
For more details, refer to the soil_moisture_summary.md file.