Google Earth Engine Scripts च्या अंमलबजावणीची वेळ ऑप्टिमाइझ करणे
Google Earth Engine (GEE) हे मोठ्या प्रमाणावर भू-स्थानिक डेटाचे विश्लेषण करण्यासाठी एक शक्तिशाली व्यासपीठ आहे. तथापि, वापरकर्त्यांना त्यांच्या स्क्रिप्ट मूलभूत दिसल्या तरीही, अंमलबजावणी वेळेत अनेकदा समस्या येतात. एखादी स्क्रिप्ट जी चालण्यासाठी काही मिनिटे घेते ती उत्पादकतेवर परिणाम करू शकते आणि अंतर्दृष्टी विलंब करू शकते.
या प्रकरणात, वापरकर्त्याने सेंटिनेल आणि लँडसॅट 8 डेटावर प्रक्रिया करण्यासाठी एक सोपी स्क्रिप्ट तयार केली आहे. त्याची साधेपणा असूनही, स्क्रिप्ट कार्यान्वित होण्यासाठी सुमारे 3-5 मिनिटे लागतात. हे का घडते आणि स्क्रिप्ट कसे ऑप्टिमाइझ करावे हे समजून घेणे कार्यक्षम डेटा प्रक्रियेसाठी आवश्यक आहे.
GEE स्क्रिप्टचे कार्यप्रदर्शन डेटा आकार, फिल्टरिंग आणि संगणकीय जटिलता यासह अनेक घटकांवर अवलंबून असते. अंमलबजावणीची वेळ कमी करण्यामध्ये स्क्रिप्टमधील अडथळे ओळखणे समाविष्ट आहे, जसे की अनावश्यक ऑपरेशन्स किंवा मोठ्या डेटासेट जे प्रक्रिया कमी करतात.
हा लेख GEE मध्ये धीमे अंमलबजावणीच्या वेळेची संभाव्य कारणे शोधून काढेल आणि दिलेल्या स्क्रिप्टला अनुकूल करण्यासाठी व्यावहारिक टिपा प्रदान करेल. या धोरणांची अंमलबजावणी करून, वापरकर्ते त्यांच्या भौगोलिक डेटा विश्लेषण कार्यांची गती आणि कार्यप्रदर्शन लक्षणीयरीत्या सुधारू शकतात.
आज्ञा | वापराचे उदाहरण |
---|---|
normalizedDifference() | हे कार्य NDVI, NDWI आणि NDSI सारख्या निर्देशांकांची गणना करण्यासाठी दोन बँडमधील फरक, त्यांच्या बेरजेने भागून गणना करण्यासाठी वापरले जाते. हे रिमोट सेन्सिंग विश्लेषणासाठी विशिष्ट आहे जेथे वनस्पती, पाणी आणि हिम निर्देशांक आवश्यक आहेत. |
filterBounds() | दिलेल्या भूमितीला छेदणाऱ्या प्रतिमा समाविष्ट करण्यासाठी प्रतिमा संग्रह फिल्टर करते. या प्रकरणात, ते उपग्रह डेटाला व्याजाच्या परिभाषित बिंदूच्या आसपासच्या क्षेत्रासाठी प्रतिबंधित करते, अप्रासंगिक डेटा वगळून प्रक्रिया अधिक कार्यक्षम करते. |
filterDate() | ही आज्ञा प्रतिमा संकलनास विशिष्ट तारीख श्रेणीपर्यंत मर्यादित करते. आमच्या समस्येसाठी, सेंटिनेल आणि लँडसॅट डेटासेटसाठी समान कालावधीमधील फरकांचे विश्लेषण करणे महत्त्वाचे आहे. |
addBands() | संग्रहातील प्रत्येक प्रतिमेमध्ये नवीन गणना केलेले बँड (जसे NDVI, NDWI आणि NDSI) जोडते. हे वेगळे डेटासेट न बनवता एकाच इमेज कलेक्शनमध्ये अनेक निर्देशांक लागू करण्यासाठी आवश्यक आहे. |
unmask() | मास्क केलेले पिक्सेल निर्दिष्ट मूल्यासह भरते. आमच्या स्क्रिप्टमध्ये, संपूर्ण प्रदेशात डेटावर सातत्याने प्रक्रिया केली जाईल याची खात्री करून, कायमस्वरूपी पाण्याचे क्षेत्र अनमास्क करण्यासाठी वापरले जाते. |
reduce() | ee.Reducer.percentile() सारखे निर्दिष्ट रिड्यूसर फंक्शन वापरून प्रतिमा संग्रह कमी करते. येथे, पिक्सेल मूल्यांच्या 30 व्या पर्सेंटाइलची गणना करण्यासाठी, संमिश्र प्रतिमा निर्मिती ऑप्टिमाइझ करण्यासाठी वापरली जाते. |
clip() | निर्दिष्ट स्वारस्य क्षेत्राच्या सीमेवर प्रतिमा क्लिप करते. हे सुनिश्चित करते की केवळ क्षेत्राशी संबंधित डेटावर प्रक्रिया केली जाते, जे अंमलबजावणीची गती वाढवते. |
gt() | या कमांडचा अर्थ 'ग्रेटर पेक्षा' आहे आणि थ्रेशोल्डवर आधारित बायनरी प्रतिमा तयार करण्यासाठी वापरला जातो. या प्रकरणात, ते 80% पेक्षा जास्त पाण्याची घटना असलेले क्षेत्र ओळखते. |
map() | संग्रहातील प्रत्येक प्रतिमेवर कार्य लागू करते. आमच्या उदाहरणात, ते संग्रहातील सर्व प्रतिमांवर NDVI, NDWI आणि NDSI ची गणना करण्यासाठी addIndices फंक्शन लागू करते, कार्यप्रवाह सुव्यवस्थित करते. |
सुधारित कार्यक्षमतेसाठी GEE स्क्रिप्ट ऑप्टिमाइझ करणे
प्रदान केलेल्या स्क्रिप्टमध्ये, दोन भिन्न स्त्रोतांकडून उपग्रह प्रतिमा काढणे आणि त्यावर प्रक्रिया करणे हे लक्ष्य आहे: सेंटिनेल आणि लँडसॅट. द Google Earth इंजिन (GEE) प्लॅटफॉर्म वापरकर्त्यांना मोठ्या प्रमाणात सॅटेलाइट डेटा ऍक्सेस करण्यास आणि फिल्टरिंग, इंडेक्सिंग आणि व्हिज्युअलायझेशन सारख्या विविध ऑपरेशन्स लागू करण्यास अनुमती देते. या स्क्रिप्टमध्ये वापरल्या जाणाऱ्या मुख्य वैशिष्ट्यांपैकी एक आहे सामान्यीकृत फरक() फंक्शन, जे NDVI, NDWI, आणि NDSI सारख्या महत्त्वाच्या निर्देशांकांची गणना करण्यासाठी वापरले जाते. हे निर्देशांक निर्दिष्ट प्रदेशातील वनस्पती, पाणी आणि बर्फाचे आच्छादन यांचे विश्लेषण करण्यासाठी महत्त्वपूर्ण आहेत. स्क्रिप्ट रूचीचा बिंदू परिभाषित करून सुरू होते आणि प्रदान केलेल्या निर्देशांकांचा वापर करून त्यावर नकाशा केंद्रस्थानी ठेवते.
स्क्रिप्ट एकाधिक फिल्टर लागू करते, जसे की फिल्टर तारीख() आणि फिल्टरबाउंड(), प्रक्रिया केल्या जाणाऱ्या डेटाचे प्रमाण कमी करण्यासाठी, अशा प्रकारे अंमलबजावणीची वेळ सुधारते. उदाहरणार्थ, फिल्टरबाउंड() हे सुनिश्चित करते की केवळ स्वारस्याच्या क्षेत्राला छेदणाऱ्या प्रतिमा समाविष्ट केल्या आहेत, तर फिल्टर तारीख() प्रतिमा एका विशिष्ट तारखेपर्यंत मर्यादित करते. सेंटिनेल आणि लँडसॅट इमेजरी सारख्या मोठ्या डेटासेटवर प्रक्रिया करण्यासाठी हे आवश्यक आहे, कारण ते संगणकीय भार कमी करते. याव्यतिरिक्त, द फिल्टर क्लाउड कव्हरेजसाठी जास्त क्लाउड असलेल्या प्रतिमा टाकून देण्यास मदत करते, चांगल्या-गुणवत्तेचे विश्लेषण सुनिश्चित करते.
स्क्रिप्टचा एक महत्त्वाचा पैलू आहे addBands() फंक्शन, जे इमेजरीमध्ये गणना केलेले निर्देशांक (NDVI, NDWI, NDSI) जोडते, त्यांना पुढील विश्लेषणासाठी प्रवेशयोग्य बनवते. स्क्रिप्टमध्ये JRC ग्लोबल सरफेस वॉटर डेटासेटमधील डेटा वापरून कायमस्वरूपी वॉटर मास्क देखील समाविष्ट केला आहे. वॉटर मास्क जास्त प्रमाणात पाण्याची (80% पेक्षा जास्त) उपस्थिती असलेल्या भागात वगळण्यात मदत करते, जे अन्यथा वनस्पती आणि बर्फाच्या विश्लेषणाचे परिणाम तिरस्कार करू शकतात. च्या माध्यमातून केले जाते gt() आणि मुखवटा काढा() फंक्शन्स, जे स्क्रिप्टला पिक्सेल मूल्यांवर आधारित क्षेत्र वेगळे करण्याची परवानगी देतात.
शेवटी, स्क्रिप्ट वापरते कमी करा() निवडलेल्या पिक्सेल मूल्यांच्या 30 व्या टक्केवारीचे प्रतिनिधित्व करणारी संमिश्र प्रतिमा निर्माण करण्यासाठी पर्सेंटाइल रेड्यूसरसह कार्य करा. ही संमिश्र प्रतिमा नंतर स्वारस्याच्या प्रदेशात क्लिप केली जाते आणि वापरून नकाशावर दृश्यमान केली जाते क्लिप() कार्य व्हिज्युअल पॅरामीटर्स सेंटिनेल आणि लँडसॅट कंपोझिट दोन्हीसाठी परिभाषित केले आहेत, वापरकर्त्याला ते योग्य रंग सेटिंग्जसह पाहण्याची परवानगी देतात. फिल्टरिंग, मास्किंग आणि कंपोझिट जनरेशन यासारख्या विविध इमेज प्रोसेसिंग पायऱ्या एकत्र करून, ही स्क्रिप्ट उपग्रह इमेजरीचे विश्लेषण करण्याचा एक कार्यक्षम मार्ग प्रदान करते, तरीही अंमलबजावणीची वेळ कमी करण्यासाठी पुढील ऑप्टिमायझेशन लागू केले जाऊ शकते.
जलद प्रक्रियेसाठी Google Earth Engine Script Execution ऑप्टिमाइझ करत आहे
हे सोल्यूशन डेटा पुनर्प्राप्ती वेळा कमी करून आणि ऑपरेशन्स सुलभ करून कार्यप्रदर्शन ऑप्टिमाइझ करण्यावर भर देऊन Google Earth Engine (GEE) चा वापर करते. JavaScript ही स्क्रिप्टिंग भाषा म्हणून वापरली जाते.
var pointJSP = ee.Geometry.Point([86.465263, 20.168076]);
Map.centerObject(pointJSP, 14);
// Combine date variables for flexibility
var startDate = '2024-02-01';
var endDate = '2024-03-01';
// Function to add NDVI, NDWI, NDSI
var addIndices = function(image) {
var ndvi = image.normalizedDifference(['NIR', 'RED']).rename('NDVI');
var ndwi = image.normalizedDifference(['NIR', 'SWIR1']).rename('NDWI');
var ndsi = image.normalizedDifference(['SWIR1', 'SWIR2']).rename('NDSI');
return image.addBands(ndvi).addBands(ndwi).addBands(ndsi);
};
// Use fewer data points by filtering for cloud-free pixels only once
var sentinel = ee.ImageCollection('COPERNICUS/S2_SR')
.filterBounds(pointJSP)
.filterDate(startDate, endDate)
.filter(ee.Filter.lt('CLOUDY_PIXEL_PERCENTAGE', 30));
स्क्रिप्ट विलंब कमी करण्यासाठी GEE साठी कार्यक्षम डेटा प्रक्रिया वापरणे
हे समाधान निर्देशांक गणना आणि थ्रेशोल्ड एकत्र करून ऑप्टिमाइझ केलेले डेटा हाताळणी एकत्रित करते. Google Earth इंजिन प्रक्रियेसाठी JavaScript लागू केले आहे.
१
रिमोट सेन्सिंग स्क्रिप्ट्सची कार्यक्षमता सुधारणे
Google Earth Engine (GEE) स्क्रिप्ट्ससह काम करताना एक महत्त्वाचा विचार म्हणजे ऑपरेशन्स कार्यक्षमतेने हाताळले जातात याची खात्री करणे. सेंटिनेल आणि लँडसॅट सारख्या मोठ्या डेटासेटचा वापर पर्यावरणीय विश्लेषणामध्ये सामान्य आहे, परंतु डेटाच्या मोठ्या प्रमाणामुळे स्क्रिप्टची अंमलबजावणी कमी होऊ शकते. कार्यप्रदर्शन सुधारण्याची एक पद्धत म्हणजे केवळ आवश्यक डेटावर प्रक्रिया केली जात आहे याची खात्री करणे. सारख्या आज्ञा वापरणे फिल्टरबाउंड() आणि फिल्टर तारीख() डेटासेटचा आकार कमी करते, जे गणना सुव्यवस्थित करण्यात मदत करते. विशिष्ट तारीख श्रेणी आणि भौगोलिक प्रदेश निवडल्याने अंमलबजावणीची वेळ लक्षणीयरीत्या कमी होऊ शकते.
GEE स्क्रिप्टच्या कार्यक्षमतेवर परिणाम करणारा आणखी एक पैलू म्हणजे डेटावर प्रक्रिया कशी केली जाते. स्क्रिप्ट उदाहरण NDVI, NDWI, आणि NDSI सारख्या महत्त्वाच्या निर्देशांकांची गणना करण्यासाठी फंक्शन वापरते. हे निर्देशांक प्रतिमा संग्रहामध्ये बँड म्हणून जोडले जातात, जे अधिक सखोल विश्लेषणास अनुमती देतात. तथापि, प्रथम फिल्टर न करता संपूर्ण डेटासेटवर अशी कार्ये लागू करणे ही एक सामान्य चूक आहे. अप्रासंगिक डेटावर अनावश्यक गणना टाळण्यासाठी फिल्टरिंगनंतर अशा ऑपरेशन्स लागू करणे महत्वाचे आहे.
व्हिज्युअलायझेशन हा स्क्रिप्टचा आणखी एक घटक आहे जो ऑप्टिमाइझ केला जाऊ शकतो. बरेच स्तर किंवा जटिल व्हिज्युअलायझेशन जोडल्याने प्रक्रियेचा वेळ कमी होऊ शकतो. स्क्रिप्ट कंपोझिट रेंडर करण्यासाठी पूर्वनिर्धारित व्हिज्युअल पॅरामीटर्स वापरते, परंतु विशिष्ट स्तरांना स्पष्टपणे आवश्यक नसल्यास ते अक्षम करून कार्यप्रदर्शन सुधारले जाऊ शकते. हे स्क्रिप्टची कार्यक्षमता राखून हलके ठेवण्यास मदत करते. वापरत आहे क्लिप() आदेश हे देखील सुनिश्चित करतात की केवळ आवश्यक क्षेत्र प्रस्तुत केले आहे, एकूण प्रक्रियेचा भार कमी करते.
Google Earth Engine Scripts ऑप्टिमाइझ करण्याबद्दल वारंवार विचारले जाणारे प्रश्न
- मी माझ्या GEE स्क्रिप्ट्सचे कार्यप्रदर्शन कसे सुधारू शकतो?
- चा वापर ऑप्टिमाइझ करा filterDate(), १, आणि प्रक्रिया करण्यापूर्वी तुमच्या डेटासेटचा आकार कमी करा.
- माझी GEE स्क्रिप्ट चालायला इतका वेळ का लागतो?
- मोठे डेटासेट आणि गुंतागुंतीची गणना अंमलबजावणीची गती कमी करू शकते. वापरा reduce() आणि clip() संबंधित भागात प्रक्रिया मर्यादित करण्यासाठी.
- मी GEE मध्ये प्रक्रिया केलेल्या प्रतिमांची संख्या कमी करू शकतो का?
- होय, अर्ज करून filter() क्लाउड कव्हरेजसाठी आणि filterDate() विशिष्ट कालावधीवर लक्ष केंद्रित करणे.
- मी माझ्या स्क्रिप्टमध्ये निर्देशांकाची गणना कशी सोपी करू शकतो?
- सारखे फंक्शन वापरा addBands() एका चरणात एकाधिक निर्देशांक (उदा. NDVI, NDWI) जोडून सुव्यवस्थित करण्यासाठी.
- केवळ आवश्यक स्तरांची कल्पना करणे शक्य आहे का?
- होय, अनावश्यक स्तर अक्षम करा आणि यासह सरलीकृत व्हिज्युअलायझेशन पॅरामीटर्स वापरा ७ चांगल्या कामगिरीसाठी.
GEE स्क्रिप्ट ऑप्टिमाइझ करण्याबद्दल अंतिम विचार
Google Earth Engine स्क्रिप्ट ऑप्टिमाइझ करण्यामध्ये मोठे डेटासेट कुशलतेने हाताळणे, फिल्टर लवकर लागू करणे आणि अनावश्यक डेटा ऑपरेशन्स कमी करणे समाविष्ट आहे. द्वारे फिल्टर करणे यासारख्या आवश्यक क्षेत्रांवर लक्ष केंद्रित करणे तारीख आणि स्थान प्रक्रिया वेळ लक्षणीयरीत्या कमी करू शकते.
सारख्या कार्यांचा समावेश करून बँड जोडा आणि असंबद्ध डेटा काढून टाकण्यासाठी थ्रेशोल्ड मास्क वापरून, स्क्रिप्ट कार्यप्रदर्शन आणखी सुधारले जाऊ शकते. ही तंत्रे अंमलबजावणी सुलभ करू शकतात, जलद परिणाम देऊ शकतात आणि Google अर्थ इंजिन प्लॅटफॉर्मचा अधिक चांगला वापर करू शकतात.
Google अर्थ इंजिन स्क्रिप्ट ऑप्टिमाइझ करण्यासाठी स्रोत आणि संदर्भ
- हा लेख अधिकृत Google Earth Engine दस्तऐवजीकरणावर आधारित सामग्री वापरून तयार केला गेला आहे, जो स्क्रिप्ट ऑप्टिमायझेशन तंत्रात अंतर्दृष्टी प्रदान करतो. Google Earth इंजिन मार्गदर्शक
- जटिल स्क्रिप्ट्समध्ये कार्यप्रदर्शन सुधारण्यासाठी चर्चा आणि उपाय ऑफर करून GEE समुदाय मंचाकडून अतिरिक्त माहिती गोळा केली गेली. Google Earth इंजिन समुदाय
- खालील लिंकवर उपलब्ध रिमोट सेन्सिंग साहित्य आणि ट्यूटोरियलमधून मोठ्या डेटासेट हाताळण्याच्या सर्वोत्तम पद्धतींचा संदर्भ देण्यात आला आहे. नासा पृथ्वी वेधशाळा