Su Kaynaklarının Görünme Değişim Yoğunluğu

Su oluşumu değişim yoğunluğu veri katmanı, yüzey suyunun iki dönem arasında nasıl değiştiğine dair bir ölçü sağlar: 1984-1999 ve 2000-2015. Katman, iki dönemden alınan homolog ay çiftleri arasındaki değişimi ortalar. Bu katmanla ilgili ek ayrıntılar için Veri Kullanıcıları Kılavuzu (v2) 'na bakın.

Eğitimin bu bölümünde:

  1. su oluşumundaki değişim yoğunluğunu görselleştirmek için stilize edilmiş bir harita katmanı ekleme ve
  2. Histogram kullanarak belirli bir ilgi alanındaki değişiklik yoğunluğunu özetleme

Görselleştirme

Su oluşumu katmanına benzer şekilde, haritaya oluşum değişikliği yoğunluğunun temel bir görselleştirmesini ekleyerek başlayıp ardından bunu iyileştireceğiz. Oluşum değişikliği yoğunluğu hem mutlak hem de normalleştirilmiş değerler olarak iki şekilde sağlanır. Bu eğitimde mutlak değerleri kullanacağız. GSW görüntüsünden mutlak oluşum değişikliği yoğunluğu katmanını seçerek başlayın:

Kod Düzenleyici (JavaScript)

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

Kodun Sabitler bölümüne, katmanın nasıl stilize edileceğini tanımlayan yeni bir değişken oluşturan bir ifade ekleyin. Bu stil, yüzey suyu oluşumunun azaldığı/arttığı alanları kırmızı/yeşil renkte gösterir. Yüzey suyu oluşumunun nispeten değişmediği alanlar siyah renkte gösterilir.

Kod Düzenleyici (JavaScript)

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

Kodun Harita Katmanları bölümünün sonuna, haritaya yeni bir katman ekleyen bir ifade ekleyin.

Kod Düzenleyici (JavaScript)

Map.setCenter(-74.4557, -8.4289, 11);  // Ucayali River, Peru
Map.addLayer({
  eeObject: change,
  visParams: VIS_CHANGE,
  name: 'occurrence change intensity'
});
yoğunluğu değiştirme
6. Şekil. Peru'nun doğusundaki Amazon yağmur ormanlarında yer alan Pucallpa şehri yakınlarındaki Ucayali Nehri'nde yüzey suyu değişim yoğunluğunun ekran görüntüsü. Kırmızı/yeşil, dönemler arasında yüzey suyu oluşumunda azalma/artış olduğunu gösterir.

İlgilenilen bölgedeki değişikliği özetleme

Bu bölümde, belirli bir ilgi alanındaki değişiklik miktarını özetleyeceğiz. İlgi alanını belirtmek için Geometri araçları'ndan biri olan poligon çizim aracını tıklayın. Bu işlem, varsayılan olarak "geometry" adlı yeni bir Geometri İçe Aktarma katmanı oluşturur. Adı değiştirmek için katman adının sağındaki dişli simgesini tıklayın. (Görünmesi için imlecinizi katman adının üzerine getirmeniz gerekebilir.)

Katman adını roi (ilgi alanı veya ROI için) olarak değiştirin. Ardından, ilgi alanı olan bir poligon bölgeyi tanımlamak için haritada bir dizi noktayı tıklayabiliriz.

ilgi alanı
Şekil 7. Peru'nun Pucallpa şehri yakınlarındaki Ucayali Nehri'nin, çokgen çizim aracı kullanılarak oluşturulmuş bir ilgi alanı ile birlikte ekran görüntüsü.

İlgilenilen bölge tanımlanıp bir değişkende depolandığına göre, bu bölge için değişim yoğunluğunun histogramını hesaplamak üzere kullanılabilir. Aşağıdaki kodu komut dosyasının Calculations bölümüne ekleyin.

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

İlk ifade, 30 m ölçeğinde örnekleme yaparak YG içindeki oluşum değişikliği yoğunluğu değerlerinin histogramını hesaplar. İkincisi ise sonuçta elde edilen nesneyi Kod Düzenleyici'deki Konsol sekmesine yazdırır. Histogram gruplarının değerlerini görüntülemek için nesne ağacını genişletebilirsiniz. Sayısal veriler mevcut ancak sonuçları görselleştirmenin daha iyi yolları var.

histogram değerleri
Şekil 8. Yüzey suyu değişim yoğunluğunun histogram değerlerini gösteren Console sekmesi sonuçları.

Bu durumu iyileştirmek için bunun yerine histogram grafiği oluşturabiliriz. Histogram nesnesini tanımlayan ifadeyi aşağıdaki ifadelerle değiştirin:

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

Bu ifadeler, Console sekmesindeki histogram nesne ağacının yerini bir grafikle değiştiren bir histogram grafiği nesnesi oluşturur. Grafik yönteminde, ilgi alanının örnekleme için kullanılacağı metrelik uzamsal ölçeği tanımlayan scale ve histogram gruplarının genişliğini kontrol etmek için kullanılan minBucketWidth dahil olmak üzere çeşitli bağımsız değişkenler bulunur.

histogram grafiği
Şekil 9. Yüzey suyu değişim yoğunluğunun histogram grafiğini gösteren Konsol sekmesi sonuçları.

İmlecinizi histogram çubuklarının üzerine getirerek grafik değerlerini etkileşimli olarak inceleyebilirsiniz.

Son Komut Dosyası

Bu bölümün tam metni aşağıda listelenmiştir. Komut dosyasının, bir poligon geometrisi (roi) tanımlamaya yönelik ifadeler içerdiğini unutmayın. Bu geometri, kod düzenleyicinin geometri araçlarını kullanarak oluşturduğunuz geometriye benzer.

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

Sonraki bölümde, su sınıfı geçiş katmanıyla çalışarak suyun zaman içinde nasıl değiştiğini daha ayrıntılı olarak inceleyeceksiniz.