Ringkasan FeatureView

FeatureView adalah representasi yang dipercepat dan hanya lihat dari FeatureCollection. Tidak seperti FeatureCollection, yang ubin peta rasternya dihasilkan secara langsung, ubin raster FeatureView dihitung sebelumnya untuk memberikan rendering yang cepat. Selain merender lebih cepat, aset FeatureView menerapkan pengurangan fitur yang bergantung pada tingkat zoom. Efeknya adalah set data yang padat mungkin terlihat tidak lengkap saat diperkecil (fitur kecil tidak digambar), tetapi lebih banyak data akan terlihat saat Anda memperbesar, yang dapat meningkatkan estetika peta pada tingkat zoom yang lebih rendah. Perilaku pengecilan set data dikontrol oleh beberapa parameter pengoptimalan yang ditetapkan selama ekspor FeatureCollection ke aset FeatureView.

Sebagai aset khusus lihat, objek FeatureView tidak dapat disertakan dalam komputasi atau ekspresi, tetapi dapat divisualisasikan dan diperiksa di Editor Kode JavaScript dan Aplikasi Earth Engine sebagai FeatureViewLayer. API ini juga dapat diintegrasikan ke dalam aplikasi Google Maps API.

Membuat FeatureView

Membuat FeatureView melibatkan persiapan FeatureCollection dengan data Anda, memanggil fungsi Export.table.toFeatureView, dan memulai tugas ekspor. Contoh berikut menunjukkan cara mengekspor tampilan dari set data poligon WDPA. Di aplikasi Anda sendiri, gunakan set data FeatureCollection yang diarsipkan di Earth Engine Data Catalog atau buat set data Anda sendiri dengan mengupload set data vektor sebagai aset Earth Engine.

FeatureView dapat disesuaikan menggunakan beberapa parameter dalam fungsi Export.table.toFeatureView.

  • maxFeaturesPerTile — menentukan jumlah maksimum fitur yang ditampilkan di ubin peta pada tingkat zoom tertentu. Gunakan parameter ini untuk mengoptimalkan kecepatan atau kepadatan fitur.
  • thinningStrategy — mengontrol apakah pengecilan fitur untuk ubin tertentu dan tingkat zoom harus dioptimalkan untuk kepadatan yang lebih tinggi atau konsistensi dalam kepadatan di seluruh ubin. Perhatikan bahwa pengoptimalan untuk kepadatan yang lebih tinggi dapat menyebabkan batas ubin menjadi berbeda, karena kepadatan fitur per ubin bersifat independen.
  • thinningRanking — menentukan prioritas pengecilan fitur. Misalnya, Anda dapat mengoptimalkan pengecilan untuk menargetkan retensi properti fitur tertentu dengan nilai tinggi. Dengan kata lain, saat Anda memperkecil, fitur yang memiliki nilai rendah untuk properti yang dipilih akan dihilangkan terlebih dahulu, sehingga fitur yang paling penting (sesuai dengan aturan Anda) akan terlihat.
  • zOrderRanking — menentukan urutan z (urutan tumpukan) fitur yang ditampilkan di peta. Parameter ini mengontrol cara fitur yang tumpang-tindih ditampilkan dengan memungkinkan Anda menetapkan aturan prioritas berdasarkan properti fitur, jenis geometri, dan tingkat zoom. Misalnya, Anda dapat memprioritaskan fitur dengan nilai properti tertentu yang tinggi sehingga fitur tersebut ditempatkan di atas fitur yang berpotongan dengan nilai rendah.

Lihat halaman Pengoptimalan FeatureView untuk mengetahui detail selengkapnya tentang parameter ini dan argumen yang diterimanya.

Pada contoh di bawah, argumen yang ditentukan untuk parameter ini menghasilkan FeatureView dengan fitur maksimum per ubin pada tingkat zoom tertentu adalah 1.500, kepadatan fitur per ubin bersifat independen dan diizinkan untuk mencapai maksimum 1.500, poligon yang lebih kecil dihilangkan terlebih dahulu, dan poligon yang lebih kecil berada di atas poligon yang lebih besar.

Editor Kode (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'],
});

Menjalankan cuplikan kode di atas di Code Editor akan menghasilkan tugas ekspor; jalankan tugas untuk memulai ekspor.

Lokasi aset FeatureView

Aset FeatureView dapat ditemukan di Katalog Data publik dan di antara aset pribadi Anda di tab Aset Editor Kode. Semua aset FeatureCollection yang relevan di Data Catalog memiliki aset FeatureView pendamping dengan setelan penyerapan yang berlaku secara umum. Arsip aset pribadi Anda akan menyertakan aset FeatureView yang Anda buat.

Mengimpor aset FeatureView ke dalam skrip

Aset FeatureView dapat diimpor ke skrip Code Editor menggunakan tombol di dialog aset Code Editor dan entri aset pribadi, serta dengan menyediakan ID aset FeatureView sebagai input ke konstruktor ui.Map.FeatureViewLayer.

Dialog aset Data Catalog

