अक्सर पूछे जाने वाले सवाल

सामान्य सवाल

मुझे कोई समस्या आ रही है, मुझे मदद चाहिए!

इस गाइड का पालन करके सवाल पोस्ट करें. साथ ही, ज़्यादा से ज़्यादा जानकारी दें. अच्छे सवाल पूछने के लिए, Stack Overflow की गाइड देखें. आम तौर पर, इसका मतलब है कि:

  • कोड एडिटर में किसी स्क्रिप्ट का लिंक भेजना (लिंक पाने के लिए, "लिंक पाएं" बटन पर क्लिक करें)

  • स्क्रिप्ट को चलाने के लिए ज़रूरी ऐसेट शेयर करना

  • बैच में शामिल जिन टास्क को पूरा नहीं किया जा सका उनके आईडी की शिकायत करें. टास्क आईडी इस तरह दिखते हैं: 4C25GIJBMB52PXTEJTF4JLGL. इन्हें कोड एडिटर के टास्क टैब में देखा जा सकता है. ज़्यादा जानें.

मुझे Earth Engine के आर्किटेक्चर के बारे में कहां पढ़ने को मिलेगा?

यह पेपर देखें: Gorelick et al. 2017.

EDU और ट्रेनिंग से जुड़े संसाधन पेज देखें.

उजवल गांधी का यह मुफ़्त ईई कोर्स देखें. इसमें रिमोट सेंसिंग के बारे में जानकारी देने वाला वीडियो शामिल है.

Earth Engine प्रोग्रामिंग

कोडिंग से जुड़ी कुछ सामान्य गड़बड़ियां क्या हैं?

डीबग करने से जुड़ी गाइड देखें.

मैं ee.Image("image") * 2 जैसे बुनियादी गणित का इस्तेमाल क्यों नहीं कर सकता/सकती?

EE में, आपको सर्वर साइड और क्लाइंट-साइड ऑब्जेक्ट या ऑपरेशन को एक साथ इस्तेमाल नहीं करना चाहिए. EE ऑब्जेक्ट पर की जाने वाली सभी कार्रवाइयां, सर्वर साइड पर की जाती हैं. क्लाइंट-साइड पर होने वाली कोई भी गिनती, आपकी उम्मीद के मुताबिक नहीं होगी. ज़्यादा जानकारी के लिए यह पेज देखें.

मैं for लूप या if/else स्टेटमेंट का इस्तेमाल कैसे करूं?

Earth Engine प्रोग्रामिंग, फ़ंक्शनल भाषा का इस्तेमाल करके की जाती है. इसलिए, लूप और शर्त के हिसाब से काम करने वाले ऑपरेशन को map या filter जैसे मिलते-जुलते कॉन्सेप्ट का इस्तेमाल करके दिखाया जाना चाहिए. ज़्यादा जानकारी के लिए यह पेज देखें.

मैं अपनी इमेज या वीडियो में टेक्स्ट लेबल कैसे दिखाऊं?

टेक्स्ट लेबल के लिए, कोई सुविधा पहले से मौजूद नहीं है. हालांकि, ये काम किए जा सकते हैं:

  • तीसरे पक्ष के JS पैकेज का इस्तेमाल करना. उदाहरण देखें
  • तीसरे पक्ष के Python पैकेज geemap का इस्तेमाल करें.
  • EE QGIS प्लग इन का इस्तेमाल करके, QGIS में EE इमेज इंपोर्ट करना

क्या कुछ स्टैंडर्ड कलर पैलेट का इस्तेमाल किया जा सकता है?

तीसरे पक्ष के JS पैकेज का इस्तेमाल करें ee-palettes.

मैं Earth Engine का इस्तेमाल करने वाली अपनी वेबसाइट कैसे बनाऊं?

बुनियादी ऐप्लिकेशन के लिए, Earth Engine ऐप्लिकेशन का इस्तेमाल करें. ज़्यादा मुश्किल मामलों में, ईई की मदद से काम करने वाले App Engine ऐप्लिकेशन बनाए जा सकते हैं.

मैप आईडी कैसे काम करते हैं?

मैप आईडी (एपीआई में इन्हें mapid कहा जाता है) पासकोड होते हैं. इनकी मदद से, क्लाइंट मैप टाइल फ़ेच कर सकते हैं. हर आईडी, getMapId एंडपॉइंट को इमेज एक्सप्रेशन देकर बनाया गया हैश होता है. इस प्रोसेस के बाद मिले आईडी, कुंजियां होती हैं. ये इमेज एक्सप्रेशन और उपयोगकर्ता के क्रेडेंशियल, दोनों पर ले जाती हैं. इनका इस्तेमाल बाद में टाइल जनरेट करने के लिए किया जाएगा.

मैप टाइल का अनुरोध करने के लिए, टाइल की जगह (x, y, zoom) के साथ-साथ mapid (इमेज और क्रेडेंशियल की कुंजी) की जानकारी देनी होती है. एक ही आईडी का इस्तेमाल, कई मैप टाइल लोड करने के लिए किया जा सकता है. mapid पासकोड का फिर से इस्तेमाल करने की कोई सीमा नहीं है. हालांकि, इनकी समयसीमा कुछ घंटों के बाद खत्म हो जाती है. हम यह नहीं बताते कि ये आईडी कितने समय तक चलते हैं. हालांकि, आपका लिखा गया कोड, आईडी की समयसीमा खत्म होने के बाद भी काम करना चाहिए.

