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.