انتقل إلى المحتوى

تنزيل البيانات من WIS2 باستخدام wis2downloader

نتائج التعلم!

بنهاية هذه الجلسة العملية، ستكون قادرًا على:

  • استخدام "wis2downloader" للاشتراك في إشعارات بيانات WIS2 وتنزيل البيانات إلى نظامك المحلي.
  • عرض حالة التنزيلات في لوحة معلومات Grafana.
  • تعلم كيفية تكوين wis2downloader للاشتراك في وسيط غير افتراضي.

المقدمة

في هذه الجلسة، ستتعلم كيفية إعداد اشتراك في WIS2 Broker وتنزيل البيانات تلقائيًا إلى نظامك المحلي باستخدام خدمة "wis2downloader" المضمنة في wis2box.

حول wis2downloader

يتوفر wis2downloader أيضًا كخدمة مستقلة يمكن تشغيلها على نظام مختلف عن النظام الذي ينشر إشعارات WIS2. راجع wis2downloader لمزيد من المعلومات حول استخدام wis2downloader كخدمة مستقلة.

إذا كنت ترغب في تطوير خدمتك الخاصة للاشتراك في إشعارات WIS2 وتنزيل البيانات، يمكنك استخدام كود المصدر الخاص بـ wis2downloader كمرجع.

التحضير

قبل البدء، يرجى تسجيل الدخول إلى جهاز الطالب الافتراضي الخاص بك والتأكد من أن مثيل wis2box الخاص بك يعمل بشكل صحيح.

أساسيات wis2downloader

يتم تضمين wis2downloader كحاوية منفصلة في wis2box كما هو محدد في ملفات Docker Compose. يتم تكوين حاوية Prometheus في wis2box لجمع المقاييس من حاوية wis2downloader، ويمكن عرض هذه المقاييس من خلال لوحة معلومات في Grafana.

عرض لوحة معلومات wis2downloader في Grafana

افتح متصفح الويب وانتقل إلى لوحة معلومات Grafana الخاصة بمثيل wis2box الخاص بك عن طريق الذهاب إلى http://YOUR-HOST:3000.

انقر على "لوحات المعلومات" في القائمة الجانبية، ثم اختر لوحة معلومات wis2downloader.

يجب أن ترى لوحة المعلومات التالية:

wis2downloader dashboard

تعتمد هذه اللوحة على المقاييس التي تنشرها خدمة wis2downloader وستعرض لك حالة التنزيلات الجارية حاليًا.

في الزاوية العلوية اليسرى، يمكنك رؤية الاشتراكات النشطة حاليًا.

ابقَ على هذه اللوحة مفتوحة حيث ستستخدمها لمراقبة تقدم التنزيل في التمرين التالي.

مراجعة تكوين wis2downloader

يمكن تكوين خدمة wis2downloader في wis2box باستخدام المتغيرات البيئية المحددة في ملف wis2box.env.

المتغيرات البيئية التالية تُستخدم بواسطة wis2downloader:

- DOWNLOAD_BROKER_HOST: اسم المضيف لوسيط MQTT للاتصال به. الافتراضي هو globalbroker.meteo.fr
- DOWNLOAD_BROKER_PORT: منفذ وسيط MQTT للاتصال به. الافتراضي هو 443 (HTTPS للويب سوكيتس)
- DOWNLOAD_BROKER_USERNAME: اسم المستخدم للاتصال بوسيط MQTT. الافتراضي هو everyone
- DOWNLOAD_BROKER_PASSWORD: كلمة المرور للاتصال بوسيط MQTT. الافتراضي هو everyone
- DOWNLOAD_BROKER_TRANSPORT: websockets أو tcp، آلية النقل المستخدمة للاتصال بوسيط MQTT. الافتراضي هو websockets
- DOWNLOAD_RETENTION_PERIOD_HOURS: فترة الاحتفاظ بالبيانات التي تم تنزيلها بالساعات. الافتراضي هو 24
- DOWNLOAD_WORKERS: عدد عمال التنزيل المستخدمين. الافتراضي هو 8. يحدد عدد التنزيلات المتوازية.
- DOWNLOAD_MIN_FREE_SPACE_GB: الحد الأدنى من المساحة الحرة بالجيجابايت للحفاظ عليها على وحدة التخزين التي تستضيف التنزيلات. الافتراضي هو 1.

