FeatureView'a Genel Bakış

FeatureView, FeatureCollection'nin salt görüntüleme modunda hızlandırılmış bir temsilidir. Rastgele harita karoları anında oluşturulan FeatureCollection'lerin aksine, FeatureView rastgele karoları hızlı oluşturma sağlamak için önceden hesaplanır. FeatureView öğeleri, daha hızlı oluşturmanın yanı sıra yakınlaştırma düzeyine bağlı özellik azaltma özelliğini de uygular. Sonuç olarak, yoğun veri kümeleri uzaklaştırıldığında eksik görünebilir (küçük özellikler çizilmez), ancak yakınlaştırdıkça verilerin daha fazlası görünür hale gelir. Bu da daha düşük yakınlaştırma seviyelerinde haritanın estetiğini iyileştirebilir. Bir veri kümesinin inceltme davranışı, FeatureCollection öğesinin FeatureView öğesine dışa aktarılması sırasında ayarlanan çeşitli optimizasyon parametreleri tarafından kontrol edilir.

Yalnızca görüntülenebilir öğe olarak FeatureView nesneleri hesaplamalara veya ifadelere dahil edilemez ancak JavaScript Kod Düzenleyici ve Earth Engine Uygulamaları'nda FeatureViewLayer olarak görselleştirilebilir ve incelenebilir. Ayrıca Google Maps API uygulamalarına entegre edilebilirler.

FeatureView oluşturma

FeatureView oluşturmak için verilerinizle bir FeatureCollection hazırlamanız, Export.table.toFeatureView işlevini çağırmanız ve dışa aktarma görevini başlatmanız gerekir. Aşağıdaki örnekte, WDPA poligon veri kümesinin görünümlerinin dışa aktarılması gösterilmektedir. Kendi uygulamanızda, Earth Engine Veri Kataloğu'nda arşivlenen herhangi bir FeatureCollection veri kümesini kullanın veya Earth Engine öğesi olarak bir vektör veri kümesi yükleyerek kendi veri kümenizi oluşturun.

FeatureView, Export.table.toFeatureView işlevinde çeşitli parametreler kullanılarak özelleştirilebilir.

  • maxFeaturesPerTile: Belirli bir yakınlaştırma düzeyinde bir harita karosunda gösterilen maksimum özellik sayısını tanımlar. Hız veya özellik yoğunluğu için optimizasyon yapmak istiyorsanız bu parametreyi kullanın.
  • thinningStrategy: Belirli bir karo ve yakınlaştırma seviyesi için özellik azaltmanın, karolar arasında daha yüksek yoğunluk veya yoğunluk tutarlılığı için optimize edilip edilmeyeceğini kontrol eder. Daha yüksek yoğunluk için optimizasyon yapmanın, karo başına özellik yoğunluğu bağımsız olduğundan karo sınırlarının belirginleşmesine neden olabileceğini unutmayın.
  • thinningRanking: Özellik azaltma önceliğini tanımlar. Örneğin, belirli bir özellik mülkünün yüksek değerlere sahip olmasını hedefleyerek inceltme işlemini optimize edebilirsiniz. Diğer bir deyişle, uzaklaştırdığınızda seçili mülk için düşük değere sahip özellikler önce inceltilir ve en önemli özellikler (kurallarınıza göre) görünür kalır.
  • zOrderRanking: Haritada gösterilen özelliklerin z-sırasını (grup sırasını) tanımlar. Bu parametre, özellik özelliklerine, geometri türüne ve yakınlaştırma düzeyine göre öncelik kuralları ayarlamanıza olanak tanıyarak çakışık özelliklerin nasıl gösterileceğini kontrol eder. Örneğin, belirli bir mülkün yüksek değerli özelliklerine öncelik vererek bu özelliklerin, kesişimi olan düşük değerli özelliklerin üzerine binmesini sağlayabilirsiniz.