इन आईडी को बनाने के लिए, थोड़ा डेटा सेव किया जाता है और क्रेडेंशियल की पुष्टि की जाती है. इसलिए, इन्हें ज़्यादा से ज़्यादा समय तक फिर से इस्तेमाल करना सबसे सही होता है. getMapId एंडपॉइंट के लिए, खास तौर पर कोई एपीआई कोटा नहीं है. हालांकि, टाइल फ़ेच करने की दर के आस-पास की दर से mapid ऑब्जेक्ट बनाने वाले किसी भी वर्कफ़्लो में, शायद कुछ गड़बड़ी हो रही है. Earth Engine में इन आईडी को हटाने, सूची में शामिल करने या मैनेज करने के लिए कोई एपीआई एंडपॉइंट नहीं है, क्योंकि ये ट्रांज़िशन टाइप के संसाधन हैं.

ee.Algorithms.If(), true और false, दोनों केस को क्यों प्रिंट करता है?

function a() { print("true"); }
function b() { print("false"); }
// Prints 'true' and 'false'.
ee.Algorithms.If(true, a(), b());

If() एल्गोरिदम, Earth Engine पर मौजूद हर दूसरे एल्गोरिदम की तरह ही काम करता है. इसका मतलब है कि एल्गोरिदम के चलने से पहले, उसके सभी आर्ग्युमेंट का आकलन करना ज़रूरी है. एल्गोरिदम को trueCase और falseCase, दोनों नतीजे मिलते हैं. इसके बाद, वह condition आर्ग्युमेंट के आधार पर एक नतीजा चुनता है और उसे दिखाता है. हालांकि, एल्गोरिदम में वैल्यू को पहले से पास करने के लिए, दोनों पाथ को लागू करना ज़रूरी था.

मुझे गड़बड़ी का यह मैसेज मिल रहा है: "अनुरोध का पेलोड साइज़ तय सीमा से ज़्यादा है"

Earth Engine को बहुत बड़ा अनुरोध भेजा जा रहा है. आम तौर पर, ऐसा तब होता है, जब कोड में क्लाइंट-साइड के कई 'for' लूप का इस्तेमाल किया जाता है या कई ज्यामिति ऑब्जेक्ट से FeatureCollection बनाया जाता है. अगर आपको अपनी स्क्रिप्ट में ऐसी ज्यामिति बनाने के बजाय, उन्हें एक CSV फ़ाइल में जनरेट करना है, तो उसे टेबल एसेट में अपलोड करें.

ee.Image.clip() और ee.Filter.bounds() में क्या अंतर है?

GIS Stack Exchange का यह थ्रेड देखें. ee.Image.clip() फ़ंक्शन, उन पिक्सल को मास्क कर देता है जो किसी दिए गए ee.Geometry या ee.Feature से इंटरसेक्शन नहीं करते. इससे, वे विज़ुअलाइज़ेशन में पारदर्शी हो जाते हैं और कैलकुलेशन में शामिल नहीं किए जाते. इसे किसी इमेज से पिक्सल काटने के तौर पर समझा जा सकता है.

ee.Filter.bounds() फ़ंक्शन, ee.Geometry या ee.Feature के साथ इमेज इंटरसेक्शन के आधार पर, ee.ImageCollection से ee.Image ऑब्जेक्ट को फ़िल्टर करता है. इसका इस्तेमाल, किसी विश्लेषण के दायरे को सिर्फ़ उन इमेज तक सीमित करने के लिए किया जाता है जो किसी दिए गए इलाके से इंटरसेक्शन करती हैं. इससे एक्सप्रेशन को ऑप्टिमाइज़ करने में मदद मिलती है.

हर पिक्सल में एक फ़ीचर के साथ, इमेज पिक्सल को फ़ीचर कलेक्शन में कैसे बदलें?

ee.Image.sample() फ़ंक्शन का इस्तेमाल करें. फ़ंक्शन के एपीआई के रेफ़रंस पेज पर, इस्तेमाल के उदाहरण देखें.

ee.ImageCollection.merge() और ee.ImageCollection.combine() में क्या अंतर है?

ee.ImageCollection.merge() फ़ंक्शन, दो कलेक्शन की सभी इमेज को एक कलेक्शन में मर्ज कर देता है. इससे कोई फ़र्क़ नहीं पड़ता कि उनकी इमेज में एक जैसे बैंड, मेटाडेटा, सीआरएस या स्केल हैं या नहीं. यह दो कलेक्शन का यूनियन होता है. combine() तरीका, दो कलेक्शन में मौजूद मिलती-जुलती इमेज के बैंड को एक कलेक्शन में जोड़ता है. मैच करने वाली इमेज एक ही आईडी (system:index प्रॉपर्टी) शेयर करती हैं. यह इमेज आईडी के आधार पर, दो कलेक्शन का इनर जॉइन है. इसमें मैच होने वाली इमेज के बैंड को जोड़ा जाता है. मिलती-जुलती इमेज के लिए, सेकंडरी इमेज के बैंड को मुख्य इमेज में जोड़ दिया जाता है. हालांकि, ओवरराइट करना ज़रूरी नहीं है. अगर कोई मिलती-जुलती इमेज नहीं मिलती है, तो खाली कलेक्शन दिखता है.

तारीख की अलग-अलग समयावधि के हिसाब से, इमेज कलेक्शन को फ़िल्टर कैसे करें?

GIS Stack Exchange का यह थ्रेड देखें. merge() एक साथ कई कलेक्शन या ee.Filter.or() का इस्तेमाल करें.

किसी दिए गए पॉइंट के आस-पास बाउंडिंग बॉक्स कैसे बनाएं?

