من هو الداعم رقم 1 الخاص بك على Strava؟

استكشف Strava API واكتشف ذلك باستخدام Python

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

في عام 2022 عندما كنت أستعد لتسلق جبال الألب واستخدمت Strava بانتظام أكثر من ذي قبل ، لاحظت أن بعض الناس كانوا أكثر كرمًا من الآخرين مع مجدهم. لكن لم يكن لدي فكرة دقيقة عن هويته وهذا ما جعلني أفكر. هل هناك طريقة لإلقاء نظرة أعمق على الإحصائيات الخاصة بي مما يقدمه التطبيق؟ حسنًا ، هناك.

في هذه المقالة ، استخدمت نهجًا شائعًا جدًا "استخراج تحميل التحويل" لهيكلة المشروع. أعرض كيف تمكنت من الحصول على بيانات أنشطتي من Strava (Extract) ، وحساب رؤى جديدة (Transform) وبناء "Kudos Graph" وتصورات أخرى لمعرفة من يجب أن أشكره على الدعم (التحميل).

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

دعونا نحصل على الترميز!

أول شيء يتعين علينا القيام به هو المصادقة - أي الحصول على رمز الوصول من Strava. ستفعل الوظيفة التالية ذلك تمامًا مع طلب POST ، الذي يحتوي على التفاصيل التي حصلنا عليها في القسم السابق (معرف العميل وسر العميل ورمز التحديث ورمز التفويض) إلى نقطة النهاية https://www.strava.com/oauth/token.

في هذا القسم ، نقوم بإنشاء وظيفتين من أجل:

  1. احصل على قائمة بجميع أنشطة الملف الشخصي.
    باستخدام رمز الوصول الذي حصلنا عليه سابقًا وتحديد تاريخين يحددان نطاق الأنشطة التي نهتم بها ، نحصل على قائمة بجميع الأنشطة بين هذين التاريخين وخصائصهما الرئيسية.
  2. احصل على قائمة التنويهات الخاصة بنشاط معين.
    للأسف ، لم يتم تضمين قائمة التنويهات الخاصة بالأنشطة في نتيجة الطلب السابق. نحتاج إلى إنشاء دالة get_kudos التي تُرجع قائمة التنويهات لنشاط واحد ، والتي تم تحديدها بواسطة معرف النشاط الخاص بها.

الآن بعد أن حصلنا على البيانات التي أردناها ، فإن الفكرة هي الاحتفاظ بما نحتاجه فقط ووضعه في Pandas Dataframe.

تستخرج وظيفة التحويل أدناه من قائمة الأنشطة البيانات التالية:

  1. معرف النشاط الذي يتم استخدامه كمعرف فريد للنشاط.
  2. عدد الشهرة لكل نشاط.
  3. قائمة بجميع التنويهات لنشاط ما من خلال الاستفادة من وظيفة get_kudos () في حلقة.
  4. مسافة كل نشاط.
  5. الوقت الذي استغرقه كل نشاط.
  6. نوع النشاط.

⚠️ هناك قيود على استخدام واجهة برمجة تطبيقات Strava. نحن مقيدون بـ 100 مكالمة كل 15 دقيقة و 1000 مكالمة في اليوم.

في هذا المشروع ، نتصل بواجهة برمجة التطبيقات (API) مرة واحدة للحصول على قائمة الأنشطة ، ثم مرة واحدة لكل نشاط للحصول على قائمة التنويهات في كل نشاط.

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

الشيء الوحيد المتبقي هو الاستفادة من الوظائف التي أنشأناها للتو والبدء في تخطيط بعض الأشياء المثيرة للاهتمام!

في حالتي ، أفكر في أنشطتي في عام 2022 ، حتى هذا التاريخ - 24/10/2022.

من خلال هيكل البيانات الخاص بنا ، من السهل جدًا الحصول على عدد قليل من مؤشرات الأداء الرئيسية عالية المستوى في الفترة المحددة:

مؤشرات الأداء الرئيسية عالية المستوى - صورة للمؤلف

نظرًا لأننا حصلنا على نوع الرياضة لكل نشاط في القسم السابق ، يمكننا أيضًا التحقق بسهولة مما إذا كانت أنواع معينة من الأنشطة أكثر عرضة لتلقي التنويهات من غيرها. فيما يلي متوسط ​​عدد التنويهات لكل نوع من الأنشطة:

متوسط ​​عدد التنويهات لكل نوع من الأنشطة - صورة للمؤلف

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

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

يمكننا المضي قدمًا في التحليل ، بالنظر إلى تأثير المتغيرات الأخرى ، لكنني سأترك ذلك لمقال آخر.

الارتباط الإيجابي بين مسافة الجري وعدد الشهرة التي يحصل عليها - رسم بياني حسب المؤلف

أخيرًا ، يمكننا رسم "مخطط Kudos Graph" الذي يمكننا من خلاله معرفة من هم كبار المؤيدين لدينا ومنحهم الصيحة.
بطبيعة الحال ، فإن بعض الأشخاص مدمنون على Strava أكثر من غيرهم وسيقدمون تنويهات أثناء قيامهم بالتمرير لأسفل في خلاصة أنشطتهم ، بينما سيفتح الآخرون التطبيق مرة واحدة فقط من حين لآخر ويعطون مجدًا فقط لأحدث الأنشطة التي صادفوا رؤيتها.
لا يتعلق هذا الرسم البياني بأي حال من الأحوال بالحكم على الأشخاص الذين قدموا تنويهات أم لا ، إنه ببساطة يتعلق بتوضيح رؤى جديدة لن تراها في أي مكان آخر - ولا حتى في الإصدار المتميز من التطبيق.

يوضح "مخطط Kudos" أهم الداعمين - رسم بياني بواسطة المؤلف

لا شك أن هناك طريقة أكثر يمكننا القيام بها باستخدام جميع البيانات التي يمكننا الحصول عليها من Strava API. كانت هذه مجرد لقطة أولى للإجابة على سؤال غير معتاد وتمرينًا جيدًا لبدء الأمور.

إذا كنت ترغب في تحليل أنشطة Strava ومعرفة من هم كبار الداعمين لك ، فيمكن العثور على الكود بالكامل هنا:
https://github.com/Guigs11/strava_kudos

شكرا لقراءتك طول الطريق حتى نهاية المقال!
لا تتردد في ترك رسالة أدناه ، أو التواصل معي من خلال
لينكدين: إذا كان لديك أي أسئلة / ملاحظات!
المزيد من الخدمات!

من هو الداعم رقم 1 الخاص بك على Strava؟ أعيد نشرها من المصدر https://towardsdatascience.com/whos-your-number-1-supporter-on-strava-5a888230f361؟source=rss—-7f60cf5620c9—4 عبر https://towardsdatascience.com/feed

<!–

->

الطابع الزمني:

اكثر من مستشارو Blockchain