Bu parametreler ve kabul edilen bağımsız değişkenleri hakkında daha fazla bilgi için FeatureView Optimizasyon sayfasına bakın.

Aşağıdaki örnekte, bu parametreler için belirtilen bağımsız değişkenler, belirli bir yakınlaştırma düzeyinde karo başına maksimum 1.500 özellik, karo başına özellik yoğunluğu 1.500'e ulaşmasına izin verilen, küçük poligonların önce inceltildiği ve küçük poligonların büyük poligonların üzerine yerleştirildiği bir FeatureView oluşturur.

Kod Düzenleyici (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'],
});

Yukarıdaki kod snippet'ini Kod Düzenleyici'de çalıştırdığınızda bir dışa aktarma görevi oluşturulur. Dışa aktarma işlemini başlatmak için görevi çalıştırın.

FeatureView öğe konumları

FeatureView öğelerini herkese açık Veri Kataloğu'nda ve Kod Düzenleyici'nin Öğeler sekmesindeki kişisel öğeleriniz arasında bulabilirsiniz. Data Catalog'taki tüm ilgili FeatureCollection öğelerinin, genel olarak geçerli besleme ayarlarına sahip bir FeatureView öğesi vardır. Kişisel öğe arşivinizde, oluşturduğunuz tüm FeatureView öğeleri bulabilirsiniz.

FeatureView öğelerini komut dosyalarına aktarma

FeatureView öğeleri, Code Editor öğe iletişim kutularındaki düğmeler ve kişisel öğe girişleri kullanılarak ve ui.Map.FeatureViewLayer oluşturucuya giriş olarak bir FeatureView öğe kimliği sağlanarak Code Editor komut dosyalarına aktarılabilir.

Data Catalog öğesi iletişim kutusu

Kod Düzenleyici'nin arama çubuğundan erişilen Veri Kataloğu tablo öğesi iletişim kutularının sağ alt kısmında, açılır menülü bir İçe Aktar düğmesi bulunur. Açılır menüden "FeatureView'i içe aktar"ı seçin. Öğe, komut dosyanızın üst kısmındaki İçe Aktarılanlar bölümüne eklenir.

Kişisel öğe iletişim kutusu

Kod Düzenleyici'nin Öğeler sekmesinden bir öğe seçerek erişilen kişisel FeatureView öğe iletişim kutularında sağ üstte bir İçe Aktar düğmesi bulunur. Düğmeyi etkinleştirmek, öğeyi komut dosyanızın üst kısmındaki İçe Aktarımlar bölümüne ekler. Öğeler sekmesinde fareyle bir öğenin üzerine geldiğinizde görünen içe aktarma kısayolu düğmesini (sağa bakan ok simgesi) de kullanabilirsiniz.

Öğe Kimliği

FeatureView öğeleri, ui.Map.FeatureViewLayer kurucusuna giriş olarak sağlanabilecek bir kimliğe sahiptir. Bu kimlik, komut dosyanızdaki öğeye erişmenizi sağlar. Önceden oluşturulmuş içe aktarma snippet'lerini, Data Catalog öğe sayfalarında ve Kod Düzenleyici'deki öğe iletişim kutularında bulabilirsiniz.

Şekil 1. FeatureView içe aktarma yöntemlerini vurgulayan Data Catalog öğesi iletişim kutusu.

FeatureView meta verileri

FeatureView bilgileri ve meta verileri, yukarıdaki FeatureView öğe konumları bölümünde belirtilen öğe iletişim kutularında bulunur. Kaynak FeatureCollection ile paylaşılabilen açıklamaya ve özelliklere ek olarak, FeatureView'a özgü beş özellik vardır. Bunlar arasında FeatureView Oluşturma bölümünde açıklanan besleme parametresi ayarları ve FeatureView'ın oluşturulduğu tablo öğesinin "son değiştirilme" zaman damgası olan sourceVersion yer alır. Yukarıdaki Şekil 1'de, bir Veri Kataloğu öğe iletişim kutusunda FeatureView'ye özgü özellikler gösterilmektedir. Diğer öğeler gibi mülkleri de ee.data.getAsset tarafından döndürülen sözlükten programatik olarak alabilirsiniz.