// Buffer the point by a chosen radius and then get the bounding box.
var LNG = -117.298;
var LAT = 45.162;
var point = ee.Geometry.Point([LNG, LAT]);
var buffer = point.buffer(30000); // half of box width as buffer input
var box = buffer.bounds(); // draw a bounding box around the buffered point
Map.centerObject(box);
Map.addLayer(point);
Map.addLayer(box);

// Map the buffer and bounds procedure over a point feature collection.
var pointCol = ee.FeatureCollection([
  ee.Feature(ee.Geometry.Point([LNG + 1, LAT])),
  ee.Feature(ee.Geometry.Point([LNG - 1, LAT]))
]);
var boxCol = pointCol.map(function(feature) {
  var box = feature.buffer(30000).bounds();
  return feature.setGeometry(box.geometry());
});
Map.addLayer(boxCol);

डेटा कैटलॉग

क्या डेटासेट X जोड़ा जा सकता है?

डेटासेट के अनुरोध से जुड़ी गाइड में बताए गए तरीके का पालन करके, डेटासेट के अनुरोध से जुड़ी गड़बड़ी की शिकायत करें.

Earth Engine के होम फ़ोल्डर में भी डेटा अपलोड किया जा सकता है. रेस्टर डेटा इंपोर्ट करना और टेबल डेटा इंपोर्ट करना लेख पढ़ें.

किसी मौजूदा डेटासेट का नया वर्शन उपलब्ध है

डेटासेट के अनुरोध से जुड़ी गाइड में बताए गए तरीके से, डेटासेट में मौजूद गड़बड़ी की शिकायत करें. साथ ही, यह भी बताएं कि आपको डेटासेट को अपडेट करने का अनुरोध करना है.

मौजूदा डेटासेट अपडेट नहीं किया गया है या उसमें ऐसेट मौजूद नहीं हैं

किसी समस्या की शिकायत करने से पहले, अगर हो सके, तो पुष्टि करें कि चुनी गई एसेट, डेटासेट उपलब्ध कराने वाली साइट पर मौजूद हैं. ज़्यादा जानकारी के लिए, इमेज मौजूद न होने की समस्या से जुड़ी गाइड देखें.

अगर आपको ImageCollection को फ़िल्टर करके कोई ऐसेट ढूंढनी है, तो पक्का करें कि आपके फ़िल्टर बहुत ज़्यादा पाबंदी वाले न हों.

खास तौर पर, इन बातों का ध्यान रखें:

  • ESA ने शुरुआती लेवल 1 के लिए, Sentinel-2 SR (लेवल 2 डेटा) का इस्तेमाल नहीं किया था.

  • Landsat के पास साल 2000 से पहले की दुनिया भर की तस्वीरें नहीं हैं.

किसी मौजूदा डेटासेट में गलत वैल्यू हैं

डेवलपर फ़ोरम पर पोस्ट करें. ऐसी स्क्रिप्ट शामिल करें जो ऐसेट के ओरिजनल रिज़ॉल्यूशन में ज़ूम इन करती हो और यह साफ़ तौर पर दिखाती हो कि कौनसी वैल्यू गलत हैं. बताएं कि आपको वैकल्पिक वैल्यू कहां दिखी.

डेटासेट के बारे में और कहां पूछा जा सकता है?

नासा के डेटासेट के बारे में सवाल पूछने के लिए, NASA Earth Data फ़ोरम पर जाएं.

Copernicus डेटासेट पर काम करने वाले टूलबॉक्स के बारे में सवाल पूछने के लिए, S1, S2, और S3 फ़ोरम देखें.

EE का कैटलॉग कितना बड़ा है?

अक्टूबर 2023 तक, कैटलॉग में 1,000 से ज़्यादा डेटासेट शामिल हैं. डिस्क पर इसका साइज़ 90 पेटाबाइट से ज़्यादा है. इसमें, डेटा को बिना किसी डेटा के नुकसान के कंप्रेस करने की सुविधा का इस्तेमाल किया गया है.

ईई में डेटा कितनी बार अपडेट होता है?

आम तौर पर, सभी डेटासेट को कम से कम हर दिन अपडेट किया जाता है. हालांकि, सभी डेटासेट में हर दिन नया डेटा नहीं होता. कुछ डेटासेट को दिन में कई बार अपडेट किया जाता है. हालांकि, कैटलॉग में सबसे नई एसेट मौजूद होने की गारंटी देने वाली कोई नीति नहीं है.

मैं EE कैटलॉग के कॉन्टेंट को प्रोग्राम के हिसाब से कैसे देखूं?

डेटासेट की सूची को STAC फ़ॉर्मैट में, Google Cloud Storage बकेट gs://earthengine-stac में एक्सपोर्ट किया जाता है. एंट्री फ़ाइल, catalog.json है.

क्या विश्लेषण के लिए, Google Maps के डेटा या इमेज का इस्तेमाल किया जा सकता है?

Google, विश्लेषण के लिए बेसमैप का लाइसेंस नहीं देता और न ही उसे बेचता है.

मुझे ऐसेट डाले जाने की तारीख कैसे पता चलेगी?

'system:version' ऐसेट प्रॉपर्टी, डेटा डालने का टाइमस्टैंप है. इसे यूनिक्स के शुरू होने के बाद माइक्रोसेकंड के तौर पर फ़ॉर्मैट किया जाता है. यहां एक उदाहरण दिया गया है, जिसमें Landsat इमेज को डालने के समय को, ऐसे फ़ॉर्मैट में बदला गया है जिसे कोई भी पढ़ सकता है.

var image = ee.Image('LANDSAT/LC08/C02/T1_L2/LC08_044034_20210508');
print('Ingest date', ee.Date(image.getNumber('system:version').divide(1000)));

