Analysing geography, soil, climate, and yield data to find where crops thrive in Maji Ndogo β groundwork for a farming automation initiative.
# π± Maji Ndogo Agricultural Analysis
### Integrated Project β ALX Data Analytics Programme
> Exploratory data analysis to identify optimal crop-growing conditions across five provinces of Maji Ndogo, as groundwork for an agricultural automation initiative.
---
## π Project Overview
Maji Ndogo is an ambitious farming automation project. Before any technology can be deployed, the right decisions need to be made about **where** to plant **what**. This analysis answers exactly that β using survey data from 5,654 fields across five provinces, covering geography, weather, soil chemistry, and crop performance.
The work involves loading data from a multi-table SQLite database, cleaning it, and running structured analyses to surface the conditions under which each crop performs best.
---
## π Repository Structure
```
ALX-solutions/
β
βββ app.py # Streamlit interactive dashboard
βββ Code_challenge_Integrated_Project_P1_student_version.ipynb # Main analysis notebook
βββ Clean-coding-with-PEP-8.ipynb # PEP 8 coding standards exercise
βββ Introduction_to_NumPy_Exercise.ipynb # NumPy fundamentals exercise
βββ Maji_Ndogo_farm_survey_small.db # SQLite database (4 tables, 5,654 fields)
βββ pyproject.toml # Project dependencies (uv)
βββ uv.lock # Locked dependency versions
βββ commands.txt # Useful dev commands reference
βββ .gitignore
βββ README.md
```
---
## ποΈ Database Schema
The database contains four tables, all joined on `Field_ID`:
| Table | Key Columns | Description |
|---|---|---|
| `geographic_features` | Elevation, Latitude, Longitude, Location, Slope | Where each field is located |
| `weather_features` | Rainfall, Min/Max/Ave temperat β¦