Intensitas Perubahan Kemunculan Air

Lapisan data Water Occurrence Change Intensity memberikan ukuran bagaimana air permukaan telah berubah antara dua periode: 1984-1999 dan 2000-2015. Lapisan ini menghitung rata-rata perubahan di seluruh pasangan bulan homolog yang diambil dari dua epoch. Lihat Panduan Pengguna Data (v2) untuk mengetahui detail tambahan tentang lapisan ini.

Bagian tutorial ini akan:

  1. menambahkan lapisan peta bergaya untuk memvisualisasikan intensitas perubahan kemunculan air, dan
  2. meringkas intensitas perubahan di region-of-interest yang ditentukan menggunakan histogram.

Visualisasi

Serupa dengan lapisan kemunculan air, kita akan mulai dengan menambahkan visualisasi dasar intensitas perubahan kemunculan ke peta, lalu meningkatkannya. Intensitas perubahan kemunculan disediakan dalam dua cara, baik sebagai nilai absolut maupun nilai yang dinormalisasi. Kita akan menggunakan nilai absolut dalam tutorial ini. Mulailah dengan memilih lapisan intensitas perubahan kemunculan absolut dari gambar GSW:

Editor Kode (JavaScript)

var change = gsw.select("change_abs");

Di bagian Constants pada kode, tambahkan pernyataan yang membuat variabel baru yang menentukan gaya lapisan. Penataan gaya ini menunjukkan area tempat kemunculan air permukaan telah berkurang/bertambah dalam warna merah/hijau. Area tempat kemunculan air permukaan relatif tidak berubah ditampilkan dalam warna hitam.

Editor Kode (JavaScript)

var VIS_CHANGE = {
    min:-50,
    max:50,
    palette: ['red', 'black', 'limegreen']
};

Di akhir bagian kode Lapisan Peta, tambahkan pernyataan yang menambahkan lapisan baru ke peta.

Editor Kode (JavaScript)

Map.setCenter(-74.4557, -8.4289, 11);  // Ucayali River, Peru
Map.addLayer({
  eeObject: change,
  visParams: VIS_CHANGE,
  name: 'occurrence change intensity'
});
mengubah intensitas
Gambar 6. Screenshot intensitas perubahan air permukaan untuk Sungai Ucayali di dekat Pucallpa, sebuah kota di hutan hujan Amazon di Peru timur. Merah/hijau menunjukkan penurunan/peningkatan kemunculan air permukaan di antara kedua epoch.

Meringkas Perubahan dalam Region yang Diminati

Di bagian ini, kita akan meringkas jumlah perubahan dalam wilayah minat yang ditentukan. Untuk menentukan region yang diinginkan, klik alat gambar poligon, yang merupakan salah satu Alat geometri. Tindakan ini akan membuat lapisan Impor Geometri baru, yang diberi nama "geometry" secara default. Untuk mengubah nama, klik ikon roda gigi yang terletak di sebelah kanan nama lapisan. (Perhatikan bahwa Anda mungkin perlu menempatkan kursor pada nama lapisan agar ikon tersebut muncul.)

Ubah nama lapisan menjadi roi (untuk region-of-interest atau ROI). Kemudian, kita dapat mengklik serangkaian titik pada peta untuk menentukan region of interest poligon.

region of interest
Gambar 7. Screenshot Sungai Ucayali di dekat Pucallpa, Peru, dengan region-of-interest yang dibuat menggunakan alat gambar poligon.

Setelah region-of-interest ditentukan dan disimpan dalam variabel, kita dapat menggunakannya untuk menghitung histogram intensitas perubahan untuk ROI. Tambahkan kode berikut ke bagian Calculations pada skrip.

Editor Kode (JavaScript)

// Calculate a change intensity for the region of interest.
var histogram = change.reduceRegion({
  reducer: ee.Reducer.histogram(),
  geometry: roi,
  scale: 30,
  bestEffort: true,
});
print(histogram);

Pernyataan pertama menghitung histogram nilai intensitas perubahan kemunculan dalam ROI, dengan pengambilan sampel pada skala 30 m. Yang kedua mencetak objek yang dihasilkan ke Tab Konsol Editor Kode. Anda dapat meluaskan hierarki objek untuk melihat nilai bucket histogram. Data numerik ada di sana, tetapi ada cara yang lebih baik untuk memvisualisasikan hasilnya.

nilai histogram
Gambar 8. Hasil tab Console, yang menampilkan nilai histogram intensitas perubahan air permukaan.

Untuk meningkatkan kualitasnya, kita dapat membuat diagram histogram. Ganti pernyataan yang menentukan objek histogram dengan pernyataan berikut:

