FeatureView की खास जानकारी

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 की जांच की जा रही है. इंस्पेक्टर, लेयर, सुविधाएं, ऐसेट आईडी, और विज़ुअलाइज़ेशन पैरामीटर दिखाता है.