FeatureView'ı görselleştirme

FeatureView nesneleri Kod Düzenleyici, Earth Engine uygulamaları ve Google Haritalar'da görselleştirilebilir.

Kod Düzenleyici

Kod Düzenleyici, FeatureView öğelerini haritada görselleştirmek için ui.Map.FeatureViewLayer bileşenini içerir. Aşağıdaki örnekte bir FeatureView öğe kimliği tanımlanmakta, öğe FeatureViewLayer olarak içe aktarılmakta ve haritada gösterilmektedir.

Kod Düzenleyici (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);

Stil

ui.Map.FeatureViewLayer işlevine bir stil sözlüğü ileterek veya setVisParams yöntemini kullanarak bir katmana ekleyerek FeatureViewLayer öğesine stil uygulayabilirsiniz. Aşağıda, aşağıdakileri biçimlendiren bir örnek verilmiştir:

  • "MARINE" özelliğine göre ana hat renkleri (korunan alanın tamamen veya kısmen deniz ortamına girip girmediği),
  • "IUCN_CAT" mülküne (Doğayı Koruma İçin Uluslararası Birlik (IUCN) Kategorisi) göre dolgu rengi ve
  • "REP_AREA" mülkü tarafından tanımlanan korumalı alanın boyutuna göre dolgu opaklığı.

Kullanılabilen stil seçenekleri hakkında daha fazla bilgi için Özellik Görünümü Stili sayfasını ziyaret edin.

Kod Düzenleyici (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,
});

Filtreleme

Filtre kuralları, özelliklere özelliklerine göre seçerek stil uygulamak veya özellikleri gizlemek için uygulanabilir. Örneğin, kaydırma çubuğu widget'ı tarafından belirtilen belirli bir alandan daha küçük olan korunan alanları filtrelemek için aşağıdaki kodu kullanabilirsiniz. rules alanı hakkında daha fazla bilgi edinmek için FeatureView Stil sayfasının Belirli Kurallar bölümüne bakın.

Kod Düzenleyici (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);

Şekil 2. Belirtilen alandan daha küçük özellikleri gizlemek için kaydırma çubuğu widget'ı içeren bir FeatureViewLayer görselleştirmesi.

Google Haritalar API'sı

Google Haritalar API'sini kullanarak bir FeatureView öğesini görselleştirme süreci dört bölümden oluşur: ee.data.getFeatureViewTilesKey kullanarak bir karo anahtarı alın, bunu bir FeatureViewTileSource örneğine iletin, bir ee.layer.ImageOverlay oluşturun ve ardından yer paylaşımını google.maps.Map örneğinize ekleyin. JavaScript'te ImageOverlay öğesini oluşturmaya yönelik örnek kod aşağıda gösterilmiştir.

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);

Ardından, yer paylaşımını aşağıda gösterildiği gibi google.maps.Map örneğinize ekleyebilirsiniz.

// embeddedMap is your google.maps.Map instance.
embeddedMap.overlayMapTypes.setAt(0, overlay);

FeatureView'ı inceleme

Varsayılan Kod Düzenleyici haritasına eklenen FeatureViewLayer katmanı, İnceleyici aracı kullanılarak incelenebilir. İşlevsellik, FeatureCollection ile aynıdır. Tıklanan konum için döndürülen sonuçlarda yalnızca mevcut yakınlaştırma düzeyinde görünen özelliklerin listelendiğini unutmayın. FeatureView dışa aktarma işleminin bir parçası olarak basitleştirildiğinden, incelenen özellikler için geometriler gösterilmez.

Şekil 3. FeatureViewLayer'ü inceliyoruz. İnceleyici, katmanı, özellikleri, öğe kimliğini ve görselleştirme parametrelerini gösterir.