لمراجعة التكوين الحالي لـ wis2downloader، يمكنك استخدام الأمر التالي:

cat ~/wis2box/wis2box.env | grep DOWNLOAD

مراجعة تكوين wis2downloader

ما هو وسيط MQTT الافتراضي الذي يتصل به wis2downloader؟

ما هي فترة الاحتفاظ الافتراضية للبيانات التي تم تنزيلها؟

اضغط للكشف عن الإجابة

وسيط MQTT الافتراضي الذي يتصل به wis2downloader هو globalbroker.meteo.fr.

فترة الاحتفاظ الافتراضية للبيانات التي تم تنزيلها هي 24 ساعة.

تحديث تكوين wis2downloader

لتحديث تكوين wis2downloader، يمكنك تحرير ملف wis2box.env. لتطبيق التغييرات، يمكنك إعادة تشغيل أمر البدء لحزمة wis2box:

python3 wis2box-ctl.py start

وسترى خدمة wis2downloader تعيد التشغيل بالتكوين الجديد.

يمكنك الاحتفاظ بالتكوين الافتراضي للتمرين التالي.

واجهة سطر الأوامر لـ wis2downloader

للوصول إلى واجهة سطر الأوامر الخاصة بـ wis2downloader داخل wis2box، يمكنك تسجيل الدخول إلى حاوية wis2downloader باستخدام الأمر التالي:

python3 wis2box-ctl.py login wis2downloader

استخدم الأمر التالي لعرض قائمة الاشتراكات النشطة حاليًا:

wis2downloader list-subscriptions

سيعيد هذا الأمر قائمة فارغة، حيث لم يتم إعداد أي اشتراكات بعد.

تنزيل بيانات GTS باستخدام WIS2 Global Broker

إذا احتفظت بالتكوين الافتراضي لـ wis2downloader، فهو متصل حاليًا بـ WIS2 Global Broker الذي تستضيفه Météo-France.

إعداد الاشتراك

استخدم الأمر التالي cache/a/wis2/de-dwd-gts-to-wis2/# للاشتراك في البيانات التي ينشرها بوابة GTS-to-WIS2 التي تستضيفها DWD، والمتاحة من خلال Global Caches:

wis2downloader add-subscription --topic cache/a/wis2/de-dwd-gts-to-wis2/#

ثم اخرج من حاوية wis2downloader بكتابة exit:

exit

التحقق من البيانات التي تم تنزيلها

تحقق من لوحة معلومات wis2downloader في Grafana لرؤية الاشتراك الجديد المضاف. انتظر بضع دقائق ويجب أن ترى التنزيلات الأولى تبدأ. انتقل إلى التمرين التالي بمجرد تأكيد بدء التنزيلات.

تقوم خدمة wis2downloader في wis2box بتنزيل البيانات في دليل 'downloads' في الدليل الذي قمت بتعريفه كـ WIS2BOX_HOST_DATADIR في ملف wis2box.env. لعرض محتويات دليل التنزيلات، استخدم الأمر التالي:

ls -R ~/wis2box-data/downloads

لاحظ أن البيانات التي تم تنزيلها يتم تخزينها في أدلة مسماة وفقًا للموضوع الذي تم نشر إشعار WIS2 عليه.

عرض البيانات التي تم تنزيلها

ما هي الأدلة التي تراها في دليل التنزيلات؟

هل يمكنك رؤية أي ملفات تم تنزيلها في هذه الأدلة؟

اضغط للكشف عن الإجابة

يجب أن ترى بنية دليل تبدأ بـ cache/a/wis2/de-dwd-gts-to-wis2/ تحتها سترى المزيد من الأدلة المسماة وفقًا لعناوين نشرات GTS للبيانات التي تم تنزيلها.