Editor Kode (JavaScript)

// Generate a histogram object and print it to the console tab.
var histogram = ui.Chart.image.histogram({
  image: change,
  region: roi,
  scale: 30,
  minBucketWidth: 10
});
histogram.setOptions({
  title: 'Histogram of surface water change intensity.'
});

Pernyataan ini membuat objek diagram histogram, yang menggantikan hierarki objek histogram di Tab Konsol dengan diagram. Metode diagram berisi beberapa argumen, termasuk scale yang menentukan skala spasial, dalam meter, tempat region minat' diambil sampelnya, dan minBucketWidth yang digunakan untuk mengontrol lebar bucket histogram.

diagram histogram
Gambar 9. Hasil tab Console, yang menampilkan diagram histogram intensitas perubahan air permukaan.

Anda dapat menjelajahi nilai diagram secara interaktif dengan menempatkan kursor di atas batang histogram.

Skrip Akhir

Seluruh skrip untuk bagian ini tercantum di bawah. Perhatikan bahwa skrip menyertakan pernyataan untuk menentukan geometri poligon (roi), yang sebanding dengan geometri yang Anda buat menggunakan alat geometri Editor Kode.

Editor Kode (JavaScript)

//////////////////////////////////////////////////////////////
// Asset List
//////////////////////////////////////////////////////////////

var gsw = ee.Image('JRC/GSW1_0/GlobalSurfaceWater');
var occurrence = gsw.select('occurrence');
var change = gsw.select("change_abs");
var roi = /* color: 0B4A8B */ee.Geometry.Polygon(
        [[[-74.17213, -8.65569],
          [-74.17419, -8.39222],
          [-74.38362, -8.36980],
          [-74.43031, -8.61293]]]);

//////////////////////////////////////////////////////////////
// Constants
//////////////////////////////////////////////////////////////

var VIS_OCCURRENCE = {
    min:0,
    max:100,
    palette: ['red', 'blue']
};
var VIS_CHANGE = {
    min:-50,
    max:50,
    palette: ['red', 'black', 'limegreen']
};
var VIS_WATER_MASK = {
  palette: ['white', 'black']
};

//////////////////////////////////////////////////////////////
// Calculations
//////////////////////////////////////////////////////////////

// Create a water mask layer, and set the image mask so that non-water areas are transparent.
var water_mask = occurrence.gt(90).mask(1);

// Generate a histogram object and print it to the console tab.
var histogram = ui.Chart.image.histogram({
  image: change,
  region: roi,
  scale: 30,
  minBucketWidth: 10
});
histogram.setOptions({
  title: 'Histogram of surface water change intensity.'
});
print(histogram);

//////////////////////////////////////////////////////////////
// Initialize Map Location
//////////////////////////////////////////////////////////////

// Uncomment one of the following statements to center the map on
// a particular location.
// Map.setCenter(-90.162, 29.8597, 10);   // New Orleans, USA
// Map.setCenter(-114.9774, 31.9254, 10); // Mouth of the Colorado River, Mexico
// Map.setCenter(-111.1871, 37.0963, 11); // Lake Powell, USA
// Map.setCenter(149.412, -35.0789, 11);  // Lake George, Australia
// Map.setCenter(105.26, 11.2134, 9);     // Mekong River Basin, SouthEast Asia
// Map.setCenter(90.6743, 22.7382, 10);   // Meghna River, Bangladesh
// Map.setCenter(81.2714, 16.5079, 11);   // Godavari River Basin Irrigation Project, India
// Map.setCenter(14.7035, 52.0985, 12);   // River Oder, Germany & Poland
// Map.setCenter(-59.1696, -33.8111, 9);  // Buenos Aires, Argentina\
Map.setCenter(-74.4557, -8.4289, 11);  // Ucayali River, Peru

//////////////////////////////////////////////////////////////
// Map Layers
//////////////////////////////////////////////////////////////

Map.addLayer({
  eeObject: water_mask,
  visParams: VIS_WATER_MASK,
  name: '90% occurrence water mask',
  shown: false
});
Map.addLayer({
  eeObject: occurrence.updateMask(occurrence.divide(100)),
  name: "Water Occurrence (1984-2015)",
  visParams: VIS_OCCURRENCE,
  shown: false
});
Map.addLayer({
  eeObject: change,
  visParams: VIS_CHANGE,
  name: 'occurrence change intensity'
});

Di bagian berikutnya, Anda akan mempelajari lebih lanjut perubahan air dari waktu ke waktu, dengan menggunakan lapisan transisi kelas air.