برنامج تعليمي موجز لكشط بيانات الطقس باستخدام نصوص مشروحة (الجزء 3/3)

In الوظيفة السابقة من هذه السلسلة ، قدمنا ​​لك واجهة برمجة التطبيقات التي اخترناها لأداء تجريف البيانات ، ووصفنا الجزء الرئيسي من نصوص تجريف البيانات التي تمت برمجتها أحدنا (باستيان) ، وقدمنا ​​رابطًا إلى جيثب ريبو حيث تتوفر البرامج النصية. إذا لم تكن قد قمت بذلك بالفعل ، فنقترح عليك قراءة هذا المنشور و واحد من قبل لأنه قد يساعدك على فهم محتوى هذا المحتوى بشكل أفضل.

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

الشروط

تمت كتابة البرامج النصية بلغة Python ، وهي لغة برمجة مجانية ومفتوحة المصدر. يجب أن يعمل الرمز جيدًا على أي جهاز (سواء كان نظام Windows أو Mac أو Linux). ومع ذلك ، قد تواجه أخطاء عند استخدام البرامج النصية على نظام بخلاف Windows (حيث تمت برمجتها خصيصًا للاستخدام على نظام Windows). في حالة استخدامك للنصوص وعدم تشغيلها ، لا تتردد في ذلك الاتصال باستيان (حتى أنه يساعد مستخدمي Mac). فيما يلي الخطوات الثلاث التي يجب عليك اتخاذها قبل استخدام البرامج النصية:

  1. تثبيت بايثون - إذا لم يكن لديك Python على جهازك ، فيمكنك تنزيل الإصدار الأخير منه هذه الصفحة. نوصي بتشغيل التثبيت بالإعدادات الافتراضية.
  2. قم بتنزيل وحدات Python النمطية المطلوبة - هناك حاجة لبعض الوحدات (إذا كنت معتادًا على R ، الوحدات النمطية قابلة للمقارنة مع الحزم) غير المضمنة في بيئة Python الافتراضية لتشغيل البرنامج النصي: الطلبات ، والباندا ، والإيقاف المؤقت. تحتاج إلى تثبيت هذه لما سنفعله. ال توثيق بايثون يوفر معلومات كافية حول كيفية القيام بذلك.
  3. تنزيل البرامج النصية - يتم إيداع البرامج النصية لعمل تجريف الويب على ما يلي جيثب ريبو. قم بتنزيل المستودع كملف .zip واستخرجه من المكان الذي تفضل تخزينه فيه.
  4. اشترك في Aerisweather API - تقدم Aerisweather حاليًا حزمًا مختلفة يتراوح سعرها من 80 دولارًا إلى 690 دولارًا شهريًا. يمكنك العثور على تفاصيل الحزم المختلفة التي يقدمونها هنا. من أجل جمع بيانات الطقس التاريخية ، ستحتاج إلى حزمة مع تحديد "الوظيفة الإضافية للأرشيف". إذا لم يكن لديك الأموال وترغب في دمج القوى مع القراء الآخرين لهذه المدونة ، فاترك تعليقًا ويمكنك التنسيق مع بعضكما البعض.

تحضير مجموعة البيانات الخاصة بك

ستحتاج إلى مجموعة بيانات على أساسها ستقوم بكشط البيانات. ستحتاج إلى إعداد مجموعة البيانات قبل بدء تجريف الويب. ستتطلب الطريقة التي تتم بها برمجة البرامج النصية تحويل مجموعة البيانات الخاصة بك من طويلة إلى تنسيق عريض ، إذا لم تكن كذلك بالفعل (أي ، سيشغل مشارك واحد سطرًا واحدًا في مجموعة البيانات الخاصة بك). يجب أيضًا حفظ مجموعة البيانات بتنسيق .csv ، بحيث يكون الفاصل هو "؛".