بناءً على وقت بدء الاشتراك، قد ترى أو لا ترى أي ملفات تم تنزيلها في هذا الدليل حتى الآن. إذا لم ترَ أي ملفات بعد، انتظر بضع دقائق أخرى وتحقق مرة أخرى.

دعنا ننظف الاشتراك والبيانات التي تم تنزيلها قبل الانتقال إلى التمرين التالي.

سجل الدخول مرة أخرى إلى حاوية wis2downloader:

python3 wis2box-ctl.py login wis2downloader

وقم بإزالة الاشتراك الذي قمت به من wis2downloader باستخدام الأمر التالي:

wis2downloader remove-subscription --topic cache/a/wis2/de-dwd-gts-to-wis2/#

قم بإزالة البيانات التي تم تنزيلها باستخدام الأمر التالي:

rm -rf /wis2box-data/downloads/cache/*

واخرج من حاوية wis2downloader بكتابة exit:

exit

تحقق من لوحة معلومات wis2downloader في Grafana لرؤية الاشتراك الذي تمت إزالته. يجب أن ترى التنزيلات تتوقف.

حول بوابات GTS-to-WIS2

هناك حاليًا بوابتان GTS-to-WIS2 تنشران البيانات من خلال WIS2 Global Broker وGlobal Caches:

  • DWD (ألمانيا): centre-id=de-dwd-gts-to-wis2
  • JMA (اليابان): centre-id=jp-jma-gts-to-wis2

إذا قمت في التمرين السابق باستبدال de-dwd-gts-to-wis2 بـ jp-jma-gts-to-wis2، ستتلقى الإشعارات والبيانات التي تنشرها بوابة JMA GTS-to-WIS2.

المواضيع الأصلية مقابل مواضيع التخزين المؤقت

عند الاشتراك في موضوع يبدأ بـ origin/، ستتلقى إشعارات تحتوي على عنوان URL قانوني يشير إلى خادم بيانات يوفره مركز WIS الذي ينشر البيانات.

عند الاشتراك في موضوع يبدأ بـ cache/، ستتلقى إشعارات متعددة لنفس البيانات، واحدة لكل Global Cache. كل إشعار سيحتوي على عنوان URL قانوني يشير إلى خادم البيانات الخاص بـ Global Cache المعني. سيقوم wis2downloader بتنزيل البيانات من أول عنوان URL قانوني يمكن الوصول إليه.

تنزيل بيانات تجريبية من WIS2 Training Broker

في هذا التمرين، ستشترك في WIS2 Training Broker الذي ينشر بيانات تجريبية لأغراض التدريب.

تغيير تكوين wis2downloader

هذا يوضح كيفية الاشتراك في وسيط ليس الوسيط الافتراضي، مما يتيح لك تنزيل بعض البيانات المنشورة من WIS2 Training Broker.

قم بتحرير ملف wis2box.env وقم بتغيير DOWNLOAD_BROKER_HOST إلى wis2training-broker.wis2dev.io، وDOWNLOAD_BROKER_PORT إلى 1883، وDOWNLOAD_BROKER_TRANSPORT إلى tcp:

# إعدادات التنزيل
DOWNLOAD_BROKER_HOST=wis2training-broker.wis2dev.io
DOWNLOAD_BROKER_PORT=1883
DOWNLOAD_BROKER_USERNAME=everyone
DOWNLOAD_BROKER_PASSWORD=everyone
# آلية نقل التنزيل (tcp أو websockets)
DOWNLOAD_BROKER_TRANSPORT=tcp

ثم قم بتشغيل الأمر 'start' مرة أخرى لتطبيق التغييرات:

python3 wis2box-ctl.py start

تحقق من سجلات wis2downloader لمعرفة ما إذا تم الاتصال بالوسيط الجديد بنجاح:

docker logs wis2downloader

يجب أن ترى رسالة السجل التالية:

...
INFO - Connecting...
INFO - Host: wis2training-broker.wis2dev.io, port: 1883
INFO - Connected successfully

إعداد اشتراكات جديدة

الآن سنقوم بإعداد اشتراك جديد في الموضوع لتنزيل بيانات مسار الأعاصير من WIS2 Training Broker.

قم بتسجيل الدخول إلى الحاوية wis2downloader:

python3 wis2box-ctl.py login wis2downloader

وقم بتنفيذ الأمر التالي (انسخه والصقه لتجنب الأخطاء الإملائية):

wis2downloader add-subscription --topic origin/a/wis2/int-wis2-training/data/core/weather/prediction/forecast/medium-range/probabilistic/trajectory

اخرج من الحاوية wis2downloader بكتابة exit.

التحقق من البيانات التي تم تنزيلها

انتظر حتى ترى بدء التنزيلات في لوحة معلومات wis2downloader في Grafana.

تحقق من تنزيل البيانات عن طريق التحقق من سجلات wis2downloader مرة أخرى باستخدام:

docker logs wis2downloader

يجب أن ترى رسالة سجل مشابهة لما يلي:

[...] INFO - Message received under topic origin/a/wis2/int-wis2-training/data/core/weather/prediction/forecast/medium-range/probabilistic/trajectory
[...] INFO - Downloaded A_JSXX05ECEP020000_C_ECMP_...

تحقق من محتويات دليل التنزيلات مرة أخرى:

ls -R ~/wis2box-data/downloads

يجب أن ترى دليلًا جديدًا باسم origin/a/wis2/int-wis2-training/data/core/weather/prediction/forecast/medium-range/probabilistic/trajectory يحتوي على البيانات التي تم تنزيلها.

مراجعة البيانات التي تم تنزيلها

ما هو تنسيق الملفات للبيانات التي تم تنزيلها؟

اضغط للكشف عن الإجابة

البيانات التي تم تنزيلها بتنسيق BUFR كما هو موضح من خلال امتداد الملف .bufr.

بعد ذلك، حاول إضافة اشتراكين آخرين لتنزيل بيانات شذوذ درجة حرارة السطح الشهرية وبيانات التنبؤ العالمي من الموضوعات التالية:

  • origin/a/wis2/int-wis2-training/data/core/weather/prediction/forecast/medium-range/probabilistic/global
  • origin/a/wis2/int-wis2-training/data/core/climate/experimental/anomalies/monthly/surface-temperature

انتظر حتى ترى بدء التنزيلات في لوحة معلومات wis2downloader في Grafana.

تحقق من محتويات دليل التنزيلات مرة أخرى:

ls -R ~/wis2box-data/downloads

يجب أن ترى دليلين جديدين بأسماء origin/a/wis2/int-wis2-training/data/core/weather/prediction/forecast/medium-range/probabilistic/global وorigin/a/wis2/int-wis2-training/data/core/climate/experimental/anomalies/monthly/surface-temperature يحتويان على البيانات التي تم تنزيلها.

مراجعة البيانات التي تم تنزيلها للموضوعين الجديدين

ما هو تنسيق الملفات للبيانات التي تم تنزيلها لموضوع ../prediction/forecast/medium-range/probabilistic/global؟

ما هو تنسيق الملفات للبيانات التي تم تنزيلها لموضوع ../climate/experimental/anomalies/monthly/surface-temperature؟

اضغط للكشف عن الإجابة

البيانات التي تم تنزيلها لموضوع ../prediction/forecast/medium-range/probabilistic/global بتنسيق GRIB2 كما هو موضح من خلال امتداد الملف .grib2.

البيانات التي تم تنزيلها لموضوع ../climate/experimental/anomalies/monthly/surface-temperature بتنسيق NetCDF كما هو موضح من خلال امتداد الملف .nc.

الخاتمة

تهانينا!

في هذه الجلسة العملية، تعلمت كيفية:

  • استخدام 'wis2downloader' للاشتراك في WIS2 Broker وتنزيل البيانات إلى نظامك المحلي
  • عرض حالة التنزيلات في لوحة معلومات Grafana
  • كيفية تغيير التكوين الافتراضي لـ wis2downloader للاشتراك في وسيط مختلف
  • كيفية عرض البيانات التي تم تنزيلها على نظامك المحلي