डेटा की गुणवत्ता

निर्देशांकों की राउंडिंग लोगों की सोच से ज़्यादा मायने क्यों रखती है

निर्देशांकों को स्टोर या प्रदर्शित करने से पहले कुछ दशमलव स्थानों तक काट देना आम बात है, अक्सर सिर्फ़ इसलिए कि कोई संख्या तालिका या URL में ज़्यादा साफ़-सुथरी दिखे। जो बात आसानी से छूट जाती है वह यह है कि अक्षांश या देशांतर के मान का हर दशमलव स्थान ज़मीन पर एक ख़ास, गणना योग्य दूरी से मेल खाता है, और अंकों को राउंड करके हटाना असली भौतिक प्रिसिज़न को हटाना है, सिर्फ़ दिखावटी अव्यवस्था को नहीं।

भूमध्य रेखा के पास, चार दशमलव स्थानों तक लिखा गया निर्देशांक लगभग दस मीटर दूर के स्थानों में अंतर कर पाता है, जो लगभग एक इमारत की चौड़ाई के बराबर है। इसके बजाय इसे दो दशमलव स्थानों तक रखें, तो अब आप लगभग एक किलोमीटर दूर के स्थानों में अंतर कर रहे हैं, जो आसानी से एक मोहल्ले और अगले मोहल्ले के बीच का अंतर है। शून्य दशमलव स्थानों तक राउंड करें, तो आप केवल पूरे डिग्री में अंतर कर पाते हैं, जो कई किलोमीटर तक फैले होते हैं। ख़ासकर देशांतर के लिए, भूमध्य रेखा से ध्रुवों की ओर जाने पर प्रति दशमलव स्थान की सटीक दूरी थोड़ी घटती जाती है, क्योंकि देशांतर रेखाएँ आपस में मिलती जाती हैं, लेकिन दशमलव स्थानों और वास्तविक दूरी के बीच का सामान्य संबंध हर जगह लागू होता है।

कुछ आम स्थितियों में यह असली समस्या बन जाती है। अपर्याप्त दशमलव प्रिसिज़न वाले डेटाबेस कॉलम में निर्देशांक स्टोर करने से डेटा अंदर जाते समय ही चुपचाप कट जाता है, और इस विफलता में कुछ भी एरर जैसा नहीं दिखता, क्योंकि नतीजे वाली संख्या अब भी एक मान्य निर्देशांक है, बस कम सटीक। निर्देशांकों को ऐसे सिस्टम से गुज़ारना जो प्रदर्शन के लिए उन्हें राउंड करता है, और फिर उसी राउंड किए गए मान को आगे की किसी गणना में इस्तेमाल करना, जैसे दूरी की जाँच या निकटता खोज, मूल राउंडिंग को आगे के हर नतीजे में बढ़ा देता है। सिस्टमों के बीच निर्देशांक हाथ से कॉपी करना, जहाँ कोई व्यक्ति अंक इसलिए काट देता है क्योंकि पूरा मान बेवजह लंबा लगा, वही असर डालता है।

सुरक्षित आदत यह है कि निर्देशांकों को इतनी दशमलव प्रिसिज़न के साथ स्टोर करें और आगे भेजें जो आपके वास्तविक उपयोग से मेल खाए, आम तौर पर कम से कम पाँच से छह दशमलव स्थान, उन सभी चीज़ों के लिए जिन्हें इमारत या सड़क के स्तर पर सार्थक रूप से सटीक रहना है, और राउंड केवल प्रदर्शन के लिए, किसी व्यक्ति को संख्या दिखाने से ठीक पहले के आख़िरी चरण में करें, किसी गणना से पहले कभी नहीं। अगर आपको वास्तव में केवल शहर के स्तर का अंतर चाहिए, तो पहले राउंड करना ठीक है, लेकिन यह आपके ऐप्लिकेशन की ज़रूरत पर आधारित सोचा-समझा फ़ैसला होना चाहिए, न कि डेटाबेस कॉलम की चौड़ाई या फ़ॉर्मेटिंग की किसी आदत का संयोग।

यहाँ फ़ॉरवर्ड और रिवर्स जियोकोडिंग से लौटाए गए निर्देशांकों में इतनी दशमलव प्रिसिज़न होती है कि वे इमारत-स्तर के उपयोग को सपोर्ट कर सकें। आगे चलकर आप उस प्रिसिज़न के साथ क्या करते हैं, ख़ासकर स्टोरेज और राउंडिंग के मामले में, उसे यह मान लेने के बजाय जानबूझकर जाँचना चाहिए कि वह आपकी पाइपलाइन के हर चरण से बिना बदले निकल जाती है।