यह उन स्थानों में से एक है जहां एक छोटा सिद्धांत सहायक होता है। आपको कई चीजों के बारे में सोचना होगा:
- आपके माप का संकल्प क्या है: 0.1 डिग्री या 0.001 डिग्री? 1 सेकंड या एक माइक्रोसेकंड?
- माप से जुड़े हैं और कुछ क्रम में, या एक साथ यादृच्छिक रूप से फेंक रहे हैं?
मान लें, सिर्फ उदाहरण के लिए, कि संकल्प 0.01 ° है। उन्हें आप जानते हैं कि आपके मान -180 डिग्री सेल्सियस + 180 डिग्री, या 35 9 00 विभिन्न मानों से हैं। एलजी (35 9 00) ≈ 16 इसलिए आपको 16 बिट्स की आवश्यकता है; -90 डिग्री के लिए 14 बिट्स - + 9 0 डिग्री। स्पष्ट रूप से, यदि आप इस तरह के मूल्य को फ़्लोटिंग-पॉइंट के रूप में संग्रहीत कर रहे हैं, तो आप डेटा को आधे से तुरंत संपीड़ित कर सकते हैं।
इसी प्रकार तिथि के साथ, सीमा क्या है; आपके पास कितने बिट्स होना चाहिए?
अब, डेटा कुछ आदेश (जैसे, नमूने एक भी जहाज़ पर क्रमिक रूप से लिया गया) तो आप सभी की जरूरत एक शुरुआत के मूल्य और एक डेल्टा है में है अगर; जो बड़ा अंतर बना सकता है। 30 समुद्री मील पर यात्रा करने वाले जहाज के साथ, स्थिति अब 0.03 डिग्री प्रति घंटा या लगभग 0.0000083 डिग्री प्रति सेकंड नहीं बदल सकती है। वे डेल्टा बहुत छोटे मूल्य होने जा रहे हैं, ताकि आप उन्हें बहुत कम बिट्स में स्टोर कर सकें।
बिंदु जिन्हें आप कर सकते की एक संख्या देखते हैं, लेकिन आप डेटा के बारे में अधिक पता करने के लिए की तुलना में हम एक सिफारिश बनाने के लिए क्या होता है।
अद्यतन: ओह, प्रतीक्षा करें, निश्चित बिंदु तार?!
ठीक है, यह (अपेक्षाकृत) आसान है। बस शुरू करने के लिए, हाँ, आप अपने तारों को कुछ बाइनरी प्रतिनिधित्व में परिवर्तित करना चाहते हैं। एक डेटा आइटम को बनाने बस, आप
040.00105.0020090518212100Z
जो आप
| 4000 | short int, 16 bits |
| 10500 | short int, 16 bits |
| 20090518212100Z | 64 bits |
को परिवर्तित कर सकते हैं ताकि 96 बिट, 12 बाइट्स 26 बाइट्स बनाम है हो सकता है।
क्या आप लेट/लांग के लिए निश्चित बिंदु या फ़्लोटिंग पॉइंट का उपयोग कर रहे हैं? यदि आपके पास निश्चित स्थिति हैं तो आप केवल बाइट सरणी में मानों को पैक कर सकते हैं। प्रत्येक पैकेट में डेटा की इतनी छोटी मात्रा के साथ आपके पास संपीड़न/पैकेट हेडर में अधिक से अधिक सिर होगा, जो आपके डेटा में होगा। इसके साथ आप किस भाषा के साथ काम कर रहे हैं? –