YAML Metadata Warning:empty or missing yaml metadata in repo card
Check out the documentation for more information.
- ๐ฑ ูุธุงู
ุงูุฑู ุงูุฐูู ูู
ูุงุนุจ ูุฑุฉ ุงููุฏู
ูู ุงูุฑูุงุถ
- AI-Powered Irrigation System for Football Stadiums in Riyadh
- ๐ ุฌุฏูู ุงูู
ุญุชููุงุช / Table of Contents
- ๐ฏ ุงูู ู ูุฒุงุช ุงูุฑุฆูุณูุฉ / Key Features
- ๐ ุงูุชุดุบูู ุงูุณุฑูุน / Quick Start
- ุงูุฎุทูุฉ 1๏ธโฃ: ุชุญู ูู ุงูู ุดุฑูุน / Download Project
- ุงูุฎุทูุฉ 2๏ธโฃ: ุชุซุจูุช ุงูู ุชุทูุจุงุช / Install Requirements
- ุงูุฎุทูุฉ 3๏ธโฃ: ุชุดุบูู ุงูู ุดุฑูุน / Run Project
- ุงูุฎุทูุฉ 4๏ธโฃ: ูุชุญ ุงูู ููุน / Open Website
- ุงูุฎุทูุฉ 5๏ธโฃ: ุงุณุชุฎุฏุงู ุงููุธุงู / Use System
- ๐ ุฅููุงู ุงูุชุดุบูู / Stop Running
- ๐ง ุงุณุชูุดุงู ุงูุฃุฎุทุงุก / Troubleshooting
- ๐ ุงูุฏุนู / Support
- ๐ก API Endpoints
- ๐ก ุฃู ุซูุฉ ุงูุงุณุชุฎุฏุงู / Usage Examples
- ๐ ุงูุจูุงูุงุช / Data
- ๐ ๏ธ ุงูุชูููุงุช ุงูู ุณุชุฎุฏู ุฉ / Technologies
- ๐ ูููู ุงูู
ุดุฑูุน / Project Structure
- ๐ ุงูุชูุซูู / Documentation
- ๐จ ููุทุงุช ุงูุดุงุดุฉ / Screenshots
- โ ุงูุฃุณุฆูุฉ ุงูุดุงุฆุนุฉ / FAQ
- ุณ1: ูู ูุนู ู ุงููุธุงู ุจุฏูู ุฅูุชุฑูุชุ
- ุณ2: ููู ูุชู ุญุณุงุจ ุงุญุชูุงุฌุงุช ุงูู ูุงูุ
- ุณ3: ู ุง ู ุฏู ุฏูุฉ ุงูุชูุจุคุงุชุ
- ุณ4: ูู ุงุฐุง ุชุฎุชูู ุฃููุงุช ุงูุฑูุ
- ุณ5: ูู ูู ูู ุฅุถุงูุฉ ู ูุงุนุจ ุฌุฏูุฏุฉุ
- ุณ6: ูู ูู ูู ุชุบููุฑ ู ุณุงุญุฉ ุงูู ูุนุจุ
- ุณ7: ููู ุฃุญุฏูุซ ุจูุงูุงุช ุงูุทูุณุ
- ุณ8: ูู ูุฏุนู ุงููุธุงู ูุบุงุช ุฃุฎุฑูุ
- ุณ9: ููู ุฃูุดุฑ ุงููุธุงู ุนูู ุงูุฅูุชุฑูุชุ
- ุณ10: ูู ูู ูู ุงุณุชุฎุฏุงู ุงููุธุงู ูู ุญุงุตูู ุฃุฎุฑูุ
- ๐ ุงูุชุญุฏูุซุงุช ุงูู
ุณุชูุจููุฉ / Future Updates
- ๐ค ุงูู ุณุงูู ุฉ / Contributing
- ๐ ุดูุฑ ูุชูุฏูุฑ / Acknowledgments
- ๐ ุฑูุงุจุท ู ููุฏุฉ / Useful Links
- ๐ ุงูุฅุญุตุงุฆูุงุช / Statistics
- ๐ธ ู ุนุฑุถ ุงูุตูุฑ / Gallery
- ๐ ุชุนูู ุงูู ุฒูุฏ / Learn More
- ๐ ุฌุฏูู ุงูู
ุญุชููุงุช / Table of Contents
๐ฑ ูุธุงู ุงูุฑู ุงูุฐูู ูู ูุงุนุจ ูุฑุฉ ุงููุฏู ูู ุงูุฑูุงุถ
AI-Powered Irrigation System for Football Stadiums in Riyadh
ูุธุงู ุฐูู ูุณุชุฎุฏู ุชุนูู ุงูุขูุฉ ููุชูุจุค ุจุงุญุชูุงุฌุงุช ุงูุฑู ูู ูุงุนุจ ูุฑุฉ ุงููุฏู ูู ุงูุฑูุงุถ ุจูุงุกู ุนูู ุจูุงูุงุช ุงูุทูุณ.
An intelligent system using machine learning to predict irrigation needs for football stadiums in Riyadh based on weather data.
๐ ุฌุฏูู ุงูู ุญุชููุงุช / Table of Contents
- ๐ฏ ุงูู ู ูุฒุงุช ุงูุฑุฆูุณูุฉ
- ๐ ุงูุชุดุบูู ุงูุณุฑูุน
- ๐ง ุงุณุชูุดุงู ุงูุฃุฎุทุงุก
- ๐ก API Endpoints
- ๐ ุงูุจูุงูุงุช
- ๐ ๏ธ ุงูุชูููุงุช ุงูู ุณุชุฎุฏู ุฉ
- ๐ ูููู ุงูู ุดุฑูุน
- ๐ ุงูุชูุซูู
- ๐จ ููุทุงุช ุงูุดุงุดุฉ
- ๐ ุงูุชุฑุฎูุต
๐ฏ ุงูู ู ูุฒุงุช ุงูุฑุฆูุณูุฉ / Key Features
๐ค ูู ูุฐุฌ ุชุนูู ุขูู ู ุชูุฏู
- ุฏูุฉ 99.3% ูู ุงูุชูุจุค ุจุงุญุชูุงุฌุงุช ุงูุฑู
- ุงุณุชุฎุฏุงู ุฎูุงุฑุฒู ูุฉ Random Forest
- ุชุฏุฑูุจ ุนูู 12+ ุณูุฉ ู ู ุจูุงูุงุช ุงูุทูุณ (4,689 ููู )
- ุญุณุงุจ ET0 ู ETc ุจุงุณุชุฎุฏุงู ู ุนุงุฏูุฉ FAO Penman-Monteith
๐ก๏ธ ุจูุงูุงุช ุทูุณ ูุงูุนูุฉ
- ุชุบูุฑุงุช ููู ูุฉ ูู ุฏุฑุฌุฉ ุงูุญุฑุงุฑุฉ ูุงูุฑุทูุจุฉ
- ุงุญุชู ุงููุฉ ุฃู ุทุงุฑ (5% ูู ุงูุดุชุงุกุ 1% ูู ุงูุตูู)
- ู ุญุงูุงุฉ ูุงูุนูุฉ ููุธุฑูู ุงูุฌููุฉ
โฐ ุฃููุงุช ุฑู ุฐููุฉ
- 3 ุฌูุณุงุช (05:00, 12:00, 19:00) - ุนูุฏู ุง ุชููู ุงูุญุฑุงุฑุฉ > 40ยฐC ูุงูุฑุทูุจุฉ < 20%
- 2 ุฌูุณุงุช (05:00, 19:00) - ุนูุฏู ุง ุชููู ุงูุญุฑุงุฑุฉ > 35ยฐC ุฃู ุงูุฑุทูุจุฉ < 25%
- 1 ุฌูุณุฉ (06:00) - ูู ุงูุธุฑูู ุงูู ุนุชุฏูุฉ
๐ ุงุฎุชูุงุฑ ู ุฑู ููุชูุงุฑูุฎ
- ุนุฏุฉ ุฃูุงู : ุงุฎุชุฑ 3ุ 7ุ 14ุ ุฃู 30 ููู
- ููู ู ุญุฏุฏ: ุงุฎุชุฑ ุฃู ููู ุญุชู 30 ููู ูุงุฏู
- ุนุฑุถ ุชูุตููู ููุทูุณ ุงูู ุชููุน ููู ููู
๐๏ธ ู ุฑุงูุจุฉ 6 ู ูุงุนุจ ุฑุฆูุณูุฉ
- ู ูุนุจ ุงูู ูู ููุฏ ุงูุฏููู
- ู ูุนุจ ุงูุฃู ูุฑ ููุตู ุจู ููุฏ
- ู ูุนุจ ุงูุฃู ูุฑ ุนุจุฏุงููู ุงูููุตู
- ู ูุนุจ ุงูู ูู ุณุนูุฏ ุงูุฌุงู ุนู
- ู ูุนุจ ุงูุฃู ูุฑ ุณุนูุฏ ุจู ุฌููู
- ู ูุนุจ ุงูุฃู ูุฑ ุชุฑูู ุจู ุนุจุฏุงูุนุฒูุฒ
๐ ุงูุชุดุบูู ุงูุณุฑูุน / Quick Start
ุงูุฎุทูุฉ 1๏ธโฃ: ุชุญู ูู ุงูู ุดุฑูุน / Download Project
ุงูุทุฑููุฉ ุงูุฃููู: ุงุณุชุฎุฏุงู Git
# Clone the repository
git clone https://github.com/M-craspo/riyadh-pitch-ai-irrigation.git
# ุงูุฏุฎูู ุฅูู ู
ุฌูุฏ ุงูู
ุดุฑูุน
cd riyadh-pitch-ai-irrigation
ุงูุทุฑููุฉ ุงูุซุงููุฉ: ุชุญู ูู ZIP
- ุงุฐูุจ ุฅูู: https://github.com/M-craspo/riyadh-pitch-ai-irrigation
- ุงุถุบุท ุนูู ุงูุฒุฑ ุงูุฃุฎุถุฑ "Code"
- ุงุฎุชุฑ "Download ZIP"
- ูู ุงูุถุบุท ุนู ุงูู ูู
- ุงูุชุญ Terminal/CMD ูู ู ุฌูุฏ ุงูู ุดุฑูุน
ุงูุฎุทูุฉ 2๏ธโฃ: ุชุซุจูุช ุงูู ุชุทูุจุงุช / Install Requirements
ุงูู ุชุทูุจุงุช ุงูุฃุณุงุณูุฉ / Prerequisites
ุชุฃูุฏ ู ู ุชุซุจูุช:
- โ Python 3.8+ - ุชุญู ูู Python
- โ Node.js 18+ - ุชุญู ูู Node.js
- โ pip (ูุฃุชู ู ุน Python)
- โ npm (ูุฃุชู ู ุน Node.js)
ุชุซุจูุช ู ูุชุจุงุช Backend (Python)
# ุงูุฏุฎูู ุฅูู ู
ุฌูุฏ Backend
cd irrigation_model
# ุชุซุจูุช ุงูู
ูุชุจุงุช ุงูู
ุทููุจุฉ
pip install -r requirements.txt
# ุฃู ุงุณุชุฎุฏู
pip3 ุฅุฐุง ูุงู ูุฏูู Python 2 ู 3
pip3 install -r requirements.txt
# ุงูุนูุฏุฉ ุฅูู ุงูู
ุฌูุฏ ุงูุฑุฆูุณู
cd ..
ุงูู ูุชุจุงุช ุงูุชู ุณูุชู ุชุซุจูุชูุง:
- Flask (REST API)
- scikit-learn (Machine Learning)
- pandas (Data Processing)
- numpy (Numerical Computing)
- flask-cors (CORS Support)
ุชุซุจูุช ู ูุชุจุงุช Frontend (Node.js)
# ุงูุฏุฎูู ุฅูู ู
ุฌูุฏ Frontend
cd frontend
# ุชุซุจูุช ุงูู
ูุชุจุงุช ุงูู
ุทููุจุฉ
npm install
# ุงูุนูุฏุฉ ุฅูู ุงูู
ุฌูุฏ ุงูุฑุฆูุณู
cd ..
ุงูู ูุชุจุงุช ุงูุชู ุณูุชู ุชุซุจูุชูุง:
- React 18
- TypeScript
- Vite
- TanStack Query
- Tailwind CSS
- shadcn/ui components
- Lucide React (Icons)
ุงูุฎุทูุฉ 3๏ธโฃ: ุชุดุบูู ุงูู ุดุฑูุน / Run Project
โจ ุงูุทุฑููุฉ ุงูุฃููู: ุณูุฑูุจุช ุชููุงุฆู (ุงูุฃุณูู)
ุนูู macOS/Linux:
# ุฅุนุทุงุก ุตูุงุญูุฉ ุงูุชูููุฐ
chmod +x start.sh
# ุชุดุบูู ุงูุณูุฑูุจุช
./start.sh
ุนูู Windows:
# ุชุดุบูู Backend
start cmd /k "cd irrigation_model && python api.py"
# ุชุดุบูู Frontend (ูู ูุงูุฐุฉ ุฌุฏูุฏุฉ)
start cmd /k "cd frontend && npm run dev"
๐ง ุงูุทุฑููุฉ ุงูุซุงููุฉ: ูุฏููุงู (ุฎุทูุฉ ุจุฎุทูุฉ)
1. ุชุดุบูู Backend (ูุงูุฐุฉ Terminal ุฃููู):
# ุงูุฏุฎูู ุฅูู ู
ุฌูุฏ Backend
cd irrigation_model
# ุชุดุบูู API Server
python3 api.py
# ุฃู ุงุณุชุฎุฏู
python ุจุฏูุงู ู
ู python3
python api.py
โ ุณุชุธูุฑ ุฑุณุงูุฉ:
* Running on http://127.0.0.1:5001
* Model loaded successfully!
* Ready to serve predictions
ุงูุฎุงุฏู
ุณูุนู
ู ุนูู: http://localhost:5001
2. ุชุดุบูู Frontend (ูุงูุฐุฉ Terminal ุซุงููุฉ - ุฌุฏูุฏุฉ):
# ุงูุชุญ ูุงูุฐุฉ Terminal ุฌุฏูุฏุฉ
# ุงูุฏุฎูู ุฅูู ู
ุฌูุฏ Frontend
cd frontend
# ุชุดุบูู Development Server
npm run dev
โ ุณุชุธูุฑ ุฑุณุงูุฉ:
VITE v5.4.19 ready in 170 ms
โ Local: http://localhost:8080/
โ Network: http://192.168.x.x:8080/
ุงูู
ููุน ุณูุนู
ู ุนูู: http://localhost:8080
ุงูุฎุทูุฉ 4๏ธโฃ: ูุชุญ ุงูู ููุน / Open Website
- ุงูุชุญ ุงูู ุชุตูุญ (Chrome, Firefox, Safari, Edge)
- ุงุฐูุจ ุฅูู: http://localhost:8080
- ุณุชุธูุฑ ูู ูุงุฌูุฉ ูุธุงู ุงูุฑู ุงูุฐูู! ๐
ุงูุฎุทูุฉ 5๏ธโฃ: ุงุณุชุฎุฏุงู ุงููุธุงู / Use System
๐ ุนุฑุถ ุงูุจูุงูุงุช ุงูุญุงููุฉ
- ุณุชุฌุฏ 6 ุจุทุงูุงุช ูู ูุงุนุจ ุงูุฑูุงุถ ุงูุฑุฆูุณูุฉ
- ูู ุจุทุงูุฉ ุชุนุฑุถ:
- ๐ก๏ธ ุฏุฑุฌุฉ ุงูุญุฑุงุฑุฉ ุงูุญุงููุฉ
- ๐ง ุงูุฑุทูุจุฉ ุงูุญุงููุฉ
- ๐ฆ ุงุญุชูุงุฌุงุช ุงูู ูุงู (mยณ ููุชุฑ)
- โฐ ุฌูุณุงุช ุงูุฑู (ุงูููุชุ ุงููู ูุฉุ ุงูู ุฏุฉ)
๐ ุงุฎุชูุงุฑ ุงูุชุงุฑูุฎ
ูู ูู ุจุทุงูุฉ ู ูุนุจุ ุณุชุฌุฏ ูุณู "ุฌุฏูู ุงูุฑู ุงูู ุณุชูุจูู":
ุฎูุงุฑ 1: ุนุฏุฉ ุฃูุงู
- ุงุถุบุท ุนูู ุฒุฑ "ุนุฏุฉ ุฃูุงู "
- ุงุฎุชุฑ ุนุฏุฏ ุงูุฃูุงู : 3ุ 7ุ 14ุ ุฃู 30 ููู
- ุงุถุบุท "ุนุฑุถ ุงูุฌุฏูู"
- ุณุชุธูุฑ ุฌุฏูู ุชูุตููู ููู ููู
ู
ุน:
- ุงูุชุงุฑูุฎ ูุงูููู
- ุงูุทูุณ ุงูู ุชููุน (ุญุฑุงุฑุฉุ ุฑุทูุจุฉุ ุฃู ุทุงุฑ)
- ุงุญุชูุงุฌุงุช ุงูู ูุงู
- ุฌูุณุงุช ุงูุฑู
ุฎูุงุฑ 2: ููู ู ุญุฏุฏ
- ุงุถุบุท ุนูู ุฒุฑ "ููู ู ุญุฏุฏ"
- ุงุฎุชุฑ ุงูุชุงุฑูุฎ ู ู ุงูุชูููู (ุญุชู 30 ููู ูุงุฏู )
- ุงุถุบุท "ุนุฑุถ ุงูุชูุจุค"
- ุณุชุธูุฑ ุชูุงุตูู ุงูููู ุงูู ุญุฏุฏ ููุท
๐ ุฅููุงู ุงูุชุดุบูู / Stop Running
ูุฅููุงู ุงูุฎูุงุฏู :
- ุงุถุบุท
Ctrl + Cูู ูู ูุงูุฐุฉ Terminal - ุฃู ุฃุบูู ููุงูุฐ Terminal ู ุจุงุดุฑุฉ
๐ง ุงุณุชูุดุงู ุงูุฃุฎุทุงุก / Troubleshooting
โ ู ุดููุฉ: Backend ูุง ูุนู ู
ุงูุฎุทุฃ: ModuleNotFoundError: No module named 'flask'
ุงูุญู:
cd irrigation_model
pip install -r requirements.txt
ุงูุฎุทุฃ: Port 5001 is already in use
ุงูุญู:
# ุนูู macOS/Linux
lsof -ti:5001 | xargs kill -9
# ุนูู Windows
netstat -ano | findstr :5001
taskkill /PID <PID_NUMBER> /F
ุงูุฎุทุฃ: python: command not found
ุงูุญู:
- ุงุณุชุฎุฏู
python3ุจุฏูุงู ู ูpython - ุฃู ูู ุจุชุซุจูุช Python ู ู: https://www.python.org/downloads/
โ ู ุดููุฉ: Frontend ูุง ูุนู ู
ุงูุฎุทุฃ: npm: command not found
ุงูุญู:
- ูู ุจุชุซุจูุช Node.js ู ู: https://nodejs.org/
ุงูุฎุทุฃ: Port 8080 is already in use
ุงูุญู:
# ุนูู macOS/Linux
lsof -ti:8080 | xargs kill -9
# ุนูู Windows
netstat -ano | findstr :8080
taskkill /PID <PID_NUMBER> /F
ุฃู ุบููุฑ ุงูู
ููุฐ ูู frontend/vite.config.ts:
server: {
port: 3000, // ุบููุฑ ุฅูู ู
ููุฐ ุขุฎุฑ
}
ุงูุฎุทุฃ: Failed to fetch ูู ุงูู
ุชุตูุญ
ุงูุญู:
- ุชุฃูุฏ ู
ู ุชุดุบูู Backend ุนูู
http://localhost:5001 - ุงูุชุญ
http://localhost:5001/api/healthูู ุงูู ุชุตูุญ - ูุฌุจ ุฃู ุชุฑู:
{"status": "healthy", "model_loaded": true}
โ ู ุดููุฉ: ุงูุจูุงูุงุช ูุง ุชุธูุฑ
ุงูุญู:
- ุงูุชุญ Developer Tools ูู ุงูู ุชุตูุญ (F12)
- ุงุฐูุจ ุฅูู ุชุจููุจ Console
- ุงุจุญุซ ุนู ุฃุฎุทุงุก ุจุงูููู ุงูุฃุญู ุฑ
- ุชุฃูุฏ ู ู ุฃู Backend ูุนู ู
- ุชุฃูุฏ ู ู ุฃู Frontend ู ุชุตู ุจู Backend
โ ู ุดููุฉ: ุงูุชุงุฑูุฎ ุงูู ุญุฏุฏ ูุง ูุนู ู
ุงูุญู:
- ุชุฃูุฏ ู ู ุงุฎุชูุงุฑ ุชุงุฑูุฎ ุจูู ุงูููู ู 30 ููู ูุงุฏู
- ุชุฃูุฏ ู ู ุงูุถุบุท ุนูู ุฒุฑ "ุนุฑุถ ุงูุชูุจุค"
- ุชุญูู ู ู Console ูู ุงูู ุชุตูุญ
๐ ุงูุฏุนู / Support
ุฅุฐุง ูุงุฌูุช ุฃู ู ุดููุฉ:
- ุชุญูู ู ู ูุณู ุงุณุชูุดุงู ุงูุฃุฎุทุงุก ุฃุนูุงู
- ุงูุชุญ Issue ุนูู GitHub: https://github.com/M-craspo/riyadh-pitch-ai-irrigation/issues
- ูุฏู
ู
ุนููู
ุงุช ุนู:
- ูุธุงู ุงูุชุดุบูู (Windows/macOS/Linux)
- ุฅุตุฏุงุฑ Python (
python --version) - ุฅุตุฏุงุฑ Node.js (
node --version) - ุฑุณุงูุฉ ุงูุฎุทุฃ ุงููุงู ูุฉ
- ููุทุฉ ุดุงุดุฉ ุฅู ุฃู ูู
๐ก API Endpoints
1. ุงูุชูุจุค ูููู ูุงุญุฏ
POST /api/predict
Content-Type: application/json
{
"T2M_MIN": 20,
"T2M_MAX": 39,
"RH2M": 20,
"WS2M": 2.5
}
2. ุฌุฏูู ุนุฏุฉ ุฃูุงู
POST /api/schedule
Content-Type: application/json
{
"days": 7,
"current_weather": {
"T2M_MIN": 20,
"T2M_MAX": 39,
"RH2M": 20,
"WS2M": 2.5
}
}
3. ุงูุชูุจุค ุจููู ู ุญุฏุฏ
POST /api/predict-date
Content-Type: application/json
{
"date": "2025-11-30",
"current_weather": {
"T2M_MIN": 20,
"T2M_MAX": 39,
"RH2M": 20,
"WS2M": 2.5
}
}
4. ูุญุต ุตุญุฉ ุงููุธุงู
GET /api/health
5. ุฅุญุตุงุฆูุงุช ุงููู ูุฐุฌ
GET /api/stats
Response:
{
"success": true,
"stats": {
"model_type": "RandomForestRegressor",
"accuracy": 99.3,
"training_samples": 4689,
"features": ["T2M_MIN", "T2M_MAX", "RH2M", "WS2M", "PRECTOTCORR", "ALLSKY_SFC_SW_DWN"]
}
}
๐ก ุฃู ุซูุฉ ุงูุงุณุชุฎุฏุงู / Usage Examples
ู ุซุงู 1: ุงูุญุตูู ุนูู ุชูุจุค ูููู ูุงุญุฏ
curl -X POST http://localhost:5001/api/predict \
-H "Content-Type: application/json" \
-d '{
"T2M_MIN": 25,
"T2M_MAX": 42,
"RH2M": 18,
"WS2M": 3.2
}'
ุงููุชูุฌุฉ:
{
"success": true,
"irrigation_m3": 71.58,
"irrigation_liters": 71580,
"sessions": [
{"time": "05:00", "water_m3": 35.79, "duration_minutes": 30},
{"time": "19:00", "water_m3": 35.79, "duration_minutes": 30}
]
}
ู ุซุงู 2: ุงูุญุตูู ุนูู ุฌุฏูู 7 ุฃูุงู
curl -X POST http://localhost:5001/api/schedule \
-H "Content-Type: application/json" \
-d '{
"days": 7,
"current_weather": {
"T2M_MIN": 25,
"T2M_MAX": 42,
"RH2M": 18,
"WS2M": 3.2
}
}'
ู ุซุงู 3: ุงูุชูุจุค ุจููู ู ุญุฏุฏ
curl -X POST http://localhost:5001/api/predict-date \
-H "Content-Type: application/json" \
-d '{
"date": "2025-12-01",
"current_weather": {
"T2M_MIN": 20,
"T2M_MAX": 35,
"RH2M": 30,
"WS2M": 2.5
}
}'
ู ุซุงู 4: ุงุณุชุฎุฏุงู ู ู JavaScript
// ุงูุญุตูู ุนูู ุชูุจุค
async function getPrediction() {
const response = await fetch('http://localhost:5001/api/predict', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({
T2M_MIN: 25,
T2M_MAX: 42,
RH2M: 18,
WS2M: 3.2
})
});
const data = await response.json();
console.log('ุงุญุชูุงุฌุงุช ุงูู
ูุงู:', data.irrigation_liters, 'ูุชุฑ');
console.log('ุนุฏุฏ ุงูุฌูุณุงุช:', data.sessions.length);
}
getPrediction();
ู ุซุงู 5: ุงุณุชุฎุฏุงู ู ู Python
import requests
import json
# ุงูุญุตูู ุนูู ุฌุฏูู 14 ููู
url = 'http://localhost:5001/api/schedule'
data = {
'days': 14,
'current_weather': {
'T2M_MIN': 25,
'T2M_MAX': 42,
'RH2M': 18,
'WS2M': 3.2
}
}
response = requests.post(url, json=data)
result = response.json()
if result['success']:
for day in result['schedule']:
print(f"ุงูุชุงุฑูุฎ: {day['date']}")
print(f"ุงูู
ูุงู: {day['irrigation_liters']:,} ูุชุฑ")
print(f"ุงูุฌูุณุงุช: {len(day['sessions'])}")
print("---")
๐ ุงูุจูุงูุงุช / Data
- ู ุตุฏุฑ ุงูุจูุงูุงุช: NASA POWER API
- ุงููุชุฑุฉ ุงูุฒู ููุฉ: 2013-2025 (12+ ุณูุฉ)
- ุนุฏุฏ ุงูุณุฌูุงุช: 4,689 ููู
- ุงูู ููุน: ุงูุฑูุงุถ (24.71ยฐN, 46.71ยฐE)
ุงูู ุชุบูุฑุงุช ุงูู ุณุชุฎุฏู ุฉ:
T2M_MIN: ุฏุฑุฌุฉ ุงูุญุฑุงุฑุฉ ุงูุตุบุฑู (ยฐC)T2M_MAX: ุฏุฑุฌุฉ ุงูุญุฑุงุฑุฉ ุงูุนุธู ู (ยฐC)RH2M: ุงูุฑุทูุจุฉ ุงููุณุจูุฉ (%)WS2M: ุณุฑุนุฉ ุงูุฑูุงุญ (m/s)PRECTOTCORR: ุงูุฃู ุทุงุฑ (mm)ALLSKY_SFC_SW_DWN: ุงูุฅุดุนุงุน ุงูุดู ุณู (MJ/mยฒ/day)
๐ ๏ธ ุงูุชูููุงุช ุงูู ุณุชุฎุฏู ุฉ / Technologies
Backend
- Python 3.x
- Flask - REST API
- scikit-learn - Random Forest Model
- pandas & NumPy - Data Processing
- FAO Penman-Monteith - ET Calculation
Frontend
- React 18 with TypeScript
- Vite - Build Tool
- TanStack Query - Data Fetching
- Tailwind CSS - Styling (RTL Support)
- shadcn/ui - UI Components
- Lucide React - Icons
๐ ูููู ุงูู ุดุฑูุน / Project Structure
riyadh-pitch-ai-irrigation/
โโโ irrigation_model/ # Backend (Python/Flask)
โ โโโ api.py # REST API
โ โโโ irrigation_predictor.py # ML Model
โ โโโ data_preprocessing.py # Data Processing
โ โโโ train_model.py # Model Training
โ โโโ trained_model.pkl # Trained Model
โ โโโ requirements.txt # Python Dependencies
โ
โโโ frontend/ # Frontend (React/TypeScript)
โ โโโ src/
โ โ โโโ components/ # React Components
โ โ โโโ services/ # API Services
โ โ โโโ pages/ # Pages
โ โโโ package.json # Node Dependencies
โ
โโโ POWER_Point_Daily_*.xlsx # NASA Weather Data
โโโ Riyadh_sprinkler_*.xlsx # Irrigation Data
โโโ start.sh # Startup Script
โโโ README.md # This File
๐ ุงูุชูุซูู / Documentation
- REALISTIC_IRRIGATION_UPDATE.md - ุดุฑุญ ุชูุตููู ูููุธุงู ุงููุงูุนู
- ุชูุฑูุฑ_ูุธุงู _ุงูุฑู_ุงูุฐูู.docx - ุงูุชูุฑูุฑ ุงููุงู ู ุจุงูุนุฑุจูุฉ
- irrigation_model/README.md - ุชูุซูู Backend
- frontend/README.md - ุชูุซูู Frontend
๐จ ููุทุงุช ุงูุดุงุดุฉ / Screenshots
ุงูู ููุน ูุนุฑุถ:
- โ ู ุนููู ุงุช ูู ู ูุนุจ ุจุดูู ู ููุตู
- โ ุงูุธุฑูู ุงูุฌููุฉ ุงูุญุงููุฉ ูุงูู ุชููุนุฉ
- โ ุงุญุชูุงุฌุงุช ุงูู ูุงู (mยณ ููุชุฑ)
- โ ุฌุฏูู ุฌูุณุงุช ุงูุฑู (ุงูููุชุ ุงููู ูุฉุ ุงูู ุฏุฉ)
- โ ุงุฎุชูุงุฑ ููู ู ุญุฏุฏ ุฃู ุนุฏุฉ ุฃูุงู
- โ ูุงุฌูุฉ ุนุฑุจูุฉ 100% ู ุน ุฃุฑูุงู ุฅูุฌููุฒูุฉ
โ ุงูุฃุณุฆูุฉ ุงูุดุงุฆุนุฉ / FAQ
ุณ1: ูู ูุนู ู ุงููุธุงู ุจุฏูู ุฅูุชุฑูุชุ
ุฌ: ูุนู ! ุจุนุฏ ุชุญู ูู ุงูู ุดุฑูุน ูุชุซุจูุช ุงูู ูุชุจุงุชุ ูุนู ู ุงููุธุงู ุจุงููุงู ู ุนูู ุฌูุงุฒู ุงูู ุญูู ุจุฏูู ุงูุญุงุฌุฉ ููุฅูุชุฑูุช.
ุณ2: ููู ูุชู ุญุณุงุจ ุงุญุชูุงุฌุงุช ุงูู ูุงูุ
ุฌ: ุงููุธุงู ูุณุชุฎุฏู :
- ู ุนุงุฏูุฉ FAO Penman-Monteith ูุญุณุงุจ ET0 (ุงูุชุจุฎุฑ ุงูู ุฑุฌุนู)
- ู ุนุงู ู ุงูู ุญุตูู (Kc) ููุนุดุจ = 0.85
- ู ุณุงุญุฉ ุงูู ูุนุจ = 7,140 mยฒ
- ูู ูุฐุฌ Random Forest ุงูู ุฏุฑุจ ุนูู 12+ ุณูุฉ ู ู ุงูุจูุงูุงุช
ุณ3: ู ุง ู ุฏู ุฏูุฉ ุงูุชูุจุคุงุชุ
ุฌ: ุงููู ูุฐุฌ ุญูู ุฏูุฉ 99.3% ุนูู ุจูุงูุงุช ุงูุงุฎุชุจุงุฑุ ู ุน:
- Rยฒ Score: 0.993
- MAE: 0.42 mยณ
- RMSE: 0.58 mยณ
ุณ4: ูู ุงุฐุง ุชุฎุชูู ุฃููุงุช ุงูุฑูุ
ุฌ: ุงููุธุงู ูุญุฏุฏ ุนุฏุฏ ุงูุฌูุณุงุช ุจูุงุกู ุนูู ุงูุธุฑูู ุงูุฌููุฉ:
- ุญุงุฑ ุฌุฏุงู (>40ยฐCุ <20% ุฑุทูุจุฉ): 3 ุฌูุณุงุช (05:00, 12:00, 19:00)
- ุญุงุฑ (>35ยฐCุ <25% ุฑุทูุจุฉ): 2 ุฌูุณุงุช (05:00, 19:00)
- ู ุนุชุฏู: 1 ุฌูุณุฉ (06:00)
ุณ5: ูู ูู ูู ุฅุถุงูุฉ ู ูุงุนุจ ุฌุฏูุฏุฉุ
ุฌ: ูุนู
! ูู
ููู ุชุนุฏูู ู
ูู frontend/src/components/sections/EnhancedDashboardSection.tsx ูุฅุถุงูุฉ ู
ูุงุนุจ ุฌุฏูุฏุฉ ุจููุณ ุงูุตูุบุฉ.
ุณ6: ูู ูู ูู ุชุบููุฑ ู ุณุงุญุฉ ุงูู ูุนุจุ
ุฌ: ูุนู
! ูู ู
ูู irrigation_model/irrigation_predictor.pyุ ุบููุฑ ููู
ุฉ:
self.field_area_m2 = 7140 # ุบููุฑ ูุฐุง ุงูุฑูู
ุณ7: ููู ุฃุญุฏูุซ ุจูุงูุงุช ุงูุทูุณุ
ุฌ: ูู ููู:
- ุชุญู ูู ุจูุงูุงุช ุฌุฏูุฏุฉ ู ู NASA POWER
- ุงุณุชุจุฏุงู ู
ูู
POWER_Point_Daily_*.xlsx - ุฅุนุงุฏุฉ ุชุฏุฑูุจ ุงููู
ูุฐุฌ:
python irrigation_model/train_model.py
ุณ8: ูู ูุฏุนู ุงููุธุงู ูุบุงุช ุฃุฎุฑูุ
ุฌ: ุญุงููุงู ุงููุธุงู ุจุงูุนุฑุจูุฉ ููุท. ูุฅุถุงูุฉ ูุบุงุช ุฃุฎุฑูุ ูู ููู:
- ุฅุถุงูุฉ ู
ููุงุช ุชุฑุฌู
ุฉ ูู
frontend/src/locales/ - ุงุณุชุฎุฏุงู
ู
ูุชุจุฉ
i18nextููุชุฑุฌู ุฉ
ุณ9: ููู ุฃูุดุฑ ุงููุธุงู ุนูู ุงูุฅูุชุฑูุชุ
ุฌ: ูู ููู ุงุณุชุฎุฏุงู :
- Backend: Heroku, Railway, Render, DigitalOcean
- Frontend: Vercel, Netlify, GitHub Pages
- ุงููู ู ุนุงู: Docker + AWS/Azure/GCP
ุณ10: ูู ูู ูู ุงุณุชุฎุฏุงู ุงููุธุงู ูู ุญุงุตูู ุฃุฎุฑูุ
ุฌ: ูุนู
! ุบููุฑ ู
ุนุงู
ู ุงูู
ุญุตูู (Kc) ูู irrigation_predictor.py:
self.kc = 0.85 # ููุนุดุจ
# self.kc = 1.15 # ููุทู
ุงุทู
# self.kc = 0.60 # ูููู
ุญ
๐ ุงูุชุญุฏูุซุงุช ุงูู ุณุชูุจููุฉ / Future Updates
- ุฅุถุงูุฉ ุฏุนู ูุฃุฌูุฒุฉ ุงูุงุณุชุดุนุงุฑ (IoT)
- ุชุทุจูู ู ูุจุงูู (React Native)
- ุฅุดุนุงุฑุงุช ุชููุงุฆูุฉ (Push Notifications)
- ุชูุงุฑูุฑ PDF ูุงุจูุฉ ููุชุญู ูู
- ุฏุนู ู ุชุนุฏุฏ ุงููุบุงุช (ุฅูุฌููุฒูุ ูุฑูุณู)
- ุชูุงู ู ู ุน ุฃูุธู ุฉ ุงูุฑู ุงูุขููุฉ
- ููุญุฉ ุชุญูู ููู ุณุคูููู
- ุชุญูููุงุช ู ุชูุฏู ุฉ ูุฅุญุตุงุฆูุงุช
- ุฏุนู ููุงุนุฏ ุจูุงูุงุช (PostgreSQL/MongoDB)
- API Authentication (JWT)
๐ค ุงูู ุณุงูู ุฉ / Contributing
ูุฑุญุจ ุจุงูู ุณุงูู ุงุช! ุฅุฐุง ููุช ุชุฑูุฏ ุงูู ุณุงูู ุฉ:
- Fork ุงูู ุดุฑูุน
- ุฃูุดุฆ Branch ุฌุฏูุฏ (
git checkout -b feature/amazing-feature) - Commit ุชุบููุฑุงุชู (
git commit -m 'Add amazing feature') - Push ุฅูู Branch (
git push origin feature/amazing-feature) - ุงูุชุญ Pull Request
ุฅุฑุดุงุฏุงุช ุงูู ุณุงูู ุฉ:
- ุงูุชุจ ููุฏ ูุธูู ูู ูุธู
- ุฃุถู ุชุนูููุงุช ุชูุถูุญูุฉ
- ุงุฎุชุจุฑ ุงูุชุบููุฑุงุช ูุจู ุงูู Push
- ุงุชุจุน ูู ุท ุงูููุฏ ุงูู ูุฌูุฏ
- ุญุฏูุซ ุงูุชูุซูู ุฅุฐุง ูุฒู ุงูุฃู ุฑ
๐ ุดูุฑ ูุชูุฏูุฑ / Acknowledgments
- NASA POWER - ุจูุงูุงุช ุงูุทูุณ ุงูู ุฌุงููุฉ
- FAO - ู ุนุงุฏูุงุช ุญุณุงุจ ET
- scikit-learn - ู ูุชุจุฉ Machine Learning
- React - ู ูุชุจุฉ ูุงุฌูุงุช ุงูู ุณุชุฎุฏู
- shadcn/ui - ู ูููุงุช ุงููุงุฌูุฉ ุงูุฌู ููุฉ
- Tailwind CSS - ุฅุทุงุฑ ุนู ู CSS
- Vite - ุฃุฏุงุฉ ุงูุจูุงุก ุงูุณุฑูุนุฉ
- Flask - ุฅุทุงุฑ ุนู ู Python
๐ ุฑูุงุจุท ู ููุฏุฉ / Useful Links
ุงูู ุดุฑูุน
- ๐ GitHub Repository: https://github.com/M-craspo/riyadh-pitch-ai-irrigation
- ๐ Issues: https://github.com/M-craspo/riyadh-pitch-ai-irrigation/issues
- ๐ Pull Requests: https://github.com/M-craspo/riyadh-pitch-ai-irrigation/pulls
ุงูุชูุซูู
- ๐ README ุงูุฑุฆูุณู: README.md
- ๐ ุชูุซูู Backend: irrigation_model/README.md
- ๐ ุชูุซูู Frontend: frontend/README.md
- ๐ ุงูุชุญุฏูุซ ุงููุงูุนู: REALISTIC_IRRIGATION_UPDATE.md
ุงูู ุฑุงุฌุน ุงูุนูู ูุฉ
- ๐ FAO Penman-Monteith: http://www.fao.org/3/x0490e/x0490e00.htm
- ๐ Crop Evapotranspiration: http://www.fao.org/3/x0490e/x0490e06.htm
- ๐ NASA POWER Documentation: https://power.larc.nasa.gov/docs/
- ๐ Random Forest Algorithm: https://scikit-learn.org/stable/modules/ensemble.html#forest
ุงูุฃุฏูุงุช ูุงูู ูุชุจุงุช
- ๐ Python: https://www.python.org/
- ๐ฆ pip: https://pip.pypa.io/
- ๐ข Node.js: https://nodejs.org/
- ๐ฆ npm: https://www.npmjs.com/
- โ๏ธ React: https://react.dev/
- ๐จ Tailwind CSS: https://tailwindcss.com/
- ๐งฉ shadcn/ui: https://ui.shadcn.com/
๐ ุงูุฅุญุตุงุฆูุงุช / Statistics
| ุงูู ููุงุณ | ุงูููู ุฉ |
|---|---|
| ๐ฏ ุฏูุฉ ุงููู ูุฐุฌ | 99.3% |
| ๐ ูุชุฑุฉ ุงูุจูุงูุงุช | 12+ ุณูุฉ |
| ๐ ุนุฏุฏ ุงูุณุฌูุงุช | 4,689 ููู |
| ๐๏ธ ุนุฏุฏ ุงูู ูุงุนุจ | 6 ู ูุงุนุจ |
| ๐ง ู ุชูุณุท ุงูุฑู ุงูููู ู | ~68 mยณ |
| โฐ ุฌูุณุงุช ุงูุฑู | 1-3 ุฌูุณุงุช/ููู |
| ๐ก๏ธ ูุทุงู ุงูุญุฑุงุฑุฉ | 10-50ยฐC |
| ๐ฆ ูุทุงู ุงูุฑุทูุจุฉ | 5-70% |
๐ธ ู ุนุฑุถ ุงูุตูุฑ / Gallery
ูุงุฌูุฉ ุงููุธุงู
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ ๐ฑ ูุธุงู
ุงูุฑู ุงูุฐูู ูู
ูุงุนุจ ูุฑุฉ ุงููุฏู
ูู ุงูุฑูุงุถ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ ู
ูุนุจ ุงูู
ูู ููุฏ ุงูุฏููู โ
ู
ุซุงูู โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค โ
โ โ ๐ก๏ธ ุงูุญุฑุงุฑุฉ: 39ยฐC ๐ง ุงูุฑุทูุจุฉ: 20% โ โ
โ โ โ โ
โ โ ๐ง ุงุญุชูุงุฌุงุช ุงูู
ูุงู โ โ
โ โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ โ
โ โ ุฅุฌู
ุงูู ุงูู
ูุงู: 68.5 mยณ (68,550 ูุชุฑ) โ โ
โ โ โ โ
โ โ โฐ ุฌูุณุงุช ุงูุฑู (2 ุฌูุณุงุช) โ โ
โ โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ โ
โ โ โ ๐ 05:00 | ๐ง 34.3 mยณ | โฑ๏ธ 30 ุฏูููุฉ โ โ โ
โ โ โ ๐ 19:00 | ๐ง 34.3 mยณ | โฑ๏ธ 30 ุฏูููุฉ โ โ โ
โ โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ โ
โ โ โ โ
โ โ ๐
ุฌุฏูู ุงูุฑู ุงูู
ุณุชูุจูู โ โ
โ โ [ุนุฏุฉ ุฃูุงู
] [ููู
ู
ุญุฏุฏ] โ โ
โ โ ุงุฎุชุฑ: [3] [7] [14] [30] ููู
[ุนุฑุถ ุงูุฌุฏูู] โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ
โ [5 ู
ูุงุนุจ ุฃุฎุฑู...] โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
๐ ุชุนูู ุงูู ุฒูุฏ / Learn More
ููู ุจุชุฏุฆูู
- ๐ ุฏููู Python ููู ุจุชุฏุฆูู
- ๐ ุฏููู React ููู ุจุชุฏุฆูู
- ๐ ุฃุณุงุณูุงุช Machine Learning
ููู ุชูุฏู ูู
- ๐ Flask Advanced Patterns
- ๐ React Performance
- ๐ scikit-learn Advanced
ุงูุฑู ูุงูุฒุฑุงุนุฉ
- ๐ FAO Irrigation Manual
- ๐ Turfgrass Irrigation
- ๐ Smart Irrigation