Google Earth Engine की मदद से, Google Cloud Storage (GCS) बकेट में सेव किए गए रास्टर डेटा का इस्तेमाल किया जा सकता है. क्लाउड ऑप्टिमाइज़्ड GeoTIFFs (सीओजी) का इस्तेमाल करके, Earth Engine में सीधे तौर पर अपना डेटा ऐक्सेस और उसका विश्लेषण किया जा सकता है. इसके लिए, आपको Earth Engine के ऐसेट स्टोर में पिक्सल डालने की ज़रूरत नहीं है.
क्लाउड-फ़र्स्ट अप्रोच के कई फ़ायदे हैं. खास तौर पर, बड़े डेटासेट मैनेज करने या Earth Engine को Google Cloud के बड़े वर्कफ़्लो या बाहरी टूल और प्लैटफ़ॉर्म में इंटिग्रेट करने के लिए.
Cloud Storage और COGs का इस्तेमाल क्यों करना चाहिए?
- लचीलापन और इंटरऑपरेबिलिटी: अपने डेटा को स्टैंडर्ड Cloud Storage बकेट में रखें. इससे अन्य टूल और सेवाएं इसे ऐक्सेस कर सकती हैं. डेटा को सीधे तौर पर अपलोड किया जाता है या Earth Engine से एक्सपोर्ट किया जाता है, Cloud Storage, Earth Engine और बाहरी वर्कफ़्लो, दोनों के लिए एकमात्र भरोसेमंद सोर्स के तौर पर काम करता है.
- डेटा कंट्रोल और इग्रेस: Cloud Storage में डेटा सेव करने से, ऑब्जेक्ट स्टोरेज को मैनेज करने की स्टैंडर्ड सुविधाएं मिलती हैं. इससे आपको Cloud Storage की सुविधाओं का इस्तेमाल करके, अपना डेटा डाउनलोड करने, माइग्रेट करने या शेयर करने की सुविधा मिलती है. जैसे, अनुरोध करने वाले को पैसे चुकाने होंगे या सार्वजनिक बकेट. साथ ही, स्टैंडर्ड Cloud IAM का इस्तेमाल करके, ऐक्सेस मैनेज करने की सुविधा मिलती है.
- ज़रूरत के हिसाब से स्टोरेज बढ़ाना: Earth Engine की स्टोरेज की सीमाओं से बचें. Cloud Storage, पेटाबाइट स्केल तक अनलिमिटेड और सेल्फ़-सर्विस स्टोरेज स्केलिंग की सुविधा देता है.
- डेटा डालने के लिए इंतज़ार करने की ज़रूरत नहीं: COG को रजिस्टर करने की प्रोसेस तेज़ी से पूरी होती है, क्योंकि Earth Engine इंडेक्सिंग और पुष्टि करने के लिए, फ़ाइल हेडर से सिर्फ़ मेटाडेटा (जैसे कि प्रोजेक्शन और डाइमेंशन) पढ़ता है. असल पिक्सल डेटा, Cloud Storage में सेव रहता है. साथ ही, कंप्यूटेशन के दौरान मांग पर इसे पढ़ा जाता है. इससे डेटा को अलग से डालने की ज़रूरत नहीं पड़ती.
Earth Engine में COG वर्कफ़्लो
Earth Engine, Cloud Storage पर COG के साथ दोनों दिशाओं में वर्कफ़्लो को सपोर्ट करता है: GCS से COG को सीधे Earth Engine में पढ़ा जा सकता है. साथ ही, Earth Engine से कंप्यूटेशन के नतीजों को सीधे GCS में COG के तौर पर लिखा जा सकता है.
Cloud Storage से COG फ़ाइलें पढ़ी जा रही हैं
GCS पर होस्ट किए गए COG को Earth Engine में लाने के लिए, आपके पास दो विकल्प हैं:
सीधे तौर पर लोड करना (
ee.Image.loadGeoTIFF): किसी इमेज को उसके GCS यूआरआई का इस्तेमाल करके सीधे तौर पर लोड करें. यह विकल्प, तुरंत टेस्ट करने, ज़रूरत के हिसाब से विश्लेषण करने या कुछ समय के लिए डेटा सेव करने के लिए सबसे सही है:JavaScript
var image = ee.Image.loadGeoTIFF('gs://google-sample-bucket/my_image.tif');Python
image = ee.Image.loadGeoTIFF('gs://google-sample-bucket/my_image.tif')पूरे उदाहरणों के लिए, Cloud GeoTIFF से ली गई इमेज देखें.
रजिस्टर की गई ऐसेट: अपलोड मेनिफ़ेस्ट का इस्तेमाल करके, एक या उससे ज़्यादा सीओजी को Earth Engine ऐसेट के तौर पर रजिस्टर करें. इसके लिए, सीओजी रजिस्ट्रेशन गाइड देखें. हमारा सुझाव है कि प्रोडक्शन वर्कफ़्लो के लिए, इस पाथ का इस्तेमाल करें. खास तौर पर, इमेज कलेक्शन बनाते समय.
| सुविधा | डायरेक्ट लोड (loadGeoTIFF) |
रजिस्टर की गई ऐसेट (मेनिफ़ेस्ट) |
|---|---|---|
| सेट अप | कोई नहीं (सिर्फ़ GCS यूआरआई) | मेनिफ़ेस्ट (Python क्लाइंट, सीएलआई या REST) |
| परफ़ॉर्मेंस | स्टैंडर्ड (पढ़ने पर हेडर पढ़ता है) | ऑप्टिमाइज़ किया गया (बनाते समय इंडेक्स किया गया) |
| मैनेजमेंट | कोई ऐसेट नहीं बनाई गई | यह ऐसेट की संख्या के कोटे में गिना जाता है, स्टोरेज में नहीं. |
| इस्तेमाल का उदाहरण | प्रोटोटाइपिंग, ऐड हॉक ऐनलिसिस | ऐसे प्रोडक्शन वर्कफ़्लो जिनमें डेटा को तेज़ी से पढ़ने की ज़रूरत होती है. |
Cloud Storage में सीओजी लिखना
Earth Engine में किए गए कैलकुलेशन के नतीजों को Cloud Storage बकेट में सीओजी के तौर पर सेव करने के लिए, Export.image.toCloudStorage बैच एक्सपोर्ट फ़ंक्शन का इस्तेमाल करें. इसके बारे में ज़्यादा जानने के लिए, इमेज एक्सपोर्ट करना लेख पढ़ें. साथ ही, formatOptions में cloudOptimized पैरामीटर को true पर सेट करें. इससे Earth Engine को इमेज कंपाइल करने और उसे सीधे तौर पर आपके GCS बकेट में पूरी तरह से नियमों का पालन करने वाले COG के तौर पर लिखने का निर्देश मिलता है.
Cloud Storage बकेट की वे जगहें जहां यह सुविधा काम करती है
Earth Engine को आपकी Cloud Storage बकेट ऐक्सेस करने के लिए, बकेट इनमें से किसी एक डेटा सेंटर क्षेत्र या एक से ज़्यादा क्षेत्रों में मौजूद होनी चाहिए:
usमल्टी-रीजन- अमेरिका का ऐसा कोई भी ड्यूअल-रीजन, जिसमें
us-central1शामिल हो us-central1क्षेत्र
अगर आपका बकेट किसी अन्य रीजनल डेटा सेंटर में रखा गया है, तो Earth Engine, रजिस्ट्रेशन और पढ़ने के अनुरोधों को अस्वीकार कर देगा. Earth Engine, सिर्फ़ Google Cloud Storage बकेट में सेव किए गए सीओजी को ऐक्सेस करता है. क्लाउड स्टोरेज की सेवा देने वाली बाहरी कंपनियों और सामान्य एचटीटीपी यूआरएल का इस्तेमाल नहीं किया जा सकता.
Earth Engine से सीओजी एक्सपोर्ट करने से जुड़ी खास बातें
formatOptions में cloudOptimized: true के साथ Export.image.toCloudStorage का इस्तेमाल करके, Earth Engine से विश्लेषण के नतीजे एक्सपोर्ट करते समय, Earth Engine का पहले से मौजूद एक्सपोर्टर, इन स्टैंडर्ड को अपने-आप लागू करता है:
- फ़ाइल का स्ट्रक्चर: यह इंटरनल टाइलिंग (
TILED=YES) के साथ BigTIFF (BIGTIFF=YES) जनरेट करता है. साथ ही, सभी खास जानकारी को फ़ाइल की शुरुआत में कॉपी करता है. - अपने-आप बनने वाली खास जानकारी: अगर आउटपुट रास्टर डाइमेंशन 512x512 पिक्सल या इससे ज़्यादा है, तो Earth Engine, दो की घात वाली खास जानकारी (
[2, 4, 8, 16, 32]) के पांच लेवल अपने-आप बनाता है. Earth Engine, आउटपुट पिक्सल डेटा टाइप के आधार पर, खास जानकारी के लिए फिर से सैंपलिंग करने का तरीका डाइनैमिक तरीके से चुनता है: फ़्लोटिंग-पॉइंट इमेज के लिए क्यूबिक रीसैंपलिंग और अन्य सभी पूर्णांक या अलग-अलग इमेज के लिए सबसे नज़दीकी पड़ोसी रीसैंपलिंग. - डिफ़ॉल्ट कंप्रेस करने और टाइल बनाने की सुविधा: Earth Engine, COG को 256x256 पिक्सल ब्लॉक टाइलिंग और LZW कंप्रेस करने की सुविधा (
COMPRESS=LZW) के साथ एक्सपोर्ट करता है.formatOptionsमें कंप्रेस करने और टाइल के डाइमेंशन को पसंद के मुताबिक नहीं बनाया जा सकता. - अपने-आप शार्डिंग होना: अगर एक्सपोर्ट किया गया रास्टर बड़ा है (बिना कंप्रेस किए गए 4 गीबी से ज़्यादा), तो Earth Engine, एक्सपोर्ट को अपने-आप कई स्पेशल टाइल में बांट देता है. इन्हें
baseFilename-yMin-xMinनाम दिया जाता है. बड़ी फ़ाइलें एक्सपोर्ट करना देखें. - शार्डिंग की सीमाओं को बदलना: बड़े रास्टर (बिना कंप्रेस किए गए 16 GiB और हर किनारे पर 1,31,072 पिक्सल की तय सीमा तक) को शार्डिंग के बिना एक फ़ाइल के तौर पर एक्सपोर्ट करने के लिए,
formatOptionsमेंfileDimensionsडालें. हर डाइमेंशन, टाइल के साइज़ का पॉज़िटिव इंटिजर मल्टीपल होना चाहिए. डिफ़ॉल्ट रूप से, यह 256 होता है. उदाहरण के लिए,[65536, 65536].fileDimensions, आउटपुट बाउंडिंग बॉक्स के बजाय फ़ाइल का ज़्यादा से ज़्यादा डाइमेंशन सेट करता है. इसलिए, ज़्यादा वैल्यू पास करने पर, एक्सपोर्ट की प्रोसेस एक ही फ़ाइल में पूरी हो जाती है. इसके लिए, ग्रिड का सटीक कैलकुलेशन करने की ज़रूरत नहीं होती. खाली बैकग्राउंड टाइल जनरेट होने से रोकने के लिए,skipEmptyFiles: trueको भी पास किया जा सकता है. - ऑप्टिमाइज़ेशन के फ़ायदे और नुकसान: बड़े डेटा सेट को एक्सपोर्ट करने के लिए कॉन्फ़िगर करते समय, फ़ाइलों की संख्या और एक्सपोर्ट की स्पीड के बीच के फ़ायदे और नुकसान का आकलन करें.
fileDimensionsयाshardSizeकी वैल्यू कम रखने पर, फ़ाइल के ज़्यादा फ़्रैगमेंट बनते हैं. हालांकि, इससे बैकएंड वर्कर के बीच पैरलल प्रोसेसिंग की सुविधा बेहतर होती है. इससे एक्सपोर्ट की प्रोसेस तेज़ी से पूरी होती है. इसके उलट, एक बड़ी फ़ाइल जनरेट करने के लिए सीमाओं को बदलने से, फ़ाइल मैनेजमेंट और डेटा शेयर करने की प्रोसेस आसान हो जाती है. हालांकि, इससे एक्सपोर्ट पूरा होने में ज़्यादा समय लग सकता है. ऐसा इसलिए होता है, क्योंकि एक फ़ाइल को असेंबल करने और I/O से जुड़ी समस्याओं की वजह से ऐसा होता है. एक फ़ाइल वाले बहुत बड़े सीओजी एक्सपोर्ट, 16 जीआईबी की अनकंप्रेस की गई सीमा के करीब होते हैं. खास तौर पर, ऐसी इमेज जो अच्छी तरह से कंप्रेस नहीं होती हैं. ये इमेज, खास जानकारी और सीओजी असेंबली के दौरान, कुछ समय के लिए स्टोरेज की क्षमता से ज़्यादा हो सकती हैं. अगर कोई एक्सपोर्ट नहीं हो पाता है, तो उसे छोटी फ़ाइलों में बांटें या स्टैंडर्ड GeoTIFF एक्सपोर्ट को बाहरी तौर पर बदलें.
Earth Engine के बाहर, सीओजी को पसंद के मुताबिक बनाना
ज़्यादातर वर्कफ़्लो के लिए, cloudOptimized: true का इस्तेमाल करके सीधे एक्सपोर्ट करना, इस्तेमाल के लिए तैयार COG जनरेट करने का सबसे आसान तरीका है. हालांकि, स्टैंडर्ड GeoTIFF (cloudOptimized: false, डिफ़ॉल्ट) को भी एक्सपोर्ट किया जा सकता है. इसके बाद, GDAL जैसे बाहरी टूल का इस्तेमाल करके, इसे COG में बदला जा सकता है. एक्सपोर्ट और कन्वर्ज़न के दो चरणों वाला वर्कफ़्लो तब फ़ायदेमंद हो सकता है, जब आपको:
- कंप्रेशन और लेआउट को पसंद के मुताबिक बनाएं: अपने डेटासेट के हिसाब से, ब्लॉक के साइज़ (जैसे कि
512x512), अनुमान लगाने वाले टूल, खास जानकारी के रीसैंपलिंग के तरीके या कंप्रेशन कोडेक (जैसे किZSTD) को अपनी ज़रूरत के मुताबिक बनाएं. इसके लिए, सीओजीएस तैयार करें लेख पढ़ें. - एक ही बड़ी फ़ाइल को एक्सपोर्ट करते समय, स्टोरेज से जुड़ी गड़बड़ियों से बचना: एक्सपोर्ट करते समय, खास जानकारी जनरेट करने और सीओजी लेआउट को फिर से लिखने की प्रोसेस को स्किप करने से, मेमोरी और अस्थायी स्टोरेज का ओवरहेड कम हो जाता है. इससे, एक ही बड़ी फ़ाइल को एक्सपोर्ट करते समय, स्टोरेज की सीमाएं पूरी होने की संभावना कम हो जाती है.
- Earth Engine से डेटा एक्सपोर्ट करने में लगने वाला समय कम करें: ओवरव्यू बनाने और सीओजी फ़ॉर्मैट करने की प्रोसेस को अपने कंप्यूट एनवायरमेंट में ट्रांसफ़र करने से, Earth Engine से डेटा एक्सपोर्ट करने में लगने वाला समय कम हो जाता है.
लागत का हिसाब और स्टोरेज क्लास
रजिस्टर की गई COG ऐसेट का विश्लेषण करते समय, Earth Engine से डेटा पढ़ने पर, आपके Google Cloud प्रोजेक्ट पर Cloud Storage के डेटा को पढ़ने या डेटा वापस पाने का शुल्क नहीं लगता.
Cloud Storage, आपसे मुख्य रूप से इन चीज़ों के लिए शुल्क लेता है: स्टैंडर्ड मंथली स्टोरेज में मौजूद डेटा (GB/महीना) और किसी बाहरी क्लाइंट के डेटा को ट्रांसफ़र करने या नेटवर्क से बाहर निकलने के लिए लिया जाने वाला शुल्क. यह शुल्क, आपके बकेट की जगह और क्लाइंट के नेटवर्किंग कॉन्फ़िगरेशन के हिसाब से तय होता है.
स्टोरेज क्लास के सुझाव
- स्टैंडर्ड स्टोरेज (सुझाया गया): स्टैंडर्ड स्टोरेज, Earth Engine के चालू वर्कफ़्लो के लिए सबसे सही है. इसमें स्टोरेज की कम से कम अवधि से जुड़े नियम नहीं होते. इसलिए, समय-समय पर अपडेट होने वाले सीओजी को बिना किसी शुल्क के बदला, अपडेट या मिटाया जा सकता है. इसके अलावा, अगर आप या आपके साथ काम करने वाले लोग, Earth Engine के बाहर डेस्कटॉप जीआईएस सॉफ़्टवेयर, जीडीएएल स्क्रिप्ट या मशीन लर्निंग नोटबुक का इस्तेमाल करके बकेट को ऐक्सेस करते हैं, तो स्टैंडर्ड स्टोरेज के लिए डेटा वापस पाने का कोई शुल्क नहीं लिया जाता.
- Nearline, Coldline, और Archive स्टोरेज: Cloud Storage की सभी क्लास, स्टैंडर्ड स्टोरेज की तरह ही कम समय में डेटा ऐक्सेस करने और थ्रूपुट की सुविधा देती हैं. इसलिए, Earth Engine में कम ऐक्सेस फ़्रीक्वेंसी वाले स्टोरेज टियर का इस्तेमाल करने पर, डेटा को पढ़ने की परफ़ॉर्मेंस पर कोई असर नहीं पड़ता. Earth Engine के कंप्यूटेशन, डेटा वापस पाने के लिए लगने वाले शुल्क का आकलन किए बिना भी इन टियर को पढ़ सकते हैं. हालांकि, Cloud Storage के रीटेल नियम, स्टोरेज की कम से कम अवधि को सख्ती से लागू करते हैं. जैसे, Nearline के लिए 30 दिन, Coldline के लिए 90 दिन, और Archive के लिए 365 दिन. फ़ाइलों को तय की गई कम से कम अवधि से पहले मिटाने या उनमें बदलाव करने पर, जल्दी मिटाने का सरचार्ज लगता है. इसके अलावा, किसी बाहरी क्लाइंट टूल से कोल्ड ऑब्जेक्ट को ऐक्सेस करने पर, डेटा वापस पाने के लिए ज़्यादा सरचार्ज देना पड़ता है.
खुदरा कीमत और कम से कम समयावधि से जुड़ी नीतियों के बारे में ज़्यादा जानने के लिए, Google Cloud Storage की कीमत से जुड़ी गाइड देखें.
हाई-लेवल वर्कफ़्लो
Earth Engine में COG का इस्तेमाल करने के लिए, आम तौर पर यह तरीका अपनाया जाता है:
बाहरी डेटा इंपोर्ट करने के लिए:
- ऑप्टिमाइज़ करें: बाहरी टूल (जैसे, GDAL, लोकल वर्कस्टेशन स्क्रिप्ट या क्लाउड प्रोसेसिंग पाइपलाइन) का इस्तेमाल करके, अपनी रास्टर फ़ाइलों को COG फ़ॉर्मैट में बदलें.
- अपलोड करना: सीओजी को
us-central1या अमेरिका के कई इलाकों में मौजूद, Cloud Storage के ऐसे बकेट में अपलोड करें जो इस सुविधा के साथ काम करता हो. - अनुमतियां: पक्का करें कि आपके और प्रोजेक्ट में साथ मिलकर काम करने वाले लोगों के पास, Cloud Storage में मौजूद फ़ाइलों को पढ़ने का ऐक्सेस हो. इसके लिए, सीओजी की अनुमतियां देखें.
- रजिस्टर करें: COG को Earth Engine ऐसेट के तौर पर रजिस्टर करने के लिए, Python क्लाइंट लाइब्रेरी,
earthengineकमांड-लाइन टूल या REST API का इस्तेमाल करें. इसके बारे में जानने के लिए, COG रजिस्ट्रेशन देखें.
नतीजे एक्सपोर्ट करने के लिए:
- एक्सपोर्ट करना: Earth Engine से Cloud Storage में बैच एक्सपोर्ट करें. इसके लिए,
cloudOptimizedकोtrueपर सेट करें (इमेज एक्सपोर्ट करना लेख पढ़ें). - रजिस्टर करें (ज़रूरी नहीं): एक्सपोर्ट किए गए सीओजी को Earth Engine में फिर से रजिस्टर करें. ऐसा आगे के विश्लेषण के लिए, नई ऐसेट के तौर पर करें (सीओजी रजिस्ट्रेशन देखें).
क्या आप इसे इस्तेमाल करने के लिए तैयार हैं? अपनी पहली ऐसेट को रजिस्टर करने के लिए, सीओजी रजिस्ट्रेशन गाइड में दिए गए निर्देशों का पालन करें.