عن المشروع
## نظرة عامة
متعقب جودة الهواء والطقس في الهند هو خط أنابيب بيانات آلي بالكامل يجمع بيانات مباشرة لجودة الهواء والطقس لثماني مدن هندية رئيسية (بنغالور، مومباي، نيودلهي، غوراخبور، تشيناي، حيدر أباد، بونه، كولكاتا) باستخدام واجهة برمجة تطبيقات Open-Meteo المجانية. يخزن السجلات التاريخية في قاعدة بيانات SQLite ويشغل لوحة تحكم تفاعلية مبنية باستخدام Streamlit وPlotly. يعمل خط الأنابيب تلقائيًا كل ساعة عبر GitHub Actions، دون الحاجة إلى تدخل يدوي أو مفاتيح API.
## الميزات
- **المراقبة المباشرة**: مؤشر جودة الهواء والطقس في الوقت الفعلي لثماني مدن هندية.
- **التحديثات التلقائية**: تحديث كل ساعة عبر GitHub Actions—بدون الحاجة إلى خادم.
- **التخزين التاريخي**: حفظ كل قراءة في SQLite.
- **لوحة تحكم تفاعلية**: مبنية باستخدام Streamlit وPlotly لتحليل الاتجاهات.
- **تحليل الاتجاهات**: اتجاهات PM2.5 ودرجة الحرارة ومؤشر جودة الهواء بمرور الوقت.
- **آلي بالكامل**: خط أنابيب متكامل بدون أي عمل يدوي.
- **بدون مفتاح API**: يستخدم واجهة برمجة تطبيقات Open-Meteo المجانية.
## البنية
يتكون المشروع من ثلاثة مكونات رئيسية:
1. **تعبئة البيانات التاريخية** (`scripts/backfill_history.py`): برنامج لمرة واحدة ينزّل 30 يومًا من بيانات مؤشر جودة الهواء والطقس التاريخية لكل ساعة لجميع المدن ويخزنها في SQLite.
2. **التحديثات التلقائية كل ساعة** (`scripts/fetch_latest.py`): يجلب أحدث القراءات، ويضيفها إلى قاعدة بيانات SQLite، ويرسل قاعدة البيانات المحدثة إلى GitHub. يتم تشغيله بواسطة مجدول GitHub Actions.
3. **لوحة التحكم التفاعلية** (`dashboard/app.py`): تقرأ من قاعدة بيانات SQLite وتوفر لقطات حالية، واتجاهات تاريخية، وتحليل PM2.5، ومقارنات متوسط مؤشر جودة الهواء، وعلاقات درجة الحرارة مقابل PM2.5 مع تصورات تفاعلية باستخدام Plotly.
## مجموعة التقنيات
- **اللغة**: Python
- **معالجة البيانات**: Pandas، Requests
- **التخزين**: SQLite
- **لوحة التحكم**: Streamlit، Plotly
- **الأتمتة**: GitHub Actions
- **مصدر البيانات**: واجهة برمجة تطبيقات Open-Meteo
## البدء
1. استنساخ المستودع.
2. تثبيت التبعيات باستخدام `pip install -r requirements.txt`.
3. تشغيل `python scripts/backfill_history.py` لإنشاء قاعدة البيانات مع 30 يومًا من البيانات التاريخية.
4. إطلاق لوحة التحكم باستخدام `streamlit run dashboard/app.py`.
5. تفعيل سير عمل GitHub Actions لأتمتة التحديثات كل ساعة.
6. النشر إلى Streamlit Community Cloud باستخدام `dashboard/app.py` كنقطة دخول.
## لماذا يتميز هذا المشروع
يعرض هذا المشروع خط أنابيب بيانات متكاملًا من البداية إلى النهاية—جمع بيانات مباشرة من واجهات برمجة تطبيقات حقيقية، وأتمتة الإدخال باستخدام GitHub Actions، وتخزين السجلات التاريخية في SQLite، وتصور الرؤى من خلال لوحة تحكم تفاعلية. يحاكي سير عمل تحليلي بأسلوب الإنتاج بدلاً من تحليل ثابت لمرة واحدة.
## التحسينات المستقبلية
- دعم أكثر من 100 مدينة هندية
- تكامل PostgreSQL
- حاويات Docker
- إشعارات تنبيه مؤشر جودة الهواء عبر البريد الإلكتروني/الرسائل النصية
- التنبؤ بمؤشر جودة الهواء باستخدام التعلم الآلي
- واجهة برمجة تطبيقات REST للتكاملات الخارجية
Comments
0 people shared their preference · Deer Point appears after 10 participants
Sign in to join the discussion.