सितंबर 2009
उद्देश्य
यह ट्यूटोरियल, आपको सुपर-ओवरले बनाने की बुनियादी बातों की जानकारी देता है. यह बुनियादी ओवरले है, जो क्षेत्र के हिसाब से नेटवर्क लिंक का इस्तेमाल करते हैं. इसके लिए, ओपन सोर्स जियोस्पेशल डेटा ऐब्स्ट्रक्शन लाइब्रेरी का इस्तेमाल किया जाता है.
सुविधा के बारे में जानकारी
Google Earth और Google Maps जैसे जियोब्राउज़र आपको उपग्रह से मिली तस्वीरों का संग्रह और मैप टाइल दिखाते हैं. हालांकि, कभी-कभी हो सकता है कि आप इसका उपयोग करना चाहें. तस्वीरों का संग्रह या रास्टर डेटा कई तरह का होता है और इसके कई इस्तेमाल होते हैं.
- अपने उपग्रह या एरियल इमेजरी को किसी जियोब्राउज़र में रखना
- मौजूदा इमेजरी के ऊपर ऐतिहासिक मैप डालना, जैसे कि Google Earth में रमसे मैप लेयर
- रास्टर फ़ॉर्म में GIS डेटा इंपोर्ट करना
- जियोब्राउज़र में LIDAR या इन्फ़्रारेड इमेजरी रखना
हालांकि, हाई-रिज़ॉल्यूशन वाले रास्टर डेटा से जुड़ी एक समस्या यह है कि इसे दिखाने में बहुत ज़्यादा मेमोरी लगती है. साथ ही, अगर आप इस समस्या को दूर करने की कोशिश कर रहे हैं, तो बैंडविड्थ से जुड़ी समस्याएं भी आपकी हैं. इस समस्या को हल करने के लिए, आपको टाइल बनानी होंगी.
टाइलिंग आपकी इमेज फ़ाइल को कई अलग-अलग इमेज में बांट देती है, जब वे नज़र आती हैं. उपयोगकर्ता के ज़ूम आउट करने के दौरान, डिसप्ले के लिए कम रिज़ॉल्यूशन वाली एक इमेज बनाई जाती है. उसी क्षेत्र में, आप करीब से देखने के लिए चार हाई रिज़ॉल्यूशन वाली इमेज बनाते हैं. किसी इमेज के ऊपर ओवरले किए गए हर क्षेत्र के लिए, आप ज़ूम इन करने के लिए चार और बेहतर रिज़ॉल्यूशन वाली इमेज बनाते हैं. इसे क्वाडट्री तरीका कहा जाता है. साथ ही, इससे Google Earth और Google Maps की तस्वीरें टाइल की जाती हैं. इस प्रोसेस के बारे में क्षेत्र के KML डेवलपर गाइड के लेख में ज़्यादा जानकारी दी गई है.
यह Adobe के PhotoShop या GIMP जैसे ग्राफ़िक्स बदलाव करने वाले ऐप्लिकेशन की मदद से मैन्युअल रूप से करना मुमकिन है, लेकिन यह जटिल, मुश्किल, और गड़बड़ियों की संभावना है. Windows के लिए भी कई बेहतरीन ऐप्लिकेशन उपलब्ध हैं, जैसे कि SuperOverlay, Arc2Earth, और MapCruncher को CrunchUp2KML के साथ जोड़ा गया है.
अगर आपको प्रोसेस को ऑटोमेट करना है या अपने ऐप्लिकेशन में फ़ंक्शन जोड़ना है, तो GDAL, रास्टर और वेक्टर डेटा के साथ काम करने के लिए, टूल का रिच सेट उपलब्ध कराता है. इस लेख में कमांड लाइन के विकल्प शामिल हैं. हालांकि, लाइब्रेरी आसानी से आपके ऐप्लिकेशन में शामिल की जा सकती हैं. इस ट्यूटोरियल के लिए, आपको gdalinfo
, gdal_translate
, gdalwarp
, और gdal2tiles
सुविधाओं का इस्तेमाल करना होगा. सबसे अच्छा आउटपुट एक सुपर-ओवरले होता है.
कमांड लाइन स्टेप
कमांड लाइन पर GDAL का इस्तेमाल करने के छह चरण हैं.
- GDAL डाउनलोड और इंस्टॉल करें
- इमेज डाउनलोड करना
- इमेज के बारे में जानकारी पाने के लिए
gdalinfo
का इस्तेमाल करें - इमेज की जगह की जानकारी का रेफ़रंस देने के लिए,
gdal_translate
का इस्तेमाल करें - इमेज के प्रोजेक्शन को बदलने के लिए
gdalwarp
का इस्तेमाल करें - इमेज को टाइल में बांटने और उससे जुड़ा KML कोड बनाने के लिए,
gdal2tiles
का इस्तेमाल करें
पहला चरण: GDAL डाउनलोड और इंस्टॉल करें
GDAL डाउनलोड और इंस्टॉल करके शुरुआत करें जैसा कि यहां बताया गया है.
दूसरा चरण: इमेज डाउनलोड करना
किसी भी इमेज का इस्तेमाल किया जा सकता है. वेब पर भौगोलिक डेटा के कई स्रोत हैं. आप उनमें से किसी का भी उपयोग कर सकते हैं, लेकिन आपको चित्र की सीमाओं के बारे में पता होना चाहिए—इमेज के हर कोने के अक्षांश और देशांतर की जानकारी. यह ट्यूटोरियल NASA ब्लू मार्बल इमेज का इस्तेमाल करता है, जिसे NASA की वेबसाइट से डाउनलोड किया जा सकता है. ये तस्वीरें 2004 में ली गई थीं और अंतरिक्ष से पृथ्वी की खूबसूरत इमेज पेश करती हैं. दाईं ओर मौजूद नेविगेशन बार के नीचे, दाईं ओर मौजूद फ़ाइलों में से किसी एक को चुनें.
अगर आप अपनी इमेज का इस्तेमाल कर रहे हैं और जानते हैं कि यह पहले से ही भौगोलिक रूप से सही है, तो सीधे पांचवें चरण पर जाएं. नहीं तो, तीसरे चरण पर जाएं.
तीसरा चरण: इमेज के बारे में जानकारी पाना
एक बार GDAL लाइब्रेरी को इंस्टॉल करने और इमेज चुनने के बाद, आपको इमेज के बारे में कुछ जानकारी चाहिए होगी, ताकि आप उसका भौगोलिक रेफ़रंस दे सकें. खास तौर पर, आपको इमेज के हर कोने के लिए पिक्सल और लाइन पोज़िशन की ज़रूरत होती है. अगर आप इमेज को कॉलम और लाइनों के साथ एक टेबल के तौर पर देखें, तो पिक्सल, कॉलम और लाइनों को लाइन कहा जाता है.
यह जानकारी हासिल करने के लिए, GDAL काम की सुविधा gdalinfo
देता है. कमांड लाइन पर, filename
को फ़ाइल के पाथ से बदलकर, gdalinfo filename
टाइप करें. आपको ऐसा आउटपुट मिलना चाहिए:
Driver: JPEG/JPEG JFIF Files: world_200401.jpg Size is 21600, 10800 Coordinate System is `' Image Structure Metadata: SOURCE_COLOR_SPACE=YCbCr INTERLEAVE=PIXEL COMPRESSION=JPEG Corner Coordinates: Upper Left ( 0.0, 0.0) Lower Left ( 0.0,10800.0) Upper Right (21600.0, 0.0) Lower Right (21600.0,10800.0) Center (10800.0, 5400.0) Band 1 Block=21600x1 Type=Byte, ColorInterp=Red Image Structure Metadata: COMPRESSION=JPEG Band 2 Block=21600x1 Type=Byte, ColorInterp=Green Image Structure Metadata: COMPRESSION=JPEG Band 3 Block=21600x1 Type=Byte, ColorInterp=Blue Image Structure Metadata: COMPRESSION=JPEG
इस ट्यूटोरियल से जुड़ी अहम जानकारी, अपर लेफ़्ट, लोअर लेफ़्ट, अपर राइट, लोअर राइट लाइनें हैं. ये आपको हर कोने की पिक्सल और लाइन वैल्यू बताते हैं. इस मामले में, ऊपर बाईं ओर 0.0 का आइकॉन और लोअर राइट का आइकॉन 21,600,10800 है.
चौथा चरण: इमेज की भौगोलिक जगह तय करना
इस मामले में जियोसंदर्भिंग का मतलब है कि इमेज के हर कोने की भौगोलिक स्थिति के बारे में जानकारी देने वाला मेटाडेटा बनाना. चरण 3 और gdal_translate
में मिली जानकारी का उपयोग करके, आप फ़ाइल को भौगोलिक संदर्भ जानकारी असाइन कर सकते हैं. यह world_200401.jpg
इमेज, bluemarble1.vrt
से एक GVT फ़ाइल बनाता है. UTM फ़ाइलें ऐसी एक्सएमएल फ़ाइलें होती हैं जिनमें किसी खास बदलाव की जानकारी होती है. इस मामले में, gdal_translate
चरण में. आप टाइलों का अपना फ़ाइनल सेट बनाने के लिए, अगले चरण में इसका फिर से इस्तेमाल करेंगे. gdal_translate
से, अलग-अलग तरह की फ़ाइलों को टाइप किया जा सकता है. इनमें, इमेज फ़ाइल के मुख्य फ़ॉर्मैट भी शामिल हैं. GV आउटपुट का इस्तेमाल करके, आप आखिरी चरण तक आउटपुट फ़ाइलें बनाना रोक सकते हैं. इस सुविधा से बेहतर तरीके से काम करने में मदद मिलती है. साथ ही, अगर आप कमांड लाइन बना रहे हैं, तो इंतज़ार का समय कम हो जाता है. आपको जो कमांड चलाना है वह यहां दिया गया है:
gdal_translate -of VRT -a_srs EPSG:4326 -gcp 0 0 -180 90 -gcp 21600 0 180 90 -gcp 21600 10800 180 -90 world_200401.jpg bluemarble1.vrt
उस लाइन पर बहुत सारी जानकारी है, इसलिए उसे यहां दिखाया गया है
- इस मामले में,
-of
आउटपुट फ़ॉर्मैट है: GV. -a_srs
, फ़ाइल को स्थान-भाषा के बारे में बताने वाला सिस्टम असाइन करता है. इससे, इस्तेमाल किए जा रहे ऐप्लिकेशन की जानकारी मिलती है कि किस सिस्टम का इस्तेमाल हो रहा है. इस मामले में, यह EPSG:4326 का उपयोग कर रहा है, जो WGS84 के समान है, Google Earth द्वारा उपयोग किए गए निर्देशांक सिस्टम.-gcp
या ग्राउंड कंट्रोल पॉइंट से फ़ाइल की पोज़िशन के लिए निर्देशांक तय होते हैं. इस मामले में, आपको सिर्फ़ तीन पॉइंट की ज़रूरत होती है, क्योंकि इमेज आयताकार है और इसलिए चौथे पॉइंट को आसानी से पहचाना जा सकता है.-gcp
के लिए, gcp को पिक्सल और फिर लाइन नंबर को सेट करें. इसके बाद, देशांतर और अक्षांश सेट करें. उनमें से हर एक को स्पेस से अलग किया जाता है.- आखिरी दो पैरामीटर मूल फ़ाइल और टारगेट फ़ाइल हैं.
पांचवां चरण: इमेज को मोड़ना
मूल इमेज गोल ग्लोब के लिए नहीं बनाई गई थी. इसे सपाट दिखने के लिए बनाया गया था. GIS शब्दों में, इसे प्रोजेक्ट किया गया है, जिसका मतलब है कि यह तीन डाइमेंशन वाला ऑब्जेक्ट है. प्रोजेक्शन के लिए, इमेज के डिस्टॉर्शन की ज़रूरत होती है, ताकि वह पृथ्वी की सपाट इमेज को कैसा दिखे.
उसे सही दिखाने के लिए, आपको उसे ग्लोब में फ़िट करने के लिए उसका आकार बदलना होगा. अच्छी बात यह है कि GDAL भी उसे एक बेहतरीन टूल देता है. बस gdalwarp -of VRT -t_srs EPSG:4326 bluemarble1.vrt bluemarble2.vrt
लिखें. इससे ताने की प्रक्रिया के बारे में मेटाडेटा देने के लिए एक नई फ़ाइल, Bluemarble2.vrt बन जाएगी.
छठा चरण: टाइल बनाना
आपका काम करीब पूरा हो गया है, लेकिन इस भाग में सबसे ज़्यादा समय लगेगा. टाइल बनाने के लिए, gdal2tiles.py -p geodetic -k bluemarble2.vrt
में टाइप करें. -k
के ज़रिए KML आउटपुट बनाया जाता है. इससे, एक डायरेक्ट्री स्ट्रक्चर बन जाएगा और वह सुपर-ओवरले बन जाएगा. इमेज फ़ाइलों में से हर एक को अलग-अलग बनाना होगा. इसलिए, इन्हें चलने में थोड़ा समय लगेगा. अब आप बड़ी तस्वीरों के लिए एक कप कॉफ़ी ले सकते हैं, झपकी ले सकते हैं, हो सकता है कि हल्का भोजन मिले. जब आपका काम हो जाए, तब doc.kml
खोलें और नतीजों पर नज़र रखें!
नतीजा
यह ट्यूटोरियल बस सरफ़ेस को स्क्रैच करता है कि GDAL क्या कर सकता है. हालांकि, इससे टाइल बनाने में आसानी होती है. कोर GDAL लाइब्रेरी C++ में लिखी जाती हैं, लेकिन वे Perl, Python, VB6, R, Ruby, Java, और C#/.NET के लिए बाइंडिंग उपलब्ध कराती हैं, जिसका मतलब है कि आप GDAL को अपने ऐप्लिकेशन में आसानी से शामिल कर सकती हैं. साथ ही, Colab में gdal2tiles
के साथ-साथ कई सुविधाएं भी शामिल हैं, जो Python ऐप्लिकेशन में आसानी से शामिल हो जाती हैं. gdal2tiles
के पास Google Maps API और OpenLayers के पेजों को जनरेट करने की सुविधा भी होती है.