क्या Earth Engine कैटलॉग में JSON-LD मेटाडेटा है?

हां, JSON-LD मेटाडेटा को कैटलॉग के एचटीएमएल पेजों में एम्बेड किया जाता है. उदाहरण के लिए, Sentinel-2 पेज में यह ब्लॉक शामिल है:

<script type="application/ld+json">
  {
    "@context": "https://schema.org",
    "@type": "BreadcrumbList",
    "itemListElement": [{
      "@type": "ListItem",
      "position": 1,
      "name": "Earth Engine Data Catalog",
      "item": "https://developers.google.com/earth-engine/datasets"
    },{
      "@type": "ListItem",
      "position": 2,
      "name": "Harmonized Sentinel-2 MSI: MultiSpectral Instrument, Level-1C",
      "item": "https://developers.google.com/earth-engine/datasets/catalog/COPERNICUS_S2_HARMONIZED"
    }]
  }
  </script>

Landsat

simpleComposite एल्गोरिदम को कैसे लागू किया जाता है?

सर्वर-साइड पर लागू करने का तरीका, इस JavaScript कोड जैसा ही है.

मैं लैंडसैट के सतह के रेफ़्लेक्शन डेटा से, क्लाउड-फ़्री कंपोजिट कैसे बनाऊं?

Landsat लेवल 2 (सतह की चमक) डेटा में कई क्वालिटी बैंड होते हैं. इनका इस्तेमाल, बादलों और इमेज के अन्य अनचाहे आर्टफ़ैक्ट को मास्क करने के लिए किया जा सकता है. इस GIS Stack Exchange पोस्ट में, Landsat 8 SR इमेज को प्रोसेस करने और क्लाउड-फ़्री कॉम्पोज़िट बनाने के लिए, इन बैंड का इस्तेमाल करने का उदाहरण दिया गया है. डेवलपर गाइड में, सुपरवाइज़्ड क्लासिफ़िकेशन के उदाहरणों में इस्तेमाल करने के लिए, क्लाउड-फ़्री कंपोजिट बनाने के लिए भी यही तरीका अपनाया जाता है.

क्या अलग-अलग सेंसर से ली गई Landsat की सतह की रिफ़्लेक्शन डेटा को अलाइन करने की ज़रूरत है?

Roy et al., 2016 में, Landsat 7-8 TOA और सतह के रिफ़्लेक्शन के बीच रिफ़्लेक्शन में अंतर का विश्लेषण शामिल था. उन्होंने ओएलएस और आरएमए कोएफ़िशिएंट पब्लिश किए, ताकि पाठक एक सेंसर के डेटा की रिफ़्लेक्शन वैल्यू को दूसरे में बदल सकें. पेपर की आखिरी पंक्ति में लिखा है: "सेंसर में अंतर बहुत कम है, लेकिन Landsat डेटा के इस्तेमाल के आधार पर इनका असर काफ़ी ज़्यादा हो सकता है." हालांकि, यह विश्लेषण, डेटा इकट्ठा करने से पहले के डेटा पर आधारित था.

कलेक्शन 1 और कलेक्शन 2 को फिर से प्रोसेस करने के दौरान किए गए सुधारों से, सेंसर के बीच के संबंध पर असर पड़ सकता है. हालांकि, हमें पता है कि कलेक्शन 1 या कलेक्शन 2 के डेटा के लिए, Roy et al. (2016) जैसा कोई विश्लेषण नहीं किया गया है. कोई आधिकारिक विश्लेषण न होने के बावजूद, Landsat के अहम उपयोगकर्ताओं के बीच आम राय है कि कलेक्शन 2, लेवल 2 (सतह की चमक) के डेटा में कोई बदलाव करने की ज़रूरत नहीं है. उदाहरण के लिए, कलेक्शन 2, लेवल 2 के डेटा को एक जैसा बनाने की ज़रूरत के बारे में पूछे गए एक सवाल के जवाब में, Landsat साइंस टीम के माइक वुलडर ने बताया कि ज़रूरत के हिसाब से इस्तेमाल किए जाने वाले ऐप्लिकेशन (जैसे, लैंड कवर की मैपिंग और बदलाव का पता लगाना) के आधार पर, कलेक्शन 2 के सतह के रिफ़्लेक्शन वाले प्रॉडक्ट काफ़ी काम के और भरोसेमंद होते हैं. इसके लिए, अलग-अलग सेंसर में बदलाव करने की ज़रूरत नहीं होती.

एमएसएस इमेजरी में बादलों और बादलों की परछाई को कैसे मास्क किया जा सकता है?

JavaScript कोड एडिटर के लिए, तीसरे पक्ष के msslib मॉड्यूल में MSScvm एल्गोरिदम को लागू किया गया है. साथ ही, इसमें एमएसएस डेटा को एक्सप्लोर और तैयार करने के लिए, अन्य काम के फ़ंक्शन भी शामिल हैं.

डेटा प्रबंधन

मेरे अपलोड किए गए डेटा का मालिकाना हक किसके पास है?

Earth Engine के सेवा की शर्तों के मुताबिक, ग्राहकों के पास Earth Engine में अपलोड किए गए डेटा का मालिकाना हक होता है.

मैं डेटा अपलोड नहीं कर पा रहा/रही हूं!

कोड एडिटर के सबसे ऊपर दाएं कोने में मौजूद टास्क पैनल में, अपलोड टास्क का स्टेटस देखें. टास्क के लिए खास तौर पर बनाया गया पेज भी देखा जा सकता है.