Dialog aset tabel Katalog Data, yang diakses dari kotak penelusuran Editor Kode, memiliki tombol Import di kanan bawah dengan menu drop-down. Dari menu drop-down, pilih "Import FeatureView". Aset akan disertakan di bagian Impor di bagian atas skrip Anda.

Dialog aset pribadi

Dialog aset FeatureView pribadi, yang diakses dengan memilih aset dari tab Aset Editor Kode, memiliki tombol Impor di kanan atas. Mengaktifkan tombol akan menyertakan aset di bagian Impor di bagian atas skrip Anda. Anda juga dapat menggunakan tombol pintasan impor (ikon panah yang mengarah ke kanan) yang muncul saat Anda mengarahkan kursor ke aset di tab Aset.

ID Aset

Aset FeatureView memiliki ID yang dapat diberikan sebagai input ke konstruktor ui.Map.FeatureViewLayer, yang memberi Anda akses ke aset dalam skrip Anda. Cuplikan impor yang telah dibuat sebelumnya dapat ditemukan di halaman aset Data Catalog dan dialog aset di Code Editor.

Gambar 1. Dialog aset Data Catalog yang menyoroti metode impor FeatureView.

Metadata FeatureView

Informasi dan metadata FeatureView tersedia di dialog aset yang disebutkan di bagian Lokasi aset FeatureView di atas. Selain deskripsi dan properti yang dapat dibagikan dengan FeatureCollection sumber, ada lima properti yang unik untuk FeatureView. Setelan ini mencakup setelan parameter penyerapan yang dijelaskan di bagian Membuat FeatureView dan sourceVersion, yang merupakan stempel waktu "terakhir diubah" dari aset tabel tempat FeatureView dibuat. Gambar 1 di atas menunjukkan properti khusus FeatureView dalam dialog aset Katalog Data. Seperti aset lainnya, Anda juga dapat mengambil properti secara terprogram dari kamus yang ditampilkan oleh ee.data.getAsset.

Memvisualisasikan FeatureView

Objek FeatureView dapat divisualisasikan di Code Editor, Aplikasi Earth Engine, dan Google Maps.

Editor Kode

Code Editor menyertakan komponen ui.Map.FeatureViewLayer untuk memvisualisasikan aset FeatureView pada peta. Contoh berikut menentukan ID aset FeatureView, mengimpor aset sebagai FeatureViewLayer, dan menampilkannya di peta.

Editor Kode (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);

Penataan gaya

Anda dapat menata gaya FeatureViewLayer dengan meneruskan kamus gaya ke fungsi ui.Map.FeatureViewLayer atau menambahkannya ke lapisan menggunakan metode setVisParams. Berikut adalah contoh yang menata gaya:

  • warna garis batas berdasarkan properti "MARINE" (baik area yang dilindungi terletak sepenuhnya atau sebagian dalam lingkungan laut),
  • warna isi berdasarkan properti "IUCN_CAT" (Kategori International Union for Conservation of Nature (IUCN)), dan
  • opasitas isi berdasarkan ukuran area yang dilindungi yang ditentukan oleh properti "REP_AREA".

Buka halaman Gaya FeatureView untuk mengetahui detail selengkapnya tentang opsi gaya yang tersedia.

Editor Kode (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,
});

Pemfilteran

Aturan filter dapat diterapkan untuk menata gaya atau menyembunyikan fitur secara selektif berdasarkan propertinya. Misalnya, untuk memfilter area terlindungi yang lebih kecil dari area tertentu yang diberikan oleh widget penggeser, Anda dapat menggunakan kode berikut. Lihat bagian Aturan Khusus di halaman Gaya FeatureView untuk mempelajari lebih lanjut kolom rules.

Editor Kode (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);

Gambar 2. Visualisasi FeatureViewLayer dengan widget penggeser untuk menyembunyikan fitur yang lebih kecil dari area yang ditentukan.

Google Maps API

Proses untuk memvisualisasikan aset FeatureView menggunakan Google Maps API adalah proses empat bagian: mendapatkan kunci ubin menggunakan ee.data.getFeatureViewTilesKey, meneruskannya ke instance FeatureViewTileSource, membuat ee.layer.ImageOverlay, lalu menambahkan overlay ke instance google.maps.Map Anda. Kode contoh untuk membuat ImageOverlay di JavaScript ditampilkan di bawah.

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

Setelah selesai, Anda dapat menambahkan overlay ke instance google.maps.Map seperti yang ditunjukkan di bawah.

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

Memeriksa FeatureView

Lapisan FeatureViewLayer yang ditambahkan ke peta Editor Kode default dapat diperiksa menggunakan alat Inspector. Fungsinya sama dengan FeatureCollection. Perhatikan bahwa hasil yang ditampilkan untuk lokasi yang diklik hanya mencantumkan fitur yang terlihat pada tingkat zoom saat ini. Geometri tidak ditampilkan untuk fitur yang diperiksa karena disederhanakan sebagai bagian dari proses ekspor FeatureView.

Gambar 3. Memeriksa FeatureViewLayer. Inspector menampilkan lapisan, fitur, ID aset, dan parameter visualisasi.