स्ट्रावा एपीआई का अन्वेषण करें और पायथन के साथ पता करें
पिछले कुछ वर्षों में मेरी साइकिल चलाने और दौड़ने की गतिविधियों को ट्रैक करने के लिए स्ट्रैवा मेरा पसंदीदा ऐप बन गया। ऐप पर कई शानदार सुविधाओं में से एक यह है कि आपके दोस्तों को आपकी गतिविधियों के लिए आपको यश देने की क्षमता है। और कभी-कभी, ये यश सिर्फ मनोबल बढ़ाने के लिए होते हैं जो आपको चलते रहने के लिए चाहिए।
2022 में जब मैं आल्प्स में चढ़ने की तैयारी कर रहा था और पहले से अधिक नियमित रूप से स्ट्रावा का उपयोग कर रहा था, तो मैंने देखा कि कुछ लोग दूसरों की तुलना में अपने कुडोस के साथ अधिक उदार थे। लेकिन मुझे इसका कोई सटीक अंदाजा नहीं था कि यह कौन था और इसने मुझे सोचने पर मजबूर कर दिया। क्या ऐप द्वारा प्रदान किए जाने वाले आंकड़ों की तुलना में मेरे आँकड़ों पर गहराई से नज़र डालने का कोई तरीका है? खैर, वहाँ है।
इस लेख में, मैंने परियोजना की संरचना के लिए एक बहुत ही सामान्य "एक्सट्रैक्ट ट्रांसफ़ॉर्म लोड" दृष्टिकोण का उपयोग किया। मैं दिखा रहा हूं कि कैसे मैं स्ट्रावा (एक्सट्रैक्ट) से अपनी गतिविधियों के डेटा को प्राप्त करने में कामयाब रहा, नई अंतर्दृष्टि की गणना (रूपांतरण) और "कुदोस ग्राफ" और अन्य विज़ुअलाइज़ेशन का निर्माण करके यह जानने के लिए कि समर्थन (लोड) के लिए किसे धन्यवाद देना है।
मैंने समय के साथ पाया कि यह दृष्टिकोण समान डेटा परियोजनाओं को व्यवस्थित करने का एक शानदार तरीका था। कूदने से पहले एक आखिरी नोट, यहां दिखाया गया सब कुछ पुनरुत्पादन योग्य है और कोड जीथब (लेख के अंत में लिंक) पर उपलब्ध है ताकि आप अपना खुद का निर्माण कर सकें।
चलो कोडिंग करते हैं!
पहली चीज जो हमें करने की जरूरत है वह है प्रमाणित करना - यानी स्ट्रैवा से एक्सेस टोकन प्राप्त करना। निम्नलिखित फ़ंक्शन एक POST अनुरोध के साथ ठीक वैसा ही करेगा, जिसमें पिछले अनुभाग (क्लाइंट आईडी, क्लाइंट सीक्रेट, ताज़ा टोकन और प्राधिकरण कोड) में प्राप्त विवरण शामिल हैं। https://www.strava.com/oauth/token.
इस खंड में, हम दो कार्य बनाते हैं:
- प्रोफ़ाइल की सभी गतिविधियों की सूची प्राप्त करें।
हमारे द्वारा पहले प्राप्त किए गए एक्सेस टोकन का उपयोग करना और उन गतिविधियों के दायरे को परिभाषित करने वाली दो तिथियों को निर्दिष्ट करना जिनमें हम रुचि रखते हैं, हम इन दो तिथियों और उनकी मुख्य विशेषताओं के बीच सभी गतिविधियों की सूची प्राप्त करते हैं। - किसी विशिष्ट गतिविधि के कुदरों की सूची प्राप्त करें।
दुर्भाग्य से पिछले अनुरोध के परिणाम में गतिविधियों के कुदरों की सूची शामिल नहीं है। हमें get_kudos फ़ंक्शन बनाने की आवश्यकता है जो एकल गतिविधि के लिए kudoers की सूची लौटाता है, जिसे उसके activity_id द्वारा पहचाना जाता है।
अब जब हमें वह डेटा मिल गया है जो हम चाहते थे, तो विचार यह है कि केवल वही रखें जो हमें चाहिए और इसे पंडों के डेटाफ़्रेम में रखें।
नीचे दिया गया ट्रांसफ़ॉर्म फ़ंक्शन गतिविधियों की सूची से निम्न डेटा निकालता है:
- गतिविधि आईडी जिसका उपयोग किसी गतिविधि के लिए अद्वितीय पहचानकर्ता के रूप में किया जाता है।
- प्रत्येक गतिविधि के यश की संख्या।
- लूप में get_kudos() फ़ंक्शन का लाभ उठाकर किसी गतिविधि के लिए सभी कुडर्स की सूची।
- प्रत्येक गतिविधि की दूरी।
- प्रत्येक गतिविधि में लगने वाला समय।
- गतिविधि का प्रकार।
⚠️ स्ट्रावा एपीआई के उपयोग की एक सीमा है। हम हर 100 मिनट में 15 कॉल और प्रति दिन 1000 कॉल तक सीमित हैं।
इस परियोजना में, हम गतिविधियों की सूची प्राप्त करने के लिए एपीआई को एक बार कॉल कर रहे हैं, और फिर प्रति गतिविधि एक बार प्रत्येक में कुडर्स की सूची प्राप्त करने के लिए।
इसका मतलब है, यदि आपके पास विचारित विंडो में 100 से अधिक गतिविधियां हैं, तो कोड जैसा है वह काम नहीं करेगा और आपको एपीआई उपयोग सीमा का अनुपालन करने के लिए इसे थोड़ा संशोधित करने की आवश्यकता होगी।
केवल एक चीज बची है कि हम अभी-अभी बनाए गए कार्यों का लाभ उठाएं और कुछ दिलचस्प चीजों की योजना बनाना शुरू करें!
मेरे मामले में, मैं 2022 में अपनी गतिविधियों पर विचार कर रहा हूं, इस तारीख तक - 24/10/2022।
हमारी डेटा संरचना से, दी गई अवधि में कुछ उच्च स्तरीय KPI प्राप्त करना बहुत आसान है:
क्योंकि हमें पिछले अनुभाग में प्रत्येक गतिविधि के लिए खेल का प्रकार मिला है, हम यह भी आसानी से जांच कर सकते हैं कि क्या कुछ प्रकार की गतिविधियों में दूसरों की तुलना में यश प्राप्त करने की संभावना अधिक है। यहां प्रति प्रकार की गतिविधियों के लिए यश की औसत संख्या दी गई है:
भले ही यह सबसे लोकप्रिय प्रकार की गतिविधियाँ न हों, दौड़ना वह खेल था जहाँ मेरे पास सबसे अधिक डेटा पॉइंट थे और इसलिए यह वह जगह है जहाँ मैंने थोड़ी और खुदाई करने की कोशिश की। हम यह समझने की कोशिश कर सकते हैं कि एक गतिविधि को दूसरे की तुलना में अधिक प्रशंसा क्यों मिलेगी। आइए रन की दूरी और गतिविधि को प्राप्त होने वाले यश की संख्या के बीच संभावित सहसंबंध को देखें।
यह पता चला है कि एक सकारात्मक सहसंबंध प्रतीत होता है, यानी जितनी लंबी दौड़ होगी, यश की संख्या उतनी ही अधिक होगी, जैसा कि नीचे दिए गए ग्राफ में दिखाया गया है।
दी गई, इस परिणाम का सांख्यिकीय महत्व बहस योग्य है जिसे हमने बहुत कम डेटा बिंदुओं पर विचार किया। यहाँ एकमात्र निश्चित निष्कर्ष यह है कि मुझे और दौड़ने की आवश्यकता है।
हम अन्य चरों के प्रभाव को देखते हुए विश्लेषण में और आगे जा सकते हैं, लेकिन मैं इसे दूसरे लेख के लिए छोड़ दूँगा।
अंत में, हम "कुडोस ग्राफ़" प्लॉट कर सकते हैं जिसमें हम देख सकते हैं कि हमारे शीर्ष समर्थक कौन हैं और उन्हें चिल्लाते हैं।
बेशक, कुछ लोग दूसरों की तुलना में स्ट्रावा के अधिक आदी हैं और जब वे अपनी गतिविधि फ़ीड को नीचे स्क्रॉल करते हैं तो यश देंगे, जबकि अन्य केवल थोड़ी देर में ही ऐप खोलेंगे और केवल सबसे हालिया गतिविधियों को ही देखेंगे जो वे देखते हैं।
यह ग्राफ़ किसी भी तरह से प्रशंसा देने या न करने के लिए लोगों का न्याय करने के बारे में नहीं है, यह केवल उन नई जानकारियों को दर्शाने के बारे में है जो आपको कहीं और नहीं दिखाई देंगी — यहां तक कि ऐप के प्रीमियम संस्करण में भी नहीं।
इसमें कोई संदेह नहीं है कि हम स्ट्रावा एपीआई से प्राप्त होने वाले सभी डेटा के साथ और अधिक कर सकते हैं। यह एक असामान्य प्रश्न का उत्तर देने का पहला मौका था और चीजों को आगे बढ़ाने के लिए एक अच्छा अभ्यास था।
यदि आप अपनी स्ट्रावा गतिविधियों का विश्लेषण करना चाहते हैं और यह पता लगाना चाहते हैं कि आपके शीर्ष समर्थक कौन हैं, तो पूरा कोड यहां पाया जा सकता है:
https://github.com/Guigs11/strava_kudos
लेख को अंत तक पढ़ने के लिए धन्यवाद!
बेझिझक नीचे एक संदेश छोड़ें, या मेरे माध्यम से मुझसे संपर्क करें लिंक्डइन यदि आपके कोई प्रश्न / टिप्पणी हैं!
और भी आने को है!
स्ट्रावा पर आपका नंबर 1 समर्थक कौन है? स्रोत से पुनर्प्रकाशित
<!–
->
- Bitcoin
- बिज़बिल्डरमाइक
- blockchain
- ब्लॉकचेन अनुपालन
- ब्लॉकचेन सम्मेलन
- ब्लॉकचेन कंसल्टेंट्स
- coinbase
- कॉइनजीनियस
- आम राय
- क्रिप्टो सम्मेलन
- क्रिप्टो खनन
- cryptocurrency
- विकेन्द्रीकृत
- Defi
- डिजिटल आस्तियां
- ethereum
- यंत्र अधिगम
- बिना फन वाला टोकन
- प्लेटो
- प्लेटो एआई
- प्लेटो डेटा इंटेलिजेंस
- प्लाटोब्लोकैचिन
- प्लेटोडाटा
- प्लेटोगेमिंग
- बहुभुज
- हिस्सेदारी का प्रमाण
- W3
- जेफिरनेट