अगर कोई टास्क नहीं है, तो हो सकता है कि आपने कोड एडिटर की मदद से अपनी फ़ाइल अपलोड करने की कोशिश की हो. हालांकि, इंटरनेट से जुड़ी समस्या की वजह से फ़ाइल अपलोड नहीं हो सकी और टास्क नहीं बन सका. किसी दूसरे ब्राउज़र या किसी दूसरे कंप्यूटर का इस्तेमाल करें.

अगर कोई टास्क पूरा नहीं हुआ है, तो उसमें दिखने वाली गड़बड़ी की जांच करें. अगर कोई खास गड़बड़ी का मैसेज नहीं दिखता है, तो सबसे पहले पुष्टि करें कि आपकी फ़ाइल खराब नहीं है. इसके लिए, रेस्टर फ़ाइलों के लिए gdalinfo या वेक्टर फ़ाइलों के लिए ogr2ogr को चलाएं. ये निर्देश, सोर्स फ़ाइलों से सारा डेटा पढ़ने की कोशिश करेंगे. साथ ही, अगर फ़ाइलें खराब हैं, तो गड़बड़ियां दिखाएंगे.

gdalinfo कॉल का उदाहरण:

gdalinfo -mm -stats -checksum file.tif

ogr2ogr कॉल का उदाहरण, जो in.shp को out.csv में बदल देगा:

ogr2ogr -lco GEOMETRY=AS_WKT -f CSV out.csv in.shp

अगर फ़ाइल मान्य लगती है, तो डेवलपर की मेलिंग सूची पर, पूरे टास्क का आईडी टेक्स्ट के तौर पर पोस्ट करें, स्क्रीनशॉट के तौर पर नहीं. टास्क आईडी का यह फ़ॉर्मैट होता है: 4C25GIJBMB52PXTEJTF4JLGL. अगर हो सके, तो अपनी सोर्स फ़ाइल को सार्वजनिक तौर पर पढ़ने लायक बनाएं. अगर यह निजी फ़ाइल है, तो अगर आपको Earth Engine टीम से इसकी जांच कराने की ज़रूरत है, तो इसे सिर्फ़ earthengine@google.com के साथ शेयर करें. अगर सोर्स फ़ाइल शेयर नहीं की जा सकती, तो कम से कम gdalinfo -mm -stats -checksum का आउटपुट उपलब्ध कराएं.

अगर Earth Engine किसी खास प्रोजेक्शन के साथ काम नहीं करता है, तो आपको डेटा को फिर से प्रोजेक्ट करना होगा. इसके लिए, gdalwarp का इस्तेमाल करें.

मैं NetCDF या किसी ऐसे दूसरे रास्टर फ़ॉर्मैट में फ़ाइल को कैसे अपलोड करूं जिसका इस्तेमाल नहीं किया जा सकता?

Earth Engine में सिर्फ़ GeoTIFF फ़ाइलें अपलोड की जा सकती हैं. GDAL के साथ काम करने वाले अन्य फ़ॉर्मैट को gdal_translate का इस्तेमाल करके, GeoTIFF में बदला जा सकता है. उदाहरण:

gdal_translate -co COMPRESS=DEFLATE file.nc file.tif

ध्यान दें कि कुछ NetCDF या HDF फ़ाइलों में कई सब-डेटासेट होते हैं. इन्हें gdalinfo की मदद से खोजा जा सकता है. इस मामले में, gdal_translate कमांड इस तरह दिखेगा (ध्यान दें कि डबल कोट के बीच में पाथ है):

gdal_translate HDF4_EOS:EOS_GRID:"/tmp/MCD12Q1.A2001001.h00v08.005.2011055224312.hdf":MOD12Q1:Land_Cover_Type_1 file.tif

कभी-कभी NetCDF फ़ाइलों में ऐसा प्रोजेक्शन नहीं होता जिसे GDAL पहचानता हो. इस मामले में, आपको gdal_translate कमांड लाइन में प्रोजेक्शन और स्पेस के दायरे को सेट करना होगा. उदाहरण:

gdal_translate -a_srs EPSG:4326 -a_ullr -180 90 180 -90 file.nc file.tid

अपलोड किए गए GeoTIFF फ़ाइलों के लिए, कंप्रेस करने के किन एल्गोरिदम का इस्तेमाल किया जा सकता है?

अपलोड करने के लिए, GeoTIFF फ़ाइलों को DEFLATE, JPEG, JPEG-XL/JXL, LERC, LERC_DEFLATE, LERC_ZSTD, LZMA, LZW, WEBP या ZSTD से कंप्रेस किया जा सकता है. लाइव सीओजी रीडिंग के लिए, DEFLATE, JPEG, LZW या ZSTD का इस्तेमाल किया जा सकता है. ZSTD एक अच्छा विकल्प है, क्योंकि यह तेज़ी से डिकंप्रेस होता है. साथ ही, ज़्यादातर इमेज को अच्छी तरह से कंप्रेस करता है.

gdal_translate का इस्तेमाल करते समय ZSTD कंप्रेशन लागू करने के लिए, ये विकल्प जोड़ें. अगर डेटा में फ़्लोटिंग पॉइंट वैल्यू हैं, तो PREDICTOR को 3 पर सेट करें.

gdal_translate in.tif out.tif \
  -co COPY_SRC_OVERVIEWS=YES \
  -co TILED=YES \
  -co BLOCKXSIZE=512 \
  -co BLOCKYSIZE=512 \
  -co COMPRESS=ZSTD \
  -co PREDICTOR=2 \
  -co ZSTD_LEVEL=22 \
  -co INTERLEAVE=BAND \
  -co NUM_THREADS=ALL_CPUS

