FeatureView
, FeatureCollection
का तेज़ी से चलने वाला वर्शन होता है. इसे सिर्फ़ देखा जा सकता है.
FeatureCollection
के रेस्टर मैप टाइल, ज़रूरत पड़ने पर जनरेट किए जाते हैं. वहीं, FeatureView
की रेस्टर टाइल पहले से कैलकुलेट की जाती हैं, ताकि तेज़ी से रेंडरिंग की जा सके.
FeatureView
ऐसेट, तेज़ी से रेंडर करने के साथ-साथ, ज़ूम लेवल के हिसाब से सुविधाओं को कम करती हैं. इसका असर यह होता है कि ज़ूम आउट करने पर, डेटासेट अधूरे दिख सकते हैं. ऐसा इसलिए होता है, क्योंकि छोटी-छोटी चीज़ें नहीं दिखाई जाती हैं. हालांकि, ज़ूम इन करने पर ज़्यादा डेटा दिखता है. इससे ज़ूम लेवल कम होने पर भी मैप की खूबसूरती बढ़ सकती है. डेटासेट को छोटा करने की प्रोसेस को कई ऑप्टिमाइज़ेशन पैरामीटर से कंट्रोल किया जाता है. ये पैरामीटर, FeatureCollection
को FeatureView
एसेट में एक्सपोर्ट करने के दौरान सेट किए जाते हैं.
सिर्फ़ देखने के लिए उपलब्ध ऐसेट के तौर पर, FeatureView
ऑब्जेक्ट को कैलकुलेशन या एक्सप्रेशन में शामिल नहीं किया जा सकता. हालांकि, JavaScript कोड एडिटर और Earth Engine ऐप्लिकेशन में, FeatureViewLayer
के तौर पर इन्हें विज़ुअलाइज़ किया जा सकता है और उनकी जांच की जा सकती है. इन्हें Google Maps API ऐप्लिकेशन में भी इंटिग्रेट किया जा सकता है.
FeatureView बनाना
FeatureView
बनाने के लिए, अपने डेटा के साथ FeatureCollection
तैयार करना, Export.table.toFeatureView
फ़ंक्शन को कॉल करना, और एक्सपोर्ट टास्क शुरू करना शामिल है. इस उदाहरण में, WDPA पॉलीगॉन डेटासेट के व्यू एक्सपोर्ट करने का तरीका बताया गया है.
अपने ऐप्लिकेशन में, Earth Engine डेटा कैटलॉग में संग्रहित किसी भी FeatureCollection
डेटासेट का इस्तेमाल करें या Earth Engine एसेट के तौर पर वेक्टर डेटासेट अपलोड करके अपना डेटासेट बनाएं.
FeatureView
को Export.table.toFeatureView
फ़ंक्शन में कई पैरामीटर का इस्तेमाल करके पसंद के मुताबिक बनाया जा सकता है.
maxFeaturesPerTile
— यह तय करता है कि किसी ज़ूम लेवल पर, मैप टाइल में ज़्यादा से ज़्यादा कितनी सुविधाएं दिखेंगी. इस पैरामीटर का इस्तेमाल करके, इमेज को तेज़ी से खुलने या सुविधाओं की संख्या के हिसाब से ऑप्टिमाइज़ करें.thinningStrategy
— यह कंट्रोल करता है कि किसी टाइल और ज़ूम लेवल के लिए, फ़ीचर को ज़्यादा डेंसिटी के लिए ऑप्टिमाइज़ किया जाना चाहिए या सभी टाइल में डेंसिटी को एक जैसा बनाए रखना चाहिए. ध्यान दें कि ज़्यादा डेंसिटी के लिए ऑप्टिमाइज़ करने पर, टाइल की सीमाएं अलग-अलग हो सकती हैं. इसकी वजह यह है कि हर टाइल में सुविधाओं की डेंसिटी अलग-अलग होती है.thinningRanking
— सुविधा को कम करने की प्राथमिकता तय करता है. उदाहरण के लिए, ज़्यादा वैल्यू वाली किसी खास सुविधा की प्रॉपर्टी को बनाए रखने के लिए, कम सुविधाओं को दिखाने की सुविधा को ऑप्टिमाइज़ किया जा सकता है. दूसरे शब्दों में, ज़ूम आउट करने पर, चुनी गई प्रॉपर्टी के लिए कम वैल्यू वाली सुविधाओं को पहले हटा दिया जाएगा. साथ ही, आपके नियमों के मुताबिक सबसे ज़रूरी सुविधाएं दिखती रहेंगी.zOrderRanking
— मैप पर दिखाई गई सुविधाओं के z-क्रम (स्टैक क्रम) को तय करता है. यह पैरामीटर यह कंट्रोल करता है कि ओवरलैप होने वाली सुविधाएं कैसे दिखें. इसके लिए, यह सुविधाओं की प्रॉपर्टी, ज्यामिति टाइप, और ज़ूम लेवल के आधार पर प्राथमिकता के नियम सेट करने की अनुमति देता है. उदाहरण के लिए, किसी प्रॉपर्टी की ज़्यादा वैल्यू वाली सुविधाओं को प्राथमिकता दी जा सकती है, ताकि वे कम वैल्यू वाली इंटरसेक्शन वाली सुविधाओं के ऊपर ओवरले हो सकें.
इन पैरामीटर और उनके लिए स्वीकार किए गए आर्ग्युमेंट के बारे में ज़्यादा जानने के लिए, FeatureView
ऑप्टिमाइज़ेशन पेज देखें.
नीचे दिए गए उदाहरण में, इन पैरामीटर के लिए तय किए गए आर्ग्युमेंट से एक ऐसा FeatureView
बनता है जिसमें किसी ज़ूम लेवल पर, हर टाइल में ज़्यादा से ज़्यादा 1, 500 फ़ीचर होते हैं. हर टाइल में फ़ीचर की संख्या अलग-अलग हो सकती है और यह ज़्यादा से ज़्यादा 1, 500 तक हो सकती है. छोटे पॉलीगॉन को पहले हटाया जाता है और बड़े पॉलीगॉन के ऊपर छोटे पॉलीगॉन होते हैं.
कोड एडिटर (JavaScript)
// Import the WDPA feature collection. var wdpa = ee.FeatureCollection('WCMC/WDPA/current/polygons'); // Export the WDPA FeatureCollection as a FeatureView asset. Export.table.toFeatureView({ collection: wdpa, assetId: 'wdpa-featureview-demo', description: 'wdpa-featureview-demo', maxFeaturesPerTile: 1500, thinningStrategy: 'HIGHER_DENSITY', thinningRanking: ['REP_AREA DESC'], zOrderRanking: ['REP_AREA DESC'], });
कोड एडिटर में ऊपर दिए गए कोड स्निपेट को चलाने पर, एक एक्सपोर्ट टास्क जनरेट होगा. एक्सपोर्ट शुरू करने के लिए, टास्क चलाएं.
FeatureView ऐसेट की जगहें
FeatureView
ऐसेट, सार्वजनिक डेटा कैटलॉग में और कोड एडिटर के ऐसेट टैब में, आपकी निजी ऐसेट में देखी जा सकती हैं. डेटा कैटलॉग में मौजूद सभी काम की FeatureCollection
ऐसेट के साथ एक साथ काम करने वाली FeatureView
ऐसेट होती है. इसमें, डेटा डालने की आम तौर पर लागू होने वाली सेटिंग होती हैं. आपके निजी ऐसेट संग्रह में, FeatureView
ऐसी सभी ऐसेट शामिल होंगी जिन्हें आपने बनाया है.
स्क्रिप्ट में FeatureView ऐसेट इंपोर्ट करना
FeatureView
ऐसेट को Code Editor की ऐसेट डायलॉग बॉक्स और निजी ऐसेट एंट्री में मौजूद बटन का इस्तेमाल करके, Code Editor स्क्रिप्ट में इंपोर्ट किया जा सकता है. इसके अलावा, ui.Map.FeatureViewLayer
कन्स्ट्रक्टर में इनपुट के तौर पर FeatureView
ऐसेट आईडी देकर भी ऐसा किया जा सकता है.
डेटा कैटलॉग ऐसेट का डायलॉग
डेटा कैटलॉग टेबल ऐसेट डायलॉग, कोड एडिटर के खोज बार से ऐक्सेस किए जाते हैं. इनमें सबसे नीचे दाईं ओर, ड्रॉप-डाउन मेन्यू के साथ इंपोर्ट करें बटन होता है. ड्रॉप-डाउन मेन्यू से, "FeatureView इंपोर्ट करें" चुनें. ऐसेट को आपकी स्क्रिप्ट में सबसे ऊपर मौजूद, इंपोर्ट सेक्शन में शामिल किया जाएगा.
निजी ऐसेट का डायलॉग
निजी FeatureView
ऐसेट डायलॉग, कोड एडिटर के ऐसेट टैब से कोई ऐसेट चुनकर ऐक्सेस किया जाता है. इन डायलॉग में सबसे ऊपर दाईं ओर, इंपोर्ट करें बटन होता है.
बटन को चालू करने पर, ऐसेट को आपकी स्क्रिप्ट में सबसे ऊपर मौजूद इंपोर्ट सेक्शन में शामिल कर दिया जाएगा. इंपोर्ट करने के लिए, ऐसेट टैब में किसी ऐसेट पर कर्सर घुमाने पर दिखने वाले शॉर्टकट बटन (राइट ऐरो आइकॉन) का भी इस्तेमाल किया जा सकता है.
एसेट का आईडी
FeatureView
ऐसेट का एक आईडी होता है, जिसे ui.Map.FeatureViewLayer
कन्स्ट्रक्टर में इनपुट के तौर पर दिया जा सकता है. इससे आपको अपनी स्क्रिप्ट में ऐसेट का ऐक्सेस मिलता है. पहले से बनाए गए इंपोर्ट स्निपेट, कोड एडिटर में डेटा कैटलॉग ऐसेट पेजों और ऐसेट डायलॉग में मिल सकते हैं.
चित्र 1. डेटा कैटलॉग एसेट का डायलॉग, जिसमें FeatureView
इंपोर्ट करने के तरीके हाइलाइट किए गए हैं.
FeatureView का मेटाडेटा
FeatureView
की जानकारी और मेटाडेटा, ऐसेट डायलॉग में उपलब्ध होता है. इन डायलॉग के बारे में ऊपर दिए गए FeatureView ऐसेट की जगहें सेक्शन में बताया गया है. ब्यौरे और प्रॉपर्टी के अलावा, FeatureCollection
के साथ शेयर की जा सकने वाली पांच प्रॉपर्टी, FeatureView
के लिए खास हैं. इनमें, FeatureView बनाना सेक्शन में बताई गई, डेटा डालने के पैरामीटर की सेटिंग और sourceVersion
शामिल हैं. sourceVersion
, उस टेबल ऐसेट का "पिछला बदलाव" टाइमस्टैंप होता है जिससे FeatureView
बनाया गया था. ऊपर दी गई पहली इमेज में, डेटा कैटलॉग एसेट डायलॉग में FeatureView
से जुड़ी प्रॉपर्टी दिखाई गई हैं. अन्य ऐसेट की तरह ही, ee.data.getAsset
से मिली डिक्शनरी से भी प्रोग्राम के हिसाब से प्रॉपर्टी फ़ेच की जा सकती हैं.
FeatureView को विज़ुअलाइज़ करना
FeatureView
ऑब्जेक्ट को कोड एडिटर, Earth Engine ऐप्लिकेशन, और Google Maps में विज़ुअलाइज़ किया जा सकता है.
कोड एडिटर
कोड एडिटर में, मैप पर ui.Map.FeatureViewLayer
एसेट को विज़ुअलाइज़ करने के लिए FeatureView
कॉम्पोनेंट शामिल होता है. यहां दिए गए उदाहरण में, FeatureView
एसेट आईडी की जानकारी दी गई है. साथ ही, एसेट को FeatureViewLayer
के तौर पर इंपोर्ट किया गया है और उसे मैप पर दिखाया गया है.
कोड एडिटर (JavaScript)
// Define the FeatureView asset ID. var assetId = 'WCMC/WDPA/current/polygons_FeatureView'; // Import the FeatureView asset as a FeatureViewLayer. var layer = ui.Map.FeatureViewLayer(assetId); // Add the FeatureViewLayer to the map. Map.add(layer);
शैलीकृत करना
ui.Map.FeatureViewLayer
फ़ंक्शन में स्टाइल डिक्शनरी पास करके या setVisParams
तरीके का इस्तेमाल करके, FeatureViewLayer
को स्टाइल किया जा सकता है. यहां एक उदाहरण दिया गया है, जिसमें:
- "MARINE" प्रॉपर्टी के आधार पर आउटलाइन के रंग (सुरक्षित क्षेत्र पूरी तरह से या कुछ हद तक समुद्री क्षेत्र में आता है या नहीं),
- "IUCN_CAT" प्रॉपर्टी (International Union for Conservation of Nature (IUCN) कैटगरी) के आधार पर भरने का रंग, और
- "REP_AREA" प्रॉपर्टी से तय किए गए सुरक्षित इलाके के साइज़ के आधार पर, फ़िल ऑपैसिटी.
स्टाइल करने के उपलब्ध विकल्पों के बारे में ज़्यादा जानकारी के लिए, FeatureView स्टाइल पेज पर जाएं.
कोड एडिटर (JavaScript)
// Set visualization properties for the defined layer. layer.setVisParams({ color: { property: 'MARINE', categories: [ ['0', 'purple'], ['1', 'green'], ['2', 'blue'], ] }, fillColor: { property: 'IUCN_CAT', defaultValue: 'd3d3d3', categories: [ ['Ia', 'a6cee3'], ['Ib', '1f78b4'], ['II', 'b2df8a'], ['III', '33a02c'], ['IV', 'fb9a99'], ['V', 'e31a1c'], ['VI', 'fdbf6f'], ] }, fillOpacity: { property: 'REP_AREA', mode: 'interval', palette: [ [0, 0.5], [80, 0.35], [2000, 0.22], [5000, 0.15], ], }, width: 1.0, pointSize: 6.0, });
फ़िल्टर करना
फ़िल्टर के नियमों को लागू करके, सुविधाओं को उनकी प्रॉपर्टी के आधार पर चुनिंदा स्टाइल में दिखाया जा सकता है या छिपाया जा सकता है. उदाहरण के लिए, स्लाइडर विजेट से दिए गए किसी खास इलाके से छोटे सुरक्षित इलाकों को फ़िल्टर करने के लिए, इस कोड का इस्तेमाल किया जा सकता है. rules
फ़ील्ड के बारे में ज़्यादा जानने के लिए, FeatureView
स्टाइल पेज का खास नियम सेक्शन देखें.
कोड एडिटर (JavaScript)
// Define the FeatureView asset ID. var assetId = 'WCMC/WDPA/current/polygons_FeatureView'; // Import the FeatureView asset as a FeatureViewLayer. var layer = ui.Map.FeatureViewLayer(assetId, null, 'WDPA FeatureViewLayer'); // Callback function to update FeatureViewLayer style. var updateVisParams = function() { layer.setVisParams({ color: { property: 'MARINE', categories: [ ['0', 'purple'], ['1', 'green'], ['2', 'blue'], ] }, fillColor: { property: 'IUCN_CAT', defaultValue: 'd3d3d3', categories: [ ['Ia', 'a6cee3'], ['Ib', '1f78b4'], ['II', 'b2df8a'], ['III', '33a02c'], ['IV', 'fb9a99'], ['V', 'e31a1c'], ['VI', 'fdbf6f'], ] }, fillOpacity: { property: 'REP_AREA', mode: 'interval', palette: [ [0, 0.5], [80, 0.35], [2000, 0.22], [5000, 0.15], ], }, width: 1.0, pointSize: 6.0, rules: [ { filter: ee.Filter.lt('REP_AREA', filterSlider.getValue()), isVisible: false, }, ], }); }; // Slider widget that calls the updateVisParams function on change. var filterSlider = ui.Slider({ min: 0, max: 10000, step: 10, value: 0, style: { stretch: 'horizontal'}, onChange: updateVisParams, }); var filterSliderLabel = ui.Label( 'Adjust slider to hide features less than the specified area (km²)'); // Add the slider to the map. Map.add(ui.Panel([filterSliderLabel, filterSlider])); // Initialize the FeatureViewLayer style. updateVisParams(); // Add the FeatureViewLayer to the map. Map.add(layer);
चित्र 2. FeatureViewLayer
स्लाइडर विजेट के साथ विज़ुअलाइज़ेशन, ताकि तय किए गए एरिया से छोटी सुविधाओं को छिपाया जा सके.
Google मानचित्र API
Google Maps API का इस्तेमाल करके FeatureView
एसेट को विज़ुअलाइज़ करने की प्रोसेस चार चरणों में पूरी होती है: ee.data.getFeatureViewTilesKey
का इस्तेमाल करके टाइल पासकोड पाएं, उसे FeatureViewTileSource
के किसी इंस्टेंस में पास करें, ee.layer.ImageOverlay
बनाएं, और फिर अपने google.maps.Map
इंस्टेंस में ओवरले जोड़ें. JavaScript में ImageOverlay
बनाने के लिए, सैंपल कोड यहां दिया गया है.
var tilesKey = ee.data.getFeatureViewTilesKey({
assetId: 'WCMC/WDPA/current/polygons_FeatureView',
visParams: { … },
});
var tileSource = new ee.layers.FeatureViewTileSource(tilesKey);
var overlay = new ee.layers.ImageOverlay(tileSource);
इसके बाद, यहां दिखाए गए तरीके से अपने google.maps.Map
इंस्टेंस में ओवरले जोड़ा जा सकता है.
// embeddedMap is your google.maps.Map instance.
embeddedMap.overlayMapTypes.setAt(0, overlay);
किसी FeatureView की जांच करना
डिफ़ॉल्ट कोड एडिटर मैप में जोड़ी गई FeatureViewLayer
लेयर की जांच, इंस्पेक्टर टूल का इस्तेमाल करके की जा सकती है.
यह FeatureCollection
की तरह ही काम करता है. ध्यान दें कि क्लिक की गई जगह के लिए मिले नतीजों में, सिर्फ़ वे सुविधाएं दिखती हैं जो मौजूदा ज़ूम लेवल पर दिखती हैं. जिन सुविधाओं की जांच की गई है उनके लिए ज्यामिति नहीं दिखाई जाती है, क्योंकि FeatureView
एक्सपोर्ट की प्रोसेस के तहत उन्हें आसान बनाया जाता है.
चित्र 3. FeatureViewLayer
की जांच की जा रही है. इंस्पेक्टर, लेयर,
सुविधाएं, ऐसेट आईडी, और विज़ुअलाइज़ेशन पैरामीटर दिखाता है.