Su Varlığı Değişim Yoğunluğu veri katmanı, yüzey suyunun 1984-1999 ve 2000-2015 olmak üzere iki dönem arasında nasıl değiştiğine dair bir ölçüm sağlar. Katman, iki dönemden alınan eş ayların çiftleri arasındaki değişimin ortalamasını alır. Bu katmanla ilgili daha fazla bilgi için Veri Kullanıcıları Rehberi'ne (v2) bakın.
Eğitimin bu bölümünde şunlar ele alınacaktır:
- Su varlığı değişim yoğunluğunu görselleştirmek için stil özellikli bir harita katmanı ekleme ve
- Belirli bir ilgi alanındaki değişiklik yoğunluğunu histogram kullanarak özetleme
Görselleştirme
Su varlığı katmanına benzer şekilde, haritaya varlık değişimi yoğunluğunun temel bir görselleştirmesini ekleyerek başlayacak ve ardından bunu geliştireceğiz. Olay 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 Constants bölümüne, katmanın nasıl stillendirileceğini tanımlayan yeni bir değişken oluşturan bir ifade ekleyin. Bu stil, yüzey suyu miktarının azaldığı/arttığı alanları kırmızı/yeşil renkte gösterir. Yüzey suyu varlığının nispeten değişmediği alanlar siyah renkle 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' });
İlgilenilen Bölgedeki Değişikliği Özetleme
Bu bölümde, belirtilen bir ilgi alanındaki değişiklik miktarını özetleyeceğiz. İlgilenilen bölgeyi belirtmek için geometri araçlarından biri olan poligon çizim aracını tıklayın. Bu işlem, varsayılan olarak "geometry" adını taşıyan 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 (ilgilenilen bölge veya YG için) olarak değiştirin. Ardından, haritadaki bir dizi noktayı tıklayarak ilgilenilen poligon bölgeyi tanımlayabiliriz.
İlgilendiğimiz bölge tanımlanıp bir değişkende depolandığına göre, bu değişkeni kullanarak YG için değişim yoğunluğunun histogramını hesaplayabiliriz. Aşağıdaki kodu komut dosyasının Calculations (Hesaplamalar) 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, YG'deki oluşum değişikliği yoğunluk değerlerinin histogramını hesaplar ve 30 m ölçeğinde örnekleme yapar. İkincisi, elde edilen nesneyi Kod Düzenleyici 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.
Bunu iyileştirmek için 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, Konsol sekmesindeki histogram nesne ağacını bir grafikle değiştiren bir histogram grafik nesnesi oluşturur. Grafik yöntemi, ilgilenilen bölgenin örneklendiği uzamsal ölçeği metre cinsinden tanımlayan scale ve histogram gruplarının genişliğini kontrol etmek için kullanılan minBucketWidth gibi çeşitli bağımsız değişkenler içerir.
İmlecinizi histogram çubuklarının üzerine getirerek grafik değerlerini etkileşimli olarak inceleyebilirsiniz.
Final Script
Bu bölümün senaryosunun tamamı aşağıda listelenmiştir. Komut dosyasının, Kod Düzenleyici'nin geometri araçlarını kullanarak oluşturduğunuz geometriyle karşılaştırılabilir bir poligon geometrisi (roi) tanımlamak için ifadeler içerdiğini unutmayın.
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ı bir şekilde inceleyeceksiniz.