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

सामान्य सवाल

मुझे एक समस्या है, मुझे मदद चाहिए!

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

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

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

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

मुझे Earth Engine के आर्किटेक्चर के बारे में कहां से जानकारी मिल सकती है?

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

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

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

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

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

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

मुझे "... फ़ंक्शन नहीं है" गड़बड़ी का मैसेज क्यों मिल रहा है?

यह गड़बड़ी तब होती है, जब Earth Engine को कॉल किया गया तरीका नहीं मिलता. इन सामान्य वजहों की जांच करें:

स्पेलिंग या केस-सेंसिटिविटी: तरीके केस-सेंसिटिव होते हैं. एपीआई के बारे में जानकारी में दिए गए स्पेलिंग से मिलान करें.

Error: img.normalizedDiff(...) -> Correct: img.normalizedDifference(...)

टाइप कास्टिंग मौजूद नहीं है: .get() जैसे फ़ंक्शन से मिली वैल्यू, सामान्य ee.ComputedObject इंस्टेंस होती हैं. इसलिए, इन्हें साफ़ तौर पर कास्ट किया जाना चाहिए. अनजान ऑब्जेक्ट टाइप कास्टिंग देखें.

Error: dict.get('val').add(5) -> Correct: ee.Number(dict.get('val')).add(5)

क्लाइंट और सर्वर के तरीकों को एक साथ इस्तेमाल न करें: पक्का करें कि Earth Engine ऑब्जेक्ट पर, स्टैंडर्ड JavaScript या Python के तरीकों (जैसे कि .push() या .append()) का इस्तेमाल न किया जा रहा हो. क्लाइंट और सर्वर फ़ंक्शन को एक साथ इस्तेमाल न करें लेख पढ़ें.

Error: list.push(4) or list.append(4) -> Correct: list.add(4)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ee.Algorithms.If(), सही और गलत, दोनों मामलों को क्यों प्रिंट करता है?

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 को फ़िल्टर करके कोई ऐसेट ढूंढनी है, तो पक्का करें कि आपके फ़िल्टर बहुत ज़्यादा पाबंदियों वाले न हों.

खास तौर पर, ध्यान दें कि:

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

  • साल 2000 से पहले, Landsat की इमेज में दुनिया भर का डेटा शामिल नहीं होता था.

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

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

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

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

अगर आपको कोपरनिकस के डेटासेट पर काम करने वाले टूलबॉक्स के बारे में सवाल पूछने हैं, तो S1, S2, और S3 फ़ोरम देखें.

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

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

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

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

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

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

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

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

मैं किसी ऐसेट के अपलोड होने की तारीख कैसे देखूं?

'system:version' ऐसेट प्रॉपर्टी, डेटा शामिल करने का टाइमस्टैंप है. इसे Unix epoch के बाद से माइक्रोसेकंड के तौर पर फ़ॉर्मैट किया जाता है. यहां एक उदाहरण दिया गया है, जिसमें 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 Level 2 (सरफ़ेस रिफ़्लेक्टेंस) डेटा में कई क्वालिटी बैंड होते हैं. इनका इस्तेमाल बादलों और इमेज के अन्य अनचाहे आर्टफ़ैक्ट को मास्क करने के लिए किया जा सकता है. Landsat 8 SR इमेज को प्रोसेस करने और बादलों से मुक्त कंपोज़िट बनाने के लिए, इन बैंड का इस्तेमाल करने का उदाहरण GIS Stack Exchange की इस पोस्ट में दिया गया है. डेवलपर गाइड में सुपरवाइज़्ड क्लासिफ़िकेशन के उदाहरणों में इस्तेमाल करने के लिए, बादलों से मुक्त कंपोज़िट बनाने के लिए भी इसी तरीके का इस्तेमाल किया जाता है.

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

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

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

मैं एमएसएस इमेज में बादलों और उनकी परछाइयों को कैसे मास्क करूं?

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

डेटा प्रबंधन

मैंने जो डेटा अपलोड किया है उसका मालिकाना हक किसके पास है?

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. अगर हो सके, तो अपनी सोर्स फ़ाइल को सार्वजनिक तौर पर पढ़ने के लिए उपलब्ध कराएं. अगर यह निजी फ़ाइल है, तो इसे सिर्फ़ earthengine@google.com के साथ शेयर करें. ऐसा तब करें, जब आपको Earth Engine टीम से इसकी जांच करानी हो. अगर सोर्स फ़ाइल शेयर नहीं की जा सकती, तो कम से कम 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 का इस्तेमाल करके कंप्रेस किया जा सकता है. लाइव COG रीडिंग के लिए, 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 मेटाडेटा में पूरी तरह से एन्कोड नहीं किया जा सकता. अगर आपको पता है कि टारगेट प्रोजेक्शन क्या होना चाहिए (जैसे, MODIS साइनसोडल प्रोजेक्शन का इस्तेमाल करने वाली फ़ाइलों के लिए SR-ORG:6974), तो कमांड-लाइन से अपलोड करने के दौरान --crs फ़्लैग या अपलोड मेनिफ़ेस्ट के crs फ़ील्ड को सेट करें.

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

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

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

क्लासिफ़िकेशन के लिए इस्तेमाल की गई इमेज में धब्बे क्यों दिख रहे हैं?

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

मुझे यह गड़बड़ी का मैसेज मिला है: No data value -128.0 cannot be applied to band #0 of type Short<0, 255>.

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

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

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

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

OGR के साथ काम करने वाले फ़ॉर्मैट को 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 फ़ाइलों के साथ अच्छी तरह से काम करता है. उदाहरण के लिए, दिलचस्पी वाले इलाके के यूटीएम ज़ोन के लिए EPSG कोड का इस्तेमाल करें.

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

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

एक्सपोर्ट की गई फ़ीचर कलेक्शन ऐसेट में, मेरी सेट की गई प्रॉपर्टी सेव नहीं होती हैं.

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

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

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

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

कोड एडिटर

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

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

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

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

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

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

मुझे कोड एडिटर में बार-बार 400 गड़बड़ियां क्यों दिख रही हैं?

अगर आपको कोड एडिटर में बार-बार 400 गड़बड़ी दिख रही है, तो https://myaccount.google.com/connections पर जाएं. इसके बाद, ऐप्लिकेशन और सेवाओं की सूची में "Earth Engine Code Editor" ढूंढें और उसे चुनें. इसके बाद, "Earth Engine Code Editor से कनेक्ट किए गए सभी ऐक्सेस वापस लें" को चुनें और पुष्टि करें. इसके बाद, कोड एडिटर खोलें और फिर से पुष्टि करें.