من أجل جمع بيانات الطقس لمجموعة البيانات الخاصة بك ، بعض المعلومات إلزامية لكل مشارك:

  1. بطاقة تعريف - هذا يتوافق مع المعرف الفريد للمشارك الخاص بك. يمكن أن تكون ببساطة سلسلة من الأحرف / القيم العددية. على سبيل المثال ، "Participant_1".
  2. موقعك - يتوافق هذا مع مجموعة خطوط الطول / العرض للموقع الذي تريد جمع بيانات الطقس من أجله (على سبيل المثال ، الموقع الذي أكمل فيه المشارك دراستك). يجب أن يكون لكل قيمة التنسيق التالي: "خط الطول وخط العرض". مثال لباريس: "48.856613,2.352222،XNUMX". تتوفر أدوات مختلفة عبر الإنترنت لتقدير إحداثيات خطوط الطول / العرض للموقع (على سبيل المثال ، https://www.latlong.net/). إذا كنت بحاجة إلى استرداد عدد هائل من الإحداثيات (كما كان الحال بالنسبة لنا) ، فربما يتعين عليك اكتشاف طريقة للقيام بذلك بطريقة آلية. لإعطائك بعض الأفكار حول كيفية القيام بذلك ، تحقق مما يلي جيثب ريبو. يحتوي على برنامج نصي مشروح (بالإضافة إلى ملفات نموذجية) برمجته باستيان لتعيين 11,000 رمز بريدي أمريكي لإحداثيات خطوط الطول / العرض.
  3. تاريخ - يتوافق هذا مع التاريخ الذي تريد جمع بيانات الطقس فيه (على سبيل المثال ، التاريخ الذي أكمل فيه المشارك دراستك). بالنسبة للسيناريو الخاص بنا ، اعتمدنا على تاريخ محدد و زمن. لهذا السبب ، يجب أن يكون لكل قيمة التنسيق التالي: "DD / MM / YYYY HH: MM". مثال: "21/06/2020 16:20". الأهم من ذلك ، يجب أن تكون المنطقة الزمنية التي يتم حفظ التاريخ فيها هي المنطقة الزمنية للموقع الذي تريد جمع بيانات الطقس فيه.

جمع البيانات

بعد تنزيل الملفات ، سيتعين عليك تحديد موقع ملف "aerisweather_keys.py" وتعديله باستخدام محرر النصوص الذي تختاره. سيتعين عليك استبدال القيمة الافتراضية للمتغيرات المختلفة بالقيمة التي تطابق الإعداد الخاص بك. فيما يلي تفصيل للمتغيرات المختلفة التي سيتعين عليك تحريرها (يتم توثيق تفاصيل التنسيق الذي يجب أن يتخذه كل متغير في ملف "aerisweather_keys.py"):

  • CLIENT_ID: مفتاح معرف حساب Aerisweather الخاص بك.
  • CLIENT_SECRET: المفتاح السري لحساب Aerisweather الخاص بك.
  • ملف البيانات: اسم ملف البيانات الخاص بك.
  • PARTICIPANT_ID_COLUMN: في ملف البيانات الخاص بك ، اسم العمود الذي تم توثيق معرف المشارك فيه.
  • TIMESTAMP_COLUMN: في ملف البيانات الخاص بك ، اسم العمود الذي تم توثيق التاريخ الذي تريد جمع بيانات الطقس فيه.
  • EXACT_LOCATION_COLUMN: في ملف البيانات الخاص بك ، اسم العمود الذي تم فيه توثيق تركيبة خطوط الطول / العرض للموقع الذي تريد جمع بيانات الطقس فيه.
  • UTC_TIMEZONE: المنطقة الزمنية UTC للوقت المعروضة على جهاز الكمبيوتر الخاص بك.
  • YEAR: السنة التي تريد جمع "بيانات المتوسطات السنوية لها" (انظر أدناه).
  • SUMMARY_FOI: متغيرات الطقس ذات الأهمية بالنسبة "لبيانات المتوسطات السنوية" (انظر أدناه).
  • ARCHIVE_FOI: متغيرات الطقس ذات الأهمية لـ "بيانات التاريخ المحدد" (انظر أدناه).

بمجرد تعيين القيم التي تتوافق مع الإعداد الخاص بك ، فأنت على استعداد لجمع بيانات الطقس الخاصة بك. 

يمكنك الآن تشغيل البرنامج النصي "aerisweather_run.py". سيُطلب منك اختيار نوع البيانات التي تريد جمعها:

  • بيانات التاريخ المحدد
    • سيقوم البرنامج النصي بجمع بيانات الطقس لليوم الموثقة في عمود "التاريخ" من مجموعة البيانات (توقيت "الوقت") ، لكل مشارك في مجموعة البيانات الخاصة بك. سيجمع أيضًا بيانات الطقس لليوم السابق لهذا اليوم (توقيت "اليوم -1") ، واليوم الثاني قبل هذا اليوم (توقيت "اليوم -2"). سيتم حفظ البيانات في مجلد "النتائج" (ملف واحد لكل توقيت) ، مع تنسيق اسم الملف "selected_date_"توقيت_PARTICIPANTID.json ". على سبيل المثال ، “selected_date_في الوقت المحدد_مشارك_1.json "
  • بيانات المتوسطات السنوية
    • سيجمع البرنامج النصي بيانات الطقس لمدة 12 شهرًا من السنة التي حددتها في ملف "aerisweather_keys.py" ، لكل موقع فريد في مجموعة البيانات الخاصة بك. سيتم حفظ البيانات في مجلد "النتائج" (ملف واحد شهريًا) ، حيث يكون تنسيق اسم الملف هو "المتوسطات_YEAR_الموقع_اليوم الأول من الشهر_الشهر الماضي.json ". على سبيل المثال ، "المتوسطات_2019_48.856613,2.352222_2019-01-01_2019-01-31.json "

بمجرد اختيار نوع البيانات التي تريد جمعها ، فإن الخطوة الأخيرة هي اختيار عدد سلاسل الرسائل (بين 1 و 10) التي سيعمل البرنامج النصي عليها في وقت واحد. يتوافق هذا مع عدد مرات الوصول إلى Aerisweather التي سيتم إجراؤها في وقت واحد. ما لم تكن تجري بعض الاختبارات ، نوصيك بالذهاب إلى 10 حيث سيؤدي ذلك إلى جمع بيانات الطقس بشكل أسرع.

دمج البيانات

إذا كنت قد جمعت البيانات بنجاح من Aerisweather ، فيجب أن يكون لديك مجلد "نتائج" مليء بملفات .json. قد يكون تحليل البيانات صعبًا إذا لم تقم بمعالجة البيانات.

يسمح لك البرنامج النصي "aerisweather_statscomputing.py" بمعالجة البيانات ودمجها في ملف .csv واحد (حيث سيكون الفاصل "؛"). من الاستيراد بشكل خاص أنه يمكنك فقط تشغيل هذا البرنامج النصي إذا احتفظت بخيارات المتغير الافتراضية في ملف "aerisweather_keys.py" (على الأقل في الوقت الحالي).

عند تشغيل البرنامج النصي ، ستتم مطالبتك بالرسالة التي تلقيتها عند بدء البرنامج النصي "aerisweather_run.py" (على سبيل المثال ، يجب عليك اختيار نوع البيانات التي تريد دمجها).

يمكنك أيضًا العثور أدناه على دفتر الشفرات لملف .csv الناتج لكل نوع من أنواع البيانات:

ملاحظات ختامية

كانت هذه آخر مشاركة في هذه السلسلة حول تجريف البيانات. 

في آخر مشاركة من هذه السلسلة ، قدمنا ​​لك الإرشادات المتبقية حول كيفية استخدام البرامج النصية Bastien المبرمجة لجمع بيانات الطقس الخاصة بك على Aerisweather.

أخيرًا ، إذا أثارت منشوراتنا حول تجريد البيانات أي اهتمام بك لهذه المهارة ، يمكننا فقط تشجيعك على القفز إليها. معرفة كيفية كشط البيانات هي بالتأكيد مهارة قيمة في وقت تتزايد فيه كمية البيانات المتاحة عبر الإنترنت بشكل كبير. طالما أنك تشعر بالراحة مع لغة برمجة تسمح لك بتنفيذ طلبات الويب وطالما أنك تفهم المبادئ الأساسية لكشف البيانات ، فلن تحتاج إلى أي تدريب محدد لتشفير أول نصوص لكشف البيانات.

كتب هذا المنشور باستيان باريس وهانس إيجيزرمان

اترك تعليق

يستخدم هذا الموقع نظام Akismet لتقليل الرسائل الضارة. تعرف كيف تتم معالجة بيانات تعليقك.

%d المدونين مثل هذا: