सामान्य सवाल
मुझे एक समस्या है, मुझे मदद चाहिए!
इस गाइड का पालन करते हुए सवाल पोस्ट करें. साथ ही, ज़्यादा से ज़्यादा जानकारी दें. इसके लिए, अच्छे सवाल पूछने के लिए Stack Overflow की गाइड देखें. आम तौर पर, इसका मतलब यह होता है:
कोड एडिटर में स्क्रिप्ट का लिंक भेजें. लिंक पाने के लिए, "लिंक पाएं" बटन पर क्लिक करें
स्क्रिप्ट को चलाने के लिए ज़रूरी ऐसेट शेयर करना
पूरे न हो पाए बैच टास्क के लिए, उस टास्क का आईडी रिपोर्ट करें. टास्क आईडी इस तरह के दिखते हैं:
4C25GIJBMB52PXTEJTF4JLGL. इन्हें कोड एडिटर के टास्क टैब में देखा जा सकता है. ज़्यादा जानें.
मुझे Earth Engine के आर्किटेक्चर के बारे में जानकारी कहां मिल सकती है?
यह पेपर देखें: Gorelick et al. 2017.
क्या Earth Engine के ऐसे ट्यूटोरियल भी हैं जो Google ने नहीं बनाए हैं?
EDU और ट्रेनिंग के संसाधन पेज देखें.
क्या रिमोट सेंसिंग के लिए कोई ट्यूटोरियल उपलब्ध है?
उज्जवल गांधी का यह मुफ़्त EE कोर्स देखें. इसमें रिमोट सेंसिंग के बारे में जानकारी देने वाला वीडियो शामिल है.
Earth Engine प्रोग्रामिंग
कोडिंग से जुड़ी कुछ आम गड़बड़ियां क्या हैं?
डीबग करने की गाइड देखें.
मुझे "... is not a function" गड़बड़ी का मैसेज क्यों मिल रहा है?
यह गड़बड़ी तब होती है, जब 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 जैसे बुनियादी गणित का इस्तेमाल क्यों नहीं कर सकता?
EE में, आपको सर्वर-साइड और क्लाइंट-साइड ऑब्जेक्ट या कार्रवाइयों को मिक्स नहीं करना चाहिए. EE ऑब्जेक्ट पर सभी कार्रवाइयां, सर्वर-साइड पर की जाती हैं. क्लाइंट-साइड पर की गई कोई भी गणना, आपके हिसाब से काम नहीं करेगी. ज़्यादा जानकारी के लिए यह पेज देखें.
मैं for लूप या if/else स्टेटमेंट का इस्तेमाल कैसे करूं?
Earth Engine की प्रोग्रामिंग, फ़ंक्शनल लैंग्वेज का इस्तेमाल करके की जाती है. इसलिए, लूप और कंडिशनल ऑपरेशन को map या filter जैसे मिलते-जुलते कॉन्सेप्ट का इस्तेमाल करके दिखाया जाना चाहिए. ज़्यादा जानकारी के लिए, यह पेज देखें.
मैं अपनी इमेज या वीडियो में टेक्स्ट लेबल कैसे दिखाऊं?
टेक्स्ट लेबल के लिए, पहले से मौजूद कोई सहायता उपलब्ध नहीं है. हालांकि, ये काम किए जा सकते हैं:
- तीसरे पक्ष के JS पैकेज का इस्तेमाल करें. उदाहरण देखें
- तीसरे पक्ष के Python पैकेज geemap का इस्तेमाल करें.
- EE QGIS प्लग इन का इस्तेमाल करके, EE इमेज को QGIS में इंपोर्ट करें
क्या कुछ स्टैंडर्ड कलर पैलेट इस्तेमाल किए जा सकते हैं?
तीसरे पक्ष के 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() में क्या अंतर है?
यह जीआईएस स्टैक एक्सचेंज थ्रेड देखें.
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 प्रॉपर्टी). यह इमेज आईडी के आधार पर दो कलेक्शन का इनर जॉइन है. इसमें, मैच होने वाली इमेज के बैंड को जोड़ा जाता है. मिलती-जुलती इमेज के लिए, सेकंडरी इमेज के बैंड को प्राइमरी इमेज में जोड़ दिया जाता है. हालांकि, ओवरराइट करना ज़रूरी नहीं है. अगर कोई भी इमेज मैच नहीं होती है, तो खाली कलेक्शन दिखता है.
तारीख के कई इंटरवल के हिसाब से, इमेज के कलेक्शन को कैसे फ़िल्टर करें?
यह जीआईएस स्टैक एक्सचेंज थ्रेड देखें.
एक साथ कई कलेक्शन 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 के शुरुआती सीन के लिए, Sentinel-2 SR (लेवल 2 डेटा) नहीं बनाया था.
साल 2000 से पहले, Landsat के पास दुनिया भर का कवरेज नहीं था.
किसी मौजूदा डेटासेट में गलत वैल्यू हैं
डेवलपर फ़ोरम पर पोस्ट करें. ऐसी स्क्रिप्ट शामिल करें जो ऐसेट के ओरिजनल रिज़ॉल्यूशन को ज़ूम करे और साफ़ तौर पर दिखाए कि कौनसी वैल्यू गलत हैं. साफ़ तौर पर बताएं कि आपको वैकल्पिक वैल्यू कहां दिखी.
डेटासेट के बारे में और कहां पूछा जा सकता है?
नासा के डेटासेट के बारे में सवाल पूछने के लिए, नासा अर्थ डेटा फ़ोरम पर जाएं.
कोपरनिकस डेटासेट पर काम करने वाले टूलबॉक्स के बारे में सवाल पूछने के लिए, S1, S2, और S3 फ़ोरम देखें.
EE कैटलॉग कितना बड़ा है?
अक्टूबर 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 लेवल 2 (सरफ़ेस रिफ़्लेक्टेंस) डेटा में कई क्वालिटी बैंड होते हैं. इनका इस्तेमाल, बादलों और इमेज में मौजूद अन्य अनचाही चीज़ों को मास्क करने के लिए किया जा सकता है. Landsat 8 SR इमेज को प्रोसेस करने और बिना बादल वाली मीडियन कंपोज़िट इमेज बनाने के लिए, इन बैंड का इस्तेमाल करने का उदाहरण इस GIS Stack Exchange पोस्ट में दिया गया है. डेवलपर गाइड में, सुपरवाइज़्ड क्लासिफ़िकेशन के उदाहरणों में इस्तेमाल करने के लिए, क्लाउड-फ़्री कंपोज़िट बनाने के लिए भी इसी प्रोसेस का इस्तेमाल किया जाता है.
क्या Landsat के अलग-अलग सेंसर से मिले, सतह के रिफ़्लेक्टेंस डेटा को एक जैसा बनाने की ज़रूरत है?
Roy et al., 2016 में, Landsat 7-8 टीओए और सर्फ़ेस रिफ़्लेक्टेंस के बीच के अंतर का विश्लेषण शामिल था. उन्होंने ओएलएस और आरएमए कोएफ़िशिएंट पब्लिश किए, ताकि रीडर एक सेंसर के डेटा की रिफ़्लेक्टेंस वैल्यू को दूसरे सेंसर के डेटा में बदल सकें. पेपर की आखिरी लाइन में लिखा है: "हालांकि, सेंसर में अंतर बहुत कम है, लेकिन Landsat डेटा ऐप्लिकेशन के आधार पर, इसका काफ़ी असर हो सकता है." हालांकि, यह विश्लेषण, डेटा इकट्ठा करने से पहले के डेटा पर आधारित था.
कलेक्शन 1 और कलेक्शन 2 को फिर से प्रोसेस करने के दौरान किए गए सुधारों से, सेंसर के बीच के संबंध पर असर पड़ सकता है. हालांकि, जहां तक हमें पता है, कलेक्शन 1 या कलेक्शन 2 के डेटा के लिए, रॉय और अन्य (2016) जैसा कोई विश्लेषण नहीं किया गया है. Landsat का इस्तेमाल करने वाले अहम उपयोगकर्ताओं के बीच, इस बात पर आम सहमति है कि कलेक्शन 2, लेवल 2 (सरफ़ेस रिफ़्लेक्टेंस) डेटा में किसी सुधार की ज़रूरत नहीं है. हालांकि, इस बारे में कोई औपचारिक विश्लेषण नहीं किया गया है. उदाहरण के लिए, Landsat Science Team के माइक वुल्डर ने कलेक्शन 2, लेवल 2 के हार्मोनाइज़ेशन की ज़रूरत से जुड़े एक सवाल के जवाब में बताया कि कलेक्शन 2 के सरफ़ेस रिफ़्लेक्टेंस प्रॉडक्ट, काफ़ी सही और भरोसेमंद हैं. हालांकि, यह इस बात पर निर्भर करता है कि ऐप्लिकेशन का इस्तेमाल किस तरह किया जा रहा है. जैसे, लैंड कवर मैपिंग और बदलाव का पता लगाना. साथ ही, इसके लिए क्रॉस-सेंसर अडजस्टमेंट की ज़रूरत नहीं होती.
मैं एमएसएस इमेजरी में बादलों और उनकी परछाइयों को कैसे मास्क करूं?
JavaScript कोड एडिटर के लिए, तीसरे पक्ष के msslib मॉड्यूल में MSScvm एल्गोरिदम को लागू करने का तरीका शामिल है. साथ ही, इसमें एमएसएस डेटा को एक्सप्लोर करने और तैयार करने के लिए, अन्य मददगार फ़ंक्शन भी शामिल हैं.
डेटा प्रबंधन
मेरे अपलोड किए गए डेटा का मालिकाना हक किसके पास होता है?
Earth Engine की सेवा की शर्तों के मुताबिक, Earth Engine पर अपलोड किए गए डेटा का मालिकाना हक ग्राहकों के पास होता है.
मैं डेटा अपलोड नहीं कर पा रहा/रही हूं!
कोड एडिटर के सबसे ऊपर दाएं कोने में मौजूद टास्क पैनल में, अपलोड टास्क का स्टेटस देखें. टास्क के लिए खास तौर पर बनाए गए पेज पर भी टास्क देखे जा सकते हैं.
अगर कोई टास्क नहीं है, तो हो सकता है कि आपने कोड एडिटर के ज़रिए अपनी फ़ाइल अपलोड करने की कोशिश की हो. हालांकि, नेटवर्क की समस्या की वजह से फ़ाइल अपलोड नहीं हो पाई. इसलिए, टास्क नहीं बनाया गया. किसी दूसरे ब्राउज़र या कंप्यूटर का इस्तेमाल करके देखें.
अगर कोई टास्क पूरा नहीं हो पाया है, तो उसमें दिख रही गड़बड़ी की जांच करें. अगर गड़बड़ी का कोई खास मैसेज नहीं है, तो पहले यह पुष्टि करें कि आपकी फ़ाइल खराब न हो. इसके लिए, रास्टर फ़ाइलों के लिए gdalinfo या वेक्टर फ़ाइलों के लिए ogr2ogr चलाएं.
ये कमांड, सोर्स फ़ाइलों से सारा डेटा पढ़ने की कोशिश करेंगे. साथ ही, फ़ाइलों के खराब होने पर गड़बड़ियां दिखाएंगे.
gdalinfo कॉल का उदाहरण:
gdalinfo -mm -stats -checksum file.tif
in.shp को out.csv में बदलने वाले ogr2ogr कॉल का उदाहरण:
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 के साथ कंप्रेस किया जा सकता है. Earth Engine, COG को सीधे तौर पर पढ़ सकता है. इसके लिए, ee.Image.loadGeoTIFF() का इस्तेमाल किया जा सकता है या COG-backed ऐसेट के तौर पर पढ़ा जा सकता है. इसके लिए, DEFLATE, JPEG, LZW, PACKBITS, ZSTD या बिना कंप्रेस किए गए फ़ॉर्मैट का इस्तेमाल किया जा सकता है. ज़्यादा जानकारी के लिए, COG इस्तेमाल करने के सबसे सही तरीके देखें.
ZSTD एक अच्छा विकल्प है, क्योंकि यह तेज़ी से डीकंप्रेस होता है. साथ ही, यह ज़्यादातर इमेज को अच्छी तरह से कंप्रेस करता है.
gdal_translate का इस्तेमाल करते समय ZSTD कंप्रेशन लागू करने के लिए, ये विकल्प जोड़ें. अगर डेटा में फ़्लोटिंग पॉइंट वैल्यू हैं, तो PREDICTOR को बदलकर 3 करें. (जिन फ़ाइलों को अपलोड करने के बजाय, सीओजी के तौर पर रजिस्टर करना है उनके लिए सीओजी रजिस्ट्रेशन गाइड देखें.)
gdal_translate in.tif out.tif \
-co BIGTIFF=YES \
-co TILED=YES \
-co BLOCKXSIZE=512 \
-co BLOCKYSIZE=512 \
-co COMPRESS=ZSTD \
-co PREDICTOR=2 \
-co ZSTD_LEVEL=16 \
-co INTERLEAVE=BAND \
-co NUM_THREADS=ALL_CPUS
मेरा रास्टर डेटा डालने की प्रोसेस कई दिनों से चल रही है और अब तक पूरी नहीं हुई है.
gdalinfo का इस्तेमाल करके, देखें कि आपकी फ़ाइल में यह GDAL विकल्प सेट है या नहीं:
INTERLEAVE=PIXEL. इस विकल्प और कई बैंड वाली फ़ाइलों के लिए, डेटा डालने की प्रोसेस कभी पूरी नहीं हो सकती. इसकी वजह यह है कि ऐसी फ़ाइलों के लेआउट की वजह से, डेटा को पढ़ने की प्रोसेस बहुत धीमी हो जाती है.
अपलोड करने से पहले, ऐसी फ़ाइलों को बैंड-इंटरलीव्ड लेआउट में बदलने की कोशिश करें:
gdal_translate -co "INTERLEAVE=BAND" src.tif dst.tif
यह डेटा डालने पर लागू होता है. सीओजी-बैक्ड ऐसेट, दोनों इंटरलीव के साथ काम करती हैं. सिंगल-बैंड बनाम मल्टी-बैंड फ़ाइलें देखें.
अपलोड किए गए रास्टर, बुनियादी मैप से मैच नहीं हो रहे हैं.
अगर डेटा, बुनियादी मैप से थोड़ा अलग है, तो हो सकता है कि प्रोजेक्शन में गलत डेटम (पृथ्वी के आकार के बारे में अनुमान) हो.
ऐसा अक्सर साइनुसॉइडल प्रोजेक्शन के साथ होता है, जिसे जीडीएएल मेटाडेटा में पूरी तरह से एन्कोड नहीं किया जा सकता. जब आपको पता हो कि टारगेट प्रोजेक्शन क्या होना चाहिए (उदाहरण के लिए, MODIS साइनुसॉइडल प्रोजेक्शन का इस्तेमाल करने वाली फ़ाइलों के लिए SR-ORG:6974), तो कमांड-लाइन अपलोड के दौरान --crs फ़्लैग सेट करें या अपलोड मेनिफ़ेस्ट का crs फ़ील्ड सेट करें.
अगर डेटा बहुत ज़्यादा खराब दिखता है या पूरी तरह से गलत जगह पर दिखता है, तो हो सकता है कि प्रोजेक्शन या अफ़ाइन ट्रांसफ़ॉर्म गलत हो.
मेरा रास्टर सिर्फ़ पूर्वी गोलार्ध पर दिखता है.
शायद आपने ऐसा ग्लोबल रास्टर अपलोड किया है जो देशांतर रेंज [0, 360] तक फैला है. हालांकि, Earth Engine के लिए ज़रूरी है कि रास्टर [-180, 180] की रेंज में हों. इंजेशन से पहले, रास्टर के बाएं और दाएं हिस्से को स्वैप करें. जीआईएस स्टैक एक्सचेंज के ये सुझाव देखें.
मैंने जो क्लासिफ़िकेशन इमेज अपलोड की है वह धुंधली क्यों दिख रही है?
शायद आपने डिफ़ॉल्ट MEAN
पिरामिडिंग नीति का इस्तेमाल किया है.
क्लासिफ़िकेशन इमेज के लिए, MODE पिरामिडिंग नीति का इस्तेमाल किया जाना चाहिए. क्यूए/बिटमास्क इमेज के लिए, SAMPLE पिरामिडिंग नीति का इस्तेमाल किया जाना चाहिए.
मुझे यह गड़बड़ी दिख रही है: No data value -128.0 cannot be applied to band #0 of type Short<0, 255>.
GDAL, सिंगल-बाइट बैंड को साइन किए गए पूर्णांक के तौर पर नहीं मान सकता. इसलिए, वह ऐसे बैंड को बिना साइन किए गए पूर्णांक के तौर पर पढ़ता है. इससे नेगेटिव वैल्यू और डेटा मौजूद न होने की वैल्यू के बीच अंतर करना मुश्किल हो जाता.
अगर आपकी वैल्यू असल में साइन किए गए पूर्णांक हैं, तो मेनिफ़ेस्ट अपलोड का इस्तेमाल करें और इसे अपनी फ़ाइल वाले टाइलसेट सेक्शन में जोड़ें: data_type: "INT8"
अगर आपकी वैल्यू अनसाइंड इंटीजर हैं, तो आपकी फ़ाइल में nodata वैल्यू गलत है. अपलोड करते समय, इसे सही डेटा वैल्यू से बदला जा सकता है. इसके अलावा, ऐसी वैल्यू से भी बदला जा सकता है जो कभी मौजूद नहीं होती. gdal_translate -a_nodata का इस्तेमाल करके, 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 को मिटाना है या उसकी जगह बदलनी है.
earthengine rm -r किसी फ़ोल्डर या कलेक्शन और उसमें मौजूद सभी आइटम को मिटा देता है. हालांकि, यह एक बार में एक ही ऐसेट को मिटाता है. इसलिए, किसी बड़े कलेक्शन को मिटाने में घंटों लग सकते हैं. तेज़ी से मिटाने के लिए, किसी स्क्रिप्ट से चाइल्ड कलेक्शन को एक साथ मिटाएं. इसके बाद, पैरंट कलेक्शन को मिटाएं (बड़े कलेक्शन के साथ काम करना देखें). यही तरीका किसी भी फ़्लैट कलेक्शन या फ़ोल्डर के लिए काम करता है. जिस फ़ोल्डर में अन्य फ़ोल्डर या कलेक्शन मौजूद हैं उसे नीचे से ऊपर की ओर खाली करना होगा. ऐसा इसलिए, क्योंकि किसी कंटेनर को तब तक नहीं मिटाया जा सकता, जब तक वह खाली न हो. इधर-उधर जाने के लिए,
mv का इस्तेमाल करें.
मुझे Earth Engine के बाहर से, सीधे Earth Engine का डेटा ऐक्सेस करना है.
QGIS में एक Earth Engine प्लग इन होता है.
GDAL में Earth Engine ड्राइवर होता है.
अन्य सिस्टम, EE REST API का इस्तेमाल कर सकते हैं.
मुझे अपनी Earth Engine ऐसेट के किसी हिस्से को अपडेट करना है. इसके लिए, मुझे उसे पूरी तरह से फिर से अपलोड नहीं करना है.
EE में अपलोड किए गए रास्टर या वेक्टर डेटा को अपडेट नहीं किया जा सकता. सिर्फ़ ऐसेट मेटाडेटा प्रॉपर्टी को अपडेट किया जा सकता है. हालांकि, सीओजी पर आधारित ऐसेट के लिए ऐसा नहीं किया जा सकता. इन्हें Cloud Storage की अपडेट की गई फ़ाइल पर ले जाया जा सकता है. इसके लिए, ओवरराइट करने की सुविधा चालू करके, उन्हें फिर से रजिस्टर करें.
मेरे पास अपने खाते का ऐक्सेस नहीं है. मुझे अपनी ऐसेट का क्या करना चाहिए?
अगर ओरिजनल खाते की नीतियां डेटा ट्रांसफ़र करने की अनुमति देती हैं, तो कृपया अपनी ऐसेट को किसी दूसरे खाते के साथ शेयर करें. इसके बाद, ऐसेट को कॉपी करें, ताकि उनका मालिकाना हक नए खाते के पास हो. अगर आपको कई ऐसेट को ट्रांसफ़र करना है, तो कमांड-लाइन कॉपी यूटिलिटी का इस्तेमाल करें.
अगर कोई खाता मिटा दिया जाता है, तो उसके मालिकाना हक वाली ऐसेट को ऐक्सेस नहीं किया जा सकता.
एक्सपोर्ट की गई मेरी इमेज गलत जगह पर है.
साइनुसॉइडल या कॉनिक जैसे कुछ प्रोजेक्शन के लिए, GeoTIFF फ़ाइलें कभी-कभी सभी ज़रूरी प्रोजेक्शन पैरामीटर सेव नहीं कर पातीं. इस वजह से, एक्सपोर्ट की गई फ़ाइल, डेस्कटॉप जीआईएस टूल में देखने पर गलत जगह पर दिखती है या EE में फिर से डालने पर गलत जगह पर दिखती है.
इस समस्या को ठीक करने के लिए, एक्सपोर्ट crs पैरामीटर की जानकारी दें. यह पैरामीटर, GeoTIFF फ़ाइलों के साथ अच्छी तरह से काम करता है. उदाहरण के लिए, UTM ज़ोन के लिए EPSG कोड का इस्तेमाल करें. इसमें आपकी दिलचस्पी का इलाका शामिल होता है.
एक्सपोर्ट की गई फ़ीचर कलेक्शन एसेट, मेरी सेट की गई प्रॉपर्टी को सेव नहीं करती हैं.
कोई भी Export.table.* फ़ंक्शन, आउटपुट में टेबल-लेवल की प्रॉपर्टी को सुरक्षित नहीं रखता.
कई आउटपुट फ़ॉर्मैट (जैसे, CSV, GeoJSON) के लिए, इस तरह के मेटाडेटा का इस्तेमाल नहीं किया जा सकता. Export.table.toAsset फ़ंक्शन, टेबल-लेवल की प्रॉपर्टी के साथ काम कर सकता है. हालांकि, फ़िलहाल ऐसा नहीं है.
Drive में CSV फ़ॉर्मैट में एक्सपोर्ट की गई टेबल, XLSX फ़ॉर्मैट में बदल जाती हैं.
Google Drive की सेटिंग के आधार पर, Earth Engine से एक्सपोर्ट की गई CSV टेबल को XLSX फ़ाइलों में बदला जा सकता है. हालांकि, इससे अनचाहे असर हो सकते हैं. जैसे, डेटा टाइप में बदलाव होना. बाद में एक्सपोर्ट किए जाने वाले डेटा के लिए, इस सेटिंग में बदलाव करने के लिए यह तरीका अपनाएं.
- वेब पर Google Drive में, सबसे ऊपर दाईं ओर मौजूद सेटिंग कॉग पर क्लिक करें.
- सेटिंग पर क्लिक करें.
- स्क्रोल करके, "अपलोड की गई फ़ाइलों को Google Docs एडिटर फ़ॉर्मैट में बदलें" पर जाएं और उससे सही का निशान हटाएं.
क्लाउड ऑप्टिमाइज़्ड GeoTIFFs (सीओजी)
ज़्यादा जानकारी के लिए, सीओजी की खास जानकारी और सीओजी रजिस्ट्रेशन गाइड देखें.
मैंने सीओजी की मदद से बनाई गई कोई ऐसेट शेयर की है, लेकिन मेरे सहयोगियों को अनुमति से जुड़ी गड़बड़ी का मैसेज मिल रहा है.
सीओजी पर आधारित ऐसेट, आपके Cloud Storage बकेट में मौजूद फ़ाइलों का पॉइंटर होती है. इसलिए, साथ मिलकर काम करने वाले लोगों को Earth Engine ऐसेट और बकेट, दोनों को पढ़ने का ऐक्सेस चाहिए. बकेट पर, उन्हें स्टोरेज ऑब्जेक्ट व्यूअर और स्टोरेज बकेट व्यूअर की भूमिकाएं दें. अगर किसी ऐसेट को देखने की अनुमति होने के बावजूद, उसे ऐक्सेस करने में गड़बड़ी हो रही है, तो आम तौर पर इसका मतलब है कि दोनों में से कोई एक भूमिका मौजूद नहीं है. अनुमतियां कॉन्फ़िगर करें देखें.
सीओजी ऐसेट को स्टोर करने के लिए, मुझे Cloud Storage बकेट की किस जगह का इस्तेमाल करना चाहिए?
सिर्फ़ अमेरिका की कुछ जगहों पर यह सुविधा उपलब्ध है. Earth Engine, अन्य जगहों पर मौजूद बकेट के लिए रजिस्ट्रेशन और पढ़ने के अनुरोधों को अस्वीकार कर देता है. बकेट के लिए इस्तेमाल की जा सकने वाली जगहें देखें.
मैंने Cloud Storage में मौजूद एक सीओजी फ़ाइल को बदल दिया है. ऐसेट लोड क्यों नहीं हो रही है या पुराना डेटा अब भी क्यों दिख रहा है?
जब कोई सीओजी रजिस्टर किया जाता है, तो Earth Engine फ़ाइल के ऑब्जेक्ट जनरेशन (वर्शन) को पिन कर देता है. इसलिए, फ़ाइल को ओवरराइट करने से ऐसेट अपडेट नहीं होती. एसेट को उसी नाम से फिर से रजिस्टर करें और ओवरराइट करने की सुविधा चालू करें. आपको इसे पहले मिटाने की ज़रूरत नहीं है. सीओजी की मदद से बनाई गई ऐसेट को अपडेट करने, बदलने, और मिटाने के बारे में जानें.
मुझे कैसे पता चलेगा कि सीओजी की मदद से बनाई गई मेरी ऐसेट, किसी फ़ाइल के किस वर्शन पर ले जाती है?
ऐसेट के मेटाडेटा (ee.data.getAsset()) में, पिन की गई जनरेशन को फ़ाइल के यूआरआई के सफ़िक्स के तौर पर दिखाया जाता है. ऑब्जेक्ट जनरेशन देखें.
अगर मैं Cloud Storage में मौजूद COG फ़ाइल को मिटा दूं, लेकिन Earth Engine ऐसेट को न मिटाऊं या इसके उलट करूं, तो क्या होगा?
वे स्वतंत्र हैं. Earth Engine ऐसेट को मिटाने पर, Cloud Storage में मौजूद आपकी फ़ाइलें मिटती नहीं हैं. इसी तरह, फ़ाइल को मिटाने पर ऐसेट मिटती नहीं है, लेकिन आम तौर पर उसके पिक्सल को पढ़ा नहीं जा सकता. इंडिपेंडेंट लाइफ़साइकल देखें.
सीओजी पर आधारित बड़े ImageCollection को मिटाने या बदलने का सबसे तेज़ तरीका क्या है?
Earth Engine API में, एक साथ कई ऐसेट या बार-बार मिटाने की सुविधा नहीं है. साथ ही,
earthengine rm -r एक बार में एक ही ऐसेट मिटाता है. अगर इमेज बदली जा रही हैं, तो उन्हें मिटाने के बजाय, ओवरराइट करने की सुविधा चालू करके फिर से रजिस्टर करें. अगर इमेज मिटाई जा रही हैं, तो स्क्रिप्ट की मदद से एक साथ कई इमेज मिटाएं. तरीके और स्क्रिप्ट के लिए, बड़े कलेक्शन के साथ काम करना देखें.
टास्क टैब में मेरा COG रजिस्ट्रेशन क्यों नहीं दिख रहा है?
सीओजी को रजिस्टर करना, एक सिंक्रोनस एपीआई कॉल है. यह सिर्फ़ फ़ाइल के मेटाडेटा को इंडेक्स करता है, न कि बैच इंजेक्शन जॉब को. इसलिए, यह कोई टास्क नहीं बनाता. कॉल वापस आने के बाद, ऐसेट ऐसेट टैब में उपलब्ध हो जाती है. रजिस्ट्रेशन का अनुरोध सबमिट करना देखें.
क्या कई सीओजी फ़ाइलों को एक Earth Engine ऐसेट में जोड़ा जा सकता है?
सिर्फ़ तब, जब हर फ़ाइल में एक ही सीन के अलग-अलग बैंड हों: मेनिफ़ेस्ट में हर फ़ाइल को उसके टाइलसेट के तौर पर शामिल करें और बैंड को टाइलसेट से मैप करें. स्पेशल अडजेसेंट फ़ाइलों को एक COG-बैक्ड ऐसेट में मोज़ेक नहीं किया जा सकता. हर फ़ाइल को ee.ImageCollection में अपनी इमेज के तौर पर रजिस्टर करें और mosaic() को कॉल करें. मेनिफ़ेस्ट से जुड़ी पाबंदियां देखें.
सीओजी-आधारित ऐसेट के लिए, कंप्रेशन की कौनसी स्कीम, टाइल के साइज़, और पिक्सल टाइप इस्तेमाल किए जा सकते हैं?
इस्तेमाल की जा सकने वाली कंप्रेशन स्कीम, टाइल के साइज़, और पिक्सल डेटा टाइप के लिए, बाहरी सीओजी तैयार करने के सबसे सही तरीके देखें. कंप्रेशन फ़ॉर्मैट वाली ऐसी फ़ाइलें जिन्हें Earth Engine, सीओजी के तौर पर सीधे नहीं पढ़ सकता उन्हें अब भी स्टैंडर्ड ऐसेट के तौर पर अपलोड किया जा सकता है.
मुझे "टीआईएफ़एफ़ का मेटाडेटा, शुरुआती 10000000 बाइट में नहीं पढ़ा जा सका" गड़बड़ी का मैसेज मिला.
Earth Engine, किसी फ़ाइल को लोड या रजिस्टर करते समय सिर्फ़ उसके शुरुआती हिस्से को पढ़ता है. कई टाइल वाली बड़ी इमेज और अधूरी फ़ाइलें, इस हिस्से से ज़्यादा बड़ी होती हैं. फ़ाइल के डाइमेंशन की सीमा और उसके अंदर रहने के तरीके के बारे में जानने के लिए, फ़ाइल के डाइमेंशन चुनना देखें.
फ़ाइल में बदलाव होने पर, ee.Image.loadGeoTIFF() और रजिस्टर की गई ऐसेट में क्या अंतर होता है?
ee.Image.loadGeoTIFF(), हर कंप्यूटेशन या मैप-टाइल के अनुरोध पर, फ़ाइल के मौजूदा वर्शन को पढ़ता है. इसलिए, यह बदलावों को चुनता है. हालांकि, मैप पर यह बदलाव असमान तरीके से होता है, क्योंकि रेंडर की गई मैप टाइल, कैश मेमोरी में सेव रहती हैं. रजिस्टर की गई ऐसेट हमेशा उस जनरेशन को पिन करती है जिसके साथ उसे रजिस्टर किया गया था. साथ ही, नई फ़ाइल देखने के लिए उसे फिर से रजिस्टर करना पड़ता है. हालांकि, इसके बदले में उसके फ़ुटप्रिंट और मेटाडेटा को इंडेक्स किया जाता है. इससे उसे बड़े कलेक्शन में इस्तेमाल किया जा सकता है. Cloud Storage से सीओजी पढ़ने के बारे में जानें.
कोड एडिटर
कोड एडिटर में साइन इन नहीं किया जा सकता, क्योंकि यह मुझे गलत खाते का इस्तेमाल करने के लिए कहता है.
लॉग आउट करें. इसके बाद, "कोई खाता चुनें" पेज पर जाकर, Earth Engine का इस्तेमाल करने के लिए रजिस्टर किया गया खाता चुनें. इसके बाद, "Earth Engine कोड एडिटर का इस्तेमाल जारी रखने के लिए कोई खाता चुनें" पेज पर जाकर, उसी खाते को फिर से चुनें. हालांकि, पेज पर मौजूद टेक्स्ट अलग हो सकता है.
मुझे दुनिया के मैप का स्क्रीनशॉट लेना है, लेकिन मुझे वेब मर्केटर प्रोजेक्शन पसंद नहीं है.
कोड एडिटर में इस्तेमाल किया जाने वाला मैप प्रोजेक्शन, वेब मर्केटर ('EPSG:3857') है. यह भूमध्य रेखा से दूर मौजूद ऑब्जेक्ट के साइज़ को बढ़ा देता है. इससे ज़्यादा अक्षांश वाले इलाके, भूमध्य रेखा के आस-पास के इलाकों की तुलना में असल साइज़ से काफ़ी बड़े दिखते हैं. कोड एडिटर के मैप कैनवस का प्रोजेक्शन नहीं बदला जा सकता. हालांकि, ee.Image.changeProj तरीके का इस्तेमाल करके, वेब मर्केटर कैनवस पर अपनी पसंद के प्रोजेक्शन में इमेज को "पेंट" किया जा सकता है.
रॉबिन्सन प्रोजेक्शन में, कोड एडिटर मैप पर ग्लोबल डीईएम दिखाने का उदाहरण देखने के लिए, इस तरीके का एपीआई का संदर्भ पेज देखें.
ध्यान दें कि इस तकनीक का इस्तेमाल सिर्फ़ विज़ुअलाइज़ेशन के लिए किया जाना चाहिए. ऐसा इसलिए, क्योंकि कोड एडिटर का इंस्पेक्टर और ड्रॉइंग टूल अब भी वेब मर्केटर में काम कर रहे हैं.
मेरी स्क्रिप्ट सेव नहीं हो रही है (Script error: Unknown commit).
अगर आपको स्क्रिप्ट सेव करते समय Script error: Unknown commit मैसेज मिलता है, तो इसका मतलब है कि जिस रिपॉज़िटरी में स्क्रिप्ट सेव की जा रही है वह सिंक नहीं है.
इस स्थिति की वजह अलग-अलग हो सकती है और इसका पता लगाना मुश्किल होता है. समस्या को हल करने के लिए, स्क्रिप्ट टैब के ऊपरी दाएं कोने में मौजूद बटन का इस्तेमाल करके, स्क्रिप्ट की सूची को रीफ़्रेश करें. अगर इससे काम नहीं बनता है, तो स्क्रिप्ट टैब में मौजूद 'नया' बटन पर क्लिक करके, एक नई रिपॉज़िटरी बनाएं और अपनी स्क्रिप्ट को वहां सेव करें. ऐसा हो सकता है कि आपको सिंक न होने वाली रिपॉज़िटरी से स्क्रिप्ट को नई रिपॉज़िटरी में ले जाना पड़े.
मुझे कोड एडिटर में बार-बार 400 गड़बड़ियां क्यों दिख रही हैं?
अगर आपको कोड एडिटर में बार-बार 400 गड़बड़ियां दिख रही हैं, तो https://myaccount.google.com/connections पर जाएं. ऐप्लिकेशन और सेवाओं की सूची में "Earth Engine कोड एडिटर" ढूंढें और उसे चुनें. इसके बाद, "Earth Engine कोड एडिटर के साथ किए गए सभी कनेक्शन मिटाएं" को चुनें और पुष्टि करें. इसके बाद, कोड एडिटर खोलें और फिर से पुष्टि करें.
मिटाई गई स्क्रिप्ट और फ़ोल्डर को कैसे वापस लाया जा सकता है?
अगर किसी मौजूदा रिपॉज़िटरी में मौजूद कोई स्क्रिप्ट या फ़ोल्डर गलती से मिट जाता है, तो कमिट का पूरा इतिहास हमारे सर्वर पर Git लॉग में सेव रहता है. स्टैंडर्ड Git कमांड-लाइन टूल का इस्तेमाल करके, रिपॉज़िटरी को स्थानीय तौर पर क्लोन करके, मिटाई गई स्क्रिप्ट या फ़ोल्डर वापस लाए जा सकते हैं.
हालांकि, पूरी डेटा स्टोर करने की जगह (users/username/repository) को मिटाने से, earthengine.googlesource.com से डेटा स्टोर करने की जगह और उसके कमिट का इतिहास हमेशा के लिए हट जाता है. इसे पहले जैसा नहीं किया जा सकता या वापस नहीं लाया जा सकता.
Git क्रेडेंशियल जनरेट करने, अपनी रिपॉज़िटरी को क्लोन करने, और मिटाई गई फ़ाइलों या फ़ोल्डर को वापस लाने के सिलसिलेवार निर्देशों के लिए, स्क्रिप्ट को वापस लाने और रिपॉज़िटरी को माइग्रेट करने से जुड़ी गाइड देखें.
मैं अपनी स्क्रिप्ट रिपॉज़िटरी रूट का नाम कैसे बदलूं?
आपकी स्क्रिप्ट की रूट डायरेक्ट्री (users/username), आपके ओरिजनल Earth Engine खाते के रजिस्ट्रेशन से जुड़ी होती है. इसे सीधे बैकएंड पर नाम नहीं दिया जा सकता, क्योंकि ऐसा करने से कोई भी बाहरी स्क्रिप्ट या सहयोगी प्रोजेक्ट टूट जाएगा, जो require('users/username/repository:...') पाथ का इस्तेमाल करके आपके मॉड्यूलर कोड को इंपोर्ट करता है.
अगर आपको नया नेमस्पेस चाहिए, तो अपने काम को नए खाते में माइग्रेट करें:
- अपनी नई Google पहचान का इस्तेमाल करके, एक नया Earth Engine खाता रजिस्टर करें. इससे एक नया
users/new_usernameरूट जनरेट होता है. - अपनी पुरानी रिपॉज़िटरी को क्लोन करने और उसके पूरे इतिहास को नई खाली रिपॉज़िटरी में पुश करने के लिए, रिपॉज़िटरी माइग्रेशन के निर्देशों का पालन करें.
इन बातों पर ध्यान देना ज़रूरी है:
- सार्वजनिक मॉड्यूल: अगर आपके पास ऐसे सार्वजनिक मॉड्यूल हैं जिन पर अन्य लोग भरोसा करते हैं, तो हमारा सुझाव है कि आप अपना पुराना खाता और रिपॉज़िटरी चालू रखें, ताकि उनके वर्कफ़्लो में कोई रुकावट न आए.
- निजी स्क्रिप्ट: अगर आपकी स्क्रिप्ट पूरी तरह से निजी हैं, तो नए रिपॉज़िटरी पाथ को रेफ़रंस के तौर पर इस्तेमाल करने के लिए,
require()इंपोर्ट स्टेटमेंट को अपडेट किया जा सकता है. इसके बाद, पुरानी रिपॉज़िटरी को सुरक्षित तरीके से मिटाया जा सकता है.