Intensitas Perubahan Kemunculan Air

Lapisan data Intensitas Perubahan Keberadaan Air memberikan ukuran tentang bagaimana air permukaan telah berubah antara dua periode: 1984-1999 dan 2000-2015. Lapisan ini merata-ratakan perubahan di seluruh pasangan bulan homolog yang diambil dari dua era. 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 area minat tertentu menggunakan histogram.

Visualisasi

Mirip 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 yang dinormalisasi. Kita akan menggunakan nilai absolut dalam tutorial ini. Mulai dengan memilih lapisan intensitas perubahan kemunculan absolut dari gambar GSW:

Code Editor (JavaScript)

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

Di bagian Konstanta kode, tambahkan pernyataan yang membuat variabel baru yang menentukan gaya lapisan. Gaya ini menunjukkan area tempat terjadinya air permukaan menurun/meningkat dalam warna merah/hijau. Area yang kemunculan air permukaannya relatif tidak berubah ditampilkan dalam warna hitam.

Code Editor (JavaScript)

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

Di akhir bagian kode Map Layers, tambahkan pernyataan yang menambahkan lapisan baru ke peta.

Code Editor (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 epoch.

Meringkas Perubahan dalam Area Minat

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

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

area yang diminati
Gambar 7. Screenshot Sungai Ucayali di dekat Pucallpa, Peru, dengan area yang diinginkan dibuat menggunakan alat menggambar poligon.

Setelah area minat ditentukan dan disimpan dalam variabel, kita dapat menggunakannya untuk menghitung histogram intensitas perubahan untuk ROI. Tambahkan kode berikut ke bagian Calculations dari skrip.

Code Editor (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 menit. Perintah kedua mencetak objek yang dihasilkan ke Tab Konsol Code Editor. Anda dapat meluaskan hierarki objek untuk melihat nilai bucket histogram. Data numerik ada, tetapi ada cara yang lebih baik untuk memvisualisasikan hasilnya.

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

Untuk memperbaikinya, kita dapat membuat diagram histogram. Ganti pernyataan yang mendefinisikan objek histogram dengan pernyataan berikut:

Code Editor (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, yang digunakan untuk mengambil sampel area minat, dan minBucketWidth yang digunakan untuk mengontrol lebar bucket histogram.

diagram histogram
Gambar 9. Hasil tab Konsol, 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.

Code Editor (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 class air.