मेरा रेस्टर डेटा डालने का प्रोसेस कई दिनों से चल रहा है और अब तक पूरा नहीं हुआ है.

gdalinfo का इस्तेमाल करके, देखें कि आपकी फ़ाइल में GDAL का यह विकल्प सेट है या नहीं: INTERLEAVE=PIXEL. इस विकल्प और कई बैंड वाली फ़ाइलों के लिए, डेटा डालने की प्रोसेस कभी पूरी न हो. इसकी वजह यह है कि ऐसी फ़ाइलों के लेआउट की वजह से, डेटा को पढ़ने में काफ़ी समय लगता है.

अपलोड करने से पहले, ऐसी फ़ाइलों को बैंड-इंटरलेव्ड लेआउट में बदलने की कोशिश करें:

gdal_translate -co "INTERLEAVE=BAND" src.tif dst.tif

अपलोड किए गए मेरे रेस्टर, बेसमैप से मेल नहीं खाते.

अगर डेटा, बेसमैप से थोड़ा ऑफ़सेट है, तो हो सकता है कि प्रोजेक्शन में गलत डेटाम (पृथ्वी के आकार के बारे में अनुमान) हो. ऐसा अक्सर सिनसोइडल प्रोजेक्शन के साथ होता है, जिसे GDAL मेटाडेटा में पूरी तरह से एन्कोड नहीं किया जा सकता. जब आपको पता हो कि टारगेट का अनुमान क्या होना चाहिए (उदाहरण के लिए, SR-ORG:6974 का इस्तेमाल करने वाली फ़ाइलों के लिए, कमांड-लाइन अपलोड के दौरान --crs फ़्लैग सेट करें या अपलोड मेनिफ़ेस्ट के crs फ़ील्ड का इस्तेमाल करें.

अगर डेटा काफ़ी खराब दिखता है या पूरी तरह से गलत जगह पर दिखता है, तो हो सकता है कि प्रोजेक्शन या ऐफ़ाइन ट्रांसफ़ॉर्म गलत हो.

मेरा रेस्टर सिर्फ़ पूर्वी गोलार्ध में दिखता है.

ऐसा हो सकता है कि आपने ऐसा ग्लोबल रेस्टर अपलोड किया हो जिसकी देशांतर की सीमा [0, 360] हो. हालांकि, Earth Engine के लिए रैस्टर की रेंज [-180, 180] होनी चाहिए. डेटा डालने से पहले, रेस्टर के बाएं और दाएं हिस्सों को स्वैप करें. GIS Stack Exchange के ये सुझाव देखें.

डाली गई कैटगरी की इमेज धब्बेदार क्यों दिख रही है?

ऐसा हो सकता है कि आपने MEAN पिरामिड बनाने से जुड़ी डिफ़ॉल्ट नीति का इस्तेमाल किया हो. कैटगरी वाली इमेज के लिए, MODE पिरामिड बनाने की नीति का इस्तेमाल किया जाना चाहिए. क्वेश्चन-ऐंसर/बिटमास्क वाली इमेज के लिए, SAMPLE पिरामिड बनाने की नीति का इस्तेमाल किया जाना चाहिए.

मुझे यह गड़बड़ी दिख रही है: कोई डेटा वैल्यू -128.0, शॉर्ट<0, 255> टाइप के बैंड #0 पर लागू नहीं की जा सकती.

GDAL, सिंगल-बाइट बैंड को ऐसे बैंड के तौर पर नहीं देख सकता जिनमें साइन वाले पूर्णांक होते हैं. इसलिए, यह ऐसे बैंड को बिना साइन वाले पूर्णांक के तौर पर पढ़ता है. यह वैल्यू, नेगेटिव कोई डेटा वैल्यू के साथ मेल नहीं खाएगी.

अगर आपकी वैल्यू में साइन वाले पूर्णांक हैं, तो मेनिफ़ेस्ट अपलोड का इस्तेमाल करें और इसे उस टाइलसेट सेक्शन में जोड़ें जिसमें आपकी फ़ाइल है: data_type: "INT8"

अगर आपकी वैल्यू बिना साइन वाली पूर्ण संख्याएं हैं, तो आपकी फ़ाइल में nodata की गलत वैल्यू है. डेटा अपलोड करते समय, इसे सही डेटा वैल्यू से बदला जा सकता है. इसके अलावा, अगर कोई वैल्यू मौजूद है, तो उसे कभी भी न होने वाली वैल्यू से बदला जा सकता है. nodata की वैल्यू बदलने के लिए, gdal_translate -a_nodata का इस्तेमाल किया जा सकता है. इसके अलावा, इसे हटाने के लिए, gdal_edit.py -unsetnodata का इस्तेमाल किया जा सकता है.

मैं GeoJSON या किसी ऐसे वेक्टर फ़ॉर्मैट में फ़ाइल कैसे अपलोड करूं जिसका इस्तेमाल नहीं किया जा सकता?

OGRE के साथ काम करने वाले फ़ॉर्मैट को CSV या SHP में बदलने के लिए, ogr2ogr का इस्तेमाल करें. उदाहरण:

or2ogr -f "ESRI Shapefile" file.shp file.kml

ध्यान दें कि CSV अपलोड में, ज्यामिति कॉलम में GeoJSON हो सकता है.

मुझे Python का इस्तेमाल करके डेटा अपलोड करना है या एक साथ कई फ़ाइलें अपलोड करनी हैं.

कमांड-लाइन अपलोड का इस्तेमाल करें. ऐसे अपलोड के लिए, सोर्स फ़ाइलों को पहले GCS (Google Cloud Storage) बकेट में डालना ज़रूरी है. अगर आपने बिना शुल्क वाले टीयर की सीमाओं के अंदर ही GCS का इस्तेमाल किया है, तो आपको कोई शुल्क नहीं देना होगा. ज़्यादा जानकारी के लिए, कीमत वाला पेज देखें.

मुझे कई टाइल में बंटे हुए बड़े रेस्टर मोज़ेक को अपलोड करना है.

अगर सभी फ़ाइलों का प्रोजेक्शन और पिक्सल साइज़ एक जैसा है, तो उन्हें एक ही ऐसेट में अपलोड करें — वे अपने-आप मोज़ेक हो जाएंगी.

अगर फ़ाइलों के अलग-अलग प्रोजेक्शन या पिक्सल साइज़ हैं, तो उन्हें एक ही रेस्टर एसेट में मोज़ेक नहीं किया जा सकता. इसके बजाय, हर टाइल को एक अलग ऐसेट के तौर पर उसी ImageCollection में अपलोड करें जिसे ImageCollection.mosaic() का इस्तेमाल करके मोज़ेक किया जा सकता है

मैं मोज़ेक अपलोड करने की कोशिश कर रहा/रही हूं और मुझे टाइल मेल न खाने की गड़बड़ियां मिल रही हैं.

Earth Engine के रेस्टर मोज़ेक के लिए टाइल का प्रोजेक्शन और पिक्सल साइज़ एक ही होना चाहिए. साथ ही, टाइल को पिक्सल की सीमाओं के हिसाब से अलाइन करना ज़रूरी है.

मैं GCS बकेट से कोई फ़ाइल अपलोड करने की कोशिश कर रहा/रही हूं, लेकिन Earth Engine को वह फ़ाइल नहीं मिल रही है.

ऐसा हो सकता है कि आपने GCS अपलोड करने और Earth Engine से कनेक्ट करने के लिए, अलग-अलग Google खातों का इस्तेमाल किया हो. पक्का करें कि GCS फ़ाइल को उस खाते से पढ़ा जा सकता हो जिसका इस्तेमाल Earth Engine से कनेक्ट करने के लिए किया जाता है. अगर ब्राउज़र में एक से ज़्यादा खाते में लॉगिन करने की सुविधा से आपको परेशानी हो रही है, तो गुप्त ब्राउज़िंग मोड में Earth Engine से कनेक्ट करें.

मुझे एक साथ कई ऐसेट एक्सपोर्ट करनी हैं.

आपको हर इमेज को अलग से एक्सपोर्ट करना होगा.

मुझे एक ही निर्देश से, Folder या ImageCollection को एक जगह से दूसरी जगह ले जाना है या मिटाना है.

आपको सबसे पहले हर एसेट को एक से दूसरी जगह पर ले जाना या मिटाया करना होगा. इसके बाद, पैरंट फ़ोल्डर या कलेक्शन को एक से दूसरी जगह पर ले जाना या मिटाना होगा. अगर बहुत सारी चाइल्ड ऐसेट हैं, तो उन पर बार-बार जाने के लिए शेल या Python लूप लिखें.

मुझे सीधे EE के बाहर से Earth Engine का डेटा ऐक्सेस करना है.

QGIS में Earth Engine प्लग इन है.

GDAL में Earth Engine ड्राइवर है.

अन्य सिस्टम, EE REST API का इस्तेमाल कर सकते हैं.

मुझे अपनी Earth Engine एसेट का कुछ हिस्सा अपडेट करना है. इसके लिए, मुझे एसेट को पूरी तरह से फिर से डालने की ज़रूरत नहीं है.

EE में अपलोड किए गए रेस्टर या वेक्टर डेटा को अपडेट नहीं किया जा सकता. सिर्फ़ ऐसेट मेटाडेटा प्रॉपर्टी अपडेट की जा सकती हैं.

मुझे अपने खाते का ऐक्सेस नहीं मिल रहा है. मैं अपनी ऐसेट का क्या करूं?

अगर ओरिजनल खाते की नीतियों में डेटा ट्रांसफ़र की अनुमति है, तो कृपया अपनी एसेट किसी दूसरे खाते के साथ शेयर करें. इसके बाद, उन एसेट को कॉपी करें जिनका मालिकाना हक नए खाते के पास होना चाहिए. अगर कई ऐसेट को एक से दूसरी जगह ले जाना है, तो कमांड-लाइन कॉपी यूटिलिटी का इस्तेमाल करें.

किसी खाते को मिटाने के बाद, उसके मालिकाना हक वाली ऐसेट को ऐक्सेस नहीं किया जा सकता.

मेरी एक्सपोर्ट की गई इमेज गलत जगह पर है.

सिनसोइडल या कोनिक जैसे कुछ प्रोजेक्शन के लिए, GeoTIFF फ़ाइलें कभी-कभी प्रोजेक्शन के सभी ज़रूरी पैरामीटर सेव नहीं कर पाती हैं. इस वजह से, डेस्कटॉप जीआईएस टूल में देखी जाने वाली एक्सपोर्ट की गई फ़ाइल गलत जगह पर दिखती है या EE में फिर से डाली जाने पर भी ऐसा ही होता है.

इसे ठीक करने के लिए, एक्सपोर्ट crs पैरामीटर तय करें, जो GeoTIFF फ़ाइलों के साथ अच्छी तरह से काम करता हो. उदाहरण के लिए, अपने पसंदीदा इलाके वाले UTM ज़ोन के लिए EPSG कोड का इस्तेमाल करें.

सीओजी ऐसेट को सेव करने के लिए, मुझे Cloud Storage की किस बकेट का इस्तेमाल करना चाहिए?

इसका जवाब इस बात पर निर्भर करता है कि आपको किस चीज़ के लिए ऑप्टिमाइज़ करना है. अगर आपको कम इंतज़ार के साथ कंप्यूटेशन ऐक्सेस के लिए ऑप्टिमाइज़ करना है, तो US-CENTRAL* GCS बकेट में सीओजी एसेट सेव करना सबसे अच्छा है. अन्य बातों के बारे में जानकारी पाने के लिए, बकेट की जगहें पेज देखें.

एक्सपोर्ट की गई सुविधा कलेक्शन एसेट में, सेट की गई प्रॉपर्टी सेव नहीं होतीं.

कोई भी Export.table.* फ़ंक्शन, आउटपुट में टेबल-लेवल प्रॉपर्टी को सुरक्षित नहीं रखता. कई आउटपुट फ़ॉर्मैट (जैसे, CSV, GeoJSON) के लिए, इस तरह के मेटाडेटा का इस्तेमाल नहीं किया जा सकता. Export.table.toAsset फ़ंक्शन, टेबल-लेवल की प्रॉपर्टी के साथ काम कर सकता है, लेकिन फ़िलहाल ऐसा नहीं है.

Drive में CSV फ़ॉर्मैट में एक्सपोर्ट की गई टेबल, XLSX फ़ॉर्मैट में बदल जाती हैं.

Google Drive की सेटिंग के आधार पर, Earth Engine से एक्सपोर्ट की गई CSV टेबल को XLSX फ़ाइलों में बदला जा सकता है. ऐसा करने पर, डेटा टाइप में बदलाव जैसे अनचाहे असर हो सकते हैं. आने वाले समय में एक्सपोर्ट के व्यवहार में बदलाव करने के लिए, यह तरीका अपनाएं.

  1. वेब पर Google Drive में, सबसे ऊपर दाईं ओर मौजूद सेटिंग के ऐंगल गियर पर क्लिक करें.
  2. सेटिंग पर क्लिक करें.
  3. स्क्रोल करके, "अपलोड की गई फ़ाइलों को Google Docs एडिटर फ़ॉर्मैट में बदलें" पर जाएं और सही का निशान हटाएं.

कोड एडिटर

मैं Code Editor में साइन इन नहीं कर पा रहा/रही हूं, क्योंकि यह मुझे गलत खाते का इस्तेमाल करने के लिए कहता है.

साइन आउट करें. इसके बाद, "कोई खाता चुनें" पेज पर, Earth Engine का इस्तेमाल करने के लिए रजिस्टर किया गया खाता चुनें. इसके बाद, "Earth Engine कोड एडिटर का इस्तेमाल जारी रखने के लिए कोई खाता चुनें" पेज पर, उसी खाते को फिर से चुनें. हालांकि, हो सकता है कि शब्दों का इस्तेमाल अलग हो.

मुझे ग्लोबल मैप का स्क्रीनशॉट लेना है, लेकिन मुझे वेब मेर्काटोर प्रोजेक्शन पसंद नहीं है.

कोड एडिटर में इस्तेमाल किया गया मैप प्रोजेक्शन, वेब मेर्काटोर ('EPSG:3857') है. यह भूमध्य रेखा से दूर मौजूद ऑब्जेक्ट का साइज़ बढ़ा देता है. इससे भूमध्य रेखा के आस-पास के इलाकों की तुलना में, ज़्यादा अक्षांश वाले इलाके असल साइज़ से ज़्यादा बड़े दिखते हैं. कोड एडिटर के मैप कैनवस के प्रोजेक्शन को नहीं बदला जा सकता. हालांकि, ee.Image.changeProj तरीके का इस्तेमाल करके, वेब मेर्काटर कैनवस पर अपनी पसंद के प्रोजेक्शन में इमेज को "पेंट" किया जा सकता है. रॉबिन्सन प्रोजेक्शन में, कोड एडिटर के मैप पर ग्लोबल डीईएम दिखाने का उदाहरण देखने के लिए, इस तरीके का एपीआई रेफ़रंस पेज देखें. ध्यान दें कि इस तकनीक का इस्तेमाल सिर्फ़ विज़ुअलाइज़ेशन के लिए किया जाना चाहिए, क्योंकि कोड एडिटर के इंस्पेक्टर और ड्रॉइंग टूल अब भी वेब मेर्काटर में काम कर रहे हैं.

मेरी स्क्रिप्ट सेव नहीं हो रही है (Script error: Unknown commit).

अगर आपको स्क्रिप्ट सेव करते समय Script error: Unknown commit मैसेज मिलता है, तो इसका मतलब है कि जिस रिपॉज़िटरी में सेव किया जा रहा है वह सिंक नहीं है. इस स्थिति की वजह अलग-अलग हो सकती है और इसका पता लगाना मुश्किल होता है. समस्या को हल करने के लिए, स्क्रिप्ट टैब के सबसे ऊपर दाएं कोने में मौजूद बटन का इस्तेमाल करके, स्क्रिप्ट की सूची को रीफ़्रेश करें. अगर इससे समस्या हल नहीं होती है, तो स्क्रिप्ट टैब में मौजूद 'नया' बटन से नया रिपॉज़िटरी बनाएं और अपनी स्क्रिप्ट को वहां सेव करें. ऐसा करने के लिए, आपको सिंक न होने वाले रिपॉज़िटरी से स्क्रिप्ट को नए रिपॉज़िटरी में ले जाना पड़ सकता है.